JavaRush /Java Blog /Random-TL /Coffee break #68. Isang tapat na opinyon tungkol sa Java ...

Coffee break #68. Isang tapat na opinyon tungkol sa Java at sa ecosystem nito. Tatlong Bagong Java Tools na Isaalang-alang sa 2021

Nai-publish sa grupo

Isang tapat na opinyon tungkol sa Java at sa ecosystem nito

Source: Dev.to Okay, inaamin ko na ang pangunahing wika ko ay C#. Ngunit ito ang aking walang pinapanigan na opinyon tungkol sa Java at sa nakapaligid na ecosystem nito. Ginamit ko ang bash command sa Java nang madalas, nakikita ang lahat ng mga pagkukulang nito. Halimbawa, ang Java ay walang mga katangian, ito ay katutubong walang mga kaganapan, walang mga istruktura, walang operator na overloading, at hanggang sa Java 10 ay walang inference, kaya walang 'var'. Lahat ng meron sa C#! Gayundin, gumamit ako ng bash para sa Java dahil sa kakulangan ng LINQ, var at enums. Gayunpaman, marami akong sinusulat sa Java, lalo na kapag gumagawa ako ng mga application para sa Android, ngunit para sa iba pang mga bagay. Ang aking unang proyekto ay nasa Java din! Kaya, noong Biyernes ng gabi, dahil sa pagkamadalian, kinailangan kong magsulat sa Java nang ilang oras nang diretso. At hulaan kung ano ang natuklasan ko? STREAM! Coffee break #68.  Isang tapat na opinyon tungkol sa Java at sa ecosystem nito.  Tatlong Bagong Java Tools na Isaalang-alang sa 2021 - 1Tila ipinakilala ng Java 8 ang mga thread! At wala akong ideya tungkol dito! Para sa inyo na hindi nakakaalam, ang Streams ay isang pagpapatupad ng Java ng LINQ. Natuklasan ko rin na may type inference ang Java 10, kaya may var function na ang Java! I can't believe how outdated my knowledge is, but honestly, there was a reason for that. Ang dalawang bagay na ito ay gumawa ng malaking pagkakaiba sa aking pag-iisip! Alam mo ba na palaging sinusuri ng Java ang mga pagbubukod, ngunit ang C# ay hindi? Inaamin ko na miss ko talaga ang feature na ito sa C#! Oo, walang mga istraktura, ari-arian, atbp., ngunit damn, ito ay matikas! Sa tingin ko ang Java sa pamamagitan ng disenyo ay pinipilit ang developer na magsulat ng mas matatag na mga application. Samantalang sa .NET mundo, ito ay higit sa lahat ay naiwan sa pagpapasya ng coder. Gusto ng ilang developer ang mga paghihigpit na ito, habang ang iba ay mas gusto ang kalayaan. Bagama't ang parehong mga wika ay medyo ligtas, ang Java ay malinaw na may kaunting gilid. Kaya, bakit mas gusto ng malalaking kumpanya ang Java? Parang alam ko na ang sagot ngayon! Ang pinakanakakabigo sa akin ay... sa karamihan ng mga halimbawa ng code na nakikita mo sa internet, ang mga advanced na feature na ito ay hindi palaging ginagamit... Sa tingin ko, kung ang isang bagong developer ng Java ay nakakita ng 'var' na nakasulat sa buong code base , mababaliw siya! Paano ang tungkol sa mga stream? Ano ang mga stream? Gusto ng mga developer ng Java ang For loop! Sa katunayan, kahit na ang mga foreach loop ay medyo bihira sa mundo ng Java (at marahil ay may dahilan para dito: ang For loop ay mas na-optimize). Ngunit ang mga ito ay hindi masamang tampok! Pupunta pa ako at sasabihin na ang mga tampok na ito ay kamangha-manghang! Nasasaktan talaga ako kapag nagsusulat ako ng mga Android app at napansin kong halos wala sa Android API ang mga enum na ginagamit! At ito ay patas dahil isinulat ang Android maraming taon na ang nakakaraan. Ang pinakanaiirita sa akin ay kailangan kong gumamit ng mga constant sa tuwing kailangan kong gamitin ang function na Activity for Results sa Android, tulad nito: int PICK_IMAGE_FROM_GALLERY = 3000 Bro, baliw ito! Gayunpaman, tinanggap ito ng mga tao sa buong mundo. At kahit ako. Ang Java ay kulang din sa pagpapatupad ng katutubong kaganapan! Kung mayroon lamang itong mga kaganapan at mga delegado tulad ng C#... (Hey, mga tagalikha ng wikang Java, kung binabasa ninyo ito, kailangan ninyong magdagdag ng mga kaganapan! At kung mayroon ka na o nasa mga gawa, ipaalam sa akin ). Ngayon sasabihin ko sa iyo kung ano ang maaaring pinakamalaking depekto sa Java ecosystem. DOKUMENTASYON!!! Ang kalat-kalat at hindi nakakatulong na dokumentasyon sa website ng Oracle ay mukhang hangal at luma na, sa antas ng 2007. Hindi ito palaging may mga halimbawa ng code. Kung nagsimula kang maghanap ng medyo hindi pangkaraniwang tampok o paraan ng API, makakahanap ka ng nakakainip na kahulugan, deklarasyon, mga argumento, kung saang pakete ito kabilang - at iyon na. Sa tingin ko ito ay walang katotohanan. Hindi mo ba iniisip na ito ay walang katotohanan? Walang code snippet? Kaya't kaming mga developer ay kailangang umasa nang husto sa mga forum tulad ng StackOverflow, o iba pang mga website ng programming tulad ng TutorialsPoint... Minsan sila ay talagang nakakatulong sa magagandang halimbawa ng code na nagpapakita ng tampok na ito, ngunit sa ibang pagkakataon ay hindi sila gaanong kapaki-pakinabang. Inirerekomenda ko ang paghahambing ng dokumentasyon ng Microsoft sa C# sa dokumentasyon ng Oracle sa Java... Langit at lupa! Huwag maniwala sa akin? Pumunta at suriin ang: Oracle at Microsoft. Ang dokumentasyon sa site ng Microsoft ay mukhang maganda! May dark mode pa sila! Kaming mga developer ay baliw sa dark mode. Paano ang tungkol sa dokumentasyon ng Oracle? Tulad ng sinabi ko, nanatili ito noong 2007. Wala naman sigurong dark mode noon? Kaya, gusto kong sabihin na ang Java ay kamangha-manghang! Ngunit ang wikang ito ay lubhang naghihirap mula sa hindi napapanahong dokumentasyon. Karamihan sa mga ito ay mga lumang doc at lumang manual na hindi nagha-highlight ng mga bagong feature tulad ng mga thread, vars, at enum. Sa ngayon, sinasabi ng mga tao na ang Java ay nagsisimula nang maging lipas at papalitan ng Kotlin, ngunit hindi ako sumasang-ayon. Dahil kahit na ito ay totoo, hindi niya ito papalitan ng mahabang panahon. Aabutin ito ng maraming, maraming taon. Naaalala mo ba na sinubukan din itong palitan ni Scala? Kaya ano ang nanggaling nito? Pinamamahalaan pa rin ng Java ang buong JVM ecosystem. Kahit na inaamin ko na ang Scala ay ibang-iba sa Java, pangunahin sa functionality. Ngayon, sa wakas... isa pang bagay na nagbibigay sa akin ng higit na emosyon kaysa sa anumang bagay sa mundo ng Java. Nakukuha nito ang JDK. Bakit napakahirap i-download ang JDK? Ang ibig kong sabihin ay kung kailangan ko ng JDK, isang simpleng paghahanap sa Google ang magtuturo sa akin sa website ng Oracle, pumunta ako doon at hanapin ang bersyon ng JDK na kailangan ko. Sa ngayon ang lahat ay medyo madali, ngunit pagkatapos ay upang i-download ito kailangan kong magrehistro. Bakit ako gagawa ng account sa Oracle at pagkatapos ay haharapin ang kanilang email bawat linggo sa halip na i-download lang ang JDK? Tandaan na ang Java ay open source mula sa unang araw! Hindi tulad ng C#, na kamakailan lamang ay naging open source, noong 2015. Kaya, bigo na ako at pumunta sa pangalawang website sa mga resulta ng paghahanap sa Google. Itinuro ako nito sa OpenJDK site. Nahanap ko ang JDK doon at i-click ang "i-download". Ngunit (nakagulat na sorpresa!) nagbibigay sila ng mga link sa mga pagpapatupad ng JDK mula sa ibang mga site! Kabilang sa mga site ay mayroong mapahamak na Oracle na ito, ngunit mayroon ding isang link sa site ng Red Hat. Oo, mahusay ang Red Hat. Isa ito sa mga pioneer ng mga open source na kumpanya sa mundo. Okay, pupunta ako sa website nila! Doon ko idadownload! Nag-click ako sa link na ito, hanapin ang bersyon ng JDK na hinahanap ko, at hulaan kung ano? Kailangan ko ring magrehistro doon... (dramatic pause) Nakakalungkot lang... Fuck it! Ano ang mali sa mga taong ito? Sa wakas, sumuko ako at nag-install ng Chocolatey (parang apt-get, ngunit para sa Windows. Sa tingin ko ito ang unang malawak na ipinamamahagi at ginamit na manager ng package para sa Windows). Kaya pagkatapos ng lahat ng ito kailangan kong magsulat ng isang simpleng command sa PowerShell tulad ng: choco install jdk-1.8. At ginagawa ko! (kung ikaw ay isang C# developer, alam mo kung gaano kadaling makakuha ng .Net SDK sa loob lang ng 2-3 pag-click, nang walang pagpaparehistro o anumang bagay na katulad nito). Upang tapusin ang aking mahabang rant: Java ay isang mahusay na programming language. Ito ay maganda, maaasahan at may (sa aking opinyon) ang pinakamahusay na IDE sa mundo - ang kilalang IntelliJ IDEA mula sa JetBrains. Bukod pa rito, ang Java ay may isang napaka-kapaki-pakinabang na komunidad at isang malaki at magkakaibang ecosystem. At sinasabi ko ito - isang C# developer... Ngunit kailangan nating i-update ang dokumentasyon. Mga halimbawa ng code. API. Kailangan nating gawing mas madali ang pagkuha ng JDK. Sa pangkalahatan, ang Java ay gumagalaw sa tamang direksyon, ang katanyagan nito ay maaaring medyo nagdusa kamakailan, ngunit hindi nito mapapawi ang Java. Sa loob ng maraming taon ngayon ito ay nasa tuktok ng listahan ng mga pinakamahusay na wika sa mundo! Gumagamit ako ng Java sa lahat ng oras at patuloy na gagawin ito sa hinaharap.

