Zašto je JavaScript programski jezik budućnosti

JavaScript je bio prvi programski jezik koji sam uzeo. Pa, zapravo sam započeo s HTML-om i CSS-om. Baš kao i mnogi drugi web programeri, ni korištenje JavaScript-a nije bilo nimalo pametno. To je jednostavno zato što se tako dobro kombinira s HTML-om i CSS-om, a zapravo poboljšava i vaše HTML / CSS vještine. Razvio sam aplikacije i igre na raznim drugim programskim jezicima, uključujući Java, Swift, C ++, Dart. Ali fleksibilnost koju JavaScript pruža je nenadmašna - iako bi se mogla smatrati lošom za početnike jer daje više mogućnosti nego što je potrebno za obavljanje jednostavnog zadatka.

Danas je JavaScript jedan od najmoćnijih jezika na planeti zbog svoje izvedbe i sveprisutnosti.

Osobno smatram da JavaScript može iskoristiti toliko popularnih industrija poput Strojnog učenja i Analize podataka, gdje Python još uvijek vlada igrom. Sad se to čak događa i s alatima poput Tensorflow.js!

Međutim, to definitivno nije bio slučaj za JavaScript prije. Ranije je to bio slab, neučinkovit jezik i bio je namrgođen. JavaScript je bio za "gubitnike".

Ali ne više. Pogledajmo kako je JavaScript okrenuo ploču u posljednjih 10 godina, zašto je postao jači nego ikad i zašto je tu da ostane.

V8: Zvijer koja pokreće JavaScript

V8 je zapravo JavaScript mehanizam. Što je JavaScript mehanizam, možda se pitate? JavaScript mehanizam je tumač koji izvršava JavaScript kôd. JavaScript mehanizam može se implementirati kao standardni tumač ili upravo na vrijeme (JIT) kompajler koji u nekom obliku kompajlira JavaScript u bytecode.

V8 je Googleov otvoreni izvor JavaScript i WebAssembly JIT motor visokih performansi, napisan na C ++. Koristi se, između ostalog, u Chromeu i u Node.js-u. V8 može raditi samostalno ili se može ugraditi u bilo koju C ++ aplikaciju.

Ovo je dio softvera koji visoko optimizira vaš JS kôd i pretvara ga u strojni kôd za izvršenje CPU-a. Neki od zadataka koje V8 rješava su:

  1. Kolekcija smeća
  2. Kompilacija s Strojnim kodom
  3. Umetnuto predmemoriranje
  4. Kompresija pokazivača
  5. i puno puno više optimizacije

U stvari, kompresija pokazivača vrlo je nova tehnika u V8 za pojačavanje optimizacije memorije, a da nema utjecaja na performanse. Ako ste štreber, više o tome kako se primjenjuje možete pročitati na službenom blogu V8.

Iz ovoga se može izvući činjenica da možete pisati JavaScript i spavati noću jer je vaš JS kôd u vrlo dobrim rukama.

Zreli ekosustav i zajednica

JavaScript ima jedan od najzrelijih - ako ne i najzreliji - ekosustav koji je programski jezik ikad mogao imati. Zajednica za JavaScript je ogromna, a ulazna barijera izuzetno niska.

Možete pokrenuti preglednik (koji se nalazi na 100% osobnih računala), otvoriti konzolu i pronaći ćete JS engine koji čeka da pokrenete kod! To nikada nije bio slučaj s bilo kojim drugim programskim jezicima takve složenosti.

Kao da velika zajednica nije dovoljna, imamo sustave npmi i yarnpaket. Vi to imenujete i za to postoji paket u npmregistru - sve, od stvaranja slučajnih nizova do rukovanja tokovima i međuspremnicima u JavaScript-u. Postoji vrlo poznata izreka među programerima JavaScript-a:

Ono što se može učiniti u JavaScript-u, na kraju bi se učinilo i u JavaScript-u

Smiješno je, ali tiho, vjerujem u ovo.

Ako uđete kao početnik, vrlo je mala šansa da naiđete na problem s kojim se nitko prije nije susreo. To je zato što su sve moguće greške za jednostavne probleme s JavaScriptom vjerojatno već postavljene i arhivirane na web lokacijama poput Stack Overflow.

Okviri i knjižnice poput React, Angular i Vue utiru put kako treba graditi buduće aplikacije. Oni preusmjeravaju perspektivu prema deklarativnom umjesto imperativnom programiranju, onome što umjesto kako. To omogućuje programerima da razvijaju kvalitetne aplikacije bez brige o temeljnom visoko performansnom kodu.

Sveprisutnost

JavaScript je prisutan na:

  1. Prednji kraj (preglednici)
  2. Stražnji kraj (čvor, Deno)
  3. Android / iOS (React Native, NativeScript itd.)
  4. Radna površina (Electron)
  5. Hibrid (jonski)

Što to omogućuje? JS motori poput V8 napisani su na C / C ++ i čak se mogu kompajlirati na ugrađenim sustavima! Za ostale platforme, jer su preglednici uvijek prisutni (kao na Andoridu / iOS-u), isporučuju se s JS motorom koji se zatim može koristiti za pokretanje bilo kojeg JS koda, čak i za izvorne aplikacije u slučaju React Native.

Značajke krvarenja i napredak

JavaScript standarde vodi zajednica ECMA-262 TC39 i vau, jesu li ovi ljudi brzi! ECMAScript objavljuje novi standard JavaScript svake godine (pogledajte nove značajke ECMAScript2020!). Vi kao programer možete čak zatražiti da se nove značajke dodaju u jezik.

Na primjer, evo nekoliko značajki na rubu krvarenja koje mogu ući u JavaScript u bliskoj budućnosti:

Sve prijedloge možete pronaći ovdje: TC39 Prijedlozi.

JavaScript je BRZ i SKALABILAN

Naravno, ništa zapravo ne može nadmašiti C / C ++ / Rust, ali JavaScript je brz - u smislu da V8 može generirati visoko optimizirani kôd nadziranjem izvršenja vašeg koda, odgodom bitova izvršavanja koji se ne koriste i optimizacijom segmenata koda koji se koriste uvijek iznova. Pogotovo u usporedbi s najbližim konkurentima poput Pythona. Napredovima u V8 postaje još učinkovitiji i memorijski učinkovitiji.

JavaScript (Node) vrlo je skalabilan (s supersetovima poput TypeScript-a). Radeći na arhitekturi s jednim navojem, ljudi često kritiziraju Node zbog nedostatka okruženja s nitima, ali stvarnost je da to nije puno važno.

Način na koji skalirate aplikacije Node nije sličan načinu na koji skalirate aplikaciju s više niti. Čvor doslovno znači "čvor" - jedan čvor u stablu procesa. Čvor se skalira izvođenjem više njegovih instanci i upravljanjem klasterom.

JavaScript predvodi asinhroni model programiranja koji se temelji na događajima i ne trebaju niti za skaliranje. Umjesto toga, pojedinačni Node procesi mogli bi se stvoriti za rukovanje i korištenje kompletne CPU jezgre. Više o skaliranju Node-a kasnije!

Zaključak

Volim JavaScript i pomoću njega sam stvorio platformu za programere za programere poput vas. Tamo ne možete naučiti samo JavaScript, već i razne druge jezike poput C, C ++, Java, Node, Python i još mnogo toga! Pridružite se ovdje besplatno i učite s drugim programerima odmah izvan svog preglednika!

JavaScript je tu da ostane i vlada ovom industrijom u ovom desetljeću. Slažeš li se? Recite mi na mom twitteru i Instagram ručkama - spojimo se!