[JS] Frameworks

Pagina: 1
Acties:
  • 197 views sinds 30-01-2008
  • Reageer

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Momenteel ben ik een beetje aan het stoeien met DOJO Toolkit.
http://www.dojotoolkit.org/

Tot nu toe vind ik het prachtig werken. Zeker als ik het vergelijk met het irritante cross-browser geneuzel van gewone "platte" JavaScript.

Daarnaast is het wel lollig om te zien hoe je in een paar regels een robuust stukje AJAX kunt programmeren die, afhankelijk van de browser(instellingen) een andere methodiek kan kiezen voor het transport.

Ook vind ik het event systeem fijner werken, met wrapper objecten om de native event objecten heen, zodat je lekker gemakkelijk een eind weg kunt proggen.

Tegelijkertijd ben ik wel een beetje bang dat ik door het gebruik van zo'n toolkit zelf de controle kwijtraak over wat er allemaal gebeurt en, wanneer ik iets aparts nodig heb en het framework niet voldoet, het bijna niet te programmeren is.

Wat is jullie ervaring met DOJO en dergelijke toolkits? In vergelijking met platte JS en ten opzichte van elkaar?

Fat Pizza's pizza, they are big and they are cheezy


  • Coju
  • Registratie: Oktober 2000
  • Niet online
Persoonlijk ben ik fan van jQuery. Is niet zo groot en je kan er toch erg veel mee. De syntax is makkelijk en intuitief. Meer info op: www.jquery.com Binnenkort komt versie 1.1 uit.

  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

YUI Zelf totaal niet mee gewerkt maar het feit dat er een groot bedrijf achter zit (Yahoo) geeft wel een bepaalde mate van zekerheid met betrekking tot ondersteuning.

Systeem | Strava


  • Johnny
  • Registratie: December 2001
  • Laatst online: 10:09

Johnny

ondergewaardeerde internetguru

Mijn ervaring met toolkits is dat ze altijd net niet doen wat ik er mee wil en dan ik sneller af ben met standaard JavaScript en dat het dan ook weer tientallen tot hondereden kilobytes by request scheelt omdat er niet allerlei onnodige troep bij zit.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Johnny schreef op zondag 07 januari 2007 @ 20:17:
Mijn ervaring met toolkits is dat ze altijd net niet doen wat ik er mee wil en dan ik sneller af ben met standaard JavaScript en dat het dan ook weer tientallen tot hondereden kilobytes by request scheelt omdat er niet allerlei onnodige troep bij zit.
Hier was ik in eerste instantie bij Dojo ook bang voor, maar het leuke is dat je gewoon alles door elkaar kunt gooien. De ene keer gebruik je Dojo, dan weer wat standaard JS en dan weer Dojo.

Het is idd wel een groot package dat een client moet downloaden, maar gelukkig heeft het een packagesysteem waarmee je aan kunt geven wat welke keer gebruikt wordt en dus gedownload moet worden.

Fat Pizza's pizza, they are big and they are cheezy


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:11

crisp

Devver

Pixelated

Frameworks/toolkits/libraries hebben een aantal grote nadelen:

1) Je leert enkel de specifieke syntax, methods en properties van een tool, je leert niets van javascript zelf
2) abstracties brengen beperkingen met zich mee
3) abstracties lekken: bugs in de library zelf, performance issues, browser behavior die niet voorzien is etcetera, en je kan dat zelf niet oplossen omdat je enkel de tool kent maar geen javascript (zie 1)

Het nadeel van javascript is dat het 'platform' waarop het draait (browsers) niet homogeen is. Het is onmogelijk overal rekening mee te houden. Een javascript library abstraheert die verschillen zoveel mogelijk weg, maar in welke mate en op welke manier? Vroeg of laat loop je zeker tegen een probleem aan, en dan?

Mijn advies is altijd: leer eerst gewoon javascript. Tegen de tijd dat je dat goed onder de knie hebt en weet hebt van verschillen in browser-implementaties heb je de toolkits, frameworks en libraries ook niet meer nodig - waarschijnlijk heb je dan zelf al een aardige toolkit opgebouwd :P (maar het is wel leerzaam om ze te ontleden en daar weer een aantal handige dingen uit te halen).

Intentionally left blank


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
crisp schreef op zondag 07 januari 2007 @ 22:56:
Frameworks/toolkits/libraries hebben een aantal grote nadelen:

1) Je leert enkel de specifieke syntax, methods en properties van een tool, je leert niets van javascript zelf
2) abstracties brengen beperkingen met zich mee
3) abstracties lekken: bugs in de library zelf, performance issues, browser behavior die niet voorzien is etcetera, en je kan dat zelf niet oplossen omdat je enkel de tool kent maar geen javascript (zie 1)

Het nadeel van javascript is dat het 'platform' waarop het draait (browsers) niet homogeen is. Het is onmogelijk overal rekening mee te houden. Een javascript library abstraheert die verschillen zoveel mogelijk weg, maar in welke mate en op welke manier? Vroeg of laat loop je zeker tegen een probleem aan, en dan?

Mijn advies is altijd: leer eerst gewoon javascript. Tegen de tijd dat je dat goed onder de knie hebt en weet hebt van verschillen in browser-implementaties heb je de toolkits, frameworks en libraries ook niet meer nodig - waarschijnlijk heb je dan zelf al een aardige toolkit opgebouwd :P (maar het is wel leerzaam om ze te ontleden en daar weer een aantal handige dingen uit te halen).
Ik werk ondertussen ook al weer een tijdje met JS, maar om te zeggen dat ik alle problemen waar ik tegenaan gelopen ben op een super manier geanalyseerd en opgelost heb, dat ook weer niet. Ik heb meestal niet veel tijd gekregen om een framework om JS heen te bouwen in de baas zijn tijd. :P Bovendien los je 3 jaar geleden een probleem op en weet je het, maar een paar jaar later is er weer een nieuwe browser versie uit en moet je misschien weer nieuwe dingen uitzoeken.

Als je dan een (goede) toolkit gebruikt waar flink aan gewerkt wordt, dan is het met een beetje geluk alleen een kwestie van je versie updaten. (ja, ik weet het. dat is vrij theoretisch gezegd :))

Bovendien heb ik me nog nooit beziggehouden met bijvoorbeeld animaties in JS. Eigenlijk vooral omdat ik het een klerewerk vond om uit te zoeken, maar met Dojo is het een fluitje van een cent.

Aan de andere kant ben ik het wel met je eens dat je eerst JS moet kennen. De documentatie is namelijk aardig, maar om echt te weten wat het doet, moet je toch echt in de source kijken. Bovendien ervaar ik de performance van Dojo als zwaar ruk, dus ik denk dat ik toch regelmatig op standaard JS (en Crisp DOM walking functies :)) terugval.

Fat Pizza's pizza, they are big and they are cheezy


  • Optix
  • Registratie: Maart 2005
  • Laatst online: 19-11 11:46
Coju schreef op zondag 07 januari 2007 @ 19:47:
Persoonlijk ben ik fan van jQuery. Is niet zo groot en je kan er toch erg veel mee. De syntax is makkelijk en intuitief...
Ik gebruik jQuery ook al een tijdje, moet zeggen dat het niet helemaal werkt (qua animaties) zoals ik dat wou dus heb wel flink wat aanpassingen aangebracht. Verder is jQuery mooi framework, duidelijk gecode en omdat het niet zo groot is werkt het ook lekker snel.

[ Voor 6% gewijzigd door Optix op 08-01-2007 14:53 ]

.


  • MacWebber
  • Registratie: September 2000
  • Niet online
Uiteraard is het handig/essentieel om zelf ook je dosis JavaScript kennis te hebben, al was het maar om eens te kunnen zien wat zo'n framework of library uitspookt.

Voordeel van de meeste libraries (t.o.v. zelf vogelen) is wel dat de bugs er over het algemeen sneller uit worden gehaald doordat er meer mensen mee werken en dat de kans dat het in meerdere browsers ongeveer hetzelfde resultaat geeft ook groter is.

Dat gezegd hebbende, mijn favoriet: http://script.aculo.us/

Verwijderd

