Via Slashdot kwam ik net op een artikeltje op ZD-Net. Ik vond het wel grappig om te lezen (ondanks zijn sterk verkorte en versimpelde weegave) en daarnaast verkondigt het een mening die ik zelf ook al tijden tracht uit te dragen. Koren op m'n molen noemen ze dat geloof ik
.
Het artikel behandelt in niet al te technische bewoordingen het probleem dat er eigenlijk voor een programmeur maar verrot weinig te kiezen valt als het om programmeertalen gaat. De kern van het verhaal is de stelling dat alle talen in .NET en het Java Platform in essentie hetzelfde zijn (zelfs de skin vergelijk, die we hier besproken hebben: [topic=403753/1/25] komt weer naar voren).
De auteur meldt (IMHO terecht) dat alle talen die op dit moment op .NET draaien zwaar aangepast zijn om ook in de CLR te kunnen draaien. De meest treffende voorbeelden hiervan zijn uiteraard Java en VB die respectievelijk getransformeerd zijn in J# en VB .NET. Ondanks dat je graag zou willen geloven dat dit gedaan is om de taal te verbeteren, zit er simpelweg een noodzaak achter. Zonder deze aanpassingen zijn Java en VB praktisch onbruikbaar in .NET.
Uiteindelijk komt het er op neer dat alles een variant is van C#. C# is namelijk de 'versyntaxing' van het object-model van .NET. Je zou daarom in feite kunnen zeggen dat alle talen die op .NET moeten draaien naar C# gecompileerd moeten kunnen worden. .NET is en blijft een object-georienteerde runtime.
Bij het Java Platform geldt hetzelfde: Java is vrijwel een 1 op 1 vertaling van het object-model van de Java Virtual Machine.
Nu ben je waarschijnlijk bang dat ik weer opnieuw het multi-language aspect door wil gaan zagen, maar nee: dat valt mee
.
Wat wil je dan wel?
De kern van de huidige ontwikkeling is imho dat er in de komende jaren twee hoofdplatformen zullen zijn voor professionele en moderne ontwikkeling: .NET en J2EE. Deze omgevingen worden echter allebei beheerst door object-georienteerde talen: Java en C#. Talen die niet object-georienteerd zijn en toch willen draaien in .NET of J2EE zullen zichzelf moeten kunnen indrukken in OO-termen. De kern van de zaak is dat nog steeds de hoofd-ontwikkeling beheert zal worden door in feite maar 1 taal/paradigma: JavaC#.
Er zijn al tijden andere paradigma's in ontwikkeling die wel gebruikt worden, maar dan toch voornamelijk in niche omgevingen en de onderzoekswereld. Mijn vraag is: wanneer denk jij dat deze andere paradigma's een serieuze keuze zullen worden en naar aanleiding van welke ontwikkelingen?
De introductie van andere paradigma's in 'normale'-ontwikkeling zou naast een grotere keuze de onder andere de productiviteit kunnen verhogen, leiden tot minder bugs, maar wellicht ook een groot probleem voor het onderwijs.
Show * mbravenboer the future
.
Het artikel behandelt in niet al te technische bewoordingen het probleem dat er eigenlijk voor een programmeur maar verrot weinig te kiezen valt als het om programmeertalen gaat. De kern van het verhaal is de stelling dat alle talen in .NET en het Java Platform in essentie hetzelfde zijn (zelfs de skin vergelijk, die we hier besproken hebben: [topic=403753/1/25] komt weer naar voren).
De auteur meldt (IMHO terecht) dat alle talen die op dit moment op .NET draaien zwaar aangepast zijn om ook in de CLR te kunnen draaien. De meest treffende voorbeelden hiervan zijn uiteraard Java en VB die respectievelijk getransformeerd zijn in J# en VB .NET. Ondanks dat je graag zou willen geloven dat dit gedaan is om de taal te verbeteren, zit er simpelweg een noodzaak achter. Zonder deze aanpassingen zijn Java en VB praktisch onbruikbaar in .NET.
Uiteindelijk komt het er op neer dat alles een variant is van C#. C# is namelijk de 'versyntaxing' van het object-model van .NET. Je zou daarom in feite kunnen zeggen dat alle talen die op .NET moeten draaien naar C# gecompileerd moeten kunnen worden. .NET is en blijft een object-georienteerde runtime.
Bij het Java Platform geldt hetzelfde: Java is vrijwel een 1 op 1 vertaling van het object-model van de Java Virtual Machine.
Nu ben je waarschijnlijk bang dat ik weer opnieuw het multi-language aspect door wil gaan zagen, maar nee: dat valt mee
Wat wil je dan wel?
De kern van de huidige ontwikkeling is imho dat er in de komende jaren twee hoofdplatformen zullen zijn voor professionele en moderne ontwikkeling: .NET en J2EE. Deze omgevingen worden echter allebei beheerst door object-georienteerde talen: Java en C#. Talen die niet object-georienteerd zijn en toch willen draaien in .NET of J2EE zullen zichzelf moeten kunnen indrukken in OO-termen. De kern van de zaak is dat nog steeds de hoofd-ontwikkeling beheert zal worden door in feite maar 1 taal/paradigma: JavaC#.
Er zijn al tijden andere paradigma's in ontwikkeling die wel gebruikt worden, maar dan toch voornamelijk in niche omgevingen en de onderzoekswereld. Mijn vraag is: wanneer denk jij dat deze andere paradigma's een serieuze keuze zullen worden en naar aanleiding van welke ontwikkelingen?
De introductie van andere paradigma's in 'normale'-ontwikkeling zou naast een grotere keuze de onder andere de productiviteit kunnen verhogen, leiden tot minder bugs, maar wellicht ook een groot probleem voor het onderwijs.
Show * mbravenboer the future
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment