Node.js

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Node.js
software
Siglă
Tip Programare (nu este listat )
Dezvoltator Vesel
Data primei versiuni 27 mai 2009
Ultima versiune 12.10.0 și 10.16.3 (LTS) (4 septembrie 2019 ; acum 23 de luni și 15 august 2019 ; acum 2 ani )
Ultima versiune beta Lista plina
Sistem de operare Multiplatform
Limba JavaScript
C.
C ++
Licență Licență MIT
( licență gratuită )
Site-ul web nodejs.org

Node.js este un sistem de runtime open source, cu platformă deschisă, orientat spre evenimente, care rulează cod JavaScript , construit pe motorul JavaScript V8 Google Chrome . Multe dintre modulele sale de bază sunt scrise în JavaScript , iar dezvoltatorii pot scrie module noi în JavaScript .

JavaScript a fost utilizat inițial în principal din partea clientului . În acest scenariu, scripturile JavaScript, de obicei încorporate în codul HTML al unei pagini web, sunt interpretate de un motor de execuție încorporat direct într-un browser . Node.js vă permite, în schimb, să utilizați JavaScript și pentru a scrie cod care să fie executat pe partea serverului , de exemplu pentru a produce conținutul paginilor web dinamice înainte ca pagina să fie trimisă în browserul utilizatorului . În acest fel, Node.js permite implementarea așa-numitei paradigme „JavaScript peste tot”, unificând dezvoltarea aplicațiilor web în jurul unui singur limbaj de programare (JavaScript).

Node.js are o arhitectură orientată spre evenimente care face posibilă I / O asincronă. Acest design își propune să optimizeze randamentul și scalabilitatea în aplicațiile web cu multe operații de intrare / ieșire, este, de asemenea, excelent pentru aplicațiile web de sistem în timp real (de exemplu , programe de comunicare în timp real sau jocuri de browser ).

Node.js este un proiect de dezvoltare open source distribuit gestionat de Fundația Node.js și facilitat prin programul de proiecte de colaborare al Fundației Linux .

Companiile care susțin programul includ GoDaddy , Groupon , IBM , LinkedIn , Microsoft , Netflix , PayPal , Rakuten , SAP , Voxer , Walmart și Yahoo! .

Istorie

Ryan Dahl
Ryan Dahl

Node.js a fost creat inițial de Ryan Dahl în 2009, la aproximativ treisprezece ani după introducerea primului mediu JavaScript de pe server, Web LiveWire Pro al Netscape . Versiunea inițială acceptă numai Linux și Mac OS . Dezvoltarea și întreținerea acesteia au fost conduse de Dahl și ulterior sponsorizate de Joyent .

În iunie 2011, Microsoft și Joyent au implementat o versiune nativă Windows a Node.js [1] . Prima versiune a Node.js care acceptă Windows a fost lansată în iulie 2011.

În ianuarie 2012, Dahl dat la o parte, promovarea coleg și NPM creator Isaac Schlueter pentru a conduce proiectul [2] . În ianuarie 2014 Schlueter a anunțat că Timothy J. Fontaine va conduce proiectul [3] .

În decembrie 2014, Fedor Indutny a început io.js, o furcă a Node.js. Datorită conflictului intern privind guvernanța Joyent, io.js a fost creat ca o alternativă de guvernanță deschisă cu un comitet tehnic separat [4] . Spre deosebire de Node.js [5] , autorii intenționează să mențină io.js la curent cu cele mai recente versiuni ale motorului JavaScript V8 de la Google [6] .

În februarie 2015, a fost anunțată intenția de a forma o fundație neutră Node.js. În iunie 2015, comunitățile Node.js și io.js au votat să lucreze împreună în cadrul Fundației Node.js [7] .

În septembrie 2015, Node.js v0.12 și io.js v3.3 au fost îmbinate în Node v4.0 [8] . Această fuziune a adus caracteristicile V8 ES6 în Node.js și un ciclu de lansare a suportului pe termen lung [9] . Începând din 2016, site-ul web io.js îi sfătuiește pe dezvoltatori să revină la Node.js și să nu fie planificate alte versiuni io.js din cauza fuziunii [10] .

În 2019, Fundația JS și Fundația Node.js au fuzionat pentru a forma Fundația OpenJS.

Eficienţă

Modelul de rețea pe care se bazează Node.js nu este acela al proceselor concurente, ci I / O bazate pe evenimente : aceasta înseamnă că Node solicită sistemului de operare să primească notificări atunci când apar anumite evenimente și, prin urmare, rămâne în repaus până la notificare el însuși: numai în acel moment devine din nou activ să execute instrucțiunile furnizate în funcția de apel invers , așa numit pentru că se execută odată primită notificarea că rezultatul procesării sistemului de operare este disponibil. Acest model de rețea, implementat și în biblioteca de mașini de evenimente pentru Ruby și în cadrul Twisted pentru Python , este considerat mai eficient în situații critice în care există un trafic de rețea mare [11] [12] .

Guvernarea proiectului

În 2015, diverse ramuri ale comunității mai largi Node.js au început să lucreze în cadrul Fundației Node.js, independentă de furnizor. Scopul declarat al organizației este [13]

„permite adoptarea pe scară largă și ajută la accelerarea dezvoltării Node.js și a altor module conexe printr-un model de guvernanță deschis care încurajează participarea, contribuția tehnică și un cadru pentru gestionarea pe termen lung de către un ecosistem investit. Node.js”.

Comitetul tehnic de conducere al Fundației Node.js (TSC) este organul tehnic de conducere al Fundației Node.js. TSC este responsabil pentru depozitul principal Node.js, precum și pentru proiectele dependente și adiacente. În general, TSC deleagă administrarea acestor proiecte grupurilor de lucru sau comitetelor [14] . Grupul LTS care gestionează versiunile acceptate pe termen lung este un astfel de grup. Alte grupuri actuale includ API Addons, Benchmarking , Documentation and Testing [15] .

În august 2017, o treime dintre membrii TSC și-au dat demisia din cauza unei dispute privind codul de conduită al proiectului [16] .

Versiuni

Versiune stare Nume Data de lansare Începe activarea LTS Începerea întreținerii Sfârșitul întreținerii
Versiunea veche nu mai este acceptată: v0.10.x Versiunea veche nu mai este acceptată: sfârșitul vieții 2013-03-11 - 01-10-2015 31-10-2016
Versiunea veche nu mai este acceptată: v0.12.x Versiunea veche nu mai este acceptată: sfârșitul vieții 06.02.2015 - 01.04.2016 31.12.2016
Versiunea veche nu mai este acceptată: 4.x Versiunea veche nu mai este acceptată: sfârșitul vieții Argon [17] 08-09-2015 01-10-2015 01.04.2017 30.04.2018
Versiunea veche nu mai este acceptată: 5.x Versiunea veche nu mai este acceptată: sfârșitul vieții 29-10-2015 ? 30.06.2016
Versiunea veche nu mai este acceptată: 6.x Versiunea veche nu mai este acceptată: sfârșitul vieții Bor [17] 26.04.2016 2016-10-18 30.04.2018 2019-04-30
Versiunea veche nu mai este acceptată: 7.x Versiunea veche nu mai este acceptată: sfârșitul vieții 2016-10-25 ? 30.06.2017
Versiunea veche nu mai este acceptată: 8.x Versiunea veche nu mai este acceptată: sfârșitul vieții Carbon [17] 30.05.2017 2017-10-31 01.01.2019 [18] 2019-12-31
Versiunea veche nu mai este acceptată: 9.x Versiunea veche nu mai este acceptată: sfârșitul vieții 01.10.2017 ? 30.06.2018
Versiunea anterioară este încă acceptată: 10.x Versiunea mai veche este încă acceptată: LTS Maintenance Dubnium [17] 24.04.2018 2018-10-30 19.05.2020 2021-04-30
Versiunea veche nu mai este acceptată: 11.x Versiunea veche nu mai este acceptată: sfârșitul vieții 23-10-2018 ? 01.06.2019
Versiunea anterioară este încă acceptată: 12.x Versiunea mai veche este încă acceptată: LTS Maintenance Erbiu [17] 2019-04-23 2019-10-21 2020-11-30 2022-04-30
Versiunea veche nu mai este acceptată: 13.x Versiunea veche nu mai este acceptată: sfârșitul vieții 22-10-2019 ? 01.04.2020 01.06.2020
Versiunea anterioară este încă acceptată: 14.x Versiunea mai veche este încă acceptată: LTS Active Fermiu [17] 21.04.2020 2020-10-27 2021-10-19 2023-04-30
Versiune stabilă curentă: 15.x Versiune stabilă curentă : curentă 2020-10-20 ? 2021-04-01 2021-06-01
Versiune viitoare: 16.x Versiune viitoare: În așteptare Galiu [17] 2021-04-20 2021-10-26 2022-10-18 2024-04-30
Legendă:
Versiune veche
Versiunea anterioară este încă acceptată
Versiune curentă
Ultima versiune de previzualizare
Versiunea viitoare

Notă

  1. ^ Portarea nodului în Windows cu ajutorul Microsoft , la nodejs.org . Adus la 17 aprilie 2016 .
  2. ^ Ryan Dahl, New gatekeeper , la groups.google.com . Adus la 26 octombrie 2013 .
  3. ^ Isaac Schlueter, The Next Phase of Node.js , pe nodejs.org , 15 ianuarie 2014. Adus pe 21 ianuarie 2014 .
  4. ^ Krill, Paul, Why io.js Decided to Fork Node.js , javaworld.com , JavaWorld, 4 decembrie 2014. Adus 15 decembrie 2014 .
  5. ^ Ben Noordhuis, Numărul 3692: funcția devine brusc nedefinită , la code.google.com , Probleme cu motorul JavaScript V8, 12 noiembrie 2014. Accesat la 2 februarie 2015 .
  6. ^ Mikeal, Rogers, State of io.js. Medium.com , 28 ianuarie 2015. Accesat la 2 februarie 2015 .
  7. ^ Fundația Node.js avansează colaborarea comunitară, anunță noi membri și guvernare tehnică ratificată , pe linuxfoundation.org . Adus la 4 iulie 2015 (arhivat din original la 24 iunie 2015) .
  8. ^ Node.js Foundation combină Node.js și io.js într-o singură bază de cod în versiune nouă , la nodejs.org . Adus pe 28 ianuarie 2016 .
  9. ^ io.js și Node.js fuzionează , pe medium.com . Adus pe 27 iunie 2015 .
  10. ^ Io.js, JavaScript I / O , "io.js a fuzionat din nou cu proiectul Node.js. Nu vor mai exista alte versiuni de io.js. Toate caracteristicile din io.js sunt disponibile în Node.js v4 și mai sus. "
  11. ^ Articol în limba engleză despre gestionarea serverelor prin cadrul I / O
  12. ^ Programare în rețea scalabilă, carte electronică de Felix von Leitner (în engleză, format PDF).
  13. ^ (EN) Fundația Node.js , Fundația Node.js | Node.js , pe nodejs.org . Adus la 8 martie 2017 .
  14. ^ (EN) nodejs / TSC , pe GitHub. Adus la 8 martie 2017 .
  15. ^ (EN) Fundația Node.js, Grupuri de lucru | Node.js , pe nodejs.org . Adus la 8 martie 2017 .
  16. ^ Whittaker, Zack, După defalcarea guvernanței, liderii Node.js luptă pentru supraviețuirea sa , ZDNet, 25 august 2017
  17. ^ a b c d e f g ( EN ) nodejs / Release , pe GitHub . Adus pe 3 mai 2018 .
  18. ^ Programarea nodului 8 , pe github.com . Adus la 22 ianuarie 2019 .

Alte proiecte

linkuri externe

Controlul autorității LCCN (EN) n2013024269 · GND (DE) 1027030742