JavaRush /Blog Java /Random-MS /Rehat kopi #68. Pendapat yang jujur tentang Java dan ekos...

Rehat kopi #68. Pendapat yang jujur tentang Java dan ekosistemnya. Tiga Alat Java Baharu untuk Dipertimbangkan pada 2021

Diterbitkan dalam kumpulan

Pendapat yang jujur ​​tentang Java dan ekosistemnya

Sumber: Dev.to Okay, saya akui bahasa utama saya ialah C#. Tetapi ini adalah pendapat saya yang tidak berat sebelah tentang Jawa dan ekosistem sekitarnya. Saya menggunakan arahan bash dalam Java agak kerap, melihat semua kekurangannya. Sebagai contoh, Java tidak mempunyai sifat, ia secara asalnya tidak mempunyai peristiwa, tiada struct, tiada operator lebih muatan, dan sehingga Java 10 tiada inferens, jadi tiada 'var'. Semua yang ada dalam C#! Juga, saya menggunakan bash untuk Java kerana kekurangan LINQ, var dan enums. Namun saya menulis agak banyak dalam Java, terutamanya apabila saya mencipta aplikasi untuk Android, tetapi untuk perkara lain juga. Projek pertama saya juga di Jawa! Jadi, pada petang Jumaat, kerana mendesak, saya terpaksa menulis di Jawa selama beberapa jam berturut-turut. Dan rasa apa yang saya temui? SALURAN! Rehat kopi #68.  Pendapat yang jujur ​​tentang Java dan ekosistemnya.  Tiga Alat Java Baharu untuk Dipertimbangkan pada 2021 - 1Nampaknya Java 8 memperkenalkan benang! Dan saya tidak tahu mengenainya! Bagi anda yang tidak tahu, Streams ialah pelaksanaan Java LINQ. Saya juga mendapati bahawa Java 10 mempunyai jenis inferens, jadi Java kini mempunyai fungsi var! Saya tidak percaya betapa ketinggalan zaman pengetahuan saya, tetapi secara jujur, ada sebab untuk itu. Dua perkara ini membuat perbezaan besar dalam pemikiran saya! Adakah anda tahu bahawa Java sentiasa menyemak pengecualian, tetapi C# tidak? Saya mengakui bahawa saya sangat merindui ciri ini dalam C#! Ya, tidak ada struktur, sifat, dll., tetapi sial, ia elegan! Saya rasa Java mengikut reka bentuk memaksa pembangun untuk menulis aplikasi yang lebih mantap. Manakala dalam dunia .NET, ini sebahagian besarnya diserahkan kepada budi bicara pengkod. Sesetengah pembangun menyukai sekatan ini, manakala yang lain lebih suka kebebasan. Walaupun kedua-dua bahasa agak selamat, Java jelas mempunyai sedikit kelebihan. Jadi, mengapa syarikat besar lebih suka Java? Saya rasa saya tahu jawapannya sekarang! Apa yang paling mengecewakan saya ialah... dalam kebanyakan contoh kod yang anda lihat di internet, ciri lanjutan ini tidak selalu digunakan... Saya fikir jika pembangun Java baharu melihat 'var' ditulis di seluruh pangkalan kod , dia akan menjadi gila! Bagaimana dengan aliran? Apakah aliran? Pembangun Java menyukai gelung For! Malah, walaupun gelung foreach agak jarang berlaku di dunia Java (dan mungkin ada sebab untuk ini: gelung For jauh lebih dioptimumkan). Tetapi ini bukan ciri yang buruk! Saya akan pergi lebih jauh dan mengatakan bahawa ciri ini hebat! Sungguh menyakitkan saya apabila saya menulis apl Android dan mendapati hampir tiada tempat dalam API Android digunakan enum! Dan ini adil kerana Android telah ditulis bertahun-tahun yang lalu. Apa yang paling saya jengkelkan ialah saya perlu menggunakan pemalar setiap kali saya perlu menggunakan fungsi Activity for Results dalam Android, seperti ini: int PICK_IMAGE_FROM_GALLERY = 3000 Bro, ini gila! Namun orang di seluruh dunia telah menerimanya. Dan juga saya. Java juga kekurangan pelaksanaan acara asli! Sekiranya ia mempunyai acara dan perwakilan seperti C#... (Hei, pencipta bahasa Jawa, jika anda sedang membaca ini, anda perlu menambah acara! Dan jika anda sudah mempunyainya atau sedang dalam kerja, beritahu saya ). Sekarang saya akan memberitahu anda apa yang mungkin menjadi kecacatan terbesar dalam ekosistem Java. DOKUMENTASI!!! Dokumentasi yang berantakan dan tidak membantu di laman web Oracle kelihatan bodoh dan ketinggalan zaman, pada tahap 2007. Ia tidak selalu mempunyai contoh kod. Jika anda mula mencari ciri atau kaedah API yang agak luar biasa, anda akan menemui definisi, pengisytiharan, hujah yang membosankan, pakej mana yang dimiliki - dan itu sahaja. Saya rasa ini tidak masuk akal. Tidakkah anda fikir ini tidak masuk akal? Tiada coretan kod? Jadi kami pembangun perlu banyak bergantung pada forum seperti StackOverflow, atau tapak web pengaturcaraan lain seperti TutorialsPoint... Kadang-kadang mereka sangat membantu dengan contoh kod yang baik yang menunjukkan ciri ini, tetapi pada masa lain ia tidak begitu berguna. Saya mengesyorkan membandingkan dokumentasi Microsoft dalam C# dengan dokumentasi Oracle dalam Java... Syurga dan bumi! Tidak percaya saya? Pergi dan semak: Oracle dan Microsoft. Dokumentasi di tapak Microsoft kelihatan cantik! Mereka juga mempunyai mod gelap! Kami pembangun gila tentang mod gelap. Bagaimana pula dengan dokumentasi Oracle? Seperti yang saya katakan, ia kekal pada tahun 2007. Mungkin tiada mod gelap ketika itu? Jadi, saya ingin mengatakan bahawa Java adalah menakjubkan! Tetapi bahasa ini sangat menderita akibat dokumentasi yang lapuk. Ini kebanyakannya adalah dokumen lama dan manual lama yang tidak menyerlahkan ciri baharu yang sangat diperlukan seperti benang, vars dan enum. Pada masa kini orang mengatakan bahawa Java mula menjadi usang dan akan digantikan oleh Kotlin, tetapi saya tidak bersetuju. Kerana walaupun ini benar, dia tidak akan menggantikannya untuk masa yang lama. Ini akan mengambil masa bertahun-tahun. Adakah anda ingat bahawa Scala cuba menggantikannya juga? Jadi apa yang berlaku? Java masih memerintah seluruh ekosistem JVM. Walaupun saya mengakui bahawa Scala sangat berbeza dari Java, terutamanya dalam fungsi. Sekarang, akhirnya... satu lagi perkara yang memberi saya lebih emosi daripada apa-apa di dunia Jawa. Ini mendapat JDK. Mengapa begitu sukar untuk memuat turun JDK? Apa yang saya maksudkan ialah jika saya memerlukan JDK, carian Google yang mudah akan mengarahkan saya ke laman web Oracle, saya pergi ke sana dan mencari versi JDK yang saya perlukan. Setakat ini semuanya agak mudah, tetapi kemudian untuk memuat turunnya saya perlu mendaftar. Mengapa saya perlu membuat akaun di Oracle dan kemudian berurusan dengan e-mel mereka setiap minggu dan bukannya memuat turun JDK sahaja? Perlu diingat bahawa Java adalah sumber terbuka dari hari pertama! Tidak seperti C#, yang baru-baru ini menjadi sumber terbuka, pada tahun 2015. Jadi, saya sudah kecewa dan pergi ke laman web kedua dalam hasil carian Google. Ia menunjukkan saya ke tapak OpenJDK. Saya dapati JDK di sana dan klik "muat turun". Tetapi (mengejutkan!) mereka menyediakan pautan ke pelaksanaan JDK dari tapak lain! Di antara tapak terdapat Oracle terkutuk ini, tetapi terdapat juga pautan ke tapak Red Hat. Ya, Red Hat hebat. Ia adalah salah satu perintis syarikat sumber terbuka di dunia. Okay, saya pergi ke laman web mereka! Saya akan memuat turunnya dari sana! Saya klik pada pautan ini, cari versi JDK yang saya cari, dan rasa apa? Saya perlu mendaftar di sana juga... (jeda dramatik) Ini menyedihkan... Persetan! Apa masalah mereka ini? Akhirnya, saya menyerah dan memasang Chocolatey (ia seperti apt-get, tetapi untuk Windows. Saya fikir ia adalah pengurus pakej pertama yang diedarkan secara meluas dan digunakan untuk Windows). Jadi selepas semua ini saya perlu menulis arahan mudah dalam PowerShell seperti: choco install jdk-1.8. Dan saya melakukannya! (jika anda seorang pembangun C#, anda tahu betapa mudahnya untuk mendapatkan .Net SDK dalam hanya 2-3 klik, tanpa pendaftaran atau apa-apa seperti itu). Untuk menyimpulkan kata-kata panjang saya: Java ialah bahasa pengaturcaraan yang hebat. Ia cantik, boleh dipercayai dan mempunyai (pada pendapat saya) IDE terbaik di dunia - IntelliJ IDEA yang terkenal dari JetBrains. Selain itu, Java mempunyai komuniti yang sangat membantu dan ekosistem yang besar dan pelbagai. Dan saya katakan ini - pembangun C#... Tetapi kita perlu mengemas kini dokumentasi. Contoh kod. API. Kita perlu memudahkan untuk mendapatkan JDK. Secara keseluruhan, Java sedang bergerak ke arah yang betul, popularitinya mungkin agak terjejas baru-baru ini, tetapi itu tidak akan membuatkan Java hilang. Selama bertahun-tahun kini ia telah berada di bahagian atas senarai bahasa terbaik di dunia! Saya menggunakan Java sepanjang masa dan akan terus melakukannya pada masa hadapan.

Tiga Alat Java Baharu untuk Dipertimbangkan pada 2021

Sumber: OpenSource Walaupun populariti Python, Go dan Node.js, yang telah digunakan secara aktif dalam beberapa tahun kebelakangan ini untuk melaksanakan projek yang berkaitan dengan kecerdasan buatan, pembelajaran mesin dan Kubernetes, teknologi Java masih memainkan peranan penting dalam pembangunan aplikasi perusahaan. Menurut Ekonomi Pembangun, terdapat 8 juta pembangun Java perusahaan di seluruh dunia pada suku ketiga 2020. Rehat kopi #68.  Pendapat yang jujur ​​tentang Java dan ekosistemnya.  Tiga Alat Java Baharu untuk Dipertimbangkan pada 2021 - 2Bahasa pengaturcaraan Java telah wujud selama lebih 25 tahun dan sentiasa dikemas kini. Alat dan rangka kerja baharu muncul yang boleh memperkasakan aplikasi dan kerjaya anda. Sebilangan besar platform Java dicipta untuk melaksanakan proses yang berjalan lama dengan gelagat dinamik, direka untuk dijalankan pada pelayan atau mesin maya. Ini berubah pada 2014 dengan kemunculan kontena Kubernetes. Kini, cabaran terbesar apabila menjalankan Java pada Kubernetes ialah: mengoptimumkan prestasi aplikasi dengan mengurangkan jejak memori, mempercepatkan masa permulaan dan tindak balas, dan mengurangkan saiz fail.

Tiga rangka kerja dan alatan Java baharu

Pembangun Java sentiasa mencari cara paling mudah untuk menyepadukan alatan popular dan projek sumber terbuka ke dalam aplikasi Java mereka. Alat baharu yang berprestasi tinggi dengan ketara meningkatkan produktiviti pembangunan dan menggalakkan lebih banyak syarikat dan pembangun individu menggunakan timbunan Java. Hari ini kita akan bercakap tentang tiga rangka kerja dan alatan Java baharu:

Quarkus

Quarkus direka untuk membangunkan perkhidmatan mikro awan dan aplikasi tanpa pelayan. Ia mempunyai masa but yang cepat, saiz set pemastautin memori kecil (RSS) dan ketumpatan memori yang tinggi dalam platform orkestrasi kontena seperti Kubernetes. Menurut laporan tahunan kesembilan JRebel, penggunaan Quarkus dalam kalangan pembangun Java meningkat 6% (kurang daripada 1% tahun sebelumnya). Micronaut dan Vert.x masing-masing meningkat kepada 4% dan 2% (tahun lepas - kira-kira 1%).

Gerhana JKube

Dengan Eclipse JKube, pembangun Java mencipta imej kontena berdasarkan aplikasi Java berasaskan awan menggunakan strategi binaan Docker, Jib atau Source-To-Image. Alat ini juga menjana Kubernetes dan OpenShift manifes pada masa penyusunan dan meningkatkan pengalaman dengan alat penyahpepijat, pemantauan dan pengelogan.

MicroProfile

MicroProfile menyelesaikan masalah yang berkaitan dengan mengoptimumkan seni bina perusahaan perkhidmatan mikro Java tanpa memperkenalkan rangka kerja baharu atau memfaktorkan semula keseluruhan aplikasi. Selain itu, spesifikasi MicroProfile (cth. Kesihatan, Penjejakan Terbuka, API Terbuka, Toleransi Kesalahan, Metrik, Konfigurasi) terus berkembang sejajar dengan pelaksanaan Jakarta EE.

Kesimpulan

Sukar untuk menyatakan rangka kerja atau alatan Java yang terbaik untuk pembangun Java perusahaan. Selagi ada peluang untuk menambah baik susunan Java dan mempercepatkan pertumbuhan perniagaan perusahaan, kami boleh menjangkakan rangka kerja, alatan dan platform baharu akan muncul. Semak mereka untuk melihat sama ada mereka boleh meningkatkan aplikasi Java anda pada tahun 2021.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION