Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Microsoft Programming

Microsoft May Back Off of .NET Languages 443

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."
This discussion has been archived. No new comments can be posted.

Microsoft May Back Off of .NET Languages

Comments Filter:
  • by bbtom ( 581232 ) on Friday August 13, 2010 @12:03PM (#33241322) Homepage Journal

    So, Oracle are suing Google and making the JVM a less viable platform.

    And Microsoft are pulling back on resources for IronRuby.

    Looks like it may finally be time for the LLVM to step up to the plate and provide an open source alternative. Here's hoping...

  • Using them? (Score:5, Insightful)

    by 0racle ( 667029 ) on Friday August 13, 2010 @12:04PM (#33241360)
    Was anyone actually using them? We have Python and Perl scripts running on windows and always preferred ActivePython and ActivePerl.
  • by cracauer ( 6353 ) on Friday August 13, 2010 @12:07PM (#33241408) Homepage

    The truth of the matter is that it is very hard to support random other languages on VMs written for certain languages.

    All these dynamic languages do one thing or another that puts a hole in your plan. Ruby with it's continuations is right up there but Python with "modify anything fundamental anytime" isn't much better. The native environment has a huge headstart.

    We should all move to LLVM.

  • by odies ( 1869886 ) on Friday August 13, 2010 @12:14PM (#33241504)


    And Microsoft are pulling back on resources for IronRuby.

    That doesn't really say anything. There's still C#, Delphi .NET, Visual Basic .NET, and a ton of other languages. The headline is wrong - Microsoft isn't dropping .NET support, it's just lowering their support for dynamic languages. Static languages are better anyway.

    Also remember that Windows Mobile 7 will only have .NET apps, which is actually quite good, since .NET is actually a lot better than Java.

  • Story title fail (Score:2, Insightful)

    by Com2Kid ( 142006 ) <> on Friday August 13, 2010 @12:21PM (#33241618) Homepage Journal

    "Microsoft may back off of dynamic .NET languages" would be more appropriate.

    Sad to hear though, I just started a project with IronPython.

  • Oracle's legal action against Google over Android has already created confusion among developers about the future of Java as a platform. And, if Oracle is to able to stop Google from developing Android, Java will likely be avoided by any large companies for their new product. And, now this news that M$ might give up developing .NET any further adds to serve more confusion. With the recent news, there is another programming area likely to be severely hit i.e., the development of Mono. If .NET is gonna stop, it would be difficult to justify any development on Mono. Seems RMS was right again this time in opposing Mono from the very beginning. Only good thing this would serve in long term is more interest of developers in languages like Python, Perl. But, the present developments will definitely add so much of chaos to the programming sphere.
  • by not already in use ( 972294 ) on Friday August 13, 2010 @12:32PM (#33241794)
    I think the reason for this is that a lot of web programming isn't overly complex and the brevity of a dynamic language is an advantage in these cases because you can't code something up pretty quickly. Anyone writing any sort of really complex web app in a dynamically typed language is just asking for trouble.
  • by Anonymous Coward on Friday August 13, 2010 @12:32PM (#33241796)

    I don't think you have it quite right. From what I can tell, the issue is that Google implemented their own "JVM" in the form of the Dalvik VM. They claim compatibility with java, even though it's not technically a strict J2SE implementation, meaning it's NOT covered by the patent grant. They used the open source version of the java libraries from the Apache Harmony Project as I understand it. Where they went wrong was by adding their own libraries, and removing the bits they didn't want (AWT, Swing). So now they've effectively muddied the JVM waters. To develop android you have to use their Dalvik VM, but you're still writing java? How does that work? Is Dalvik sanctioned by Oracle? Nope!

    As much as I hate to say it, I think Google screwed up. Instead of paying the license fee like everyone else for J2ME, they decided to build their own VM and say, 'Hey,it's not really java, it's just java syntax. You can't charge us for that!' They then proceeded to wholesale ripoff the standard libraries and even go so far in their marketing speak to promote android development as using Java(TM). Oracle is totally justified IMO - Google was trying to skirt the rules and got caught. Time to pay up. If MS did this (and they did, back in the late 90's_ they were hung out to dry by Sun. Though there are differences in this case, the same principal remains: They tried to dilute the Java ecosystem with their own brand, and now they're getting called out on it.

  • by Bill_the_Engineer ( 772575 ) on Friday August 13, 2010 @12:36PM (#33241864)

    So, Oracle are suing Google and making the JVM a less viable platform.


    Oracle is suing Google for making a non-compatible VM call Dalvik that uses technology found in the JVM without paying a license. Since Google wasn't using JVM, how does Oracle's actions against Google make JVM less viable?

    Looks like it may finally be time for the LLVM to step up to the plate and provide an open source alternative.

    LLVM is a low level virtual machine used to optimize compiler operations and runtime linking. JVM is a high level virtual machine providing objects, garbage collection, and according to Oracle technology patented by Sun. From LLVM website:

    The LLVM Project is a collection of modular and reusable compiler and toolchain technologies. Despite its name, LLVM has little to do with traditional virtual machines, though it does provide helpful libraries that can be used to build them.

    LLVM is not a drop in replacement for JVM.

  • by Lunix Nutcase ( 1092239 ) on Friday August 13, 2010 @12:38PM (#33241904)

    It wouldn't be a drop-in replacement but there is no reason that a Java front-end couldn't be created and combined with the LLVM JIT compiler.

  • by segedunum ( 883035 ) on Friday August 13, 2010 @12:52PM (#33242090)
    While this is slightly different, creating dynamic language environments on top of .Net, language neutrality in .Net has always been a myth. It's why there is only one language for .Net in C# and how VB.Net has become totally pointless because it's merely a syntactically different but identical .Net language. After attempts at those languages failed, such as those by ActiveState, we then got reasonably API compatible Ruby and Python environments being developed on top of .Net. Unfortunately, people already had API compatible versions of Ruby and Python - the official ones - and as a result no one has seen fit to run anything under a .Net Ruby or Python environment en masse. Environments like JRuby just clouded the landscape still further. All Microsoft really wants to do is try and get a critical mass of developers deploying to their versions of Ruby and Python probably for embrace and extend, and there is no sign that this is happening. They're trying to keep on with PHP because it's still the dominant web scripting language that they need for Azure to look semi-credible, but this is likely to meet a similar fate for the same reasons.

    The one environment that Microsoft should have created on top of .Net they simply didn't do. They should have created a rapid application development environment on top of .Net, free of the strict confines of C# and object oriented development, that aimed to be at least API compatible with classical VB so people merely had to recompile - as they had always been able to do. Alas, all that Microsoft did was force developers to throw lots of lines of existing code down the drain if they wanted to upgrade or either stay on the platforms they were on permanently or convert their applications to web based ones, which many did.

    Microsoft don't appear to have learned a thing after ten years of .Net.
  • by beelsebob ( 529313 ) on Friday August 13, 2010 @12:52PM (#33242096)

    The usual reason given is that it saves on the write/compile/run cycle taking up your time. In practice, it's a pretty crappy reason though.

  • by I!heartU ( 708807 ) on Friday August 13, 2010 @12:54PM (#33242120)
    ... Value types, these are structs that are not wrapped in an object
    yeah these can get "fun" with auto boxing and properties

    ... Platform-invoke allows developers to call native code without having to write any glue in C++ using JNI, it can all be done in the managed language.
    no support on the phone for this

    ... Unsafe code (pointers) to support C++, Cobol and Fortran compilers running on the CLI
    not on the phone eaither

    .. Native support for talking to COM-based APIs. Although mostly Windows-specific, its used to talk to Mozilla, VirtualBox and OpenOffice APIs in Linux.
    not on the phone

    ... Covariance and contravariance introduced with .NET 4 make even more generic cases a pleasure to use.
    sorta nice but you don't get the cut and paste power of c++ templates. Also the phone is locked at some bastardized version of 3.. you don't get many of the 4 features. This may possibly change in the future.

    Another benefit of for is they've made a dynamic invocation system, so at runtime you can intercept function lookups, which will be pretty nifty for making scripting languages. Again the phone is lacking this atm.
  • by Mongoose Disciple ( 722373 ) on Friday August 13, 2010 @01:02PM (#33242240)

    how is .net better than java?

    In short, .NET is the Firefox to Java's IE 6.

    At one point, .NET was basically just a poor copy of Java -- but then it kept adding features and getting better while once-great Java essentially stagnated.

  • Because there aren't a lot of good interfaces for statically-typed language to web development. Believe me, if I didn't have to rewrite half the world to write web apps in C++ with a good Apache interface, I would do it in a heartbeat.

    That said, don't forget that a whole lot of development is done in ASP.NET now. It's changing.

  • by scot4875 ( 542869 ) on Friday August 13, 2010 @01:33PM (#33242720) Homepage

    That's pretty much a wash, as "Controlled by Sun" isn't much better.


  • by Dunbal ( 464142 ) * on Friday August 13, 2010 @01:34PM (#33242732)

    Microsoft is a company that is trying to point in all directions at once. This wouldn't be the first idea they have poured time and effort into, only to drop it. I am sick and tired of having to learn new development techniques just because Microsoft thinks that this year MFC/WPF/XNA/.NET/C#/F# is going to be **IT**, skimming through thousands of completely unhelpful reference pages on MSDN that merely hint at what functions/objects/libraries/tools are supposed to do but point to other pages in circular references worse than any 1990's porn sites.

    Programming is supposed to make life easier, not harder. Microsoft is the expert in obfuscated standards, obfuscated libraries, and especially obfuscated documentation. It's a wonder they get anything done at all.

  • by gbjbaanb ( 229885 ) on Friday August 13, 2010 @02:04PM (#33243294)

    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.

    got to disagree with this bit. ASP was released and the sloppy web programmers who used to slap something together were joined by a legion of Visual Basic programmers who used to throw something together, but thought they were uber-developers because they were employed to write this kind of code.

    Sure, ASP.NET is better, and all the old VB devs have faded away somewhere, but I don't think the number of C#/VB.NET devs working on ASP.NET apps is that much better the the old lot.

    There is a technical argument in favour of dynamic languages - and that's RAD. You can fiddle with the language as you go, "develop in the debugger" kind of programming. I'm not saying this is a good thing, but if you don't have the discipline to do it properly (like the old C/C++ dev would) then this provides you with an easy entry to programming. Hopefully you'll learn and become a professional dev from that.

  • Positive things Java has over .Net:

    - Supported on Unix, Linux, Windows, z/OS, including AIX, HP-UX and Solaris.
    - Supported on Blackberry, and other hand-held devices.

    And, no, Rotor doesn't really cut it for support. For some limited uses, Mono on Linux may be usable, but .Net has very little, if any, penetration into z/OS, AIX, HP-UX and Solaris.

    So, it's fairly reasonable to not bother supporting "ultra-portable" programming. After all, if its single-platform, just build it there to begin with. Just like the iOS platform.

    As developers go, celebrate, because this de-emphasis just increased the value of your skills.

    As to the feature comparison of the Java vs. .Net run-time -- sure, "unsafe pointers" would have been useful to me. I wrote a COBOL-85 to JVM compiler, and the biggest performance issue is that data can, and often does, overlap in COBOL. Note that COBOL-85 doesn't have pointers, just redeclaration. This forces "interpreted" retyped access -- my compiler isn't smart enough to know when an overlap can happen. However, the primary target platforms are AIX and Solaris, so the feature remains... elusive.

    I am curious about your claim for "tail call support". Mostly, compilers are smart enough to replace a pure tail call with a simple transfer, and the run-time doesn't have to be aware. If the optimization is contemplated, there cannot be any partial results needed, and this must be maintained through the entire recursive sequence (direct tail call, or through another function). How does the run-time itself assist with this?

  • by kikito ( 971480 ) on Friday August 13, 2010 @02:09PM (#33243400) Homepage

    The blame there would be on the developer(s), not on the language.

  • by ChronoFish ( 948067 ) on Friday August 13, 2010 @02:33PM (#33243796) Journal
    Syntactically PHP is actually a lot more like C/C++ than it is like Perl. It's basically a typeless "C/C++". It had a huge following because you could easily pepper HTML with embedded scripting - and hosting companies could offer PHP because it made for a convenient and sandbox. Yes you could easily kill a PHP script - but the PHP executable has always been stable (I've never seen the executable itself crash - nor have I ever seen PHP crash Apache or the OS - and I've been developing in PHP for 10 years now).

    I know I'm in the minority, but I came from C/C++ / Comp Sci background. After years of Motif programming I found PHP a real joy. I no longer had to solve programming language problems (memory management, garbage collection, STL template integration, etc). I just had to solve for the solution of the real problem.

    I think most "real developers" don't like PHP because it seems too easy. If you don't find it liberating you find it frustrating that you've spent so much of your life searching out malloc bugs - and anything that trivializes your agony is assumed to simply not be that powerful.

    Aside from image manipulation (2d/3d), there have been few problems that I've encountered on either the front or back-end that I couldn't solve in PHP that would have been easy (or even easier) to solve in another language. Typically the real problems - like large (millions of records) iterations, searching, or merges are easily solved by letting the database do it's job.

    It's true that there exists a huge nest of bad code written in PHP. I've never understood this as an argument against the language however. The person stating the fact usually claims that they are a "real" programmer - if so - then why is it that difficult to discipline yourself to write good code? Taking the simple approach of following a basic MVP paradigm (with or without a formal framework) solves 90% of the rat's nest issues that encompass the "bad" PHP code. PHP can be as structured and well written as any language - it just takes a (very little) bit of discipline.

  • by mldi ( 1598123 ) on Friday August 13, 2010 @02:36PM (#33243844)
    That's "Controlled by Oracle", which is far worse than "Controlled by Sun", at least for viability.
  • by Anonymous Coward on Friday August 13, 2010 @03:07PM (#33244280)

    What I find interesting about this is that it makes sense to me from a MS perspective.

    MS doesn't want Ruby to run on the .NET Framework, because that would make the .NET Framework "just another run-time" that could be swapped out with the MRI "C" version or the Java JRuby version. They want the features of Ruby (and other dynamic languages) without the ability for applications to just jump off the platform.

    So I expect MS may try to create a new dynamic language that can only run on the .NET platform. All about lock-in. That's what they did with F#. It's a syntactic ripoff of OCaml but with new changes that can't leave .NET.

    Embrace, Extend, Extinguish.


  • by FrangoAssado ( 561740 ) on Friday August 13, 2010 @03:09PM (#33244304)

    I am curious about your claim for "tail call support". Mostly, compilers are smart enough to replace a pure tail call with a simple transfer, and the run-time doesn't have to be aware. If the optimization is contemplated, there cannot be any partial results needed, and this must be maintained through the entire recursive sequence (direct tail call, or through another function). How does the run-time itself assist with this?

    I'm guessing that if the transformation (from a tail call to a branch) is done by the compiler, then the generated bytecode loses nice properties used by the checker to ensure it's well formed. If you do it like CLR (with a "tail" modifier to a call), the checker can verify it's a simple method call (and not a branch to some place outside the current method, which might or might not be valid) and then the JIT, seeing the "tail" marker, ensures the proper semantics for the tail call (stack doesn't grow, etc.).

    There might be other reasons, like performance: it's very likely that the JIT can do a much better job at optimizing a tail call (when it knows it's a tail call) than optimizing the tail call bytecode generated by the bytecode compiler.

  • by gutnor ( 872759 ) on Friday August 13, 2010 @03:22PM (#33244464)
    No no no.

    .Net is IE and Java is Netscape. At some point, IE was better than Netscape and kept improving until Netscape died. Only after that it was abandoned.
    Java like Netscape run on multi-platform, IE the MS-only solution that MS put all its money on improving until it beats the competition.
    Microsoft cannot really uses its monopole to kill java, I hope Oracle does not do it for them - or at least does it quick so we can all work on an alternative.

  • Not really (Score:3, Insightful)

    by thasmudyan ( 460603 ) <<moc.ufnepo> <ta> <naydumsaht>> on Friday August 13, 2010 @03:42PM (#33244764)

    Microsoft management knows full well that the only way to stay on top of their huge bloated codebase and architecture is to continue along the path of managed code. The only thing they're not fond of are dynamic languages, pure and simple. Support for dynamic languages was added to the .NET runtime very late in the game, and begrudgingly at that. Their current development and runtime environments rely on huge amounts of auto-generated boilerplate glue without which the simplest tasks wouldn't be possible.

    The reasons for this are probably largely historical, because there are still a lot of people from the old COM days working at MS. There are fact-based arguments as well: Dynamic languages tend to be more concise but are more difficult to automatically evaluate and optimize, especially considering the way Microsoft is relying on interface contracts and access policies (all of which are either generated by static language code or in turn serve to generate such code). Besides, none of the teams working on those much-needed tools and design-helpers wants to be put out of a job, so of course they have to stay firmly committed to their huge heap of statically generated code.

    A few years ago some Microsoftie told me about a new research OS they were working on, it was completely .NET-based and probably still reflects how MS would like Windows to be if they could start over from scratch today. I believe the project's name was Singularity, I don't know if it still exists. Anyway, the whole point of the OS was its completely static architecture. There was no support for dynamic languages, all executables were statically linked and completely rigid. There was no self-modification allowed for any application and as far as I remember applications couldn't even dynamically load libraries at runtime. So, in a way, they already made clear which road they are going to go down. Dynamic languages aren't in the mix anymore, but managed code will stay around for a long time at Microsoft.

  • by Unequivocal ( 155957 ) on Friday August 13, 2010 @04:18PM (#33245258)

    Last I checked there are a pile of python and ruby websites out there doing fairly complex things -- are they all misguided? I obviously have an opinion, but I'm not trying to flamebait you - I'm actually curious what you think of that market segment.

  • by Anonymous Coward on Friday August 13, 2010 @04:35PM (#33245486)

    No. Think again. Its the language.

    Unit Tests are there to detect developer errors, not language errors but the more errors the language allows the developer to make, the more Unit Tests you need. GPs conclusion is correct.

  • by alexmin ( 938677 ) on Friday August 13, 2010 @04:38PM (#33245528)

    I would not be too surprised if MS stops pushing .NET in near future and instead pitches "new and improved" stuff. Totally incompatible with .NET, of course. I believe this is their way to keep windows developers busy re-learning new ways to do old tricks and too busy to look at MS competitors. .NET is 10 years old now btw. Remember VB6, DDE, OLE and WIN32? Yea, I do.

  • by Kaz Kylheku ( 1484 ) on Saturday August 14, 2010 @02:16AM (#33249214) Homepage

    There are many answers from different angles, but one is this: you were using an immature dynamic language with no compiler. The limitations of Ruby don't represent the state of the art in dynamic languages. Static languages with declarations also don't represent the state of the art.

    Modern languages, whether static or dynamic, don't have mandatory declarations, and rely on type inference.

    The difference between the two is that the static language disallows the execution certain programs which are allowed to proceed the dynamic language (but the dynamic language can still flag those programs).

Vitamin C deficiency is apauling.