Ik gebruik mooTools nogal eens (http://mootools.net/). Werkt snel & simpel, en das wel zo prettig :)

Verder met ^^.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Wat ik wel merk is dat het belangrijk is dat je naast het framework wel plain JS kunt blijven gebruiken en dus niet helemaal aan het framework vast zit. Tot nu toe slaagt Dojo daar aardig in. Wanneer ik het niet 123 kan vinden, prog ik het wel ff in JS en als ik een mooie cross browser Dojo functie tegenkom, dan probeer ik die.
Daar ben je redelijk vrij in bij Dojo heb ik de indruk. Ik weet niet of dat bij de anderen ook zo is...

Fat Pizza's pizza, they are big and they are cheezy


  • Yo-han
  • Registratie: December 2001
  • Laatst online: 02-10 14:12

Yo-han

nope.

Ben met Crisp eens dat je eerst zou moeten leren hoe je degelijke cross-browser JS schrijven moet. Wanneer je dit volledig beheerst heb je al die frameworks niet meer nodig en scheelt het je weer > 50kb aan javascript.

Zelf gebruik ik meestal alleen prototype (de basis voor veel bekenden frameworks als script.aculo.us en MooFX). Maar dat is vooral om dat ik lui ben en de meest gebruikte functies allemaal zijn afgevangen in dat bestand.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Zijn er verder nog mensen met Dojo ervaring? Ik dacht eerst dat dat toch wel de beste/meest gebruikte was, maar ik heb er nog niemand over gehoord...

Fat Pizza's pizza, they are big and they are cheezy


  • Cartman!
  • Registratie: April 2000
  • Niet online
Hier ook een MooTools fan. Zeker niet 50KB maar minder de de helft daarvan. Verder kan ik best cross browser javascripten maar met MooTools is t zoveel sneller en gelikter (te maken) met lappen minder code dan dat je t zelf maakt nu.

prototype is geen basis meer van MooTools, wel nog in die smaak verkrijgbaar maar ze hebben zelf een nieuwe basis zover ik begreep.

Verwijderd

Ik ben niet zo'n fan van frameworks. Ik bouw liever zelf alles van de grond af aan op (wel met behulp van framework code als referentie) zodat ik snap hoe het werkt. Verder zitten in frameworks veel functies die nooit gebruikt worden.

  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Ik heb dat vroeger ook altijd gehad. Dat ik alles zelf wilde programmeren en niet teveel van andere frameworks/api's afhankelijk wilde zijn. Tot je grotere projecten gaat doen en het niet meer te doen is om alle technologische veranderingen bij te houden.

Dan gaat het "kopiëren" van code uit andere frameworks ook problemen opleveren, want wat gebeurt er als die versie die jij voor je inspiratie gebruikt hebt, toevallig net een paar dikke vette bugs bevat? Dan loop je tegen problemen aan die je waarschijnlijk zelf gaat fixen, terwijl het framework waar tig mensen aan werken waarschijnlijk binnenkort een patch heeft waar bovendien redelijk wat kwaliteitsslagen overheen gegaan zijn omdat er zoveel mensen naar kijken.

Ik werk zelf voornamelijk server side en daar zijn dergelijke dingen misschien crucialer, zoals security en zo en moet je absuluut dergelijke zaken niet zelf willen programmeren. Aan de andere kant gaan de ontwikkelingen client side zeker zo snel. Vooral zelf cross browser support ondersteuning ontwikkelen lijkt mij vrijwel onmogelijk bij te houden en zonde van de tijd. (hoewel het natuurlijk wel interessant is :))

Begrijp me niet verkeerd. Frameworks zijn niet heilig, maar ik vind het te gemakkelijk om ze aan de kant te schuiven omdat je een paar functies niet gebruikt.

Fat Pizza's pizza, they are big and they are cheezy


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:11

crisp

Devver

Pixelated

JKVA schreef op woensdag 10 januari 2007 @ 20:44:
Ik heb dat vroeger ook altijd gehad. Dat ik alles zelf wilde programmeren en niet teveel van andere frameworks/api's afhankelijk wilde zijn. Tot je grotere projecten gaat doen en het niet meer te doen is om alle technologische veranderingen bij te houden.
Dat hoort juist onderdeel te zijn van je werk: bijblijven met de technologie. Tenzij je al uitzicht hebt op een job in een heel andere branche over 10 jaar ofzo ;)
Dan gaat het "kopiëren" van code uit andere frameworks ook problemen opleveren, want wat gebeurt er als die versie die jij voor je inspiratie gebruikt hebt, toevallig net een paar dikke vette bugs bevat? Dan loop je tegen problemen aan die je waarschijnlijk zelf gaat fixen, terwijl het framework waar tig mensen aan werken waarschijnlijk binnenkort een patch heeft waar bovendien redelijk wat kwaliteitsslagen overheen gegaan zijn omdat er zoveel mensen naar kijken.
Show me a library and I'll show you a bug in it. Bugs hou je altijd, in ieder geval is een bug in een produkt van je eigen hand meestal makkelijker te fixen dan een bug in andermans code ;)
Ik werk zelf voornamelijk server side en daar zijn dergelijke dingen misschien crucialer, zoals security en zo en moet je absuluut dergelijke zaken niet zelf willen programmeren. Aan de andere kant gaan de ontwikkelingen client side zeker zo snel. Vooral zelf cross browser support ondersteuning ontwikkelen lijkt mij vrijwel onmogelijk bij te houden en zonde van de tijd. (hoewel het natuurlijk wel interessant is :))
Zonde van jou tijd, maar niet zonde van de tijd van degenen die de library onderhouden? Iemand moet het toch doen? ;)
Begrijp me niet verkeerd. Frameworks zijn niet heilig, maar ik vind het te gemakkelijk om ze aan de kant te schuiven omdat je een paar functies niet gebruikt.
Ik ben misschien te puristisch daarin en houd niet van C&P-werk; ik wil weten waar ik mee bezig ben. Een black box is juist iets waar mijn nekharen van overeind gaan staan ;)

Intentionally left blank


  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
crisp schreef op zondag 07 januari 2007 @ 22:56:
1) Je leert enkel de specifieke syntax, methods en properties van een tool, je leert niets van javascript zelf
2) abstracties brengen beperkingen met zich mee
3) abstracties lekken: bugs in de library zelf, performance issues, browser behavior die niet voorzien is etcetera, en je kan dat zelf niet oplossen omdat je enkel de tool kent maar geen javascript (zie 1)
1) Wat houd mij tegen de standaard Javascript objecten en het DOM naast dit framework te leren? Daarnaast bestaat er gewoon documentatie. De specifieke syntax begrijp ik niet, die word namelijk gedefinieerd in de ECMA standaard, Javascript bied geen ruimte om de syntax uit te breidden.
2) MapReduce is een prima voorbeeld dat dat niet waar hoeft te zijn. Daar naast kan het prima zijn dat die restricties acceptabel zijn binnen het project. Waarschijnlijk omdat je niet 'low-level' bezig wilt en hoeft te zijn in veel gevallen.
3) Het voordeel is ook waar: er zit over het algemeen een hele community achter zo'n library welke er voor zorgt dat bugs sneller opgelost worden, beter getest en ondersteund word. Dat scheelt je in tijd als je het zelf zou moeten doen. Ik heb echt niet de resources om een hoop heel variërende platforms te ondersteunen, noch heb ik een team achter me dat dat kan.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:11

crisp

Devver

Pixelated

PrisonerOfPain schreef op woensdag 10 januari 2007 @ 23:54:
[...]

1) Wat houd mij tegen de standaard Javascript objecten en het DOM naast dit framework te leren? Daarnaast bestaat er gewoon documentatie. De specifieke syntax begrijp ik niet, die word namelijk gedefinieerd in de ECMA standaard, Javascript bied geen ruimte om de syntax uit te breidden.
In theorie kan je een javascript interpreter schrijven in javascript waarbij je alternatieve syntax kan introduceren :P
Maar wat ik bedoel is dat schrijvers van libraries hun eigen voorkeur qua syntax gebruiken waarbij javascript zelf ook alternatieven biedt. Dat geeft een eenzijdig beeld.
Ook qua oplossingen zijn libraries natuurlijk een eenzijdige benadering die niet noodzakelijk de beste hoeft te zijn.
2) MapReduce is een prima voorbeeld dat dat niet waar hoeft te zijn. Daar naast kan het prima zijn dat die restricties acceptabel zijn binnen het project. Waarschijnlijk omdat je niet 'low-level' bezig wilt en hoeft te zijn in veel gevallen.
Dat is een voorbeeld van een eenvoudige abstractie die in ieder geval lekt qua performance (extra functiecalls) en de global namespace extra vervuilt :P

Een beter voorbeeld is misschien wel prototype's $() (tsja, naamgeving schijnt bij sommigen ook niet belangrijk te zijn :P) - overmatig gebruik van deze abstractie kan behoorlijk negatieve gevolgen hebben voor de performance van je applicatie terwijl het op het eerste gezicht niet duidelijk is waarom dat zo is...

Verder kan je pas bepalen of restricties acceptabel zijn als je ook precies weet wat de restricties zijn van een bepaalde library. Documentatie (als die er al is) is daar meestal niet specifiek in dus heb je toch al een zeker mate van javascript kennis nodig om dat uit de code te kunnen halen.
3) Het voordeel is ook waar: er zit over het algemeen een hele community achter zo'n library welke er voor zorgt dat bugs sneller opgelost worden, beter getest en ondersteund word. Dat scheelt je in tijd als je het zelf zou moeten doen. Ik heb echt niet de resources om een hoop heel variërende platforms te ondersteunen, noch heb ik een team achter me dat dat kan.
Een 'hele community' is in de praktijk vaak maar een handjevol mensen (sommige libraries zijn zelfs one-men shows) en de prioriteiten van zo'n community zijn niet noodzakelijk de jouwe.

Overigens vind ik de kwaliteit van de meeste libraries maar middelmatig.

Intentionally left blank


  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
crisp schreef op donderdag 11 januari 2007 @ 09:00:
[...]

In theorie kan je een javascript interpreter schrijven in javascript waarbij je alternatieve syntax kan introduceren :P
Dan is het geen Javascript meer. Ik snap je punt wel, als je naar (bijvoorbeeld) prototype.js kijk die je ook dat ze hun classes op een eenduidige en standaard manier opbouwen. Waarom? Waarschijnlijk omdat die syntax zich voor hun bewezen heeft en het meest lijkt op wat ze gewend zijn.
Maar wat ik bedoel is dat schrijvers van libraries hun eigen voorkeur qua syntax gebruiken waarbij javascript zelf ook alternatieven biedt. Dat geeft een eenzijdig beeld.
Ook qua oplossingen zijn libraries natuurlijk een eenzijdige benadering die niet noodzakelijk de beste hoeft te zijn.
Echter als je technische analyse goed uitgevoerd is, heb je een library die het dichtst aan sluit bij wat jij (of jou team) wenst te hebben. Zie het als een kostten/baten analyse. De ene keer kun je een framework prima gebruiken, de andere keer niet. En daarbij: jij hebt waarschijnlijk ook een voorkeur om bepaalde dingen te doen. Sluit die aan bij andere mensen? Waarschijnlijk niet.
Dat is een voorbeeld van een eenvoudige abstractie die in ieder geval lekt qua performance (extra functiecalls) en de global namespace extra vervuilt :P
Dan kijk je niet verder als je neus lang is. (Hoewel het een theoretisch voorbeeld is omdat Javascript bij mijn weten geen ondersteuning heeft voor Threading). Is het idee achter MapReduce dat de initiële start-up cost zich heel makkelijk terug betaalt zodra je je applicatie omhoog gaat schalen (meer cores/servers) met zo min mogelijk moeite. (Je hoeft maar één of twee functies aan te passen).

Over de globale namespace kan ik kort zijn: nou en. Wil je dan maar geen functies meer gebruiken omdat die allemaal je globale namespace vervuilen? Of wou je het in een object steken? Waarom? Dit zijn twee functies die haast in je globale scope thuis horen, wat mij betreft.

Nogmaals, ik weet dat MapReduce amper van toepassing is op de standaard toepassingen van Javascript.
Een beter voorbeeld is misschien wel prototype's $() (tsja, naamgeving schijnt bij sommigen ook niet belangrijk te zijn :P) - overmatig gebruik van deze abstractie kan behoorlijk negatieve gevolgen hebben voor de performance van je applicatie terwijl het op het eerste gezicht niet duidelijk is waarom dat zo is...
Overmatig gebruik van alles kan een negatief gevolg hebben voor de performance van je applicatie. Moet je het daarom maar helemaal niet meer gebruiken? Je dient zelf inschattingen te kunnen maken over het nut van die functie, hersenloze zijn nu eenmaal geen goede developers.

De naamgeving, ben het deels met je eens. De $ is erg nietszeggend maar het alternatief als je de functie getElementFor(...) gaat noemen is het punt van de korte naam een beetje weg en kun je haast net zo goed ElementX.getElementById(...) gebruiken. (En de andere varianten die $() ondersteund).
Verder kan je pas bepalen of restricties acceptabel zijn als je ook precies weet wat de restricties zijn van een bepaalde library. Documentatie (als die er al is) is daar meestal niet specifiek in dus heb je toch al een zeker mate van javascript kennis nodig om dat uit de code te kunnen halen.
Volgens mij is voor ieder van de libraries die in dit topic genoemd is gewoon documentatie aanwezig, al weet ik niet of ook voor iedere library gespecificeerd is wat de restricties zijn. Ik weet dat ik me op glad ijs begeef maar meestal is er om heen te werken (de frameworks zijn over het algemeen opensource, en je hoeft natuurlijk delen niet te gebruiken). Daarbij kies je een framework omdat je verwacht dat 't je meer op zal leveren als zal kostten.
Een 'hele community' is in de praktijk vaak maar een handjevol mensen (sommige libraries zijn zelfs one-men shows) en de prioriteiten van zo'n community zijn niet noodzakelijk de jouwe.
Mijn punt blijft, een community is over het algemeen veelzijdiger als jij. Ik kan in m'n eentje gewoon niet rekening houden met obscure browser X, wellicht omdat ik er niet van gehoord heb of omdat ik er geen tijd voor heb. Daarbij, kies je een framework om z'n bewezen technieken niet omdat je verwacht dat feature Y nog komen gaat. Als de prioriteiten niet aansluiten, tsja, een framework is nog steeds een basis waar je zelf naar gelieve aan toe kunt voegen wat je wilt.
Overigens ben je dom bezig als je de community (en grootte daarvan) niet mee neemt in je analyse.
Overigens vind ik de kwaliteit van de meeste libraries maar middelmatig.
Voor je argumenten is wel wat te zeggen hoor maar het klinkt nogal Me vs. The World en Reinventing The Wheel achtig. Not Invented Here, misschien.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:11

crisp

Devver

Pixelated

PrisonerOfPain schreef op donderdag 11 januari 2007 @ 12:26:
[...]

Dan is het geen Javascript meer. Ik snap je punt wel, als je naar (bijvoorbeeld) prototype.js kijk die je ook dat ze hun classes op een eenduidige en standaard manier opbouwen. Waarom? Waarschijnlijk omdat die syntax zich voor hun bewezen heeft en het meest lijkt op wat ze gewend zijn.
Tsja, je hebt inderdaad van die gasten die vinden dat javascript meer op Ruby zou moeten lijken, of meer op Python, of meer op Java. Als je er zo over denkt ga dan aub geen javascript library schrijven maar hou het bij je eigen taal.. :P
Echter als je technische analyse goed uitgevoerd is, heb je een library die het dichtst aan sluit bij wat jij (of jou team) wenst te hebben. Zie het als een kostten/baten analyse. De ene keer kun je een framework prima gebruiken, de andere keer niet. En daarbij: jij hebt waarschijnlijk ook een voorkeur om bepaalde dingen te doen. Sluit die aan bij andere mensen? Waarschijnlijk niet.
Daarom zal ik ook nooit een javascript library voor algemeen gebruik schrijven ;)
[...]
Nogmaals, ik weet dat MapReduce amper van toepassing is op de standaard toepassingen van Javascript.
Tsja, ik vind het eigenlijk meer een voorbeeld van abstraheren enkel om het abstraheren. Overigens zou ik map() en join() prototypen op het Array object als ik het nodig zou hebben ;)
Overmatig gebruik van alles kan een negatief gevolg hebben voor de performance van je applicatie. Moet je het daarom maar helemaal niet meer gebruiken? Je dient zelf inschattingen te kunnen maken over het nut van die functie, hersenloze zijn nu eenmaal geen goede developers.
En daarmee onderschrijf je mijn punt: je zal dus toch ook gewoon goed verstand van de taal zelf moeten hebben...
De naamgeving, ben het deels met je eens. De $ is erg nietszeggend maar het alternatief als je de functie getElementFor(...) gaat noemen is het punt van de korte naam een beetje weg en kun je haast net zo goed ElementX.getElementById(...) gebruiken. (En de andere varianten die $() ondersteund).
Oh ja, goede programmeurs zijn lui, dat was ik even vergeten... :P
Volgens mij is voor ieder van de libraries die in dit topic genoemd is gewoon documentatie aanwezig, al weet ik niet of ook voor iedere library gespecificeerd is wat de restricties zijn. Ik weet dat ik me op glad ijs begeef maar meestal is er om heen te werken (de frameworks zijn over het algemeen opensource, en je hoeft natuurlijk delen niet te gebruiken).
Waarbij gedegen javascript kennis ook weer onontbeerlijk is...
Daarbij kies je een framework omdat je verwacht dat 't je meer op zal leveren als zal kostten.
Als je een goede analyse hebt gedaan en op basis daarvan een gedegen keuze hebt gemaakt dan zal het vast tijd kunnen besparen... zolang je niet onverhoops alsnog tegen bugs of tekortkomingen aanloopt. Dat hoeft natuurlijk niet te gebeuren, maar toch - het blijft een risico en als je zelf geen JS know-how in huis hebt zou ik dat risico niet willen lopen.
Mijn punt blijft, een community is over het algemeen veelzijdiger als jij. Ik kan in m'n eentje gewoon niet rekening houden met obscure browser X, wellicht omdat ik er niet van gehoord heb of omdat ik er geen tijd voor heb. Daarbij, kies je een framework om z'n bewezen technieken niet omdat je verwacht dat feature Y nog komen gaat. Als de prioriteiten niet aansluiten, tsja, een framework is nog steeds een basis waar je zelf naar gelieve aan toe kunt voegen wat je wilt.
Overigens ben je dom bezig als je de community (en grootte daarvan) niet mee neemt in je analyse.
obscure browser X moet je gewoon negeren; meestal bepaal je vantevoren voor welke browsers je applicatie geschikt moet zijn en check je of de library daar voldoende ondersteuning voor biedt (overigens: veel libraries bieden ook maar beperkt ondersteuning voor oudere browsers zoals IE5.x en MAC/IE).
Voor je argumenten is wel wat te zeggen hoor maar het klinkt nogal Me vs. The World en Reinventing The Wheel achtig. Not Invented Here, misschien.
Dat laatste zal ik zeker niet ontkennen, ik heb mijn eigen manier van werken en programeren en ik ben een enorme perfectionist wat dat betreft. Iets anders is dan inderdaad vaak niet goed genoeg in mijn ogen ;)

Intentionally left blank


  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
crisp schreef op donderdag 11 januari 2007 @ 13:20:
Tsja, je hebt inderdaad van die gasten die vinden dat javascript meer op Ruby zou moeten lijken, of meer op Python, of meer op Java. Als je er zo over denkt ga dan aub geen javascript library schrijven maar hou het bij je eigen taal.. :P
Ik moest eigenlijk vooral aan prototype.js denken toen ik dat postte omdat deze classes maakt met een syntax die meer richting een 'normale' OOP taal gaat dan hoe ik het standaard in Javascript zou doen. (En gewend was om te doen).
Tsja, ik vind het eigenlijk meer een voorbeeld van abstraheren enkel om het abstraheren. Overigens zou ik map() en join() prototypen op het Array object als ik het nodig zou hebben ;)
Goed dat laatste is een implementatie verschil, maar het originele punt blijft. Abstractie hoeft niet altijd beperkingen mee te brengen, het kan ook prima mogelijkheden creëren.
En daarmee onderschrijf je mijn punt: je zal dus toch ook gewoon goed verstand van de taal zelf moeten hebben...
Ik weet dat Javascript het ondergeschoven kindje is in dit wereldje en dat Javascript er vaak bij gedaan word. (Is zonde want volgens mij is het een erg innovatieve en flexibele taal). Daarbij kun je vrijwel niks zonder een gedegen achtergrond in willekeurige programmeertaal. (Tenzij je het leuk vind inefficiënt bezig te zijn). Dat gezegd te hebben faal je ook ontiegelijk als je Qt in C++ wilt gebruiken zonder die taal te doorgronden. Je kunt niet programmeren zonder je taal te begrijpen.
Als je een goede analyse hebt gedaan en op basis daarvan een gedegen keuze hebt gemaakt dan zal het vast tijd kunnen besparen... zolang je niet onverhoops alsnog tegen bugs of tekortkomingen aanloopt. Dat hoeft natuurlijk niet te gebeuren, maar toch - het blijft een risico en als je zelf geen JS know-how in huis hebt zou ik dat risico niet willen lopen.
Die bugs en tekortkomingen zullen ook in je eigen spul zitten, je kunt inderdaad niet alles voorzien. Dat hoeft ook niet, want dat zul je nu eenmaal nooit kunnen. Daarbij zul je zonder Javascript kennis überhaupt meer fouten creëren, het framework dient dan enkel als façade voor je wanprestaties.
obscure browser X moet je gewoon negeren;
Als we dat hadden gedaan was Firefox nooit geweest wat het nu is geworden.

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:11

