» »

JavaScript dopolnil 25 let

JavaScript dopolnil 25 let

vir: ZDNet
ZDNet - Programski jezik JavaScript, ki predstavlja eno glavnih tehnologij modernega svetovnega spleta, je dopolnil 25 let, kar je v računalništvu že zelo častitljiva starost. Začelo se je leta 1995, ko je Brendan Eich iz Netscapa (se še spomnite njihovega brskalnika?) dobil nalogo, da razvije skriptni jezik za odjemalce, ki bi dobro sodeloval z Javo. Nalogo je dokončal v 10 dneh in dobili smo prvo verzijo JavaScripta. Zanimivo je, da je standard ECMAScript izšel šele leta 1997, torej za JavaScriptom, ko je postalo jasno, da bo potrebna združljivost med tehnologijami v različnih brskalnikih. Microsoft in Netscape sta združila moči in rezultat je bila standardizacija. Tudi Microsoftov jezik TypeScript je združljiv z ECMAScript in se v brskalniku obnaša enako, saj je JavaScript podmnožica.

Vpliv, ki ga je imel JavaScript in razvoj in videz spleta, je ogromen. JavaScript je še danes eden najbolj priljubljenih programskih jezikov, običajno na drugem ali tretjem mestu različnih lestvic. Toda ob prvem izidu JavaScripta sploh ni bilo jasno, ali se bo uveljavil. Eich pojasnjuje, da so sprva predvidevali, da bo zgolj skriptni jezik, medtem ko se bodo vse napredne naloge izvajale v Javi. A kmalu so razvijalci spletnih strani ugotovili, da je moč z JavaScriptom narediti vse. Danes teče na vseh računalnikih, telefonih, pametnih televizorjih in še marsikod. Na GitHubu je največ kode v JavaScriptu.

Razlogov za priljubljenost je več. Med glavnimi so prilagodljivost, saj JavaScript omogoča objektno orientirano programiranje in proceduralno programiranje, uporablja C-jevsko sintakso in predvsem hitro dobiva nove funkcionalnosti, da ostaja v stiku s časom. Seveda ni samoumevno, da bo večno ostalo tako. WebAssembly predstavlja konkurenco, sploh po standardizaciji pred letom dni. Za razliko od JavaScript se koda prevede že prej, tako da brskalniku tega ni treba početi, kar omogoči boljšo odzivnost. A za zdaj JavaScript ostaja trdno v sedlu.


16 komentarjev

starfotr ::

Kolikor vem, je Java v imenu samo zato, da so zajahali val popularnosti prave Jave. In z Javo nimajo nič skupnega.

bbbbbb2015 ::

starfotr je izjavil:

Kolikor vem, je Java v imenu samo zato, da so zajahali val popularnosti prave Jave. In z Javo nimajo nič skupnega.


No, to čisto ni res. Trenutno delam na softveru, kjer se vrti v brskalniku AngularJS (na željo stranke, ne mojo), v back-endu se vrti java servlet/JSP, še bolj v ozadju pa se vrtijo EJBji. To je točno konfiguracija, kot je bil JavaScript svojčas zamišljen.

Predvsem je problem, da v back-endu (na serverju) potrebuješ nekaj, kar se vrti sinhrono z JavaScriptom v ospredju.

Težava te konfiguracije je, da je JavaScript samo 'helper' jezik, da Java dobi na I/O podatke za procesiranje. Čez čas je postalo jasno, da je potem 'usodo' JavaScripta vezana na 'usodo' Jave. Zato je Google močneje posegel v to, razvili so Angular 2, za back-end pa so napisali Node (Node.js). @ Wikipedia

Predvsem takrat je JavaScript pridobil na svojo stran Microsoft, saj če imate na front-endu JavaScript, v back-endu pa Node.js, vam to (teoretično) omogoča, da je vse ostalo (baza, aplikacijski server) fleksibilno.

Zato ta 'Java' v imenu ni samo nekaj, da bi se nekdo samo 'šlepal' na uspehu jezika Java. Tako je dejansko bilo celo zamišljeno, samo je pa stvar taka, da je JavaScript šel povsem svojo pot. Java pa je sicer tudi šla svojo pot.

Zgodovina sprememb…

andrea86 ::

bbbbbb2015 je izjavil:

starfotr je izjavil:

Kolikor vem, je Java v imenu samo zato, da so zajahali val popularnosti prave Jave. In z Javo nimajo nič skupnega.


No, to čisto ni res. Trenutno delam na softveru, kjer se vrti v brskalniku AngularJS (na željo stranke, ne mojo), v back-endu se vrti java servlet/JSP, še bolj v ozadju pa se vrtijo EJBji. To je točno konfiguracija, kot je bil JavaScript svojčas zamišljen.

Predvsem je problem, da v back-endu (na serverju) potrebuješ nekaj, kar se vrti sinhrono z JavaScriptom v ospredju.

Težava te konfiguracije je, da je JavaScript samo 'helper' jezik, da Java dobi na I/O podatke za procesiranje. Čez čas je postalo jasno, da je potem 'usodo' JavaScripta vezana na 'usodo' Jave. Zato je Google močneje posegel v to, razvili so Angular 2, za back-end pa so napisali Node (Node.js). @ Wikipedia

Predvsem takrat je JavaScript pridobil na svojo stran Microsoft, saj če imate na front-endu JavaScript, v back-endu pa Node.js, vam to (teoretično) omogoča, da je vse ostalo (baza, aplikacijski server) fleksibilno.

Zato ta 'Java' v imenu ni samo nekaj, da bi se nekdo samo 'šlepal' na uspehu jezika Java. Tako je dejansko bilo celo zamišljeno, samo je pa stvar taka, da je JavaScript šel povsem svojo pot. Java pa je sicer tudi šla svojo pot.


Začetno ime JavaScripta, je bilo Mocha, pol LiveScript, pol pa JavaScript zaradi lincenciranja med Netscapom in Sunom: Netscape je vključeval JAVA plugin. JAVA in JavaScript, razen imena niso imeli nič skupnega razvoja in naredil veliko zmede med programerji, ki so mislili da je JavaScript spin-off JAVE :)

googleg1 ::

bbbbbb2015 je izjavil:

Predvsem je problem, da v back-endu (na serverju) potrebuješ nekaj, kar se vrti sinhrono z JavaScriptom v ospredju.

Težava te konfiguracije je, da je JavaScript samo 'helper' jezik, da Java dobi na I/O podatke za procesiranje. Čez čas je postalo jasno, da je potem 'usodo' JavaScripta vezana na 'usodo' Jave. Zato je Google močneje posegel v to, razvili so Angular 2, za back-end pa so napisali Node (Node.js). @ Wikipedia

Predvsem takrat je JavaScript pridobil na svojo stran Microsoft, saj če imate na front-endu JavaScript, v back-endu pa Node.js, vam to (teoretično) omogoča, da je vse ostalo (baza, aplikacijski server) fleksibilno.

Zato ta 'Java' v imenu ni samo nekaj, da bi se nekdo samo 'šlepal' na uspehu jezika Java. Tako je dejansko bilo celo zamišljeno, samo je pa stvar taka, da je JavaScript šel povsem svojo pot. Java pa je sicer tudi šla svojo pot.
Zelo ozkogleden pogled na stvar, kjer si preskočil dve desetletji brskaliških bojev glede standardizacije 'frontenda'. Microsoft je Javascript zagrabil že takoj na začetku in hotel pridobiti primat s svojo tehniko embrace, extend and extinguish. Na srečo mu ni uspelo in to predvsem zaradi Mozille in Firefoxa. Node.js pa ne moreš direktno pripisat Google, ker je bil garažni projekt. Ga je pa Google res omogočil z svojim V8 jedrom, ki je bil raketa.

Microsoft je na koncu popustil predvsem zaradi zmanjševanja tržnega deleža IE-ja in pa propadlega Silverlighta (se tega še kdo spomni), ki je bil poleg Java appletov edina konkurenca Javascriptu.

techfreak :) ::

googleg1 je izjavil:

Node.js pa ne moreš direktno pripisat Google, ker je bil garažni projekt. Ga je pa Google res omogočil z svojim V8 jedrom, ki je bil raketa.
Node.js sploh ne mores pripisati Googlu, ker ni imel nic zraven. V8 je samo eden izmed gradnikov Node.js-a. Brez tezav bi lahko avtor vzel Mozillin SpiderMonkey.

bbbbbb2015 ::

andrea86 je izjavil:

Začetno ime JavaScripta, je bilo Mocha, pol LiveScript, pol pa JavaScript zaradi lincenciranja med Netscapom in Sunom: Netscape je vključeval JAVA plugin. JAVA in JavaScript, razen imena niso imeli nič skupnega razvoja in naredil veliko zmede med programerji, ki so mislili da je JavaScript spin-off JAVE :)


Jaz sem v tistih časih hodil po sejmih v Moscone centru v San Franciscu (http://www.moscone.com/site/do/index). Tam je bil vsakoletni sejem Jave in Suna. Zdaj se ne spomnim več, kdo je streljal majice v občinstvo. Mislim, da je bil oni bradonja Gosling. Pa Scott McNealy se mi zdi tudi. Gosling je prišel na stage, se malo zajebaval, malo so se režali, potem so pa vzeli nekaj takega: http://tshirtgun.com/, na stisnjen zrak ali nek plin. Notri je bila trdo povita reklamna majica. Potem so postreljali 20+ majic med občinstvo, folk je hajpal, da to ni res.

In ko si šel z eventa, si ob izhodu imel tudi druge reklamne T-Shirte, v glavnem vse Java, pa simboli za kavo. Vmes je bil Netscape, imeli so svoje majice s tistim mornarskim krmilom in tudi s kavnimi zrni. Jaz imam še danes coffe mug, s tem, da na mojem piše Java (tm), bili pa so coffee mugi tudi od Netscape-a, kjer je bila stilizirana skodelica za kavo, iz katere se je stilizirano kadilo. Nekaj takega:
https://mugbarista.com/products/esri-ja...

Skratka, Netscape se je takrat povezoval s Sunom in Javo, oni so sebe videli kot front-end, Javo pa kot back-end. Java je samo sebe videla kot java-über-alles. Kjerkoli si imel Javo, si imel Netsacape, si imel JavaScript.

bbbbbb2015 ::

techfreak :) je izjavil:

googleg1 je izjavil:

Node.js pa ne moreš direktno pripisat Google, ker je bil garažni projekt. Ga je pa Google res omogočil z svojim V8 jedrom, ki je bil raketa.
Node.js sploh ne mores pripisati Googlu, ker ni imel nic zraven. V8 je samo eden izmed gradnikov Node.js-a. Brez tezav bi lahko avtor vzel Mozillin SpiderMonkey.


Torej, to je tehnično gledano - res. Jaz Node.js sploh ne uporabljam, razen pač npm (package managerja), ker se v back-endu vrti Java. Komercialno je to na razpolago v obliki Weblogica, nekomercialno (in enako dobro) pa v obliki WildFly (bivši JBoss).

Vendar pa je stvar taka, da sem jaz v življenju uporabil ogromno open-source kode v lastnih projektih. Težava je v projektih, ki živijo 10+ let. V open source kodi se pojavijo bugi ali še huje security alerti. Potem ali sam popraviš tisti bug ali pa preklopiš na nek drug paket (fork), ki je vzdrževan. Če kakšen je vzdrževan.

In če je potem nek eko-sistem, ki se veže na Google, na Microsoft recimo manj, raje vzamem to, ker je zadaj neka institucionalna oblika open-sourca. In čim je bil zadaj JS engine v8 (https://v8.dev/), je to zame pomenil velik plus. Ker sem pač videl ogromno softvera, napisanega s strani talentiranih developerjev, kar sameva že od leta 2010 (izmišljujem si), notri se pojavijo bugi, pa tega nihče ne rešuje.

Takoda jaz vseeno mislim, da je naslomba na V8 prispevala dosti k uspehu Node.js.

googleg1 ::

bbbbbb2015 je izjavil:

In če je potem nek eko-sistem, ki se veže na Google, na Microsoft recimo manj, raje vzamem to, ker je zadaj neka institucionalna oblika open-sourca. In čim je bil zadaj JS engine v8 (https://v8.dev/), je to zame pomenil velik plus. Ker sem pač videl ogromno softvera, napisanega s strani talentiranih developerjev, kar sameva že od leta 2010 (izmišljujem si), notri se pojavijo bugi, pa tega nihče ne rešuje.
Vcasih enterprise projekti se hitreje propadejo kot opensource. Ko korporacija izgubi zanimanje si lahko kar hitro na suhem, ker ni izvorne kode in tudi opensource skupnost ne more vozit projekta naprej. Primer tega je zgoraj omenjeni Silverlight, ki ga je Microsoft trzil kot nadomestek Java appletov in Javascripta in je bil zelo dobro povezan v .net core. Sedaj moras uporabit virtualko z starim IE ce hoces odpreti aplikacijo narejeno z to tehnologijo. Poznam najmanj eno podjetje kjer tocno to pocnejo.

techfreak :) ::

Ce se ne motim sta Weblogic in WildFly application serverja, medtem ko je Node.js ekosistem sestavljen iz runtime-a, package managerja in vseh knjiznic? Tezko to direktno primerjas.

Poleg tega, je vecina Java knjiznic open source (vkljucno z WildFly), tako da je ta argument tezko razlog za buge v Node.js knjiznicah. Tudi Java knjiznice niso brez njih.

Kot receno Node.js ni nikakor vezan na Google. V8 je manjsi implementacijski detajl, ki se lahko brez problema zamenja s SpiderMonkey oz. drugim pogonom.

bbbbbb2015 ::

techfreak :) je izjavil:

Ce se ne motim sta Weblogic in WildFly application serverja, medtem ko je Node.js ekosistem sestavljen iz runtime-a, package managerja in vseh knjiznic? Tezko to direktno primerjas.

Poleg tega, je vecina Java knjiznic open source (vkljucno z WildFly), tako da je ta argument tezko razlog za buge v Node.js knjiznicah. Tudi Java knjiznice niso brez njih.

Kot receno Node.js ni nikakor vezan na Google. V8 je manjsi implementacijski detajl, ki se lahko brez problema zamenja s SpiderMonkey oz. drugim pogonom.


Torej, morda sem se napak izrazil. Del, potreben, da se Node.js zamenja na server-side je JSP (Java Server Pages) in Servlet engine. Najbolj tak popularen skinny engine je Tomcat, spisek engine-ov pa imaš tukaj:
http://www.servlets.com/engines/

Je pa stvar taka, da sta to Java backenda. Če je pa stvar taka, pa je smiselno uporabiti vsaj transakcijski manager, da imaš potem lepo aplikacijo, ki s transakcijami spreminja podatke. No, to pa je potem že WildFly, recimo.

Jaz sem že dokaj zgodaj investiral v Javo, ker mi Microsoft s temi .NET in različnimi licenčnimi modeli ni bil všeč. Spomnim se, da smo uporabljali Microsoft SQL (pač na željo naročnika) za interne aplikacije (računovodstvo). Potem je padla ideja, da bi zunanje stranke lahko nekaj same urejale in to je bilo takrat čez 1000 uporabnikov (ne hkratnih). Obrnili smo se na Microsoft, koliko bi to sedaj stalo, ker sicer je connection pool na WildFly, pa to nastopa kot en uporabnik na bazi. No, Microsoft nam je hotel zaračunati neko licenco "ocenjeno št. uporabnikov". To je bilo čisto iz riti privlečeno.

Zato smo preklopili na začetku na MySQL, kasneje pa na PostgreSQL. Posledično smo se začeli .NET, MS SQL in kar je še takih Microsoftovih izogibati. Java nam je lepo vsedla v model.

Zgodovina sprememb…

The Wiber ::

Kakšen je bil razlog, da ste nadomestili MySQL z PostreSQL?

bbbbbb2015 ::

The Wiber je izjavil:

Kakšen je bil razlog, da ste nadomestili MySQL z PostreSQL?


Softver je šel v precej široko uporabo. Od vseh držav EU do Kanade in mislim da Islandije. Po letu 2018 temu več nisem sledil.

Naročnik je zahteval, da (isti!) softver teče v dveh različicah:
a) ORACLE DB
b) free baza, katerakoli

Težava je bila, da je naročnik zahteval štiri tirno arhitekturo: baza in stored procedure, java server (Weblogic ali JBoss takrat) in odjemalec (AngularJS takrat).

Predvsem to procesiranje na nivoju stored procedur je bilo ubijalsko. Parsali smo XML, taka povprečna procedura je imela 500 vrstic. Naročnik je s tem dosegal skoraj 100% uptime, saj je recimo bil en 'aplikacijski' DB SERVER server, kjer so bile stored procedure. Potem pa je bil še eden, senčni aplikacijski server, kar je bil DB server. Naročnik je upgrade naredil tako, da je v bistvu drugo verzijo stored procedur naložil na drug server, ter na serverju s podatki v bistvu samo spremenil db link in so stored procedure hipoma delale z drugim naborom stored procedur. Sam deployment JAVA aplikacije je bil redek, če pa že, je bil hot-redeploy. To je bila zahteva na Weblogicu, JBoss pa je bilo tako, da je bilo dopuščeno, da se aplikacijski server restarta, oz. da se naredi undeployment/deployment.

No, to smo morali nekako narediti tudi s free bazo, kjer je bila zahteva omiljena, ni bilo potrebno avtomatično preklapljati med naboroma stored procedur. Pač ugotovili smo, da edini jezik, ki je bil zelo podobem Oraclovem PL/SQL je bil Postgresov PL/pgSQL (PL/pgSQL). @ Wikipedia

Zato smo preklopili na PostgreSQL. MySQL, oz. sedaj MariaDB ni imela nič niti približno podobnega.

Zgodovina sprememb…

Zimonem ::

Jezik je povsem pragmatičen. Na backendu je bil že v Netscape serverju tisto je bilo res trpljenje.
Danes zakaj pa ne. Če stvari ne rabijo bit zacementirano za 200 let. Lažje je popravljat dinamično reč, kot pa refaktorirat sheme statične enterprise javine zrna.

Stvar je hitra za razvoj, konfuzna ampak prilagodljiva.

Invictus ::

Zimonem je izjavil:

Lažje je popravljat dinamično reč, kot pa refaktorirat sheme statične enterprise javine zrna.

Vsako staro zadevo v enterprise okolju je težko popravljati, ne glede na to v čem je napisana...

Večen problem je manjko dokumentacije, še bolj pa manjko ljudi, ki bi jo brali in razumeli >:D.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

techfreak :) ::

Se bolj zmaga dokumentacija, ki je v nasprotju z implementacijo. :)

Zimonem ::

techfreak :) je izjavil:

Se bolj zmaga dokumentacija, ki je v nasprotju z implementacijo. :)

Mah hudič pri javi je da lahko nekdo z refactoringom , kodo spremeni do neprepoznavnosti v enem tednu. Potem pa iščeš, za kar si zadolžen kot teliček kravo, ki je padla v prepad.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

JavaScript dopolnil 25 let

Oddelek: Novice / Brskalniki
164699 (2060) Zimonem
»

Oracle opušča Java Plugin

Oddelek: Novice / Brskalniki
4120911 (18214) andromedar
»

[Debata] JavaScript in jeziki z prototipnim dedovanjem (strani: 1 2 )

Oddelek: Programiranje
516928 (6794) zigomir
»

Zamenjava Javascripta

Oddelek: Programiranje
345263 (3696) Mavrik
»

Kaksen boso internetne strani v prihodnosti?

Oddelek: Izdelava spletišč
292668 (2101) CCfly

Več podobnih tem