Ang papel ng Java sa pagbuo ng web at mobile application
Pinagmulan: Ang DZone Java ay isa sa mga pinaka ginagamit na programming language. Ito ay aktibong ginagamit sa pagbuo ng mga corporate, web at mobile application. Ang Java ay may mga aplikasyon sa nangungunang tech na industriya, mula sa Data Science hanggang AR/VR. Bagama't ang pagpapaunlad ng enterprise sa Java ay ang pinakasikat na kaso ng paggamit para sa wikang ito, ang mga web at mobile application ay itinuturing din na isa sa mga lugar kung saan ginagamit ang Java. Tingnan natin kung bakit naging napakasikat ang Java development sa web at mga mobile device sa nakalipas na dalawang dekada. Isa sa mga pangunahing dahilan para gamitin ang Java para sa web at mobile ay ito ay isang mataas na pagganap ng programming language. Tinitiyak nito na ang iyong mga application ay maaaring tumakbo nang mabilis at walang anumang mga error sa pagproseso. Mayroon ding iba pang mga kadahilanan:1. Open source
Bilang isang open source programming language, ang Java ay may ilang mga pakinabang. Una, binabawasan nito ang gastos ng proseso ng pagbuo ng aplikasyon. Pangalawa, madaling baguhin ng mga developer ang wika at madalas itong i-update dahil open source ito. Bilang karagdagan, ang Java ay may madaling basahin na syntax na nagpapadali sa pagbuo ng mga application para sa web at mga mobile device. Sa wakas, magagamit ng mga developer ang umiiral nang codebase ng wika at pagbutihin ito.2. Cross-platform
Ang isa pang benepisyo ng programming sa Java ay ito ay isang cross-platform na wika. Ang mga developer ay maaaring magsulat ng code sa Windows at patakbuhin ito sa macOS at Linux. Ang prinsipyong "magsulat ng isang beses, tumakbo sa lahat ng dako" ay nalalapat dito. Ginagawa nitong mas madali para sa mga developer na nagtatrabaho sa iba't ibang mga system at pinapasimple ang proseso ng pagsubok sa iba't ibang mga makina. Halimbawa, maaaring subukan ng mga developer kung tatakbo nang tama ang isang program sa iba't ibang laki ng screen at operating system.3. Mobile-friendly
Ang Java ay isang sikat na teknolohiya para sa mga mobile application. Pangunahing ginagamit ng mga developer ng Android app ang wikang Java dahil madali itong ipatupad, may mga feature na panseguridad at mga cross-platform na kakayahan. Nangangailangan ang Android ng isang malakas na wika upang sukatin ang isang application, ngunit nag-aalok ang Java ng mga kamangha-manghang kakayahan sa pag-scale. Pinapasimple din nito ang proseso ng pagsubok sa mga Android application. Ang lahat ng ito ay nagpapahiwatig na ito ay isang maaasahan at dynamic na programming language para sa paglikha ng mga mobile application.4. Mga kasangkapan at aklatan
Ang isa sa mga pinaka makabuluhang bentahe ng Java ay ang pagiging tugma nito sa iba't ibang mga tool. Ang mga balangkas tulad ng Spring, Hibernate, Struts, Spark at iba pa ay lubos na nagpapasimple sa proseso ng pagbuo. Ang lahat ng mga tool na ito ay nag-aalok ng iba't ibang mga tampok para sa paglikha ng mga interactive at dynamic na application. Ang mga aklatan tulad ng Apache Commons, Java Standard Libraries, Maven, Jackson, atbp. ay nagbibigay-daan sa mga developer na magdagdag ng functionality nang hindi nagsusulat ng code mula sa simula.5. Aktibong komunidad
Mayroong higit sa 7.6 milyong Java developer sa mundo. Patuloy nilang ina-update ang programming language at nagdaragdag ng mga bagong feature dito. Dahil ang Java ay ina-update tuwing 6 na buwan, ang mga developer ay may pagkakataong matuto nang mabilis at lumikha ng mas mahuhusay na produkto. Maaari mo ring gamitin ang komunidad ng Java upang makahanap ng mga sagot sa iba't ibang mga katanungan.Ang Pagtaas ng Java sa Web Application Development
Mula noong nilikha ito noong 1995 ng Sun Microsystems, ang wikang Java ay naging isa sa mga priyoridad sa industriya ng programming. Ngayon, ginagamit ng mga kumpanya mula sa buong mundo ang programming language na ito upang lumikha ng mga web application. Ang Google, Netflix, Spotify, at Pinterest ay ilan lamang sa mga kumpanyang gumagamit ng Java sa kanilang stack ng teknolohiya. Tinatantya ng mga eksperto na higit sa 60% ng mga kumpanyang nagtatrabaho sa IT ay gumagamit ng Java sa isang anyo o iba pa. Bukod dito, nananatili itong sikat na programming language dahil sa pag-ampon nito sa iba pang mga lugar ng web development, katulad ng cloud computing, social media, enterprise development, AR, VR, at higit pa. Ito ay isang mahusay at malakas na programming language para gamitin sa mga negosyo na ngayon ay nangangailangan ng cloud-based na arkitektura. Kapag pinagsama sa JavaScript, pinapayagan ka ng Java na lumikha ng mga web application na may mataas na pagganap na maaaring tumakbo sa anumang platform.Ang Pagtaas ng Java sa Mga Makabagong Kaso ng Paggamit
Bukod sa web development at mobile development, ang Java ay gumawa ng marka nito sa modernong teknolohikal na mundo. Ngayon, ang Java ay isang lubhang kapaki-pakinabang na programming language para sa mga siyentipikong aplikasyon. Nag-aalok ito ng ligtas, mabilis at portable na kapaligiran para sa siyentipikong pag-compute. Ang MATLAB ay isa sa pinakasikat na mga aklatan para sa Java-based na mga siyentipikong aplikasyon.-
Ang Java ay kapaki-pakinabang din sa front-end at back-end na pag-unlad ng mga siyentipikong aplikasyon. Maaari mong gamitin ang Struts at Java Server Pages para sa front-end development at Java Core para sa back-end na pag-develop ng mga siyentipikong aplikasyon.
-
Ang Java ay kapaki-pakinabang din para sa pagsusuri ng data. Pinapayagan nito ang mga developer na lumikha ng mga solusyon sa analytics ng data gamit ang iba't ibang mga library at tool. Ngayon, natagpuan ng Java ang application sa segment ng Internet of Things. Ito ay isang pangunahing teknolohiya sa mga naka-embed na system tulad ng mga smart card at sensor. Samakatuwid, ginagamit ng mga kumpanya ang programming language na ito sa industriya ng home automation. Bilang karagdagan, ito ay aktibong ginagamit sa pagbuo ng mga teknolohiya ng streaming device at Smart TV.
-
Ang Hadoop big data platform ay nakasulat sa Java. Dahil ito ay isang open source at object-oriented na wika, ito ang pundasyon para sa mga application ng Big Data. Ang mga programming language tulad ng Scala ay madaling tumakbo sa Java Virtual Machine at gawing mas madali ang pagsusuri ng malaking data.
-
Ang gaming ay isang umuusbong at mabilis na lumalagong industriya kung saan ang Java ay malawakang ginagamit para sa iba't ibang mga aplikasyon ng paglalaro. Halimbawa, nag-aalok ito ng suporta para sa jMonkeyEngine, ang pinakamalaking open source na 3D game development engine. Bukod pa rito, ang Dalvik Virtual Machine (DVM) ay pangunahing sinusuportahan ng Java at ginagamit upang lumikha ng mga interactive na laro para sa Android.
Functional programming - mga kalamangan at kahinaan
Source: Dev.to Sa kabila ng aking tradisyonal na pag-aalinlangan sa mga hindi pamilyar na teknolohiya, kinikilala ko ang mga benepisyo ng functional programming. Nasa ibaba ang isang tinatayang listahan ng mga pakinabang na naglalarawan sa paradigma ng programming na ito.Ligtas na Concurrency
Hinihikayat ng functional na diskarte ang ligtas na pagkakatugma, iyon ay, ang kakayahang magpatakbo ng mga trabaho sa magkahiwalay na mga thread nang hindi nagdudulot ng mga salungatan sa thread o mga banggaan sa pagbabago. Ang dahilan ay hindi tulad ng object approach, hindi ka nagbabahagi ng isang object na ang estado ay maaaring mabago sa panahon ng pagproseso. May mga pasukan at labasan, at ang pasukan ay hindi nagbabago dahil sa iyo. Sa Java, kahit na gumamit ka ng mga bagay na "thread-safe", hindi mo magagarantiya na magkakaroon sila ng parehong mga halaga kapag tinawag ang iyong pamamaraan. Sa halimbawa sa ibaba, makikita natin na ang isang loop na nagpoproseso ng mga elemento nang paisa-isa ay madaling maproseso nang magkatulad gamit ang isang lambda function sa loob ng isang thread.for( String item : items ) {
process(item);
}
At ngayon ito ay nagiging:
items.parallelStream().forEach( item -> process(item) );
Mabilis na I/O
Sinusuportahan ng functional programming ang ibang diskarte kaysa sa multithreading. Nangangahulugan ito na wala na kaming hiwalay na mga thread na naghihintay para sa mga tugon ng I/O gaya ng mga tawag sa database. Ibig sabihin, pinapalaki namin ang paggamit ng CPU at bandwidth. Para sa mga application na may mataas na pagganap ito ay isang malinaw na kalamangan. Ito ay ipinatupad na may ideya na ang isang function na tawag ay maaaring magbalik ng isang Hinaharap, na hindi ang aktwal na resulta ng tawag, ngunit sa halip ay isang pangako na ibabalik ang resulta sa isang punto sa hinaharap. Sa ilang mga punto sa hinaharap, ang isang return value ay nakuha na nagpapatakbo ng function. Nangangahulugan ito na ang mga thread ng processor ay hindi naghihintay para sa database o REST na mga tawag upang makumpleto at maaaring gumawa ng iba pa.Pagkaikli ng pagpapahayag
Nais ng mga developer ng software na maipahayag nang maganda ang mga kumplikadong ideya. Nagbibigay-daan sa iyo ang functional programming na gawin ito nang maigsi. Halimbawa, ang mga karaniwang konstruksyon tulad ng para sa mga loop ay maaaring mapalitan ng mga thread, na abstract ang karaniwan para sa mga operasyon kung saan ginagamit ang mga loop. Walang alinlangan na ang pagdaragdag ng mga function at thread ng Lambda sa Java ay nagpalawak ng kakayahang magpahayag ng mga ideya na dati nang imposible.Bakit hindi maging functional?
Para lang ulitin ang nasa itaas: maraming benepisyo ang functional coding, kaya hindi sinusubukan ng artikulong ito na gawing pangkalahatan ang lahat sa isang kaso at sabihin na dapat ay talagang gumawa ka ng functional programming o vice versa. Ang desisyong ito ay dapat gawin nang may malinaw na pag-unawa sa mga dahilan para sa paglipat at mga potensyal na problema.Ito ay palaging mahirap maunawaan nang intuitive
Kapag nagsusulat ng code, sinusubukan mo bang makipag-ugnayan sa computer? Kung ang komunikasyon sa isang computer ay napakahalaga sa iyo, bakit hindi sumulat sa machine code? Siyempre, ito ay napakahirap, kaya ang mga wika sa computer ay naimbento upang gawing mas madali. Pinapayagan din nila ang mga programmer na lumikha ng mga expression na mauunawaan ng ibang mga programmer. Habang ang software ay nagiging mas malaki at mas kumplikado, kailangan namin ng mga diskarte upang pamahalaan ang pagiging kumplikado. Nakamit namin ito sa pamamagitan ng mga abstraction at pagtatago ng impormasyon. Ang klase na ginagamit mo sa Java upang magpadala ng email ay medyo kumplikado, ngunit ang interface ng klase na ito ay simple. Itinatago nito ang detalyadong pagpapatupad, na ipinapakita lamang sa amin ang panlabas na bahagi ng kontrol. Ang mga feature ng wika tulad ng mga kulot na brace at square bracket ay nagsasabi sa amin ng istraktura tulad ng mga conditional statement at loop. Ngayon lang namin inililipat ang mga loop, o sa halip, recursion, at mga kundisyon sa mga function:for( String item : items ) {
System.out.println(item);
}
Iyon pala:
items.foreach( item -> System.out.println(item) );
Ang streaming at lambda na diskarte ay tiyak na mas maikli. Maaari mong ipahayag ang parehong pag-andar na may mas kaunting code. Ang problema ay itinatago natin ngayon ang aktwal na pag-uugali sa loob ng mga pamamaraan na kailangan nating malaman. Ang mga loop sa Java ay gumagamit ng mga keyword. Sa kabilang banda, ang mga function ng lambda ay maaaring magpatupad ng iba't ibang anyo ng recursion, at ang pangalan lang dito ang nagpapahiwatig kung ano ang ginagawa nito. Halimbawa:
boo.fooble( item -> System.out.println(item) );
Hindi mo na mababasa ang code upang maunawaan ang istraktura. Ginagawa nitong mahirap na subaybayan ang daloy ng pagpapatupad. Ang isa pang tampok ay ang function chaining, kung saan ang resulta ng isang function ay ang input ng susunod nang hindi nagtatalaga ng intermediate variable.
boolean result = boo
.fooble( /*some code*/ )
.bobble( /*some code*/)
.goober( /*some code*/);
Ito ay maaaring magkaroon ng kahulugan sa may-akda ng code na ito dahil siya ay tila isinulat ang bawat function at alam kung ano ang ginagawa nito. Gayunpaman, para sa mga bago sa code, hindi ito gaanong nagsasabi sa iyo tungkol sa mga parameter, proseso, o mga halaga ng pagbabalik ng bawat function. Ngunit kung isusulat mo ang parehong bagay sa isang bagay na nagtatalaga ng mga uri, makakakuha ka ng:
Car car = boo.fooble( /*some parameters*/);
Tyre tyre = car.bobble( /*some parameters*/);
int pressure = tyre.goober( /*some parameters*/);
Maaaring hindi ito perpektong pagkakatulad, dahil ang mga parameter at anonymous na function ay hindi magkapareho, ngunit ang punto dito ay ang isang mahabang pangungusap na may hindi kilalang mga resulta at mga parameter ay mahirap basahin nang walang mas malalim na pag-unawa sa kung ano ang ginagawa ng mga function na inilarawan sa ibaba. At kaya posible na ang functional programming ay parehong lubos na nagpapahayag sa nakakagulat na maiikling mga segment ng code, ngunit hindi maintindihan ng mga taong bago sa software. Ang punto ng mga klase at interface ay upang itago ang data, upang lumikha ng magagamit muli na mga piraso ng code na hindi nangangailangan ng developer na maunawaan o marahil kahit na tingnan ang pagpapatupad. Umiiral ang mga ito para makapagtrabaho ang mga developer sa malalaking, kumplikadong sistema nang walang pananakit ng ulo. Ito ay isang maginhawang paraan upang ayusin ang code na nauugnay sa mga partikular na entity. Gayunpaman, wala akong gaanong pag-unawa sa kung paano nakakatulong ang functional programming sa pagbuo ng malalaking kumplikadong proyekto. Marahil ay may mga subjective na dahilan para dito.
GO TO FULL VERSION