JavaRush /Java Blog /Random-IT /Pausa caffè #68. Un'opinione onesta su Java e il suo ecos...

Pausa caffè #68. Un'opinione onesta su Java e il suo ecosistema. Tre nuovi strumenti Java da considerare nel 2021

Pubblicato nel gruppo Random-IT

Un'opinione onesta su Java e il suo ecosistema

Fonte: Dev.to Ok, ammetto che la mia lingua principale è C#. Ma questa è la mia opinione imparziale su Java e sul suo ecosistema circostante. Ho usato abbastanza spesso il comando bash in Java, vedendone tutti i difetti. Ad esempio, Java non ha proprietà, non ha nativamente eventi, strutture, sovraccarico degli operatori e fino a Java 10 non c'era inferenza, quindi non c'è "var". C'è tutto in C#! Inoltre, ho usato bash per Java a causa della mancanza di LINQ, var ed enumerazioni. Eppure scrivo parecchio in Java, soprattutto quando creo applicazioni per Android, ma anche per altro. Anche il mio primo progetto era in Java! Così venerdì sera, per urgenza, ho dovuto scrivere in Java per diverse ore di fila. E indovina cosa ho scoperto? FLUSSO! Pausa caffè #68.  Un'opinione onesta su Java e il suo ecosistema.  Tre nuovi strumenti Java da considerare nel 2021 - 1Apparentemente Java 8 ha introdotto i thread! E non ne avevo idea! Per quelli di voi che non lo sanno, Streams è un'implementazione Java di LINQ. Ho anche scoperto che Java 10 ha l'inferenza del tipo, quindi Java ora ha una funzione var! Non riesco a credere quanto siano obsolete le mie conoscenze, ma onestamente c'era una ragione per questo. Queste due cose hanno fatto una grande differenza nel mio modo di pensare! Sapevi che Java controlla sempre le eccezioni, ma C# no? Ammetto che mi manca davvero questa funzionalità in C#! Sì, non ci sono strutture, proprietà, ecc., ma cavolo, è elegante! Penso che Java in base alla progettazione costringa lo sviluppatore a scrivere applicazioni più robuste. Nel mondo .NET, invece, ciò è in gran parte lasciato alla discrezione del programmatore. Ad alcuni sviluppatori piacciono queste restrizioni, mentre altri preferiscono la libertà. Sebbene entrambi i linguaggi siano abbastanza sicuri, Java ha ovviamente un leggero vantaggio. Allora perché le grandi aziende preferiscono Java? Penso di conoscere la risposta adesso! Ciò che mi frustra di più è che... nella maggior parte degli esempi di codice che vedi su Internet, queste funzionalità avanzate non vengono sempre utilizzate... penso che se un nuovo sviluppatore Java vede "var" scritto in tutto il codice base , impazzirà! E gli stream? Cosa sono gli stream? Gli sviluppatori Java adorano il ciclo For! In effetti, anche i cicli foreach sono piuttosto rari nel mondo Java (e forse c'è una ragione per questo: il ciclo For è molto più ottimizzato). Ma queste non sono caratteristiche negative! Vado oltre e dico che queste funzionalità sono sorprendenti! Mi addolora davvero quando scrivo app Android e noto che quasi da nessuna parte nell'API Android vengono utilizzate enumerazioni! E questo è giusto perché Android è stato scritto molti anni fa. Ciò che mi irrita di più è che devo utilizzare costanti ogni volta che devo utilizzare la funzione Attività per risultati in Android, in questo modo: int PICK_IMAGE_FROM_GALLERY = 3000 Fratello, è pazzesco! Eppure le persone in tutto il mondo sono arrivate ad accettarlo. E anche io. Java inoltre non dispone dell'implementazione di eventi nativi! Se solo avesse eventi e delegati come C#... (Ehi, creatori del linguaggio Java, se state leggendo questo, dovete aggiungere eventi! E se li avete già o siete in lavorazione, fatemelo sapere ). Ora ti dirò quale potrebbe essere il più grande difetto nell'ecosistema Java. DOCUMENTAZIONE!!! La documentazione confusa e inutile sul sito web di Oracle sembra stupida e obsoleta, al livello del 2007. Non ha nemmeno sempre esempi di codice. Se inizi a cercare una funzionalità o un metodo API relativamente insolito, troverai una definizione, una dichiarazione, argomenti noiosi, a quale pacchetto appartiene - e il gioco è fatto. Penso che questo sia assurdo. Non pensi che questo sia assurdo? Nessun frammento di codice? Quindi noi sviluppatori dobbiamo fare molto affidamento su forum come StackOverflow o altri siti Web di programmazione come TutorialsPoint... A volte sono davvero utili con buoni esempi di codice che mostrano questa funzionalità, ma altre volte non sono così utili. Consiglio di confrontare la documentazione di Microsoft in C# con la documentazione di Oracle in Java... Cielo e terra! Non mi credi? Vai a controllare: Oracle e Microsoft. La documentazione sul sito Microsoft è bellissima! Hanno anche una modalità oscura! Noi sviluppatori andiamo pazzi per la modalità oscura. E la documentazione Oracle? Come ho detto, è rimasto nel 2007. Forse allora non esisteva la modalità oscura? Quindi, voglio dire che Java è fantastico! Ma questo linguaggio soffre molto di una documentazione obsoleta. Si tratta per lo più di vecchi documenti e vecchi manuali che non evidenziano le nuove funzionalità tanto necessarie come thread, vars ed enumerazioni. Al giorno d'oggi la gente dice che Java sta iniziando a diventare obsoleto e sarà sostituito da Kotlin, ma non sono d'accordo. Perché anche se questo fosse vero, non la sostituirà per molto tempo. Ci vorranno molti, molti anni. Ti ricordi che anche Scala ha provato a sostituirlo? Quindi cosa ne è venuto fuori? Java governa ancora l'intero ecosistema JVM. Anche se ammetto che Scala è molto diversa da Java, principalmente nella funzionalità. Ora, finalmente... un'altra cosa che mi dà più emozione di qualsiasi altra cosa nel mondo Java. Questo sta ottenendo il JDK. Perché è così difficile scaricare il JDK? Ciò che intendo è che se ho bisogno di un JDK, una semplice ricerca su Google mi indirizzerà al sito Web di Oracle, vado lì e trovo la versione di JDK di cui ho bisogno. Finora è tutto relativamente semplice, ma poi per scaricarlo devo registrarmi. Perché dovrei creare un account su Oracle e poi gestire la loro posta elettronica ogni settimana invece di limitarmi a scaricare JDK? Tieni presente che Java è open source sin dal primo giorno! A differenza di C#, diventato open source solo di recente, nel 2015. Quindi, sono già frustrato e vado al secondo sito Web nei risultati di ricerca di Google. Mi indica il sito OpenJDK. Trovo il JDK lì e faccio clic su "download". Ma (sorpresa sorpresa!) forniscono collegamenti a implementazioni JDK da altri siti! Tra i siti c'è questo maledetto Oracle, ma c'è anche il collegamento al sito di Red Hat. Sì, Red Hat è fantastica, è uno dei pionieri delle aziende open source nel mondo. Ok, vado sul loro sito! Lo scaricherò da lì! Faccio clic su questo collegamento, trovo la versione JDK che sto cercando e indovina un po'? Devo registrarmi anche lì... (pausa drammatica) E' proprio triste... Fanculo! Cosa c'è che non va in queste persone? Alla fine mi arrendo e installo Chocolatey (è come apt-get, ma per Windows. Penso che sia il primo gestore di pacchetti ampiamente distribuito e utilizzato per Windows). Quindi dopo tutto questo devo scrivere un semplice comando in PowerShell come: choco install jdk-1.8. E lo faccio! (se sei uno sviluppatore C#, sai quanto è facile ottenere .Net SDK in soli 2-3 clic, senza registrazione o qualcosa del genere). Per concludere il mio lungo sfogo: Java è un ottimo linguaggio di programmazione. È bello, affidabile e ha (secondo me) il miglior IDE al mondo: il noto IntelliJ IDEA di JetBrains. Inoltre, Java ha una comunità molto utile e un ecosistema ampio e diversificato. E lo sto dicendo: uno sviluppatore C#... Ma dobbiamo aggiornare la documentazione. Esempi di codice. API. Dobbiamo rendere più semplice ottenere il JDK. Nel complesso, Java si sta muovendo nella giusta direzione, la sua popolarità potrebbe aver sofferto un po' di recente, ma questo non farà scomparire Java. Da molti anni ormai è in cima alla lista delle migliori lingue del mondo! Utilizzo Java sempre e continuerò a farlo in futuro.

Tre nuovi strumenti Java da considerare nel 2021

Fonte: OpenSource Nonostante la popolarità di Python, Go e Node.js, che negli ultimi anni sono stati utilizzati attivamente per realizzare progetti legati all'intelligenza artificiale, al machine learning e a Kubernetes, le tecnologie Java svolgono ancora un ruolo chiave nello sviluppo di applicazioni aziendali. Secondo Developer Economics, nel terzo trimestre del 2020 c’erano 8 milioni di sviluppatori Java aziendali in tutto il mondo. Pausa caffè #68.  Un'opinione onesta su Java e il suo ecosistema.  Tre nuovi strumenti Java da considerare nel 2021 - 2Il linguaggio di programmazione Java esiste da oltre 25 anni e viene costantemente aggiornato. Stanno emergendo nuovi strumenti e framework che possono potenziare le tue applicazioni e la tua carriera. La stragrande maggioranza delle piattaforme Java è stata creata per implementare processi di lunga durata con comportamento dinamico, progettati per essere eseguiti su un server o su macchine virtuali. La situazione è cambiata nel 2014 con l'avvento dei contenitori Kubernetes. Ora, le sfide più grandi quando si esegue Java su Kubernetes sono: ottimizzare le prestazioni delle applicazioni riducendo l’ingombro della memoria, accelerando i tempi di avvio e di risposta e riducendo le dimensioni dei file.

