Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Microsoft IT

Why Microsoft Will Never Make .NET Truly Portable 293

Michelle Meyers writes "Just days before Microsoft claimed to be making parts of the .NET CLR "available" to other platforms, NeoSmart Technologies had published an article bemoaning and blasting Microsoft's abuse of it's developers by pretending .NET was a true cross-platform framework when they're doing everything in their power to stop it from being just that. Of interest is NeoSmart's analysis of how Microsoft has no problem making certain portions of .NET available to Mac users — just so long as its distributed under an "open source" license that forbids any and all use of the code except for educational purposes — yet are terrified of the very thought of .NET being available to *nix users, even if that's to the benefit of .NET developers everywhere. Even more interesting is one of the comments on that article linking to legal documents in which Microsoft employees discuss the (im)possibility of creating a cross-platform code and UI framework, years before the .NET project even started!"
This discussion has been archived. No new comments can be posted.

Why Microsoft Will Never Make .NET Truly Portable

Comments Filter:
  • by Wharper ( 13989 ) <wharper AT xmission DOT com> on Wednesday May 02, 2007 @10:22AM (#18956413)
    It does seem M$ is making some effort to take at least some portions of the .net framework to other systems:

    http://msdn2.microsoft.com/en-us/embedded/bb278106 .aspx [microsoft.com]

    It even looks as if some companies are making dev boards with it:

    http://www.embeddedfusion.com/default.aspx?id=76 [embeddedfusion.com]

    In talking with them (M$) it seems that you pay to port this framework to whatever platform you would like to take the framework to. This is with or without an operating system.

    Cheers,
        Bill
  • its, it's, IT (Score:2, Informative)

    by dailyrev ( 1096411 ) on Wednesday May 02, 2007 @10:41AM (#18956675) Homepage Journal
    Please forgive the grammar lesson, but this is the third time I've seen this error this week. And geeks should understand me more than anyone: you work with languages and grammar of your own. "abuse of it's developers" Here's your rule of thumb, author: 1. it's = it is (it's a beautiful day to bash MS) 2. its = belonging to it (its brain had been washed by Ballmer) 3. IT's = ah,now that could be either "belonging to the IT dept." or "I(nformation)T(ech) is..." So the correct spelling of the above would be "abuse of its developers..." --Brian Donohue, dailyrevolution.net [dailyrevolution.net]
  • Re:So C# is .Net? (Score:3, Informative)

    by revlayle ( 964221 ) on Wednesday May 02, 2007 @11:05AM (#18957057)
    .Net is a programming framework. C# is a Microsoft developed language, used pretty much exclusively in creating .Net applications (however there are other .net compatible languages, C# was just designed originally to use with .Net).
  • Re:So C# is .Net? (Score:5, Informative)

    by digitig ( 1056110 ) on Wednesday May 02, 2007 @11:13AM (#18957213)
    No. As I see it (and there's more than one way to see it) .NET is essentially an API and virtual machine offering that API. C# happens to be a high level language that maps very closely onto the virtual machine language, but in theory any language can compile to that machine language (and many do -- C++, Java, VB, Python, Ada, Eiffel, and so on). I like it as an API (at least at version 2.x), the VM makes multi-language programming a cinch, its memory manager really does seem to eliminate a lot of classic memory bugs, and its deployment model moves away from huge, centralised registries. But it comes at the expense of bloat and the speed penalty of an extra layer between the code and the metal. IMHO that's a reasonable design choice to have to make. If you're developing for MS Windows I reckon .NET is a decent design choice as long as you're not particularly size or speed constrained. If you're developing for anything else -- well, try starting here: http://it.slashdot.org/article.pl?sid=07/05/02/133 6216&from=rss [slashdot.org].
  • by nametaken ( 610866 ) on Wednesday May 02, 2007 @11:30AM (#18957459)
    I care. I maintain, and develop for, windows systems all day... then come home to all linux systems with the exception of an XP Pro VM I keep tucked away for emergencies. I'm not switching frameworks, and the business is not switching platforms. What's more, like most .net developers, I like the framework and the dev environment. They're the sort of things that MS actually got right.

    It seems to me that the popularity of .Net should be obvious to those who frequent slashdot.
  • Re:Java (Score:5, Informative)

    by Jarnis ( 266190 ) on Wednesday May 02, 2007 @11:35AM (#18957539)
    It may be preinstalled in Windows *Vista*, but it sure as hell is not preinstalled on XP.

    Instructing end users to install this and that .NET framework is a common problem. As is explaining the fact 'WTF why do I have to install .NET 1.1, I already have 2.0!' - most users don't understand that the two can (and in some cases should) coexist.

    MS has made .NET very end-user unfriendly in XP.
  • by AKAImBatman ( 238306 ) * <akaimbatman@gmaYEATSil.com minus poet> on Wednesday May 02, 2007 @11:39AM (#18957607) Homepage Journal

    if you or your users don't like Swing there are numerous alternatives.

    Indeed. Here's a few:



    Those are the ones off the top of my head. There are quite a few more out there in the wild.
  • by alienmole ( 15522 ) on Wednesday May 02, 2007 @11:40AM (#18957619)
    .NET encompasses the API (actually a huge set of APIs), as well as a virtual machine (known as the Common Language Runtime, CLR), as well as a set of languages (like C# and VB.NET) and a whole lot of infrastructure designed to support those languages and the applications written in them. Such a system can certainly be made portable, and Java did that (but with a single official programming language) before .NET came along. But you're probably correct that the Windows-specificity of .NET means that making it truly portable is a dubious proposition, on many levels. In a sense, .NET is the new version of the Windows API.

    BTW, any programmer worth his salt shouldn't have had a problem understanding what .NET is. However, Microsoft needed to market it beyond that group because .NET was so central to the future direction of Windows. The confusion you noticed was the result of that rather challenging marketing problem.

    To use the ob. car analogy: it's as though a car company tried to sell a new range of vehicles by pointing out how they all use the same chassis, and promoting the wonderful characteristics of Chassis 2.0. No-one who's not a car manufacturer really cares. The additional problem with .NET is that not only didn't customers care, they didn't even understand what was being described. At least in the car case, most people have some idea what a chassis is.
  • Re:So C# is .Net? (Score:5, Informative)

    by shutdown -p now ( 807394 ) on Wednesday May 02, 2007 @12:05PM (#18957957) Journal

    I like it as an API (at least at version 2.x), the VM makes multi-language programming a cinch, its memory manager really does seem to eliminate a lot of classic memory bugs, and its deployment model moves away from huge, centralised registries. But it comes at the expense of bloat and the speed penalty of an extra layer between the code and the metal. IMHO that's a reasonable design choice to have to make.
    Actually, it's faster than many think. Remember that the bytecode was optimized to be JITed rather than interpreted from the very beginning. The easiest way to check on it is to run your .NET program from within Visual Studio, set a breakpoint, and then go into "Disassembly" mode. You'll see what the JIT compiler made out of your code. I've found that for math, pointer operations, and method calls, it's pretty much the same as the output of a C++ compiler, except that you can't avoid checks for null reference on method calls (though it does not check for that repeatedly if one check is enough). Well, there's still the penalty from GC, and that one is harder to account for - but still, there really isn't much reason to pick C++ over C# for speed, unless you really really need that 3-5% extra.
  • Re:Java (Score:2, Informative)

    by oliverthered ( 187439 ) <oliverthered@nOSPAm.hotmail.com> on Wednesday May 02, 2007 @12:13PM (#18958083) Journal
    Here's a simple example.
    When creating a virtual directory under IIS for apsx pages do you set the application up for Scripts or Scripts and Executables?

    Answer.
    You setup for scripts, well unless that fails in which case you have to setup for scripts + executables for no apparent reason leaving IIS vulnerable to a hacker dropping a cgi into the directory.

    I've never had similar problems with Apache/Tomcat.
  • by deathy_epl+ccs ( 896747 ) on Wednesday May 02, 2007 @02:54PM (#18960775)

    When you say dev environment is better, do you mean VS.net is better than Eclipse? Eclipse has come to a point that it is way better than many development IDE.

    I use both currently, and I can say that Eclipse may be way better than many IDEs, but Visual Studio.net isn't one of them.

  • Re:So C# is .Net? (Score:1, Informative)

    by evil_Tak ( 964978 ) on Wednesday May 02, 2007 @03:30PM (#18961261)
    3-5%? My experience puts it at more like 30-50%.
  • Re:So C# is .Net? (Score:3, Informative)

    by top_down ( 137496 ) on Wednesday May 02, 2007 @04:25PM (#18962317)
    If C++ is gonna be faster than C# there has to be a reason. If you are going the write the same program in C++ and C# there won't be much speed difference (3%-5%, 30%-50%, whatever). If you want C++ to be faster you have to write a different program using the features that sets C++ apart from languages like C# or Java. When you can avoid allocations on the heap and allocate on the stack instead, when you can give the compiler extra information by using the template system where C# generics can't or when you can get closer to the metal and avoid that extra copy, that's were you will see the real performance differences. Expect them to be massive.

An authority is a person who can tell you more about something than you really care to know.

Working...