Zo te zien heeft mijn post nogal wat reacties los gemaakt ;-) Hierbij mijn reactie:
Juist van die enge 4GL dingen zoals Sybase enzo
Robje, nee geen enge dingen. Huidige programmeertalen hebben de grote handicap dat de concepten vrij ver van de denk wereld van de oplosser staan (== programmeur op dit moment) een mens kan nu eenmaal makkelijker visuele informatie verwerken dan abstracte textuele informatie. Kijk maar hoe moderne IDE's steeds meer door vormgeving de programmeur proberen te helpen ...
Hmm.. ik vind het anders uitstekend werken, en ik zou niet terug willen naar 'klassiek' oo.
Hangt ervan wat "het" is. Bedoel je daar taalextensies mee of meer functionele of logische aspecten?
Hier heb ik toch mijn twijfels over. Hoe lang is Delphi er al? Hoe lang is c-builder er al? Verder zie ik niet zozeer in waarom de kracht zozeer in het visuele moet zitten. Het maakt me niet zoveel uit of ik in een bestandje zit te werken, of in een mooie visuele tree bv. Als ik het in mijn hoofd maar goed voor elkaar heb, dan vind ik het medium om die ideeen in die pc te krijgen niet meer zo belangrijk.
Met die laatste zin geef jezelf al aan wat het punt is. Abstract kunnen denken is slechts aanwezig in 5% van deze wereldbevolking. Elke mogelijkheid van het dichter tot de werkelijkheid brengen zal dan ook moeten worden gebruikt. Tegenwoordig is er bijna geen bedrijf meer dat zonder een IDE met grafische tooling een user interface in elkaar sleutelt. Zeg nu niet dat het niet relevant is, want 50% van de code in een systeem wordt gespendeerd aan user interactie.
Delphi, C++ Builder en consorten zijn toch wat meer dan sleur en pleur werk. Wil je iets functioneels, dan moet je zowiezo nog code schrijven.
Wil je iets dat goed en degelijk werkt, dan zal je zeker de nodige aandacht aan die code moeten besteden.
Zie vorige opmerking, 50% heb je al weggeoptimaliseerd. Kijk maar eens hoe weinig glue code je tegenwoordig nog bij hoeft te voegen ... wie schrijft tegenwoordig nog alle componenten zelf?
Ooit was programmeren in het algemeen moeilijk, nu doet elke boer het, waarom? Omdat talen makkelijker geworden zijn, of misschien wel omdat het tegenwoordig beter uitgelegd wordt?
Het is relatief makkelijker geworden, m.a.w. je hebt minder geschoold personeel nodig == goedkoper product. Kijk maar, de echte code klopperij wordt tegenwoordig in oost europa of India gedaan ....
Dus? De pogingen om functionele talen om te vormen naar iets in de praktijk bruikbaars moeten maar gestaakt worden?
Ja en nee als je na 30 jaar nog steeds niks hebt bereikt qua bedrijfsmatige prestatie wordt het toch wel eens tijd om mischien iets anders te overwegen ... ...
hoe houden we software intwikkeling in de hand? Abstractie mogelijkheden en code generatie spelen daarbij een belangrijke rol imho. Lisp was op dat punt al vrijwel het summum. 'Moderne' talen introduceren nog regelmatig features die in Lisp al aanwezig waren. Abstractie mogelijkheden zijn nog steeds beperkt, om over code generatie maar helemaal te zwijgen.
Goed punt, maar lisp is toch echt wel een research toy taal. Leuk voor nieuwe ideeen en kleine dingen, maar onbruikbaar voor echte grote systemen. Imho zou lisp als het zo geweldig is toch na 30 jaar ook wel in het bedrijfsleven mogen worden gebruikt, maar dit is duidelijk niet het geval en het wordt een tijd dat men dit zich realiseerd.
Wat dacht je bijvoorbeeld van XSLT? XSLT is sterk beinvloed door de kennis die James Clark heeft opgedaan van functionele talen. XSLT was geen XSLT geweest als hij niet had
geleerd hoe Haskell in elkaar zit.
Ik heb zelf wat met XSLT geprogrammeerd en ik vond het ontzettend moeilijk. Nu ben ik zelf iemand die zeer goed abstract kan denken, maar ik denk dat XSLT voor velen een brug te ver is. XSLT zal dan ook geen succes worden als programmeertaal. De enige hoop voor het is dat er mischien een tooling komt of vereenvoudige taal die XSLT genereerd om niet een vroege wiegendood te sterven ....
Niet alle programmeurs zijn hetzelfde en niet alle programmeurs doen hetzelfde werk. Voor het grafisch aan elkaar plakken van componenten is uiteraard een markt, maar er wordt gelukkig ook nog ander werk gedaan.
Door de toenemende integratie wordt dit een uitstervende soort. Het wordt namelijk veel goedkoper om het snel en inefficient te doen dan goed en efficient. Deze grens schuift steeds meer de kant van snel en inefficient op. Bedenk dat ik met het sleuren en pleuren van componenten niet alleen grafische zaken bedoelde zoals de huidige IDE dat ondersteunen, maar generieke componenten.
Functionele talen zullen altijd hun nut blijven bewijzen binnen de informatica. Simpelweg omdat ze voor bepaalde toepassingsgebieden de mogelijkheid bieden om problemen te modelleren in een "taal" die daarvoor op maat gemaakt is.
Er zijn zeker domeinen waar een functionele taal zeer goed tot zijn recht komt. Het zijn er alleen niet zoveel

Triest maar waar.
Voeg daar aan toe de volgende mogelijkheden die niet of nauwelijks mogelijk waren met imperatieve / OO talen zoals:
- hogere orde functies
- pattern matching
- recursieve en inductieve definities (zo kinderlijk eenvoudig en uitnodigend tenminste)
- polymorfe functies op basistypen
- partiele parametrisatie
- ingebouwde lambdacalculus
- Lazy evaluatie (waardoor deels met oneindige data gewerkt kan worden)
- definitie in lijstcomprehensies
Allemaal zeer leuke, intressante technieken. Punt is, niemand gebruikt ze, met ze bedoel ik de Philips, Nokia, Microsoft, IBM, Tweakers etc., in andere woorden het bedrijfsleven. Kennelijk is er iets mee en wordt het niet gebruikt. Vraag is waarom niet?