crisp

Devver

Pixelated

PrisonerOfPain schreef op donderdag 11 januari 2007 @ 14:33:
[...]

Ik moest eigenlijk vooral aan prototype.js denken toen ik dat postte omdat deze classes maakt met een syntax die meer richting een 'normale' OOP taal gaat dan hoe ik het standaard in Javascript zou doen. (En gewend was om te doen).
De 'object-notation' ja; dat is overigens iets waar ik zelf ook wel van gecharmeerd ben :)
Goed dat laatste is een implementatie verschil, maar het originele punt blijft. Abstractie hoeft niet altijd beperkingen mee te brengen, het kan ook prima mogelijkheden creëren.
De vraag is of je die mogelijkheden wel nodig hebt, en of je abstractie bepaalde andere mogelijkheden niet uitsluit ;)
Ik weet dat Javascript het ondergeschoven kindje is in dit wereldje en dat Javascript er vaak bij gedaan word. (Is zonde want volgens mij is het een erg innovatieve en flexibele taal). Daarbij kun je vrijwel niks zonder een gedegen achtergrond in willekeurige programmeertaal. (Tenzij je het leuk vind inefficiënt bezig te zijn). Dat gezegd te hebben faal je ook ontiegelijk als je Qt in C++ wilt gebruiken zonder die taal te doorgronden. Je kunt niet programmeren zonder je taal te begrijpen.
Helaas worden op dit moment de libraries toch veel gebruikt door copy-paste cowboys...
Die bugs en tekortkomingen zullen ook in je eigen spul zitten, je kunt inderdaad niet alles voorzien. Dat hoeft ook niet, want dat zul je nu eenmaal nooit kunnen. Daarbij zul je zonder Javascript kennis überhaupt meer fouten creëren, het framework dient dan enkel als façade voor je wanprestaties.
Da's een mooie quote waar ik me 100% bij aansluit :)
Als we dat hadden gedaan was Firefox nooit geweest wat het nu is geworden.
Daar moet ik dan misschien een nuance in aanbrengen: obscure browsers in die zin dat ze afwijken van standaard gedrag en met een te verwaarlozen marktaandeel.

Intentionally left blank


  • JKVA
  • Registratie: Januari 2004
  • Niet online

JKVA

Design-by-buzzword fanatic

Topicstarter
Hmm, toch blijf ik bij de stelling dat frameworks wel degelijk nut hebben.

- Ok, je moet ze eerst leren...
- En ok, er zijn functies die je niet gebruikt. ..
- En ok, sommige frameworks bezorgen de anderen een slechte naam door mindere kwaliteit/documentatie/etc...

Maar het idee van een framework blijft dat je sommige dingen gewoonweg niet wilt programmeren. Als je het heel bot bekijkt, kun je JavaScript zelf ook als framework zien dat low level zaken voor de ontwikkelaar verbergt. Je gaat gewoon op een steeds hoger niveau werken en dat is volgens mij wel de toekomst van IT in NL. Veel algoritmes programmeren en frameworks schrijven kunnen ze in India veel goedkoper, maar de business case uitwerken tot een applicatie kunnen wij weer veel beter. Waaerom kunnen we ons dan niet op die kwaliteit focussen?

Fat Pizza's pizza, they are big and they are cheezy

Pagina: 1