Tijdens een bezoekje aan www.javalobby.org kwam ik een artikel tegen waarin met name het multi-language gebeuren van .NET enorm op de hak wordt genomen. Zoals vaste P&W-lezertjes vast weten heb ik daar ook nogal eens kritiek op, dus ging ik snel aan het lezen
.
Het stuk is vooral een kritiek op de manier waarop .NET wordt gepresenteerd en tracht meer de waarheid duidelijk te maken, dan .NET te vergelijken met Java.
Met sommige argumenten ben ik het niet helemaal eens, maar het is toch zeker de moeite van het lezen waard! Er staan veel duidelijke uitspraken in die niet zoveel te maken hebben met pure anti-Microsoft flames.
http://www.javalobby.org/clr.html
Dit stukje is mijn favoriet:
Het stuk is vooral een kritiek op de manier waarop .NET wordt gepresenteerd en tracht meer de waarheid duidelijk te maken, dan .NET te vergelijken met Java.
Met sommige argumenten ben ik het niet helemaal eens, maar het is toch zeker de moeite van het lezen waard! Er staan veel duidelijke uitspraken in die niet zoveel te maken hebben met pure anti-Microsoft flames.
http://www.javalobby.org/clr.html
Dit stukje is mijn favoriet:
Playing with the .NET SDK, the cross-language support looks impressive, but the illusion holds true only until realizing that all languages in the mix are virtually identical. Microsoft has actually invented the concept of skinnable language: changing a languages most superficial aspects, and claiming the result to be a new language. There is only One True Language that is C#, and "skins" offered by Microsoft and third parties. Just like in GUIs, these skins will alter the systems look and feel, add a few features, but never compete with a fully new toolkit.
There are, actually, many successful "common language runtimes", with names like Pentium, SPARC and others. Mainstream CPUs are equally fitted to very different languages as they only do the most fundamental, low-level operations, so they cannot be biased towards particular languages. There arent many different ways to perform a conditional branch. However, there are radically different ways to support methods and functions, or most constructs found in high-level languages. The consequence is that every language needs different compilers and runtimes to implement their features, and different libraries to support their vision of software development.
Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment