1 Laatst bewerkt door Arjan Eising (28-08-2011 14:07:00)

Onderwerp: Kun jij nog steeds Plain Old JavaScript?

Met alle JavaScript libraries en frameworks zoals jQuery en Prototype.js zou je bijna vergeten dat er ook zoiets bestaat als hand-coded JavaScript. Wie weet er nog steeds hoe je de DOM kunt manipuleren met document.createElement, setAttribute en appendChild? Hoe je animaties moest maken met setInterval en een handvol tellers aan CSS manipulaties? Laat een reactie achter als je dit absoluut niet meer kan, of als je denkt: 'vroegah was alles beter'.

2

Re: Kun jij nog steeds Plain Old JavaScript?

Ik ken alleen de vanilla Javascript. Ik gebruik jQuery alleen als ik iets nodig heb dat ik (met mijn beginner's-JS) niet kan schrijven.  Ik begrijp jQuery helemaal niet... kopie-plaak-taal.

3

Re: Kun jij nog steeds Plain Old JavaScript?

Als ik vanilla JS moet schrijven check ik tegenwoordig vaker The Definitive Guide dan vroeger. Meestal slechts ter controle en gelukkig weet ik nog wel waar ik wat moet zoeken wink

Smells like Team America

4

Re: Kun jij nog steeds Plain Old JavaScript?

Ik heb eind jaren ’90 op de universiteit de hele Javascript-documentatie van Netscape uitgeprint en doorgeploegd. Er is wel wat blijven hangen.  cool  Toen ik jQuery “ontdekte” was ik wel erg blij dat er iets wat dat de browser-verschillen voor me wegwerkte.

--

5

Re: Kun jij nog steeds Plain Old JavaScript?

Ik kan 10 regels 'oude' javascript code schrijven. De rest gebeurd allemaal via jQuery wat ik kan dromen. Maakt het ook veel makkelijker. Maar ik proef een beetje dat je niet volledig op frameworks moet vertrouwen omdat deze onnodige zaken toevoegen of includen en je vaak met 2 regels 'oude' code hetzelfde effect kan hebben.

Daar ben ik het natuurlijk helemaal mee eens.

6

Re: Kun jij nog steeds Plain Old JavaScript?

Ik gebruik native code bijna niet meer. Binnen ons development team is een tijdje geleden de keuze gemaakt om alles om te schrijven naar jQuery. Iets wat de onderhoudbaarheid van de code ten goede komt.

Overigens vind ik het wel belangrijk dat je als ontwikkelaar kennis van plain ol' JS moet hebben.

7

Re: Kun jij nog steeds Plain Old JavaScript?

Na diep graven kom ik vast nog een heel eind. Maar serieus, waarom? Sure, het was "vroeger" echt cool als je een slider maakte met setTimeout() die ook nog eens elastic was. Nu kost die animatie welgeteld een minuut tongue

Neemt niet weg dat je JavaScript moet snappen en moet weten hoe kostbaar DOM manipulatie, etc. al dan niet is. Uiteindelijk betalen onze klanten echter voor het eindresultaat. Als ik nu in een half uur doe wat vroeger een dag moest kosten (als je het over spannende animatiereeksen hebt), dan is iedereen blij smile

8

Re: Kun jij nog steeds Plain Old JavaScript?

Als je alleen maar libraries gebruikt beperk je jezelf tot de mogelijkheden VAN die library; bijna geen enkele library weet namelijk alle mogelijkheden die javascript (of een native API) zelf biedt op een dermate manier te abstraheren dat je er alles mee kan wat met de taal (of API) zelf ook kan.

Ik vind het dan ook een absolute must om de taal zelf te kennen, en op de hoogte te blijven van alle (nieuwe) ins en outs. Grote libraries die alles voor je doen waren ooit broodnodig, maar worden steeds meer verdrongen door kleine "tool" achtige scripts die hele specifieke dingen voor je oplossen, en prima met elkaar te combineren zijn. Sizzle - nb de selector engine van jQuery zelf - is daar een uistekend voorbeeld van.

En als er natuurlijk niemand meer kan scripten zijn er ook geen mensen meer die die libraries voor ons kunnen maken wink

Echte innovatie komt dus gewoon uit rauwe JS!

9

Re: Kun jij nog steeds Plain Old JavaScript?

Ik vind dit plaatje en rant geweldig.
http://www.doxdesk.com/updates/2009.htm … 116-jquery

10 Laatst bewerkt door Peter Slagter (19-09-2011 14:35:06)

Re: Kun jij nog steeds Plain Old JavaScript?

Peter Nederlof schreef:

Als je alleen maar libraries gebruikt beperk je jezelf tot de mogelijkheden VAN die library; bijna geen enkele library weet namelijk alle mogelijkheden die javascript (of een native API) zelf biedt op een dermate manier te abstraheren dat je er alles mee kan wat met de taal (of API) zelf ook kan.

Ik vind het dan ook een absolute must om de taal zelf te kennen, en op de hoogte te blijven van alle (nieuwe) ins en outs. Grote libraries die alles voor je doen waren ooit broodnodig, maar worden steeds meer verdrongen door kleine "tool" achtige scripts die hele specifieke dingen voor je oplossen, en prima met elkaar te combineren zijn. Sizzle - nb de selector engine van jQuery zelf - is daar een uistekend voorbeeld van.

En als er natuurlijk niemand meer kan scripten zijn er ook geen mensen meer die die libraries voor ons kunnen maken wink

Echte innovatie komt dus gewoon uit rauwe JS!

Eens.

Maar... een grote variatie binnen de frontenders betekent ook een grote variatie in voorkeuren. Ik begrijp goed dat er veel frontenders zijn die zich beperken tot het gebruik van tools als jQuery, zeker als je je eigenlijk wilt beperken tot het schrijven van HTML en CSS, en Javascript het liefst over laat aan iemand anders. Het wordt pas nodig om meer verdiept te raken in de taal zelf, design patterns, browser quirks en onderwerpen als performance op het moment dat je aan complexe(re) applicaties ontwikkelt of zelf bijvoorbeeld een library ontwikkelt voor je eigen software. Hoe groter de codebase en hoe complexer de code, hoe minder afhankelijk je wilt zijn van tools als jQuery of Prototype.

Als je je als frontender aangetrokken voelt tot programmeren, is het belangrijk om je te verdiepen in de taal zelf. Doe je dat consequent, dan zul je vanzelf merken dat je het steeds leuker vind om de libraries te vermijden. Blijft het natuurlijk zo dat deze libraries je leven soms best wat makkelijker maken smile

11

Re: Kun jij nog steeds Plain Old JavaScript?

Peter Nederlof schreef:

Als je alleen maar libraries gebruikt beperk je jezelf tot de mogelijkheden VAN die library; bijna geen enkele library weet namelijk alle mogelijkheden die javascript (of een native API) zelf biedt op een dermate manier te abstraheren dat je er alles mee kan wat met de taal (of API) zelf ook kan.

Veruit de meeste front-enders, waaronder ik, wíllen niet eens meer dan de beperkingen van een library gebruiken, tenzij het over complexe apps gaat. Als ik iets wil show/hiden met een elastische schuifbeweging, een ajax call wil doen en een form wil serializen, waarom zou ik daarvoor alle ins en outs van JavaScript moeten kennen?

De developers die het aantrekt zullen alles weten en innovatief bezig zijn. Maar zoals ik prima een auto kan besturen zonder er eentje te bouwen, vind ik het ook prima om een library te gebruiken zonder er eentje te kunnen schrijven.

NB: Neemt niet weg dat je niet álles met jQuery moet willen doen...

12

Re: Kun jij nog steeds Plain Old JavaScript?

Meestal plain JavaScript voor mij. jQuery gebruik ik soms als het snel en/of eenvoudig moet.

jQuery is een prima library, zeker als het gaat om de meer cosmetische aspecten van een site. De reden dat ik het niet gebruik voor de wat complexere toepassingen is dat het wel heel erg een manier van bottom up development in de hand werkt. De DOM is het uitgangspunt voor jQuery, en niet per se de applicatie of gedragslogica.

Ik voel me het lekkerst om mijn eigen architectuur op te zetten en waar nodig aan te vullen met kleine gespecialiseerde mini libraries, zoals Peter al aangeeft. jQuery kan ook prima zo'n aanvulling zijn voor de selectors en de animatie, maar alleen vanuit een zelf geschreven oplossing.

Rebecca Murphey legt dat hier mooi uit http://blog.rebeccamurphey.com/on-jquer … plications

Kies het juiste gereedschap voor de klus zou ik zeggen.

13

Re: Kun jij nog steeds Plain Old JavaScript?

jfatty schreef:

I used the jQuery diet plugin and lost 10kg in a week!

14

Re: Kun jij nog steeds Plain Old JavaScript?

Beetje dubbel gevoel bij deze vraag. De voornaamste reden om een library te gebruiken, is voor mij omdat het in 99% van de gevallen crossbrowser issues oplost. Ik vind het ook heel raar dat ongeveer alle programmeertalen libraries en frameworks als de normaalste zaak van de wereld zien, maar binnen de javascript community wordt het als iets voor beginners gezien. De Echte Mannen (m/v) bouwen natuurlijk altijd alles van scratch, althans dat is hun eigen mening wink.

Maar goed, er is natuurlijk een verschil tussen allerlei jQuery plugins bij elkaar plakken en een library als basis nemen en daar zelf wat mee bouwen. Dat laatste is wat ik met name doe, en dan ook nog met Prototype.js (:o). Toen ik rond 2006 een library koos, was Prototype.js nog de grootste en de bijbehorende coding style sprak me wel aan. Ik heb toen wel de hele library doorgespit om te kijken hoe ze dingen intern deden, maar het meeste daarvan ben ik al snel weer vergeten smile. Het grootste nadeel van Prototype.js nu is dat de library zo goed als dood is. Ik moet dus over naar iets nieuws, maar dat zal zeker geen jQuery zijn. Ik gok dat ik meer richting micro-libraries zal gaan.

15

Re: Kun jij nog steeds Plain Old JavaScript?

De overdraagbaarheid naar anderen is vaak ook een argument, libraries maken dit een stuk makkelijker. Iedereen plain old js leren zit er nou eenmaal niet in, al is het werken met vaste library onhankelijke design patterns naar mijn mening wel goed mogelijk. Daarbij limiteer je je vanzelf al in het gebruik van de library tot de basis.

16

Re: Kun jij nog steeds Plain Old JavaScript?

Over het algemeen gebruik ik jQuery voor mijn projecten, maar er zijn er een paar geweest waar de functionaliteit zeer beperkt was en performance echt optimaal dat ik het met de hand heb gedaan (denk aan parallax scrolling).

jQuery is fijn maar voegt een hoop overhead toe, ik hou mijn daarom scherp gericht op dit project die eropuit is om een 'stripped down' versie van jQuery aan te bieden.