Tatlong Bagong Java Tools na Isaalang-alang sa 2021

Pinagmulan: OpenSource Sa kabila ng katanyagan ng Python, Go at Node.js, na aktibong ginagamit nitong mga nakaraang taon upang ipatupad ang mga proyektong nauugnay sa artificial intelligence, machine learning at Kubernetes, gumaganap pa rin ang mga teknolohiya ng Java ng mahalagang papel sa pagbuo ng application ng enterprise. Ayon sa Developer Economics, mayroong 8 milyong enterprise Java developer sa buong mundo sa ikatlong quarter ng 2020. Coffee break #68.  Isang tapat na opinyon tungkol sa Java at sa ecosystem nito.  Tatlong Bagong Java Tools na Isaalang-alang sa 2021 - 2Ang Java programming language ay umiikot nang mahigit 25 taon at patuloy na ina-update. Lumilitaw ang mga bagong tool at framework na maaaring magbigay ng kapangyarihan sa iyong mga aplikasyon at sa iyong karera. Ang karamihan sa mga platform ng Java ay nilikha upang ipatupad ang mga prosesong matagal nang tumatakbo na may dynamic na pag-uugali, na idinisenyo upang tumakbo sa isang server o virtual machine. Nagbago ito noong 2014 sa pagdating ng mga container ng Kubernetes. Ngayon, ang pinakamalaking hamon kapag nagpapatakbo ng Java sa Kubernetes ay: pag-optimize ng pagganap ng application sa pamamagitan ng pagbabawas ng memory footprint, pagpapabilis ng mga oras ng pagsisimula at pagtugon, at pagbabawas ng mga laki ng file.