Tre nuovi framework e strumenti Java

Gli sviluppatori Java sono sempre alla ricerca dei modi più semplici per integrare strumenti popolari e progetti open source nelle loro applicazioni Java. Nuovi strumenti ad alte prestazioni aumentano significativamente la produttività dello sviluppo e incoraggiano più aziende e singoli sviluppatori a utilizzare lo stack Java. Oggi parleremo di tre nuovi framework e strumenti Java:

Quarkus

Quarkus è progettato per lo sviluppo di microservizi cloud e applicazioni serverless. Presenta tempi di avvio rapidi, dimensioni RSS (Memory Resident Set) ridotte e un'elevata densità di memoria nelle piattaforme di orchestrazione dei contenitori come Kubernetes. Secondo il nono rapporto annuale di JRebel, l'utilizzo di Quarkus tra gli sviluppatori Java è cresciuto del 6% (meno dell'1% l'anno prima). Micronaut e Vert.x sono cresciuti rispettivamente al 4% e al 2% (l'anno scorso di circa l'1%).

Eclissi JKube

Con Eclipse JKube, gli sviluppatori Java creano immagini container basate su applicazioni Java basate su cloud utilizzando strategie di creazione Docker, Jib o Source-To-Image. Lo strumento genera inoltre manifest Kubernetes e OpenShift in fase di compilazione e migliora l'esperienza con strumenti di debug, monitoraggio e logging.

Microprofilo

MicroProfile risolve i problemi associati all'ottimizzazione dell'architettura aziendale dei microservizi Java senza introdurre nuovi framework o effettuare il refactoring di intere applicazioni. Inoltre, le specifiche MicroProfile (ad esempio Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config) continuano ad evolversi in linea con l'implementazione di Jakarta EE.

Conclusione

È difficile dire quali framework o strumenti Java siano i migliori per gli sviluppatori Java aziendali. Finché ci saranno opportunità per migliorare lo stack Java e accelerare la crescita del business aziendale, possiamo aspettarci che emergano nuovi framework, strumenti e piattaforme. Dai un'occhiata per vedere se possono migliorare le tue applicazioni Java nel 2021.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION