Event-driven programming er ikke just nyt, nej. Det Node bringer til bordet er en syntax alle kender, en ufatteligt fleksibel objektmodel, med Event-driven programming i højsædet.
Derudover har Node den fordel, at rigtigt meget kode kan genbruges på tværs af backend og frontend. Det forekommer nok lidt mærkeligt ved første øjekast, men det er super brugbart fx i forbindelse med at lave applikationer der kan bruges offline -- hvis du kan bruge den præcist samme modelkode til at beskrive et objekt på både serverside og clientside, så er det eneste du behøver udskifte for at understøtte både server storage og localstorage, en flad adapter.
Også er Node CommonJS-aware, hvilket betyder at du har et hav af libraries til rådighed du allerede kender og har brugt til frontend-apps i JavaScript, som du sømløst kan ploppe ind i dine serverapplikationer(fx Backbone).
Sidst men ikke mindst er det interessante ved at bruge V8 ikke at Google har lavet det, men at det er lynende hurtigt. V8 er en absurd hurtig engine, og at skrive en serverapp der tilmed er Event-driven giver dig en performance der hidtil ikke er set. Indbygget god performance sparer dig rigtigt mange penge. Ruby on Rails har EventMachine, men er stadig, bare i kraft af at eksistere, en CPU-haj.
Konklusionen må være at i sig selv bringer Node ikke særligt meget nyt til bordet -- men den tager nogle gode idéer og gør dem bedre end alle andre har gjort indtil nu.
Med Node er vi full circle. Sømløs overgang mellem frontend og backend, muligheden for at lave kommandolinieværktøjer i ren JavaScript -- og med Titanium og Adobe AIR er vi i stand til at lave smartphone- og desktopapps i JS. Det eneste JS stadig ikke kan bruges til -- og bruges
mere effektivt end konkurrenterne til -- er systemprogrammering og kerneudvikling til operativsystemer.
EDIT: Jeg vil gerne lige tilføje, at jeg er forelsket i CoffeeScript: http://jashkenas.github.com/coffee-script/ -- det gør virkeligt Node-udvikling(og generelt al JS-udvikling) til den mest lyserøde regnbuevandring en programmør har oplevet nogensinde.
while iteration isnt target
...
myFunction = (param) ->
"Vi returnerer her parametret: " + param
...
if mood isnt "sad"
sys.puts ":D"
Love it!
Indlæg senest redigeret d. 07.06.2011 19:37 af Bruger #8223