Microsoft May Back Off of .NET Languages
An anonymous reader writes "Though Microsoft had initially made a commitment to create versions of dynamic languages that are customized for .NET, recent reports make it clear that the company may be stepping back from this plan. Much early speculation on this change in focus comes from Jim Schementi, previously the program manager in charge of Microsoft's implementation of the Ruby software known as IronRuby. Schementi reports on his blog that the team dedicated to working on IronRuby has decreased to one employee. According to Schementi, his departure from the company came as Microsoft began to display a 'serious lack of commitment' to any .NETized dynamic languages, including IronRuby."
I've been hoping for COBOL.NET.
RIP America
July 4, 1776 - September 11, 2001
The headline "Microsoft May Back Off dynamic .NET Languages" would be better?
Yes. I have used IronRuby - it is pretty nice. I don't know much about the Windows platform, and it is really pretty useful to be able to write simple Ruby scripts that can interact with .NET stuff. Scripting languages running on top of the CLR (and JVM) is pretty damn useful for a wide variety of applications and situations.
catch (HumourFailureException e) { e.user.send("You, sir, are a humourless idiot."); }
With Oracle attacking Google over Java patents...
One lesson to be drawn, as suggested by Miguel de Icaza,[4] is that people should move to Mono and C# because Microsoft's patent terms are better than Sun's.
On the other hand, one could draw the lesson that it's foolish to use languages / platforms controlled by companies that use patents aggressively.
Another point is that if Google had used IcedTea (the GPL'd version of Java), they never would have been at risk from Sun/Oracle's patents.
Expert in software patents or patent law? Contribute to the ESP wiki!
Similes are like metaphors
You need to understand the history of web development to answer that question properly.
The earliest dynamic web sites were implemented mainly in C and C++ by software developers who practiced the craft first and foremost, and treated web development merely as a particular application of their software development skills.
Starting around 1996, however, things started to change. Many non-developers started getting involved with the web. Some of these people had absolutely no programming experience, and thus just couldn't handle C. They ended up using Perl instead, which was basically the only practical scripting language at the time, since it was significantly easier to use than C or C++. PHP soon arose from this group of developers, and followed its own path.
Given the amateurish origins and background of this community, there wasn't much emphasis put on security, reliability, quality, maintainability and proper language features like static typing. That's why web applications from that time period are poorly written, and full of bugs and security holes.
On the other hand, Java soon became widely adopted by business users at roughly the same time, and soon enough they started developing web applications using Java. Many of these developers were former C and C++ developers, rather than Perl developers. After ASP.NET was released, they were soon joined by C# and VB.NET developers. These applications, being written by professional developers, are often significantly better than what was produced by the amateurish PHP/Perl community.
By the mid-2000s, the Perl/PHP community soon welcomed Python and Ruby, since they were more sensible dynamic languages that addressed many of the issues with Perl and PHP. Microsoft, Sun and others tried to draw these developers over to their platform by offering dynamic language support for .NET or the JVM. That's where IronPython, IronRuby, Groovy, JRuby, Jython and other language implementations come into play.
Given the history of web development, dynamic languages became widely used mainly out of ignorance, and have remained widely used due to continuing ignorance. There's no technical argument in favor of dynamic languages. They're just used because their users and proponents often don't even know about how much better and easier static languages make the development of both small and large applications.
Thank you for this, PInvoke is probably my biggest reason in prefering .Net (mainly C#) over Java.
You can do this in Java with Java Native Access (JNA). From the JNA site:
JNA provides Java programs easy access to native shared libraries (DLLs on Windows) without writing anything but Java code—no JNI or native code is required. This functionality is comparable to Windows' Platform/Invoke and Python's ctypes. Access is dynamic at runtime without code generation.
I had to work on a large Ruby web app once. They had over 300,000 unit tests, totalling 6.5 million lines of code. That was just for their unit tests alone!
At first I thought that was pretty amazing, but after working with the unit tests for some time, it became painfully obvious that they were just repeatedly implementing the basic checks that would be performed by the compiler for a static language.
Perhaps 5% of the unit tests were actually testing the functionality of the software itself. The other 95% were merely ensuring that the developers hadn't made simple typos in their Ruby code, or checking that the code could handle data or objects of the wrong type, or checking that the types of variables didn't change unexpectedly, and so forth.
I soon left because of how utterly stupid it became. For each day of development, I would spend, say, an hour developing a chunk of code, and then spend seven hours writing unit tests. Had I been using a static, compiled language, I would've spent 7.5 hours writing code, 15 minutes writing some unit tests to test the actual functionality, and 15 more minutes compiling that code periodically. Yes, I would have been over 500% more productive by using a static, compiled language instead of Ruby.
That's pretty much a wash, as "Controlled by Sun" isn't much better.
--Jeremy
Jesus was a liberal
If static languages are better, why is the bulk of web development done with dynamic languages?
I don’t know how much of that is reality and how much is popular perception. In any case, here are some general trends in mainstream statically-typed languages and mainstream dynamically-typed languages today that might contribute to the popularity of the latter for web development:
I think these are more reflections of the languages in current use and their surrounding cultures, rather than inherent traits of static vs. dynamic typing, but if we’re talking about the state of the industry today, there doesn’t seem to be any practical distinction.