Programmēšana

Node.js pret Java: episka cīņa par izstrādātāju domāšanas iespēju

Skaitļošanas vēsturē 1995. gads bija traks laiks. Vispirms parādījās Java, pēc tam cieši pie papēžiem nāca JavaScript. Vārdi viņiem lika šķist, ka tikko atdalīti savienoti dvīņi, taču atšķirīgāki viņi nevarēja būt. Viens no tiem ir sastādīts un statiski ierakstīts; otrs interpretēts un dinamiski rakstīts. Tas ir tikai sākums tehniskajām atšķirībām starp šīm divām ļoti atšķirīgajām valodām, kuras kopš tā laika ir pārgājušas uz sava veida sadursmes kursu, pateicoties Node.js.

Ja esat pietiekami vecs, lai būtu bijis toreiz, jūs varētu atcerēties Java agrīno, episko virsotni. Tas atstāja laboratorijas, un tā hipe mērītājs bija piestiprināts. Visi to uztvēra kā revolūciju, kas apstāsies ne mazāk kā pilnīgā skaitļošanas pārņemšanā. Šī prognoze galu galā bija pareiza tikai daļēji. Mūsdienās Java dominē Android tālruņos, uzņēmumu skaitļošanā un dažās iegultās pasaulēs, piemēram, Blu-ray diskos.

Neskatoties uz visiem panākumiem, Java darbvirsmā vai pārlūkprogrammā nekad nav izveidojusi lielu pievilcību. Cilvēki reklamēja sīklietotņu un Java balstītu rīku spēku, taču Gunk vienmēr izjauca šīs kombinācijas. Serveri kļuva par Java saldo vietu.

Tikmēr tas, ko programmētāji sākotnēji uzskatīja par mēma dvīņu, ir nonācis pats. Protams, JavaScript dažus gadus iezīmējās kā HTML un tīmeklis, kas pavilka Borgu pasaulē. Bet tas mainījās ar AJAX. Pēkšņi mēmajam dvīnim bija vara.

Tad Node.js tika nārstots, ar ātrumu pagriežot izstrādātājiem galvu. Serverī JavaScript bija ne tikai ātrāks, nekā kāds bija gaidījis, bet bieži vien arī ātrāk nekā Java un citas opcijas. Tā pastāvīgā mazo, ātro un bezgalīgo datu pieprasījumu diēta kopš tā laika ir padarījusi Node.js izplatītāku, jo tīmekļa lapas ir kļuvušas dinamiskākas.

Lai gan pirms 20 gadiem tas, iespējams, nebija iedomājams, gandrīz dvīņi tagad ir ieslēgti cīņā par programmēšanas pasaules kontroli. Vienā pusē ir pamatīgi inženierzinātņu un arhitektūras pamati. No otras puses ir vienkāršība un visuresamība. Vai vecās skolas kompilatoru virzītā Java pasaule noturēs savu vietu, vai arī Node.js ātrums un elastīgums palīdzēs JavaScript turpināt aplaupīt visu, kas atrodas ceļā?

Kur Java uzvar: pamatīgs pamats

Es dzirdu, kā izstrādātāji smejas. Daži pat var mirst no sirds mazspējas. Jā, Java ir kļūmes un kļūdas, bet salīdzinoši runājot, tas ir Gibraltāra klints. Tāda pati ticība Node.js ir daudzu gadu garumā. Patiesībā var paiet vairākas desmitgades, pirms JavaScript apkalpe uzraksta gandrīz tikpat daudz regresijas testu, cik Sun / Oracle izstrādāja Java virtuālās mašīnas pārbaudei. Uzsākot JVM, jūs saņemat 20 gadu pieredzi no stingra kuratora, kurš ir apņēmies dominēt uzņēmuma serverī.

JavaScript pasaule ātri panāk. Kad liela daļa visa tīmekļa ir atkarīga no JavaScript izpildes dzinēja, visas izstrādātāja stundas tiek veltītas visu malu pulēšanai. Bet visiem jauninājumiem ir negatīvie aspekti, jo jauno funkciju skaits var izplatīties ātrāk, nekā izstrādātāju bāze spēj tās absorbēt. Vecās skolas izstrādātājus bieži sajauc kods, kas piepildīts ar jaunākiem ECMAScript sintakses uzlabojumiem - un tas pats jaunais kods klusi sagrauj dažas vecākas pārlūkprogrammas. Bezgalīgais novatorisko pirmapstrādes procesoru, piemēram, CoffeeScript un JSX, daudzums var būt lieliski piemērots izstrādātājiem, kuri vēlas šīs funkcijas, taču pārējiem mums ir grūtāk atvērt izlases failu un to uzreiz saprast.

Java ir daļa no jaunajām funkcijām un iespējām, taču lielākoties tā ir stabila platforma. Tas ievērojami atvieglo to izstrādātāju dzīvi, kuri būvē kaut ko ilgstošu.

Kur uzvar Node.js: Visuresamība

Pateicoties Node.js, JavaScript atrod mājas serverī un pārlūkprogrammā. Kods, kuru rakstāt vienam, vairāk nekā iespējams, darbosies vienādi abos. Dzīvē nekas netiek garantēts, bet tas ir tik tuvu, kā tas notiek datoru biznesā. Ir daudz vieglāk pielīmēt JavaScript abām klienta / servera dalījuma pusēm, nekā rakstīt kaut ko vienreiz Java un vēlreiz JavaScript, kas jums, iespējams, būs jādara, ja nolemjat pārvietot Java loģisko biznesa loģiku serveri pārlūkprogrammai. Vai varbūt priekšnieks uzstās, lai pārlūkam izveidotā loģika tiktu pārvietota uz serveri. Jebkurā virzienā Node.js un JavaScript ievērojami atvieglo koda migrēšanu.

Šķiet, ka mezgla vadība šajā pasaulē tikai paplašinās. Vismodernākie tīmekļa ietvari, piemēram, React, pēdējā sekundē izlems, vai palaist kodu serverī vai klientā. Kādu dienu tas darbosies klientā, bet citu dienu - serverī. Daži gudri loģiski pieņems lēmumu lidojumā, pamatojoties uz slodzes vai rezerves RAM vai kaut ko citu. Daži ietvari nosūtīs JavaScript datu bāzē kā vaicājumu, kur tas tiek izpildīts. Jūsu kods varētu darboties jebkur, un to ir arvien grūtāk sekot līdzi, jo tas nenosūta pastkarti uz mājām. Vienkārši priecājieties, jo jums nav jādomā par detaļām.

Kur Java uzvar: labāki IDE

Java izstrādātājiem ir Eclipse, NetBeans vai IntelliJ - trīs visaugstākās klases rīki, kas ir labi integrēti ar atkļūdotājiem, dekompilatoriem un serveriem. Katrai no tām ir gadu attīstība, īpaši lietotāji un stabilas ekosistēmas, kas piepildītas ar spraudņiem.

Tikmēr lielākā daļa Node.js izstrādātāju vārdus ieraksta komandrindā un kodē iecienītākajā teksta redaktorā. Jā, dažiem labākajiem teksta redaktoriem, piemēram, Atom, ir izstrādāti spraudņu krājumi, kas dara gandrīz visu, taču pat tad šķiet, ka Node.js ir vairāk vecā skola nekā Eclipse. Drīz mēs nomainīsim peli ar Atari prieka nūju.

Daži izstrādātāji izmanto Eclipse vai Visual Studio, kas abi atbalsta Node.js. Protams, pieaugošā interese par Node.js nozīmē, ka tiek parādīti jauni rīki, no kuriem daži, piemēram, IBM Node-RED piedāvā intriģējošas pieejas, taču tie joprojām ir tālu no tik pilnīga vai dominējoša kā Eclipse vai IntelliJ.

Dīvaini ir tas, ka izstrādātāji, šķiet, neizmanto šos rīkus. Komandu rindai vajadzēja pazust pirms 35 gadiem līdz ar Mac ierašanos, taču Node.js izstrādātājiem neviens to neteica. Iespējas ir. Piemēram, WebStorm ir stabils JetBrains komerciālais rīks, kas ietver daudzus komandrindas veidošanas rīkus.

Protams, ja jūs meklējat IDE, kas rediģē un žonglē ar kodu, jaunie rīki, kas atbalsta Node.js, ir pietiekami labi. Bet, ja jūs lūdzat savam IDE ļaut jums rediģēt, kamēr jūs darbojaties ar tekošo avota kodu, piemēram, sirds ķirurga šķēles atver krūtis, labi, Java rīki ir daudz jaudīgāki. Tas viss ir tur, un tas viss ir vietējais.

Kur uzvar Node.js: datu bāzes vaicājumi

Vaicājumi dažām jaunākām datu bāzēm, piemēram, CouchDB un MongoDB, tiek rakstīti JavaScript. Ja sajaucat Node.js un izsaukumu uz datu bāzi, nav jāmaina pārnesumi, nemaz nerunājot par nepieciešamību atcerēties sintakses atšķirības.

Tikmēr daudzi Java izstrādātāji izmanto SQL. Pat tad, ja viņi izmanto Java DB - agrāk Derby, Java izstrādātājiem rakstītu datu bāzi, viņi savus vaicājumus raksta SQL. Jūs domājat, ka viņi vienkārši izsauks Java metodes, taču jūs kļūdāties. Jums ir jāraksta datu bāzes kods SQL, pēc tam ļaujiet Derbijam parsēt SQL. SQL ir jauka valoda, taču tā pilnīgi atšķiras no Java, un daudzām izstrādātāju komandām ir vajadzīgi dažādi cilvēki, lai rakstītu SQL un Java.

Vēl sliktāk ir tas, ka daudzi Java kodētāji izmanto sarežģītas bibliotēkas un shēmas, lai datus no SQL vaicājuma pārveidotu par Java objektiem, lai viņi tos varētu pārstrādāt veidnēs. Tas ir traks process un galu galā diezgan izšķērdīgs.

Kur Java uzvar: veidi

Daudzi ievadprogrammēšanas kursi turpina izmantot Java, jo daudziem nopietniem programmētājiem parasti patīk statiski ievadīts kods gan vienkāršības, gan drošības labad. Kods vienkārši jūtas stingrāks pēc tam, kad kompilators noķer acīmredzamās kļūdas.

JavaScript tomēr tuvojas, un daži izstrādātāji pāriet uz TypeScript - statiski ierakstītu JavaScript virsgrupu, kurā tiek izmantota visa tipa pārbaudes maģija, pirms tiek izdalīts kaut kas, kas darbojas jūsu pārlūkprogrammas JavaScript kaudzē. Ja jums patīk veidi, tas var būt pietiekami, lai jūs varētu izmantot JavaScript. Vai arī jūs varētu vienkārši atpazīt imitāciju kā sirsnīgāko glaimu veidu un palikt pie Java, kas jau no paša sākuma aptvēra statisko rakstīšanu.

Kur uzvar Node.js: sintaktiskā elastība

Kādreiz JavaScript bija vienkārša valoda, lai parādītu nevēlamus brīdinājumu lodziņus un divreiz pārbaudītu veidlapas ievadi. Tad izstrādātāju kopiena izveidoja daudz dažādu valodas versiju, kuras varēja pārlūkot pārlūkprogrammā. Pastāv CoffeeScript pūlis, kas piedāvā nedaudz dažādu sintakse, kas paredzēti, lai apmierinātu tīrāku pieturzīmju garšu. React / Vue pūlis sajauc HTML un JavaScript tikai tāpēc, ka tas ir tīrāks. Tipa mīļotājiem ir TypeScript un funkcionālajiem bhaktām LiveScript.

Arī Java pasaulē jūs atradīsit ārkārtīgi daudz radošuma, taču nez kāpēc tas netiek izteikts daudzos iepriekšējos procesoros. Ir vairākas valodas, piemēram, Kotlin, Scala un Clojure, kas tiek pārvērstas par JVM baitu kodu, taču kaut kā viņi jūtas pietiekami atšķirīgi, lai atšķirtos kā atsevišķas valodas. Visi priekšapstrādes procesori padara dzīvi jautrāku JavaScript programmētājiem, kuriem patīk dažādi koda formulēšanas vai pieturēšanas veidi.

Kur uzvar Java: Vienkāršs veidošanas process

Sarežģīti būvēšanas rīki, piemēram, Ant un Maven, ir radikāli mainījuši Java programmēšanu. Bet ir tikai viens jautājums. Jūs rakstāt specifikāciju XML - datu formātā, kas nav paredzēts programmēšanas loģikas atbalstam. Protams, ir diezgan viegli izteikt sazarojumu ar ligzdotiem tagiem, taču ir kaut kas kaitinošs, pārslēdzot ātrumus no Java uz XML, tikai lai kaut ko izveidotu. Izmantojot JavaScript, nav iespējams pārslēgt pārnesumus.

Agrāk Node.js uzbūve bija vienkāršāka. Jūs vienkārši rediģējat kodu un pēc tam nospiedāt “palaist”. Tas bija toreiz. Tā kā mezgla izstrādātāji ir „uzlabojuši” procesu, viņi ir pievienojuši pirmapstrādes procesorus, kas izmanto jūsu iecienīto JavaScript subdialektu un pārvērš to par kaut ko darbināmu. Tad mezgla pakotņu pārvaldniekam jāatrod pareizā bibliotēka. Lielāko daļu laika tas vienkārši darbojas, bet dažreiz tas nedarbojas, un tad jūs pavadāt laiku, meklējot pareizo versijas numuru kādam artefaktam, kuru jūs pats veidojat atsevišķā solī. Un, ja jūs pieļāvāt kādu kļūdu artefaktu krātuvē, labi, šis versijas numurs tiek nošauts, un jums atkal jāpagriež odometra riteņi.

Java ir arī sarežģīts veidošanas process, kas ir diezgan līdzīgs Node.js metodei, taču nešķiet, ka tas būtu kļuvis vēl sarežģītāks. Kaut kā tagad Maven un Ant šķiet kā Java pamatsastāvdaļa. Daudzas nelīdzenās malas jau sen vairs nav, un būvējumi vienkārši darbojas biežāk. Ja būtu kaut kas absolūti sarežģīts, lai izveidotu sarežģījumus, abas valodas varētu būt līdzīgas, taču ātra JavaScript sarežģītības eksplozija nozīmē, ka Java uzvar.

Saistītais video: Node.js padomi un ieteikumi

Šajā paskaidrojuma videoklipā uzziniet vairākas metodes, kas var uzlabot jūsu mezglu izstrādes pieredzi.

Kur uzvar Node.js: JSON

Kad datu bāzēs tiek izspļautas atbildes, Java izstrādā detalizētu garumu, lai rezultātus pārvērstu Java objektos. Izstrādātāji stundām ilgi strīdēsies par POJO kartēšanu, hibernācijas režīmu un citiem rīkiem. To konfigurēšana var ilgt stundas vai pat dienas. Galu galā pēc visa konvertēšanas Java kods iegūst Java objektus. Kas attiecas uz konfigurāciju, Java pasaule joprojām turas pie XML un pat piedāvā divus galvenos parsētājus, lai izstrādātājiem dotu vairāk iemeslu uztraukties.

Mūsdienās daudzi tīmekļa pakalpojumi un datubāzes atgriež datus JSON, kas ir JavaScript dabiska sastāvdaļa. JSON tagad ir tik izplatīts un noderīgs, ka daudzi Java izstrādātāji izmanto formātu, un vairāki labi JSON parsētāji ir pieejami arī kā Java bibliotēkas. Bet JSON ir daļa no JavaScript pamatiem. Jums nav nepieciešamas bibliotēkas. Tas viss ir gatavs darbam.

Kur uzvar Java: attālināta atkļūdošana

Java lepojas ar neticamiem rīkiem mašīnu kopu uzraudzībai. JVM ir dziļi āķi un izstrādāti profilēšanas rīki, kas palīdz noteikt vājās vietas un nepilnības. Java uzņēmuma kaudze vada dažus no vismodernākajiem serveriem uz planētas, un uzņēmumi, kas izmanto šos serverus, telemetrijā ir pieprasījuši vislabāko. Visi šie uzraudzības un atkļūdošanas rīki ir diezgan nobrieduši un gatavi izvietošanai.

Kur uzvar Node.js: darbvirsma

Iespējams, ka tur izbeidzas dažas Java sīklietotnes, un es joprojām uzturu dažus Java JAR failus, uz kuriem es varu noklikšķināt, lai palaistu, taču lielākoties darbvirsmas pasaule lielākoties nav Java. Savukārt JavaScript turpina uztvert arvien vairāk darbību, jo pārlūks apēd lielāko daļu mūsu darbvirsmas lomu. Kad korporācija Microsoft pārrakstīja Office, lai tā darbotos pārlūkprogrammā, liešanas forma tika izlieta. Ja jūs joprojām domājat, ir tādas interesantas iespējas kā Electron, kas paņem jūsu tīmekļa kodu un pārvērš to par atsevišķu darbvirsmas lietotni.

Kur Java uzvar: plaukstdatori

Android lietotnes bieži tiek rakstītas Java valodā, un 90 procentos jauno tālruņu darbojas kāda Android versija. Daudzi cilvēki vairs pat nelieto galddatorus, jo tālruņi ir pietiekami labi visam.

Protams, ir nedaudz neskaidrību. Daudzi izstrādātāji raksta Node.js tīmekļa lietotnes, kuru mērķauditorija ir mobilās pārlūkprogrammas gan iPhone, gan Android ierīcēs. Ja tas tiek darīts labi, sniegums bieži ir pietiekami labs.

$config[zx-auto] not found$config[zx-overlay] not found