Tatlong bagong balangkas at tool ng Java

Palaging naghahanap ang mga developer ng Java ng pinakamadaling paraan upang maisama ang mga sikat na tool at open source na proyekto sa kanilang mga Java application. Ang mga bagong tool na may mataas na pagganap ay makabuluhang nagpapataas ng produktibidad sa pag-unlad at hinihikayat ang higit pang mga kumpanya at indibidwal na mga developer na gamitin ang Java stack. Ngayon ay pag-uusapan natin ang tungkol sa tatlong bagong balangkas at tool ng Java:

Quarkus

Idinisenyo ang Quarkus para sa pagbuo ng mga cloud microservice at mga serverless na application. Mayroon itong mabilis na oras ng pag-boot, maliit na laki ng memory resident set (RSS), at mataas na density ng memory sa mga platform ng orkestrasyon ng container gaya ng Kubernetes. Ayon sa ikasiyam na taunang ulat ng JRebel, ang paggamit ng Quarkus sa mga developer ng Java ay lumago ng 6% (mas mababa sa 1% noong nakaraang taon). Ang Micronaut at Vert.x ay lumago sa 4% at 2% ayon sa pagkakabanggit (noong nakaraang taon - ng humigit-kumulang 1%).

Eclipse JKube

Sa Eclipse JKube, ang mga developer ng Java ay gumagawa ng mga container na imahe batay sa cloud-based na mga Java application gamit ang Docker, Jib, o Source-To-Image na mga diskarte sa pagbuo. Ang tool ay bumubuo rin ng mga Kubernetes at OpenShift na nagpapakita sa oras ng pag-compile at pinapahusay ang karanasan sa pag-debug, pagsubaybay, at mga tool sa pag-log.

MicroProfile

Niresolba ng MicroProfile ang mga problemang nauugnay sa pag-optimize ng enterprise architecture ng Java microservices nang hindi nagpapakilala ng mga bagong framework o refactoring ng buong application. Bukod pa rito, patuloy na nagbabago ang mga detalye ng MicroProfile (hal. Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config) alinsunod sa pagpapatupad ng Jakarta EE.

Konklusyon

Mahirap sabihin kung aling mga framework o tool ng Java ang pinakamainam para sa mga developer ng enterprise Java. Hangga't may mga pagkakataong pahusayin ang Java stack at pabilisin ang paglago ng negosyo ng enterprise, maaasahan nating lalabas ang mga bagong framework, tool, at platform. Tingnan ang mga ito upang makita kung mapapahusay nila ang iyong mga Java application sa 2021.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION