Why Microsoft Will Never Make .NET Truly Portable
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!"
There's no point in making a marketing sleight of hand portable to other platforms, is there?
Maybe it's changed in the last few years, but when Microsoft first started talking about "dot net" the only thing I could figure was that they didn't really know what it was going to do -- and four years after it had been announced it didn't really seem as if that had changed.
Maybe it's changed since then... it's been three years since the last time I paid any attention to it...
Eviscerati.Org: All Hail the Eviscerati
Is there anyone, anywhere who thinks Microsoft will ever do anything that's really free, and therefore portable, cross platform and all that other stuff they would like to say about .NET? The more they hype it, the more obvious the shortfall.
Friends don't help friends install M$ junk.
Why is Microsoft the only company constantly expected to make decisions anti to their business model? Where is the clamor for Apple to adopt VB for the sake of 'developers'? Ok, bad example.
But seriously; with 50Billion in the bank, I think throwing around words like 'terrified' serve no purpose but to feed the rabid-anti-Microsoft crowds.
Hard to have a serious discussion, when the article is premised on hype and flaming rhetoric to start with.
It does seem M$ is making some effort to take at least some portions of the .net framework to other systems:
6 .aspx
http://msdn2.microsoft.com/en-us/embedded/bb27810
It even looks as if some companies are making dev boards with it:
http://www.embeddedfusion.com/default.aspx?id=76
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
It's pretty sad.
On the other hand, there is always the Mono Project (www.mono-project.org)
It even has a Visual Basic Compiler.
Yes, it's not ready for primetime yet (imo), but it looks very promising.
Microsoft's actions will just result in more 3rd party and OSS development.
Stop griping and expend your efforts bringing Mono up to .Net 2.0 compatability.
"God fights on the side with the best artillery." - Napoleon, Marshal of France - speaking truth to power
.NET is basically Java without the portability. .NET?
So why bother with
Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
Other implementations of .NET are kind of stupid anyway, and, like it or not, Mono really isn't very useful. Anyone who does development on Linux/Mac/anything that isn't Windows will just use native code, or Java - probably because writing a native app isn't nearly as difficult on other platforms, and Java actually is write once, run anywhere (well, closer than .NET, anyway).
.NET is Windows; have any of you written a native code Windows app (I'm sure many of you have)? The code is a nightmare and makes my eyes scream. With Windows, you really, truly need a system like .NET to make developing any non-trivial app even remotely possible, unless you want to spend 1,000 hours writing fucking COM shit (which I sure as fuck don't).
The only platform that benefits from
With the proliferation of Web Applications and SOA, and the diminishing relevance of desktop software, it's in Microsoft's best interest NOT to make it cross-platform.
.Net framework was available for *nix or OS X - all of the framework libs, ASP, WinForms, etc. What incentive would I have to fill a Web server farm full of thousands of dollars of Windows Server licenses when I could run my ASP.Net apps on Apache? The only real costs to add machines to the farm are hardware-related. .Net already has providers for Oracle and MySQL. Suddenly, Microsoft's Operating systems and platforms become irrelevant to developers who have years of experience and time invested in learning .Net.
Let's say that a full implementation of the
If you do what you always did, you get what you always got.
Because Microsoft never made a single portable product!
Where "portable" means "on other OSs than the Microsoft's ones".
Maybe Computers will never be as intelligent as Humans.
For sure they won't ever become so stupid. [VR-1988]
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
http://news.com.com/8301-10784_3-9714669-7.html?pa rt=rss&subj=news&tag=2547-1_3-0-5
So, in other words, TFA chewed Microsoft out for not making .NET cross-platform, just days before Microsoft announces a cross-platform version of .NET. How exactly is this "stuff that matters"?
.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).
Nobody with any sense is going to believe any cross-platform claims made by Microsoft anymore. The Windows platform is their lifeblood, and they'll do whatever they have to to artificially bind people to it. That's why they're fighting and delaying all attempts to truly open up their connection protocols and file formats. On a level playing field, people would desert Windows in droves, and Microsoft knows it.
Honestly, I don't see how this is even still open for debate in 2007-- Microsoft showed their true colors w/r/t portability after they added Windows-only extensions to Java. And that's if you ignore their prior attempt to balkanize the web and cause pain for anyone not running Windows IE.
Their "Flash-killer" and their "PDF-killer" and any other allegedly-open standards they try to foist off on us should be ignored and allowed to die. If we allow them to get a foothold, we deserve everything we get.
~Philly
So what you're saying is that what they said some years ago shouldn't be taken serious anymore? Why should I take anything said by MS now serious? Why should I believe that what's being spun today holds any meaning in the future if I am not supposed to believe what I was told earlier?
Don't get me wrong, but when a company makes a statement or announcement, there are two ways to deal with it. Either believe it and expect it to happen or declare it bunk and handle it accordingly. And if the former is expected, the results should warrant it. Either MS follows its words with actions or it has to accept that people ignore their announcements, or, worse, read them for the same reason they read the Prawda: To know what will certainly NOT happen.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
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.
Quidnam Latine loqui modo coepi?
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.
.Net should be obvious to those who frequent slashdot.
It seems to me that the popularity of
Even if Java wasn't about to be GPLd, was it really worth all the effort, plus daring the world's most notorious IP barratrers' fairly obvious patent/IP trap, so you can get...
Operator overloading? Unsafe code in a VM? Not to say there aren't a few nice things. But too few. Mono is a dangerous waste of time.
That C#/.NET hype is so damn tired. It's a dead-end platform, unless MS opens it up, or chooses to add some truly novel features to it in the future.
Tired of Political Trolls? Opt Out!
Why should they be afraid? Because given 30 years and more money than the GNP of Texas they can't come up with a better OS than a finnish nerd's geek vanity project, or a better language than c++. They should be afraid because the future is Open.
Help stamp out iliturcy.
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.
Javascript + Nintendo DSi = DSiCade
.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.
.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.
.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.
BTW, any programmer worth his salt shouldn't have had a problem understanding what
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
It probably is an enormous amount of time and energy to port it -- ask the Mono folks. The benefit is code portability across platforms. That's why Tk/Tcl has been ported to multiple platforms, that's why wxWidgets has been ported to multiple platforms, heck, it's even why Java Swing has been ported to multiple platforms. And they're (mainly) just the GUI side of things; .NET offers a lot of other stuff too. Of course, it's the "lot of other stuff" that causes the bloat. Remember, it's not just an API, it's a virtual machine, which in theory looks the same on every platform. "In theory" because there's the little issue of what Microsoft will allow to be ported, and even MS have the sense to realise that complete platform transparency is pretty much impossible so there are some platform specific elements to the API.
Quidnam Latine loqui modo coepi?
Why yes, of course because we all know that Microsofts strategy today was largely determined yesterday afternoon. A large multinational company like Microsoft with product lead times measured in years would never have discussed the actions they're taking today 5 or 6 years ago would they. You muppet.
The whole point to the .NET framework is lock-in. It's the classic trade off Microsoft has always made. Back in the early 90's you could write Windows 3.x apps with standard C++ language tools, but if you used their framework you got to market 6 months quicker because you didn't have to create your own windowing code. So, you could hit 90% of the market six months faster and you did, but then you gave up cross platform C++ by relying on their windows only libraries, and thus your software didn't work on Mac. That was the play then, and it is the play now.
.NET framework, you get a lot of things. You get easy install kits, a 'contemporary professional' look and feel, you get drag and drop design, and you get cross platform use from the standpoint of different windows desktop, server, and mobile platforms.
.NET saves you time and money on development. It really does. I prefer to write in Java, but when I'm doing something within the .NET scope, it makes sense to use it.
By developing for the
If you're willing to limit your app to Microsoft platforms,
The whole point of this play is to tie users to Windows platforms. They're in business to make money, and this is one way to continue doing that.
Java was created specifically to provide an alternative to Microsoft based development as a way to thwart Microsoft. That was a (not the, but a) primary goal of its development and licensing structure from the world go. It wasn't created to make money and while its goals are laudable, they aren't always realistic. It has been an abject failure at the desktop and even as browser based applets. A huge amount of effort went into making it useful for web servers (j2ee) but even those are barely cross platform and are themselves rife with vendor lock in. It's not like you're ever going to host IBM's portal product on someone else's J2EE server instead of Websphere after all.
The problem with quotes on the internet, is that nobody bothers to check their veracity. -- Abraham Lincoln
Microsoft won't make .NET available to other platforms than their own, just because it's the only thing that keeps developers and architects from moving to a more stable Unix-like solution.
.NET developers (unless they're knowledgeable on the subject) won't use the POSIX-compatible definitions in .NET/C# because they're fed/learned to use the 'simple' Windows way. Eg. defining a path. You could define a path as follows (yes, in .NET): (pseudocode): $userdrive + $platformseparator + dirname + $platformseparator + filename. Every developer though uses $DRIVENAME + \DIRNAME\FILENAME making it utterly inflexible to be used on another platform.
Another problem is that Windows is not POSIX compatible. Sure you can get the add-on that makes it a bit more POSIX-like but still
Custom electronics and digital signage for your business: www.evcircuits.com
A software product/framework can be portable, cross platform without being Free.
It's not portable if you can't move it to a platform of YOUR choice. Something that's not free may have SDKs for more than one platform, but that does not really make it portable. Being "open" does not help either. They could publish their entire source code but it would not be free if it was patent and copyright restrictions that keep you from doing what you want with it.
These days, that lack of freedom is a distinct disadvantage that will cost M$. It's always been a disadvantage to non free code, but the saving grace was a lack working alternative and someone might pay you for it. Because there are now entire free software systems, non free code has run out of saving graces. It won't even make money. Control is a loser.
Friends don't help friends install M$ junk.
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.
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.
Anyone who generalizes about slashdotters is a typical slashdotter.
Quidnam Latine loqui modo coepi?