Slashdot Mirror


Was .NET All a Mistake?

mikejuk writes "The recent unsettling behavior at Microsoft concerning .NET makes it a good time to re-evaluate what the technology is all about. It may have been good technology, but with the systems guys building Windows preferring to stick with C++, the outcome was inevitable. Because they failed to support its way of doing things, .NET has always been a second-class Windows citizen unable to make direct use of the Windows APIs — especially the latest. .NET started out as Microsoft's best challenge to Java but now you have to ask: what has the excursion into managed code brought the Microsoft programmer, and indeed what good has it done Microsoft? From where we are now, it begins to look very much like an unnecessary forced detour, and Windows programmers are going to be living with the mess for years to come."

688 comments

  1. Was .NET all a mistake? by Anonymous Coward · · Score: 2, Funny

    Do you really need an entire article to give you the answer to that one?

    1. Re:Was .NET all a mistake? by Anonymous Coward · · Score: 0

      yes

    2. Re:Was .NET all a mistake? by Anonymous Coward · · Score: 0

      The article may not have been needed, but it is still a worthy topic. Maybe there should be a national holiday to mourn or celebrate the passing of old technology. Call it "Next of Kin" day or something. It'd be a good time to have collections of recyclables and toxic stuff too. There's no mess to live with for years with .NET either. Like a bidet, one good reformat will deal with it pronto. Any skilled programmer can move on to something else. And if some client needs help moving on, that's not a mess, it is employment.

    3. Re:Was .NET all a mistake? by Anonymous Coward · · Score: 1

      The recent unsettling behavior at Microsoft concerning .NET makes it a good time to re-evaluate what the technology is all about.

      Control. Duh. That's why it isn't cross-platform.

      You'd think the world would have learned the lesson about investing in Microsoft-only technologies after IE6 and ActiveX. It seems a lot of people are in fact learning disabled.

    4. Re:Was .NET all a mistake? by somersault · · Score: 1, Funny

      Now I don't feel that bad for never being interested in .NET.. and yet, I suppose if you get in on all the bullshit early it can give you a few years worth of work.

      --
      which is totally what she said
    5. Re:Was .NET all a mistake? by TheRaven64 · · Score: 2

      The problem is, if you remove cross platform then there's little advantage to .NET. If you're writing a Windows application, then (as TFA says) you're going to get better integration with the host system if you use C++, because then you can use the underlying APIs directly, rather than via an abstraction layer. The only thing that .NET gives you is the ability to run the same binary on multiple architectures, but with Windows that means x86, x86-64, two Itanium boxes in a cupboard somewhere, and some ARM systems in a promised future. Meanwhile, Apple allowed developers to support PowerPC and x86 with native code. There's even a shim for Windows using a tiny .NET program as a loader to allow you to produce fat binaries, so it's relatively easy to create a native Windows app that supports multiple architecture, if you actually want it to.

      --
      I am TheRaven on Soylent News
    6. Re:Was .NET all a mistake? by Lord+Crc · · Score: 4, Interesting

      The problem is, if you remove cross platform then there's little advantage to .NET.

      Only if you ignore C# with all it's feaures and .NET's ability to effortlessly combine several languages (like C#, F# and IronPython) in the same program.

      As for tighter integration to the host system... A lot of applications doesn't actually need this, and is happy with the basics provided by the platform/library of choice, be it .NET or Qt.

    7. Re:Was .NET all a mistake? by rtfa-troll · · Score: 4, Insightful

      You'd think the world would have learned the lesson about investing in Microsoft-only technologies after IE6 and ActiveX. It seems a lot of people are in fact learning disabled.

      I think they have. The lesson the guys who decide which technology to use have learned is that if you invest in MS technologies and put them in your customers you'll have several good years. Then Microsoft will outdate those technologies soon and give you another round at the same consulting money.

      --
      =~ s,(.*),<sarcasm>$1</sarcasm>,g if any_point_you_wish();
    8. Re:Was .NET all a mistake? by walshy007 · · Score: 1

      That's why it isn't cross-platform.

      Mono

    9. Re:Was .NET all a mistake? by Gerald · · Score: 3, Insightful

      I think they have. The lesson the guys who decide which technology to use have learned is that if you invest in MS technologies and put them in your customers you'll have several good years. Then Microsoft will outdate those technologies soon and give you another round at the same consulting money.

      The open source world is completely different. We stabilized on Perl^WPHP^WRuby^WNode^WEastAsia years ago and never looked back.

    10. Re:Was .NET all a mistake? by Rob+Y. · · Score: 5, Interesting

      You have a half a point, and that's exactly what Microsoft was counting on when they built .NET. That enough people would think 'cross-platform within the Windows family' was essentially the same thing as cross-platform. Those types would adopt .NET, and the threat of Java would be blunted. While they're at it, they took some good ideas from Java and added some of their own (yes, they are capable of coming up with good ideas), and made a somewhat improved Windows-only platform that has some minor cross-platform benefits (like support for ARM Windows).

      And that whole approach kind of flies if you assume the 'business desktop' of today.

      But with the popularity of iPads and the like, even the business community is beginning to understand the freedom that real cross-platform code (which today is most apparent in browser-based apps) enables. Nobody that's not locked into Windows desktop software would ever stake their business on that kind of stuff today. As awful as web apps can be (and they're getting less and less awful all the time), the advantage of server-based apps is obvious to anybody that's ever had to support desktop apps. Especially for database centered apps where the data can't live on the desktop and a network connection is required. So even the cross-platform dream of Java has been mostly superseded by web apps.
       
      .NET is a pretty good implementation of a dying paradigm. Won't be the first time. Meanwhile, the original promise of Java begins to shine when you look at the Android dev kit. To write iOS apps, you need a Mac. To write WinPhone apps, you need a Windows PC (arguably a lower hurdle). But you can write Android apps on a Mac, a PC or Linux, and the binaries work on ARM or X86 devices. Pretty neat. Maybe not as nice an implementation as Visual Studio, but again, the benefits of true cross-platform code become more and more obvious the more and more Comptuer != Windows PC.

      Still, the whole shebang will eventually become irrelevant next to the coming web-only paradigm (and yes, ChromeOS is a little ahead of the curve on this). Sure, some things will always want to be desktop-native - traditional cross-platform tools will have an advantage there. But the new standard's gonna be the web, and not even Microsoft can stop that.

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
    11. Re:Was .NET all a mistake? by TheRaven64 · · Score: 1

      Only if you ignore C# with all it's feaures and .NET's ability to effortlessly combine several languages (like C#, F# and IronPython) in the same program.

      You realise that you can do all of that with native code, right? I've written a Smalltalk compiler that lets you write an object with some methods in Objective-C[++] and some in Smalltalk. LLVM now supports the GHC calling convention, so it would be relatively easy to allow you to also write methods in Haskell. You don't need a VM for that. I can use a high-level language like Smalltalk for most of the code (I've also written an experimental front end for a JavaScript-like language, if I want a prototype-based object model) or C/C++ for the bits that are performance critical. Moving between them is easy - my compiler can even inline C/C++ code in Smalltalk methods, while .NET treats managed and native code as completely separate entities and won't optimise across the boundary.

      As for tighter integration to the host system... A lot of applications doesn't actually need this, and is happy with the basics provided by the platform/library of choice, be it .NET or Qt.

      And this attitude is why most desktop apps - regardless of the platform - suck.

      --
      I am TheRaven on Soylent News
    12. Re:Was .NET all a mistake? by gbjbaanb · · Score: 1

      anyone who combines multiple languages in the same codebase is asking for a maintenance nightmare. This is why C# dominates all the .NET code out there, even pushing out the VB.net coders.

      I would like to see better integration with the host. With .NET apps, you end up with Windows 7 : some dialogs that look one way, others that look another. Go to control panel and check out the display settings. You can change the default window background colour (I used to do this so it was just a tiny bit cream, much easier on the eyes) but only half the windows will honour it - ones like explorer will just ignore it. This kind of crapness pervades all of Windows now, and is not a good thing. That's why proper integration is a must-have, and the Windows boys and the Developer Division boys need to have their heads banged together until they learn to play nicely with each other.

    13. Re:Was .NET all a mistake? by billcopc · · Score: 4, Insightful

      We were combining multiple languages long before Windows even existed. Ever heard of a sneaky little program called a linker ?

      It was just as "effortless" as your beloved .NET. You simply wrote a makefile that called the various compilers for all your bits of code, then linked them all together to produce the binary. Even if you use only one language, the linker is still used to hook up with system-wide libraries, and generate proper signatures and stubs.

      And if you're about to say that makefiles are not effortless, well what do you think your shiny $1500 IDE does when you click "Build" ? Chances are, it produces a Makefile from all the metadata in your project and hands it to a hidden command-line build tool.

      --
      -Billco, Fnarg.com
    14. Re:Was .NET all a mistake? by causality · · Score: 1

      You'd think the world would have learned the lesson about investing in Microsoft-only technologies after IE6 and ActiveX. It seems a lot of people are in fact learning disabled.

      I think they have. The lesson the guys who decide which technology to use have learned is that if you invest in MS technologies and put them in your customers you'll have several good years. Then Microsoft will outdate those technologies soon and give you another round at the same consulting money.

      That sounds a lot like the broken window fallacy to me. It's a way to redistribute wealth to the consultants but everyone overall ends up a bit poorer in the process because no new value is being created.

      Financially speaking, how much pain has IE6/ActiveX caused for corporations around the world? Has anyone tried to add it all up or even produce an estimate? How much less would average customers be paying for various products and services if that cost never happened?

      --
      It is a miracle that curiosity survives formal education. - Einstein
    15. Re:Was .NET all a mistake? by k31 · · Score: 1

      I understood that from the time I saw C# syntax, and more when I had to deal with the modern version of "dllhell" at work much more recently.

      Somehow, people who want to create more work in the general case tend to win out... verbosity seems to rule over pragmatism... and C++, as a superset of C, gives you the option to be terse.

      That being said, they are political reasons why .NET was doomed to fail, but just like politicians, it continues to get support by the masses.

    16. Re:Was .NET all a mistake? by SmurfButcher+Bob · · Score: 1

      You'd think the world would have learned the lesson about investing in Microsoft-only technologies after IE6 and ActiveX. It seems a lot of people are in fact learning disabled.

      Yes. Except this week, they're buying Apple products.

      --

      help me i've cloned myself and can't remember which one I am

    17. Re:Was .NET all a mistake? by jellomizer · · Score: 1

      For the most part, it wasn't about .Net but the next version of visual studio. And C# and VB.net as a programming language.
      When .net came out most apps were windows only. Web apps were skoffed at as toys for limited remote access. Visual studio 6 was starting to get aged. And there was no real visual studio 7 to replace it. Only visual studio.net. So they upgraded to keep their apps to look good for xp and longhorn, which became vista. C# isn't a horable language. In some ways it is much cleaner then Java.
      But for most developers if Microsoft gave them a choice for a direct compile or .net runtime. They will go with direct compile.

      --
      If something is so important that you feel the need to post it on the internet... It probably isn't that important.
    18. Re:Was .NET all a mistake? by Lord+Crc · · Score: 1

      We were combining multiple languages long before Windows even existed. Ever heard of a sneaky little program called a linker ? It was just as "effortless" as your beloved .NET.

      Can you show me how to effortlessly use Delphi objects in a python script? This is something I'd love to know how to do.

    19. Re:Was .NET all a mistake? by Anonymous Coward · · Score: 0

      I don't seem to recall python being a compiled language. There might be modules that let it link as well though. Just not in my area of caring, personally.

      Linking Delphi to C, C++, Fortran, etc, isn't too difficult.

      Let's see python use C# objects, or vice versa.

    20. Re:Was .NET all a mistake? by jakartus · · Score: 1

      If I write a web app in ASP.NET, I am really not that concerned about cross platform. My clients can be running IE, Safari, Firefox, Chrome. Opera, KDE Konqueror, whatever, I try and make sure they all work, and on smartphone/tablet browsers too. As long as the browser is a relatively modern version (say within last 4 years). So I can't run the web server on another OS, I am not concerned.

      If I generate a report for example it is HTML or PDF, not XPS or XLS, again, trying to support many clients

      As for running .NET apps *on the client*, most Microsoft developers I know have dropped that (or try too) if possible. Even then, if they just want to support Windows clients they should use Silverlight. The ease of upgrading web apps compared to client installs on myriad machines alone is enough to give up any extra ease of development a WPF or WinForms app may offer, but I don't think I am offering any insight there, this has been the mindset for several years now.

    21. Re:Was .NET all a mistake? by BitZtream · · Score: 1

      As for tighter integration to the host system...

      Lets not forget the fact that every .NET implementation on the planet makes it fucking TRIVIAL to call the standard API. You can either call the methods directly using the P/Invoke methods, or you can write a .... C++ ... wrapper around the API calls to make them all .NET feeling. .NET is fine for 99.9% of the apps out there. It may not be great for high performance games, or low level hardware control, but unless you are completely fucking clueless, you can accomplish both of those things since .NET allows you to easily intermix languages.

      If you can't do something with .NET, you shouldn't be programming as the fault is yours, not its. It lets you call any exported function from any library (DLL) on the system, it has access to everything that every other application running at the same authorization level does.

      Again, if you can't do something with .NET, you suck, not it.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    22. Re:Was .NET all a mistake? by BitZtream · · Score: 1

      Delphi will make DLLs.

      Python and load and pull functions from random DLLs can't it?

      Not seeing why this is difficult.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    23. Re:Was .NET all a mistake? by Runaway1956 · · Score: 1

      Financially speaking, how much pain has IE6/ActiveX caused for corporations around the world? Has anyone tried to add it all up or even produce an estimate? How much less would average customers be paying for various products and services if that cost never happened?

      Such a question will never be asked by MS fanbois, and MS corporation would do all in their power to discourage such a study. If the study were ever done, and the results released, they would be "spun" into some tale about the Total Cost of Ownership. Except, of course, you never actually own a Microsoft product, and Microsoft has strange ways of manipulating the numbers.

      I think the sentence in TFS, "best challenge to Java", sums things up nicely. Microsoft's JVM was pure crap, not to mention being a ripoff of Sun's work. When MS couldn't use their JVM anymore, the just slapped something together, and put it out there. The fanbois lapped it up, the IT people made it work as well as it could work, and all the chump consumers were left to pay the bills.

      --
      "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
    24. Re:Was .NET all a mistake? by Bryansix · · Score: 1

      My shiny IDE was free thank you very much.

    25. Re:Was .NET all a mistake? by Lord+Crc · · Score: 1

      Not seeing why this is difficult.

      Because you missed the important part: "use Delphi objects". Yeah sure you can write C wrappers for them, and then write object wrappers in python again. But that's hardly effortlessly.

    26. Re:Was .NET all a mistake? by Tetsujin · · Score: 2

      We were combining multiple languages long before Windows even existed. Ever heard of a sneaky little program called a linker ?

      1: Write an application using MS Visual Studio's compiler.
      2: Give it an extension library interface using STL classes (string, vector, etc.) as calling arguments and return arguments
      3: Write an extension library using another compiler (or even just a different version of the same compiler), probably with another implementation of STL.

      Such a library will compile happily and fail gloriously. It may not even make it to an STL failure if the two compilers have different calling conventions. This is one reason why, although you can do this sort of thing with an ordinary linker, it's not nearly as easy without a common framework like .NET's CLR.

      --
      Bow-ties are cool.
    27. Re:Was .NET all a mistake? by Tetsujin · · Score: 1

      Let's see python use C# objects, or vice versa.

      IronPython does this. Of course, both dot-net and Python provide sufficient reflection capabilities to allow at least calling dot-net from Python to be a very straightforward, automated process (hence, for instance, the "Python for dot-net" project which is just that - an interface layer for CPython that lets you call dot-net stuff...)

      --
      Bow-ties are cool.
    28. Re:Was .NET all a mistake? by qxcv · · Score: 1

      But the new standard's gonna be the web, and not even Microsoft can stop that.

      And it doesn't appear they plan to, at least for now.

      --
      "The most dangerous enemy of a better solution is an existing codebase that is just good enough." -- Eric S. Raymond
    29. Re:Was .NET all a mistake? by jimicus · · Score: 1

      You have a half a point, and that's exactly what Microsoft was counting on when they built .NET. That enough people would think 'cross-platform within the Windows family' was essentially the same thing as cross-platform.

      Thing is, we talk on /. as if Microsoft were some tightly-controlled empire whereby the emperor knows exactly what's going on and even if the empire itself appears to be making the most absurd choices there is actually some method behind them that may not become apparent until some time later.

      That may well have been the case back when Bill Gates was running the show; I'm not convinced it is today. I think that when Microsoft describe "cross-platform" as meaning "cross-platform within the Windows family", all the senior decision-makers honestly believe that's genuinely cross-platform.

    30. Re:Was .NET all a mistake? by Xest · · Score: 1

      "Still, the whole shebang will eventually become irrelevant next to the coming web-only paradigm (and yes, ChromeOS is a little ahead of the curve on this). Sure, some things will always want to be desktop-native - traditional cross-platform tools will have an advantage there. But the new standard's gonna be the web, and not even Microsoft can stop that."

      and erm, what do you think is going to drive this web revolution? Do you think server side logic is done using HTML or something?

      There's a plethora of languages for doing server side web development, and .NET is without a doubt one of the more prominent ones. The thing is, Microsoft has actually nailed down the whole security thing quite well on the server now, such that Windows server nowadays is a perfectly reasonable choice for a server OS, and with things like ASP.NET MVC it becomes brilliantly easy to build pretty decent sites, but because .NET covers more than just the web and was designed to from the outset, then it's trivial to make your site interact with more complex back end processing. This is certainly true of Java and so forth as well, but to suggest .NET is a dying paradigm is rather hilarious in this context. If anything it's growing- but the benefit of .NET is that Java is stagnating, whilst .NET is improving at a particularly impressive rate- LINQ and Lambda expressions with 3.0, dynamic types in 4.0 - it's becoming notably more flexible and powerful than it's competitors. In .NET1 it was really behind Java in terms of features, and now it's ahead of it, whilst Oracle continues to rape trust in it that divide is only going to grow as well.

      But perhaps the most telltale sign of the prevalence of .NET is the jobs market. You only have to look at it to see how fast growth is in the .NET arena. Here in the UK the ratio of jobs advertised seems to be around 20:5:2 in terms of .NET:PHP:Java jobs respectively. The number of C++ jobs which, if the summary is to be believe, is probably around 50:1 in terms of .NET:C#. Examine the numbers further and you'll see that probably around 80% of those C# jobs are for ASP.NET.

      Clearly you're right about one thing, the web is becoming more and more important, but you couldn't be more wrong about another- that .NET is a dying technology in the face of it. Without a doubt it's in a period of rapid growth right now, and the web is certainly the driver behind that.

    31. Re:Was .NET all a mistake? by m50d · · Score: 1

      You can write and build programs for windows mobile under Linux (or pretty much any platform that can run GCC), I've done it. Sure it's not got official MS support, but there's no code signing or anything so you end up with something just as good as you'll make on a windows PC.

      --
      I am trolling
    32. Re:Was .NET all a mistake? by m50d · · Score: 3, Insightful

      We were combining multiple languages long before Windows even existed. Ever heard of a sneaky little program called a linker ?

      The problem is that the C ABI is really weak. As befits C, all it really speaks is small numbers and big numbers, there's no concept of objects. So you can't do type-safe function calls. You can't pass closures around. As C++ programmers have found to their cost, you can't throw an exception and catch it if there's C code between where you do this. You sure as hell can't take a class from one language and subclass it in another, because C doesn't even have a notion of classes. That's what .net gives you, a system ABI that understands some higher-level concepts.

      And if you're about to say that makefiles are not effortless, well what do you think your shiny $1500 IDE does when you click "Build" ? Chances are, it produces a Makefile from all the metadata in your project and hands it to a hidden command-line build tool.

      What's the point you're trying to make here? You know when you compile a programming language it actually just produces a bunch of assembly and hands it to a hidden assembler, so C takes just as much effort as writing your own assembly.

      (And my IDE at least uses something better than Makefiles).

      --
      I am trolling
    33. Re:Was .NET all a mistake? by xelah · · Score: 1

      Java appears to have a rather lower bug rate than C++ (one third according to the rather ancient study I came across). Is there no similar difference for .NET? Or any difference in development times?

    34. Re:Was .NET all a mistake? by gtall · · Score: 1

      Wow, did you swallow a MS Marketdroid? Spit it out man, save yourself.

    35. Re:Was .NET all a mistake? by TheRaven64 · · Score: 1

      This problem is pretty much unique to Windows. Every other modern platform specifies a C++ ABI. Microsoft chose not to publish the details of theirs, so anyone writing a C++ compiler for Windows had to either reverse engineer it or ship their own.

      --
      I am TheRaven on Soylent News
    36. Re:Was .NET all a mistake? by TheRaven64 · · Score: 1

      . As C++ programmers have found to their cost, you can't throw an exception and catch it if there's C code between where you do this. You sure as hell can't take a class from one language and subclass it in another, because C doesn't even have a notion of classes.

      You can if the C code is compiled with -fexceptions. The x86-64 ABI on most platforms specifies that all code must contain unwind data. Modern setjmp() / longjmp() implementations in C use this mechanism to ensure that C++ destructors are called during the unwind.

      As for mixing classes, this depends on the language and compilers. I've written compilers for dialects of Smalltalk and JavaScript that emit code with the same ABI that Clang uses for Objective-C (on non-Apple platforms), so I can write a class in Objective-C, write a subclass on it in Smalltalk, and then use it as a prototype in a JavaScript-like language. All of this is in JIT or statically compiled native code, with no VM and no foreign function interface between the languages.

      --
      I am TheRaven on Soylent News
    37. Re:Was .NET all a mistake? by Xest · · Score: 1

      No, just unlike fanboys on Slashdot, I'm actually capable of being objective.

      You may think my post is pro-Microsoft, but it's actually what's happening in the real world. So if you don't like Microsoft, then rather than condemn me for pimping Microsoft, you should recognise it's fact, and do something about it.

      Putting your hands over your ears and screaming "la la la I can't hear you you're just a marketing droid" is self-defeating if your goal is reduced Microsoft presence. Personally I don't care what happens as long as I can do what I need to do but Microsoft's existence is obviously something that concerns you so maybe you should do something about it, like contribute to the Eclipse project to make it as good as Visual Studio, or work on a language to make it as good as C#. To pretend none of this is the case though is to ignore the reality of the current jobs market, and the strength of Microsoft's .NET technologies in the marketplace - hint: It's absolutely dominating new development ventures by a large margin.

      Frankly, if Eclipse wasn't a pile of useless slow, buggy, turd, and Java had at least kept pace with C# and .NET with things like Lambda expressions (which didn't make it into 7), LINQ, and dynamic typing then I'd much rather be using that, but this isn't reality I'm afraid, and this is why I'll keep using C# and .NET, and this is why the vast majority of new projects, and projects started in recent years in business are using it too.

      I'm language, platform, vendor, agnostic. I really don't care who made what or when or why, as long as it works and gets the job done, and wont cause problems in a reasonable timeframe then that's good enough. Again though, if a particular vendor bothers you then go do something about it, don't pretend reality isn't real though.

    38. Re:Was .NET all a mistake? by Xest · · Score: 1

      The point is that theoretically they're not really wrong. Cross platform can mean cross-hardware platform and if Microsoft are talking about something running on x86 PCs, Windows Phone 7 ARM systems, and XBox 360 PPC systems then they're not wrong in saying it's cross platform.

      The real problem isn't mis-use of the term by Microsoft, it's a hijacking of the term to mean something arbitrary. When people say something isn't cross platform because it only runs on 5 different versions of Windows across 3 different hardware platforms and doesn't run on Linux then what they really mean is that it's actually not cross-vendor. Microsoft isn't a platform, Microsoft is a vendor so if it works on more than one of Microsoft's platforms, but no other vendors, then it is cross platform.

      I realise with this, and my other posts here I probably sound like a Microsoft apologist, and fine, whatever if people want to think that they can, but I prefer to maintain a little be of objectiveness and rationality. I think it's fair to criticise for things that deserve criticism, but abject criticism for the sake of it often makes the critics look like idiots, which is counter-productive to their goal.

      Don't waste time criticising Microsoft for things like their use of cross platform when it's technically valid, focus on things Microsoft really do wrong, where they really are evil, like the whole OOXML debacle including bribery and puppets within the ISO standards committees across the globe.

      Fuck the vendors, all I care about at the end of the day is protecting computing itself, and bastardising a term like "cross platform" to try and make it mean "cross vendor" only really hurts computer science itself. It's not worth corrupting long established computer science terminology over when there are much better things to beat your opponent over the head with like genuine corruption, lawbreaking, and general morally and ethically poor behaviour.

    39. Re:Was .NET all a mistake? by Dog-Cow · · Score: 1

      You say that you "don't need a VM for that", while at the same time telling us that you're using LLVM. You don't really understand initial-isms very well, do you?

    40. Re:Was .NET all a mistake? by TheRaven64 · · Score: 1

      LLVM is not a VM. It used to stand for Low-Level Virtual Machine, now it doesn't stand for anything (because it's not actually a VM and the name was confusing people). It's just an intermediate representation. llvm-gcc and clang use it as a static compiler - does that mean that C/C++ need a VM? No. Does it mean that they run in a VM? No. My Smalltalk compiler can also use it as a static compiler, so you end up with a binary that does not link against any part of LLVM.

      For future reference, you may find that it helps to know what you're talking about before patronising someone.

      --
      I am TheRaven on Soylent News
    41. Re:Was .NET all a mistake? by ifrag · · Score: 1

      Although even using the same STL library on Windows you can still have these failures though. If some code is using _HAS_ITERATOR_DEBUGGING or _SECURE_SCL and some other code has it turned off. Apparently VC10 actually has a "#pragma detect_mismatch" for this problem.

      Fortunately the debugging into STL on VC actually is getting a lot better, but it'll still spit out difficult stuff as well.

      --
      Fear is the mind killer.
    42. Re:Was .NET all a mistake? by KingMotley · · Score: 1

      You could have fooled me. I regularly use VB.NET/C#/Javascript/HTML all in the same project. All different languages, all working together just fine. Perhaps it's not the languages but the coding practices that cause problems, but I suspect that any shop with the same poor coding practices will have the same or similar issues even if they managed to write everything in one language.

    43. Re:Was .NET all a mistake? by gbjbaanb · · Score: 1

      I guess you could say that mix is sensible given each language is used in certain parts of the project - like mixing XAML and C# in a WPF GUI where you can't write the GUI in C# alone.

      the OP was talking about mixing C# with F# and IronPython. You can only imagine where the lines would be drawn between those pieces.

    44. Re:Was .NET all a mistake? by arglebargle_xiv · · Score: 1

      Still, the whole shebang will eventually become irrelevant next to the coming web-only paradigm (and yes, ChromeOS is a little ahead of the curve on this). Sure, some things will always want to be desktop-native - traditional cross-platform tools will have an advantage there. But the new standard's gonna be the web, and not even Microsoft can stop that.

      Andreesen, is that you?

  2. Was this article all a mistake? by Anonymous Coward · · Score: 4, Insightful

    And the answer to my question is yes.

    But the answer to your question is a big fat no. And I have an entire functioning, blossoming eco-system to back that answer up.

    Oh, and while we're at it... Why post a question when you've already made your mind up? And posed the question in a biased way based on your pre-decided conclusion.

    XcepticZP

    1. Re:Was this article all a mistake? by FranTaylor · · Score: 1, Insightful

      "I have an entire functioning, blossoming eco-system"

      Yes YOU have it, but WE don't, and THAT is the failure.

      You CAN'T take your "functioning, blossoming eco-system" and share it with anyone that isn't running the same version of Windows as you. THAT is the loss.

    2. Re:Was this article all a mistake? by liquiddark · · Score: 1

      You're going to have to go over that one in more detail, Sparky. I can share my 500,000 LOC document control system between users with Windows XP 32 and 64 bit and Windows 7 32 and 64 bit. There's no reason not to expect Vista would work as well, although there's also no real reason to try.

    3. Re:Was this article all a mistake? by Desler · · Score: 1

      You CAN'T take your "functioning, blossoming eco-system" and share it with anyone that isn't running the same version of Windows as you.

      Since when? .NET 1.0 - 3.5 works fine on XP through Win7. And if you really need .NET 4.0 its runs on XP SP3 through Win7.

    4. Re:Was this article all a mistake? by Frosty+Piss · · Score: 1

      Indeed you are correct, but this is Slashdot. Spare nothing, even invalid assumptions - as long as it allows us to skewer Microsoft?

      From the "story":

      Imagine for a moment that Microsoft hadn't forced us all to use .NET and instead VB 7 had been just an evolutionary upgrade. Presumably we would have settled on VB 7 for the "easy" applications and C++ for the more "demanding" applications.

      .NET was never meant to replace VB. That would be C#.

      --
      If you want news from today, you have to come back tomorrow.
    5. Re:Was this article all a mistake? by FranTaylor · · Score: 2, Insightful

      Can you bundle your app into a single file, and run it by double-clicking it, on any one of a dozen platforms?

      Are your runtime requirements available on ALL of the commonly available platforms, so people don't have to change their platform to run your code?

      So you have the audacity to tell someone that they need to buy a new computer to run your code? Really I have to go out and spend hundreds of dollars to even try out your program, just because your taste in platforms is different from mine?

    6. Re:Was this article all a mistake? by FranTaylor · · Score: 2

      And I suppose you were really really careful and you made sure your code actually runs on all of them.

    7. Re:Was this article all a mistake? by CaseCrash · · Score: 3, Insightful

      You CAN'T take your "functioning, blossoming eco-system" and share it with anyone that isn't running the same version of Windows as you. THAT is the loss.

      I know, it sucks, I can only run .Net apps on any Windows system from the past 10 years! I can't run it on Windows 95, or Linux, or my iPhone. I'm also pissed off that I can't run this new iPhone app I got on my Commodore 64 or my blender! WTF? It should be able to run anywhere, just like those linux programs you wrote run everywhere.

      (</sarcasm> if you're too dumb to get it, which I think you might be based on your post)

      --
      No, that link you posted to a web comic we've all seen a hundred times is not "obligatory."
    8. Re:Was this article all a mistake? by SpryGuy · · Score: 5, Insightful

      Who cares? ALL my customers are on Windows. The tiny fragment of a market that can't run windows software is irrelevant to most people, especially those in the business of making money.

      Even the largest of those tiny minorities (Mac users) can run .Net using bootcamp or parallels or some such.

      And for the rest, there's Mono, which will run a subset of .Net stuff.

      Really, this notion that EVERY program must be able to run on EVERY platform is just ridiculous B.S. It never has been true and never will be true.

      And really, anyone that has to "buy new hardware" to run a .Net application has some pretty alien hardware to begin with. XP, Vista, and Win7 run on most things out there, and Win8 will add to the supported processors and form factors.

      Your post is a lot of hot smoke and arrogant ignorance. There's a huge ecosystem around .Net, and it's a lucrative framework in which to develop. That's a simple fact that no amount of foot-stamping will erase.

      --

      - Spryguy
      There are three kinds of people in this world: those that can count and those that can't
    9. Re:Was this article all a mistake? by digitig · · Score: 1

      Can you bundle your app into a single file, and run it by double-clicking it, on any one of a dozen platforms?

      Are your runtime requirements available on ALL of the commonly available platforms, so people don't have to change their platform to run your code?

      Does he have a requirement for any of those things? Cross-platform costs, and if those costs are not recovered from increased market then it's a bad business model.

      --
      Quidnam Latine loqui modo coepi?
    10. Re:Was this article all a mistake? by PCM2 · · Score: 2

      .NET was never meant to replace VB. That would be C#.

      I think you misunderstand. The last version of regular Visual Basic was Visual Basic 6. Visual Basic 7 wasn't called that; it was called Visual Basic .Net. Microsoft ended all support for Visual Basic 6 in 2008. So if you were a Visual Basic programmer, you were indeed forced to use .Net, and for all intents and purposes, .Net replaced Visual Basic.

      --
      Breakfast served all day!
    11. Re:Was this article all a mistake? by cheekyjohnson · · Score: 1

      So you have the audacity to tell someone that they need to buy a new computer to run your code?

      What audacity? You're rude and disrespectful if you make platform-specific code? And since when do you need to buy a completely new computer?

      --
      Filthy, filthy copyrapists!
    12. Re:Was this article all a mistake? by liquiddark · · Score: 2

      What does any of that have to do with running different versions of Windows? I don't need to bundle it, Microsoft's updater includes the .NET framework as a recommended update that most people go ahead and put on their computer because they're not a total idiot. I don't need to have runtimes on every platform, because Windows is my platform of choice. I don't need someone to buy a new computer, because if they're encountering my .NET code they're usually on Windows. And I don't care about your platform choice, because I made mine when I chose .NET. Not to say Mono is nothing, of course, but I would bet it wasn't a core part of the ecosystem being referenced. There is more than enough .NET software in the original environment to keep anyone happy.

    13. Re:Was this article all a mistake? by afidel · · Score: 3, Insightful

      That's the point of the CRL, you don't need to verify your code runs on those platforms unlike with the morass of DLL's that you need to verify with native code. I've never had a .Net program fail to run as long as the version of .Net on the machine was equal to the minimum version required by the application, and you can update .Net without a reboot.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
    14. Re:Was this article all a mistake? by ThePiMan2003 · · Score: 1

      That's the cool thing, I don't have to be careful, there is this large company called Microsoft that does that for me. For the record, my code is currently running on every flavor of windows from XP to Win7, (OK no XP 64 bit, but everything else) and it works just fine, I have never had an incompatibility. Now I do have a couple of apps that also run under Linux, and mono has a few rough edges, but it gets better all the time.

    15. Re:Was this article all a mistake? by ThePiMan2003 · · Score: 3, Funny

      Thank god. VB 6 is horrid. I am still trying to rehabilitate people who spent to many years programming in it.

    16. Re:Was this article all a mistake? by RingDev · · Score: 3, Insightful

      You're on more crack than the author. You can run .Net apps on any machine with the same version of the .Net client installed, XP, 2k3, Vista, 2k8, 7, even Apple, and although it lags a little behind Mono gets us running on Linux.

      Sure, it's not quite as "runs on anything" as Java, but have you ever compared any of the Java IDEs with VS? Lets face it, if MS hosed up every other thing its ever done, Visual Studio is bar none the best coding IDE. .Net, like Java, are high level object orriented managed code languages. Yeah, if you try to write an OS in them, it would be rediculous. If you are trying to push the latest greatest graphics systems through them, you'll be disipointed. But if you're trying to develop desktop apps, web services, rapid software prototypes, etc... they are both great languages.

      Use the right tool for the job. .Net and Java are not the right tool for every job. But for those that they are designed to fulfill, they work wonderfully.

      -Rick

      --
      "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    17. Re:Was this article all a mistake? by VGPowerlord · · Score: 2

      Can you bundle your app into a single file, and run it by double-clicking it, on any one of a dozen platforms?

      No, and nothing like this exists anywhere else either. Technically, the closest thing to what you're describing that exists would be the OSX Universal binary, which runs on x86 and PowerPC.

      With everything else, there's going to be a native executable involved somewhere, be it a Java JVM or web browser, which you appear to realize as per your next point:

      Are your runtime requirements available on ALL of the commonly available platforms, so people don't have to change their platform to run your code?

      I've never really tried Mono, but I understand it has very good .NET support these days:

      The easiest way to describe what Mono currently supports is:
      Everything in .NET 4.0 except WPF, EntityFramework and WF, limited WCF.

      Mono runs on OSX, Linux, and the BSDs. And even on Windows.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    18. Re:Was this article all a mistake? by Nadaka · · Score: 0

      Point of contention, Eclipse is in some better than Visual Studio. Not saying Visual Studio is bad, it isn't. It is top of the line, but eclipse is also top of the line.

    19. Re:Was this article all a mistake? by sourcerror · · Score: 3, Interesting

      "Sure, it's not quite as "runs on anything" as Java, but have you ever compared any of the Java IDEs with VS? Lets face it, if MS hosed up every other thing its ever done, Visual Studio is bar none the best coding IDE."

      That's a matter of taste. I always preferred Eclipse to VS even for C++ coding. (Let's just say I hate horizontal scrolling.)

    20. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0, Insightful

      Seriously. I write it once, and it runs perfectly on every Windows machine on the planet. The framework has been around (in various rev's) for like a decade. And for bonus points, you can choose your language, c#, vb, etc... and it's all ultimately the same when it's done.

      But here's where all the guys that write their userland apps in Python come out to scream about .Net, as if their apps were cross-platform, run out of the box, handling their own memory usage, and require no dependencies. Trolls. From the article to the summary to the ill-informed comments... all trolling. Shame on the wanna-be geeks.

    21. Re:Was this article all a mistake? by Gutboy · · Score: 3, Informative

      Really? I guess you can't read pie charts http://www.humblebundle.com/

    22. Re:Was this article all a mistake? by GooberToo · · Score: 2

      I looked repeatedly. The only trolling I've found if your post. And at that, I can't even understand what it is you're trying to say.

      The simple fact is, Python is commonly used as a glue language. With not so much work you can have very fast python (mixed language) applications. It does have its own VM. PyPy is the next logical evolution of it. Both manage memory. So I'm honestly not sure what you're trolling on about.

    23. Re:Was this article all a mistake? by interval1066 · · Score: 1

      I was with a shop that whose main money comes from real-time industrial applications, which is a huge market, one you're completely unaware of, I think. Those applications are configured on windows. For our next gen of configuration software we were getting ready to re-design with .NET. The company spent a ton of cash sending us to a place to train for it, and more cash re-tooling for the change. We were going to be a .NET shop. Then there was a shake up and we got a new manager of engineering and all that time and money went down the drain as we stayed with C++ for that software. Just sayin'.

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    24. Re:Was this article all a mistake? by Svartalf · · Score: 1

      Heh... You know...this isn't a new thing, really. It's been an idea in many people's heads since 1978 at the earliest I can remember it...and probably before it.

      Biggest problem with ANY of these VM based systems, CLI included, is that you're virtualizing a machine...which adds overhead. Lots of it in varying places, some noticeable, some not so.

      For business apps, it's peachy. For high performance apps like games or visualization systems, it's not so hot.

      In your case, I've largely found that the story you're telling is very much similar to the Java one- and the discussion does point to this being the next step in J++'s thinking. Not to mention that it's performance is rather similar to that of Java's with a good JVM behind it in many of the cases you'd put it to.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    25. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      you mean VB.NET

    26. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Not necessarily the case in IT software. Not all organizations, even the biggest, run windows in any of their IT deployments. The cogs in those organizations are so big and move so slowly that you could never convince them to run something other than what they've already bought into. There is big money in those sectors and a windows only app will not get you far. Your points are valid, but you are doing the same thing by missing the whole picture.

    27. Re:Was this article all a mistake? by Rockoon · · Score: 3, Insightful

      Windows isn't a real-time OS, so not using .NET but continuing with C++ on Windows is still horribly contradictory to your claims of real-time applications.

      You would need to target an OS like VxWorks or the RTLinux distribution (nearly all Linux distributions are NOT real-time OS's) .. until you are doing that, you simply are not designing real-time applications.

      Do you even know what a real-time application actually is?

      --
      "His name was James Damore."
    28. Re:Was this article all a mistake? by FrootLoops · · Score: 1

      It's CLR (Common Language Runtime), not CRL; probably just a minor typo. I've had a few inexplicable one-time errors in a .NET app of mine on some XP machines that don't seem to appear in Vista or 7, but yeah, in general compatibility between different supported Windows versions is a complete non-issue.

    29. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Are your runtime requirements available on ALL of the commonly available platforms, so people don't have to change their platform to run your code?

      He obviously isn't targeting people that aren't running Windows (even though 90%+ of people are) evidenced by the fact that he's written Windows-specific code you retard.

      So you have the audacity to tell someone that they need to buy a new computer to run your code?

      No, either you're trolling or you're the sort of idiot who doesn't understand the difference between a computer and an operating system.

    30. Re:Was this article all a mistake? by Plombo · · Score: 2

      I've never really tried Mono, but I understand it has very good .NET support these days:

      The easiest way to describe what Mono currently supports is: Everything in .NET 4.0 except WPF, EntityFramework and WF, limited WCF.

      Mono runs on OSX, Linux, and the BSDs. And even on Windows.

      You should actually try it, especially on non-Windows. I've never seen an application written for .NET that works out of the box with Mono on Linux.

    31. Re:Was this article all a mistake? by TrancePhreak · · Score: 1

      It's simple really... The Humble Indie Bundle is not representative of the larger market.

      --

      -]Phreak Out[-
    32. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Eclipse FTW. I have eclipse running right now, with multiple projects open that contain over 12,000 java source files. Eclipse doesn't even break a sweat (though I did have to increase my OS's ulimits due to the sheer number of files open at any given time).

    33. Re:Was this article all a mistake? by exomondo · · Score: 4, Insightful

      I was with a shop that whose main money comes from real-time industrial applications, which is a huge market, one you're completely unaware of, I think.

      why would he be unaware of that? I think - given your post - it's actually you who are unaware of it since you're discussing realtime applications in the context of a Windows discussion. So either the point about realtime applications is completely irrelevant and has no bearing on the discussion, or you didn't know Windows isn't a realtime OS.

      The company spent a ton of cash sending us to a place to train for it, and more cash re-tooling for the change. We were going to be a .NET shop. Then there was a shake up and we got a new manager of engineering and all that time and money went down the drain as we stayed with C++ for that software. Just sayin'.

      Sounds like your point is that your company is being run by idiots, not a failing of .Net at all but a failing of your company's management.

    34. Re:Was this article all a mistake? by interval1066 · · Score: 1

      Windows isn't a real-time OS, so not using .NET but continuing with C++ on Windows is still horribly contradictory to your claims of real-time applications.

      You didn't really read my submission, did you?

      --
      Python: 'And then suddenly you have a language which says "we're all stuck with whatever the whiniest coder wants".'
    35. Re:Was this article all a mistake? by exomondo · · Score: 1

      For high performance apps like games or visualization systems, it's not so hot.

      Yeah no-one ever uses XNA for games.

    36. Re:Was this article all a mistake? by englishknnigits · · Score: 1

      Visual Studio is now far and away better than Eclipse. I would say the turning point was around VS 2005. VS 2008+ is noticeably better. With Eclipse, I loved it 90 - 95% of the time and wanted to throw my computer out the window the other 5 - 10% of the time. With VS 2008+ I love it 90 - 95% of the time and get slightly irritated 5 - 10% of the time. That irritation usually comes from quirks in the WinForms designer.

    37. Re:Was this article all a mistake? by exomondo · · Score: 1

      Can you bundle your app into a single file, and run it by double-clicking it, on any one of a dozen platforms?

      You can't do that across the major consumer computing operating systems anyway.

      So you have the audacity to tell someone that they need to buy a new computer to run your code?

      Oh come on, are you just being obtuse or is the concept of dual-booting or virtual machines actually foreign to you?

    38. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0, Offtopic

      My step father is a real estate agent and the MLS (multiple listing service) created a web site with .NET that all the agents *must* use. It's IE only, Windows XP or Vista (not 7) only, and frankly sucks. Doesn't work on Macs, don't work on linux. Frankly it barely works in windows. Has very specific internet options that must be set, cookies must be saved, etc. It's easily the worst god damned web site I've ever seen.

      It's my only non-game experience with .net. But why should a web page that links to a database be OS specific, browser specific, etc? Is it a nice feature or lazy coding?

      As a digital artist who only reads these threads so I feel less ignorant when I have lunch with the programmers, .Net seems like the perfect language for little shits straight out of college who don't know how to do any real programming. I visited the MLS and saw the entire programming team was interns except for 1 guy.

      It would seem that one should only be able to sell homes if they use windows xp and IE in the case of this MLS. My parents want a Mac, and I want them to have one because it means I don't have to drive down there every 5 months to reinstall everything. But they can't because of fucking .net. I swear to god it's caused me more headaches than anything else MS has ever done.

      Fuck .net. Fuck it in the ass with a big rubber dick, then break it off and beat it with what's left.

    39. Re:Was this article all a mistake? by Yaur · · Score: 1

      You can't do that across the major consumer computing operating systems anyway.

      actually... with silverlight OOB you can. At least for windows and Mac. Moonlight might support OOB as well, but I can't comment on how well it works.

    40. Re:Was this article all a mistake? by exomondo · · Score: 1

      Mac is a tiny share of computing operating systems, its share of the desktop market is about the same as WinMo's share of the smartphone market. Couple that with the fact that Windows can be run on a Mac and the issue is almost non-existent. But with smartphones and tablets become the major platforms and the fact that you can not generally just choose what OS you want on your device the issue is more pronounced in that area.

    41. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Why are you writing code that has to be scrolled horizontally? If you're nesting that much crap, it might be time to modularize... (I retract my inquiry if you're writing code on a monitor 17" or under)

    42. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Bah, there's plenty of soft real time in Windows. There was even a company that sold a modified HAL for those markets. You don't know shit.

    43. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Dude... There are people who used to pay $500 (and now $250) for IntelliJ IDEA even though Eclipse was free.

      If you think Windows+VS to develop .Net applications comes anywhere close to Linux+IntelliJ IDEA to develop Java you're the one on heavy, heavy crap. From your post however it's all too clear you've got huge M$ astro-turfing blinders on.

      Besides that one of the main point of Java is that developers can develop on Windows / OS X / Linux and deploy on shiny Un*x servers (be them Linux or Solaris or whatever).

      This never worked for Microsoft and their vendor locked-in copy of Java that .Net is.

      So please, stop the crack...

    44. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      It's funny that you're condemning .NET when, in reality, it's the shitty programmer's fault for making a poor site.

    45. Re:Was this article all a mistake? by gweihir · · Score: 0

      I can share my 500,000 LOC document control system between users with Windows XP 32 and 64 bit and Windows 7 32 and 64 bit.

      You invested this much to build on a shaky base? My condolences.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    46. Re:Was this article all a mistake? by ImprovOmega · · Score: 1

      .NET was never meant to replace VB. That would be C#.

      The only way to program in VB now is in VB.NET.

      C# was more Microsoft's answer to Java. A lot of conventions are similar between the two, and going from C++ --> Java --> C# was an easy transition for me to make. Heck, C++ --> Java was harder than Java --> C# once I had Java down pat.

    47. Re:Was this article all a mistake? by gweihir · · Score: 2

      You are doing real-time industrial stuff on Windows? That must count as gross negligence.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    48. Re:Was this article all a mistake? by gweihir · · Score: 1

      Ah, sorry, I see you said "configured on windows". I take it that means they do not run on Windows?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    49. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      (Let's just say I hate horizontal scrolling.)

      you claim to be a developer, yet cannot even get line wrapping to work?

      wow.

    50. Re:Was this article all a mistake? by FredFredrickson · · Score: 1

      Thank god i'm not the only one reading these comments going.. wait what? I've been programming for XBOX in C# without any problem.

      --
      Belief? Hope? Preference?The Existential Vortex
    51. Re:Was this article all a mistake? by westlake · · Score: 1

      Really? I guess you can't read pie charts http://www.humblebundle.com/

      I can read the chart.

      But what does it prove?

      These ganes are not new to the Windows platform.

      Some are at least two years old and frequently discounted.

      The competition for the casual gamer and the budget gamer in the Windows market is fierce and the backlist of available titles in all genres that sell online for under $10 is enormous.

      The third Humble Bundle has been beefed up at least twice - with the addition of Steel Storm (bew to Linux) and the bundling in of the second Humble Indie Bundle for those paying more than $5.01.

      The average donation at 8:25 PM ET Wednesday is $5.02 and for that you get the Flash-based game "Machinarium," quite arguably the best of the lot.

      There have been about a quarter of a million sales of the Humble 3 bundle. It's been a grand opportinity for the Linux gamer in particular to bulk-up cheap on commercially produced casual games.

      But he can't deliever even a quarter of the sales.

    52. Re:Was this article all a mistake? by jakartus · · Score: 1

      Extremely Lazy Coding. And stop looking at .NET's ass.

    53. Re:Was this article all a mistake? by maxume · · Score: 0

      Are you able to read the word "configuration"?

      Of course, if the answer is no, you will have trouble understanding the question.

      --
      Nerd rage is the funniest rage.
    54. Re:Was this article all a mistake? by cavreader · · Score: 1

      "Really? Then obviously you have no customers on the Internet." I know I really shouldn't do this but I can only absorb so much idiocy from stupid fucks like you that I can't help myself. .NET is only a tool used to build applications not a religious calling. And like any tool it has it's uses depending on the nature of the application you are developing. Evidently you lack any in depth experience or common sense for that matter to comprehend this simple fact. Any application developer that can't comprehend the simple concept "the right tool for the right job" needs to get out of the basement and enter the real world of professional developers. I have been at this for 25+ years and have used damn near every OS and development platform out there. C#, SmallTalk, C++,C, COBOL, EDL, Assembler, FORTRAN, Pascal, Basic, VB, Java, Python, Perl, and any other development tool or script engine released over the past 25 years. The same goes for operating systems as well. I have designed,developed, deployed and supported Internet applications, console applications, services, hardware drivers, and embedded control systems for organizations of all sizes in both the US and Internationally and I don't give a shit who created the tool as long as it meets my requirements . And trust me you are not the only person on this site that applies a religious devotion to the tools they swear are the penultimate language development tool or operating system ever invented. Software, especially web systems have a very short shelf life. The technology, both software and hardware, are constantly evolving. I have been involved in projects whose sole purpose was to demonstrate both the pros and cons of using different development stacks to meet application requirements using both cost and quality metrics. Basing your technology development tool set selection based on the company who happens to provide the technology is stupid. Take a good look at the technology job market today and compare the number of .NET positions versus the non .NET positions. Genuine experts never have a problem finding a job but genuine experts are a small minority. You are free to pursue any job you want but don't dismiss those who happen to chose another route just because you are filled with contempt for the tool you have judged inferior. Also remember that applications have a very short shelf life and choosing the wrong tools often lead to the development time being long than the actual lifetime of the application.

    55. Re:Was this article all a mistake? by blind+biker · · Score: 1

      Who cares? ALL my customers are on Windows. The tiny fragment of a market that can't run windows software is irrelevant to most people, especially those in the business of making money.

      Actually, there is a huge marketshare of non-Windows platforms on the server side.

      I am sure that all of YOUR customers are on Windows, but you cannot use that to make any conclusions about what is going on in the world outside of YOUR customers. This is a form of selection bias.

      --
      "The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
    56. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Commodore 64! Blender! Who the hell still has a blender? My high-torque omnimixing appliance took over that job.

    57. Re:Was this article all a mistake? by omglolbah · · Score: 1

      Yes, you failed to read ;)

      "Those applications are configured on windows."

      You -configure- said applications on windows, and deploy code/configuration/whatever to the dedicated controller.

      I work in the field too, and have noticed a shift towards .NET

      And I'm glad.... I've spent several years configuring HMI displays based on VB6 GDI activeX components.... kill me :p

    58. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      probably 1% of windows developers are developing OS level software. .NET is doing well. The only reasons for complaints of.NET are from the FOSS AND game-dev guys who only know C++ and refuse to learn C#, and those who treat C++ like COBOL: that it's the best thing since sliced bread and again, refuse to learn anything else.

    59. Re:Was this article all a mistake? by BitZtream · · Score: 1

      Can you bundle your app into a single file, and run it by double-clicking it, on any one of a dozen platforms?

      No, and neither can you unless you're talking about a command line version of 'Hello World'.

      Are your runtime requirements available on ALL of the commonly available platforms, so people don't have to change their platform to run your code?

      Well, lets see ... Windows ... yep, got support there, and really, thats about the only 'common' platform out there. But ... can I run on Linux, which lets face it, is almost as far from 'common' as BeOS is. Yep, runs there. Runs on an iPad? Yep, runs there. OS X? Yep, works there.

      So about the only thing I left out was obscure crap and Android. Just saying 'it runs on Android' is fucking retarded and pointless. I have two android devices that practically nothing will run on because they are shitty low end devices, so you can't really count android as its like saying 'my car runs on gas' and expecting to be able to describe the cars horse power, towing capacity, cargo space, passenger space, door count, fuel efficiency and everything else. So you can't really count ALL of Android, you have to be more specific, and you instantly become 'not common' by my definition.

      So you have the audacity to tell someone that they need to buy a new computer to run your code?

      Why would I do that? I just don't write my code to use bleeding edge technology if I don't want to force bleeding edge tech on my users. I'm pretty sure the exact same applies to whatever you think is gods gift to programming as well.

      Really I have to go out and spend hundreds of dollars to even try out your program, just because your taste in platforms is different from mine?

      No, you don't have to. You made it so you need to do so to try my program because you are intentionally making yourself 'different'. You're like a freaking high school goth. You're struggling so hard to be different and stick it to the man, but your too fucking stupid to realize you're exactly like all the other douche bags doing exactly the same thing as you. No one gives a shit about angsty little douches like you.

      You'll never get supported because your an asshole that can't be pleased, its pointless to try to please you so I just write you off as a waste of time ... like every other sane company on the planet. Before you start spewing out Linux vendors, I challenge you to show me one Linux vendor who makes the majority of their money FROM LINUX OR LINUX RELATED SUPPORT. Its not SUSE or Redhat, who make the majority of their money from investments made on their IPO profits. Don't EVEN think about the money pit called Canonical.

      Why would I spend thousands and thousands of dollars to even try to please a few piss ants like you. All you're going to do is bitch all the time with an occasional side of whining about how you could fix it if it was open source? You'll never get what you want.

      I a clue, which you are completely lacking. That clue allows me to know when to try to support someone or something and when to give up cause its not worth my time. It also lets me know that when I put myself off into an obscure situation, unlike anyone mostly everyone else, that I'm going to have a harder time supporting it and end up doing my work myself. You're probably stupid enough to buy an all electric car, then pull into a gas station and tell them they suck for not supporting you.

      When you make posts like this one, you just make yourself look like an ignorant ass.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    60. Re:Was this article all a mistake? by shutdown+-p+now · · Score: 1

      Did you try to compare C++ code completion in VS 2010 vs Eclipse CDT?

      (VS can handle Boost.Lambda, including extreme cases where result type of the lambda depends on parameter type; Eclipse, not so much)

    61. Re:Was this article all a mistake? by BitZtream · · Score: 1

      Windows isn't a real-time OS

      It most certainly can be. Its a simple extension, and used by plenty of people (me included).

      You can also use .NET in a real time environment for the portions that don't need to be real time ... this too is rather common on the .netduino boards, you write a loadable module in asm for your real time work, and let the .NET code handle all the other stuff.

      Do you even know what a real-time application actually is?

      Do you? I'm not sure you do.

      Do you have any clue about Windows development? No, you don't.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    62. Re:Was this article all a mistake? by BitZtream · · Score: 1

      you didn't know Windows isn't a realtime OS.

      How did this ignorance get marked insightful?

      It takes one tiny ass kernel module and Windows instantly becomes are real time OS.

      You know, just like you have real time extensions for Linux ... well there are real time extensions for Windows.

      Just because you're unaware of something doesn't mean it doesn't exist. MS would certainly disagree with you as far as Windows being a real-time OS ... and I'd have to stand with them since I've worked with it on multiple occasions.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    63. Re:Was this article all a mistake? by BitZtream · · Score: 1

      Everything in .NET 4.0 except WPF, EntityFramework and WF, limited WCF

      Just for reference, those are the things you actually want from .NET 4.0.

      Mono typically 'supports' the runtime and compilers perfectly well, but is missing massive sections of the supporting libraries that you actually use .NET for.

      Mono likes to think they are bad ass because the compiler supports it, its like talking about how cool the new version of python/ruby/perl/whatever is but completely ignoring the fact that this new version doesn't allow the use of ANY of the thousands of libraries out there that actually are the reason people use the language.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    64. Re:Was this article all a mistake? by Opie812 · · Score: 1
      I agree with your comment. Right tool for the job and all that.

      This always makes me laugh though:

      And trust me you are not the only person on this site that applies a religious devotion to the tools they swear are the penultimate language development tool or operating system ever invented.

      penultimate means 'next to last'. I always get a chuckle when people use it to mean something like 'super ultimate'.

      --
      I'm not a nerd. Nerds are smart.
    65. Re:Was this article all a mistake? by BitZtream · · Score: 1

      Yeah no-one ever uses XNA for games.

      Show me a high end XNA game. You can show me plenty of little ones that don't use much CPU or really push the machine, but you won't show me anything truly impressive graphically or from a physics engine stand point.

      I love C# and futz around with XNA myself, you can even buy it on the marketplace if you want! (not going to slashvertise!), but it is not a high performance language. When I want to do complex graphics and physics work, I end up right back at c/c++.

      You can make GREAT games in XNA, but they aren't technically impressive. The two things aren't mutually inclusive.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    66. Re:Was this article all a mistake? by Opie812 · · Score: 1

      LOL. Eclipse sucks ASS compared to Visual Studo in every possible way. Microsoft did the IDE right.

      --
      I'm not a nerd. Nerds are smart.
    67. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Horizontal scrolling? You can set up your own font configurations (small text, if you want) and collapse any panels that may be eating up space on the sides. Why would you ever need to scroll horizontally more than eclipse?

    68. Re:Was this article all a mistake? by emt377 · · Score: 1

      You're going to have to go over that one in more detail, Sparky. I can share my 500,000 LOC document control system between users with Windows XP 32 and 64 bit and Windows 7 32 and 64 bit. There's no reason not to expect Vista would work as well, although there's also no real reason to try.

      Only in the MS COM universe does a document sharing system need 500k LOC. 475000 of those LOC will consist of handling COM objects.

    69. Re:Was this article all a mistake? by mabhatter654 · · Score: 1

      The FAILURE is that Microsoft did not demonstrate the kind of "closed door" leadership we got from Apple... With a 5 year head start.

      All the things iPhone has... Comparable APIs, locked down code, sandboxing.. .Net had out-of-the-box almost at introduction. Microsoft's first screw up was that they tried to position it as a Java killer and tried to use PR and Marketing poorly.

      Frankly, they lacked the ability to achieve long-term results.. Microsoft failed to port their MOST IMPORTANT PRODUCTS (Office and VS) to the new language.

        Look how Apple pulled off OSX, and Intel, and iPad... The plans and tools to create iPad in 2010 were laid in the earliest OSX versions. Steve's famous "one more thing" with OSX, on Intel Macs, running almost all the standard Apps NATIVELY... On stage right NOW... That is BANG!

      Microsoft never delivered a .Net Office... Vista should have been .Net all the way through... Along with Office and Visual Studio. it should have been a "clean break". Old apps run in the XP emulator, new ones use .Net... With the benefit that .net would go BACK to XP as much as possible, but no more. Microsoft had a SEVEN YEAR gap in OS versions.. They easily could have pushed a LOT of "breaking" on devs, but they barely got Vista out the door and working on launch date.

      Microsoft had most of a decade with THE MOST CASH in the industry.. Yet they are incapable of getting a rewrite out the door, and making CASH from the huge number of PhDs they hire at Microsoft Research.

      The problem is not technology. The problem is that they spent so much time being afraid of underdogs, looking back, they just plain ran off the path into a tree..

    70. Re:Was this article all a mistake? by after.fallout.34t98e · · Score: 1

      On top of this, many of the libraries have bugs which prevent your code from working even if the library dif have all the classes you were using. For example you might have a class which inherits from the library class and overrides a method. In .NET this class may compile fine, and in Mono it complains about the method not being virtual, so the resulting code doesn't function properly.

      btw, the only thing I am using in .NET 4 are the new expression types (ex: StatementExpression). However my code is all ASP.NET.

    71. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      And the answer to my question is yes.

      But the answer to your question is a big fat no. And I have an entire functioning, blossoming eco-system to back that answer up.

      Oh, and while we're at it... Why post a question when you've already made your mind up? And posed the question in a biased way based on your pre-decided conclusion.

      XcepticZP

      The "blossoming eco-system" would be more credible if Microsoft actually used it for its own products, in particular MS Office. Dot net is OK for certain things (eg. business apps), but for serious, consumer grade applications, C++/COM is still the standard.

    72. Re:Was this article all a mistake? by orasio · · Score: 1

      Who cares? ALL my customers are on Windows. The tiny fragment of a market that can't run windows software is irrelevant to most people, especially those in the business of making money.

      If you develop in .NET, it's not surprising that you only have customers that run Windows. It would be odd that it was otherwise.
      The fragment of a market that _can't_ run Windows is very small and irrelevant.
      The portion of a market that _won't_ run Windows for you app, is not small, and relevant.
      Keep in mind that most servers run Linux, so business software that doesn't run on Linux is a problem.

      Even the largest of those tiny minorities (Mac users) can run .Net using bootcamp or parallels or some such.

      And for the rest, there's Mono, which will run a subset of .Net stuff.

      That could be true if you were just talking about desktop software. Other than MS Office, desktop software is not the largest kind in business.
      The real money is in business software, that needs to run (at least partially) on servers. In that case, Mac is not relevant, and Windows is not a leader. There is money to be lost if you don't target multiple platforms.

      Of course, you can run a successful company, even if you don't target the whole of the available market, but there are actual, relevant, missed opportunities when you target just MS Windows.

    73. Re:Was this article all a mistake? by liquiddark · · Score: 1

      Yeah, I wipe my tears away with my super absorbent paycheque.

    74. Re:Was this article all a mistake? by liquiddark · · Score: 1

      No doubt you've reviewed the system in detail and have any fucking idea what you're talking about, which is why it worries me so much.

    75. Re:Was this article all a mistake? by exomondo · · Score: 1

      It takes one tiny ass kernel module and Windows instantly becomes are real time OS.

      ipso-facto windows is not a realtime OS, you might as well say windows is a 3d modeling package and all you need to do is install the required software. even then if you are switching in realtime kernel modules what's that got to do with adoption of .net?

    76. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      I understand some of your defense of .NET, but...

      "Visual Studio is bar none the best coding IDE". You must either be high, or haven't used any other advanced IDE.

      The ONLY way Visual Studio stands a chance is if you have ReSharper installed, otherwise IntelliJ and even Eclipse far surpass it as far as productivity. Other IDE's have real refactoring tools and intuitive default shortcuts. Also, VS is supremely bulky and you need a hulk of an OS to even run the damn thing.

      VS is understood to way behind, and the fact that you say something as drastic as "bar none the best coding IDE" leads me to believe that you have no idea wtf you're talking about.

    77. Re:Was this article all a mistake? by Gutboy · · Score: 1

      Really? I guess you can't read pie charts http://www.humblebundle.com/

      I can read the chart.

      But what does it prove?

      It proves that the original statement that Humble Bundle makes more money from Linux & Mac combined than from Windows. You know, what I was commenting on. Showing that the parent of my original comment was wrong.

    78. Re:Was this article all a mistake? by tibit · · Score: 1

      Pretty much all of Beckhoff's real-time controllers run on TwinCAT, and that runs in Windows (technically alongside of it). Last I checked, I can have 50us control cycles on off-the-shelf hardware, and it's rock solid, on both Windows XP and Windows CE. Of course you can't do it in barebone Windows, you need a framework that relegates Windows to the lowest priority task and so on. So I'd be careful with calling people names...

      --
      A successful API design takes a mixture of software design and pedagogy.
    79. Re:Was this article all a mistake? by exomondo · · Score: 1

      Yeah no-one ever uses XNA for games.

      Show me a high end XNA game. You can show me plenty of little ones that don't use much CPU or really push the machine, but you won't show me anything truly impressive graphically or from a physics engine stand point.

      I dunno, i found Colloseum to be pretty impressive.
      Or things like this
      There's no reason you can't do visually impressive or physics-intensive stuff in XNA since you offload most of the hard work to the GPU anyway, and you do that no matter what language you're using.

    80. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      "Visual Studio is bar none the best coding IDE".

      What?

      Have _YOU_ ever compared any of the Java IDEs with VS. You know, the one's that have had the refactoring tools, source control flexibility, and bug tracking for years while VS remained slow, and lacking features. Visual Studio is garbage. You need a supercomputer to run it, and need ReSharper for any useful shortcuts and refactoring.

      I'm sorry, but your comment makes you appear like you don't know what you're talking about.

    81. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Microsoft hired people who earned 4.0 averages--not people who were creative. THAT was their major mistake. Over the years I have known quite a few Microsofties--smart to a man... Couldn't CREATE their way out of a paper bag. Notice that Microsoft has innovated so little? They copy but rarely invent.

    82. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      The bad experience of coding in VB6 led me directly to switch to Java. Thank you VB6 for being so shitty. Best decision I ever made.

    83. Re:Was this article all a mistake? by Renegade+Iconoclast · · Score: 1

      Hmmm.... maybe I don't. I've spent the last 10 years writing stock market software. For us, "real-time" means in such a fraction of a second that the human operator can't tell the difference. It doesn't do much good to show more quotes than the human eye can see.

      I can see how, for engineering applications, the "human" definition of real-time wouldn't be good enough. But I assure you, windows is fast "enough" for anything that involves a human operator, assuming the people writing the software are competent.

    84. Re:Was this article all a mistake? by Joe+Tennies · · Score: 1

      Have you looked at the JetBrains IDEs? PyCharm is amazing. IntelliJ IDEA has been the IDE I keep hearing people actually like for Java. I haven't tried the others, but if they are half as good as PyCharm, they're quite good.

      Eclipse isn't actually too bad, except that it was over engineered into little components (the Java way). That just tends to leave it pretty slow.

      Note: I do not work for JetBrains, just use PyCharm and have really liked it.

    85. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      To be fair, most .NET developers use VS with the Resharper plugin (and if you don't I am so sorry). Conveniently, Resharper was written by Jetbrains, who also make IntelliJ IDEA and this is just as good for code development.

      I won't get into GUI development as this is something I have never seen well implemented in an IDE plugin in Java (possibly because of Swing), and VS seems to do it very well.

    86. Re:Was this article all a mistake? by Matje · · Score: 1

      oh but you *can* run .NET apps on your iPhone, using monotouch ;-)

    87. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Personally, I don't think anything out there can touch IntelliJ Idea. I use Eclipse and Visual Studio for my day job, but I use IntelliJ when I work on projects of my own, for pleasure. The extra refactoring support, etc. it has means that it makes far, far more efficient use of my time than the others do.

    88. Re:Was this article all a mistake? by Tablizer · · Score: 1

      The bad experience of coding in VB6 led me directly to switch to Java. Thank you VB6 for being so shitty. Best decision I ever made.

      It was a lot quicker and easier for a non-language-dedicated programmer to build a small-to-medium app in VB6. Java has a long learning curve and complex bureaucratic libraries.

      A typical environment of a non-large companies was a programmer who used and maintained multiple stacks (VB, Access, FoxPro, Paradox, Delphi, etc.) and couldn't dedicated themselves to mastering the Java maze.

    89. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      [[Why post a question when you've already made your mind up?]]

      That's called "begging the question". (As opposed to what Slashdot means when its users write "begging the question" virtually every time it has ever appeared here.)

    90. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      "Lets face it, if MS hosed up every other thing its ever done, Visual Studio is bar none the best coding IDE."

      ROTFLMAO....

      Why yes, that glorified text editor is so great...

    91. Re:Was this article all a mistake? by SplashMyBandit · · Score: 1

      Ah, you you're only doing the desktop or small-to-medium enterprise then. Big enterprise (where there is a *lot* of money) has all sorts of environments that you don't get to chose. That's why Java still gets a lot more work than .NET (according to various indexes, eg. Tiobe). You post is typical from a developer used to working in the relatively limited desktop space. We see that kind of post all the time on Slashdot. Shame you guys are oblivious to all the environments (embedded and huge enterprise) away from your limited experience.

    92. Re:Was this article all a mistake? by SplashMyBandit · · Score: 1

      You do know that there a siginificant .NET API that don't run in Mono and never will. Suggest you actually read the Mono compatibility page some time. .NET is not cross-platform and was not designed to be (the languages mean nothing, it is the *libraries* that must run everywhere).

    93. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      I always think it is a burden when I have to work with Eclipse again. I never liked it, it was too slow 10 years ago. I did like IntelliJ's IDEA, but the company I worked at, at the time, didn't want to buy a license.

      Visual Studio together with Resharper (from the same company as IntelliJ IDEA), feels light years ahead of Eclipse... But that's just my opinion.

      I can imagine, if you have the right plugins for Eclipse it could be nice too...

    94. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Frankly, your post jumped off the cliff the moment you said '500,000 LOC'. You might as well swing Hummer car keys around, it'd be just as impressive.

    95. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      I won't get into GUI development as this is something I have never seen well implemented in an IDE plugin in Java (possibly because of Swing)

      NetBeans.

    96. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      I would revise it as "small-to-very-small".

    97. Re:Was this article all a mistake? by khr · · Score: 1

      Then there was a shake up and we got a new manager of engineering and all that time and money went down the drain as we stayed with C++ for that software. Just sayin'.

      So, are you saying there's a problem with .NET, that it's a failure? Or that your company's new manager of engineering simply wanted to make his or her expensive mark on the company?

    98. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Really, you think VS is the best IDE. Ya and you must also like being spoon fed like a baby. A good IDE is nice but it's only a tool.

      My problem with VS stems from the fact that MS VS is little more than a fancied up second rate IDE. VS adds tons of unnecessary files to your project, is nearly impossible to reconfigure (especially if you want to recompile for a different platform.), and doesn't even support the current technology that MS intended it to develop for. In fact many of the useful features require workarounds or hacks or third party tools to complete. In the end your better off just coding in a more reliable IDE and using the same third party tools to develop more reliable solutions. And yes, I do have VS 2010 ultimate, so there are not any features I'm missing out on. The fact is that I have found nothing that I have coded that has been easier to code in VS than any other "free" IDE. In fact most things are easier in the other IDE's. For example full menu customization (EX: edit controls in menu's, I mean come on the edit controls in menus is something that even MS put in older office builds, but the IDE trashes it every time it touches the resource file.), full alpha channel support in icons/cursors (something supported in XP, but VS 2010 ultimate can't even create nice looking icons using this feature), or even something as simple as allowing direct editing of resources (I should never have to go outside the IDE to load a file that can be text edited in an external text editor.), maybe even allow PE tweaking(just a persona preference, after all MS did develop the file format you'd think they would support the best editors for it in their professional development tools). If I have to exit the IDE or worse the IDE screws up a part of my program when editing it then the IDE is useless to me. The only tool that I have found useful in this IDE is SPY++, but even that has free alternatives.

      As for .NET it is really a useless technology. There is no need for it other than to make an attempt to give MS a monopoly in the coding dept. Now if MS were to decide to develop .NET so that it were truly cross platform and even work on devises such as android like java does then it might fill the niche that it claimed it would as a tool that makes almost any language cross platform. However, MS dropped the ball on this, when they failed to properly develop it for platforms other than windows. I'm sorry but forcing a 3rd party to support your language for Linux (one of the more popular server environments) was a bad call.

      The concept for .NET was good, but the implementation was poor. It just seems like an attempt to brand everything to MS, especially after the release of Silverlight. MS needs to work harder at impressing non-windows users, maybe then they will get better recognition.

    99. Re:Was this article all a mistake? by Tim+C · · Score: 1

      Lets face it, if MS hosed up every other thing its ever done, Visual Studio is bar none the best coding IDE.

      I code professionally in both Java and C#, and find using Visual Studio to be a painful experience compared to using Eclipse. The relative dearth of refactoring tools is the first thing that springs to mind, but even simple things like a lack of Eclipse's "open resource" and "open type" shortcuts (at least as of VS 2008, I've only just started using 2010 but can't see anything in it either) make a real, detrimental difference to my productivity.

      I'm aware that a lot of the shortcomings can be addressed by third-party extensions, but out of the box Eclipse is so much better than VS it's not even funny.

    100. Re:Was this article all a mistake? by guruevi · · Score: 1

      All your customers are on Windows because you only write programs for Windows. The market these days is larger than Windows as it's market share is going down in favor of both Linux and Mac.

      Microsoft created .NET and just like the other 'cultures' they manufactured before they will dump it for something else as the market needs something leaner and more geared towards using ARM or other CPU's, multicore functionality and built-in security.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    101. Re:Was this article all a mistake? by jgagnon · · Score: 1

      I helped bring the Windows average up a little by giving them $25. Damn cheapskates giving them $1 ought to feel ashamed.

      --
      Remember to maintain your supply of /facepalm oil to prevent chafing.
    102. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      This isn't in the "Ask Slashdot" section. It's a rhetorical question.

    103. Re:Was this article all a mistake? by hesaigo999ca · · Score: 1

      I agree, if you ask me if diablo is worthless, i will say, well, how much of an ongoing economy is still flourishing (auctions for buying virtual weapons)
      so, if people are still trading, and playing, then i guess, it is not worthless. My point is if there is still ongoing ties to that software flourishing everywhere, how could anyone make the assumption that its worthless, or dying? I am a .net dev. and i make a living with MS products, no matter how insecure or crappy it might be....
      and anyone using a windows based computer probably has used one of the apps i have worked on, atleast once in their lives....so guess what.....net is here to stay.

      I agree also with what you say concerning the person who posted the article, but falls more under CmdTaco not really spending much time reviewing the crap is put on the site...sometimes we get good ones, and then we get ones like this one....

    104. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Who cares? ALL my customers are on Windows. The tiny fragment of a market that can't run windows software is irrelevant to most people, especially those in the business of making money.

      Well, if your product is a Windows-only application, that's not really all that surprising. With that (common) arrogant stance, you ensure the statistic.

      The epiphany comes when you realize that the market of people not running Windows is not insignificant... and that even Windows users have other devices that don't run Windows that they might want to use with your products. iPhones, iPads, Android-based phones and tablets, embedded systems, etc.

    105. Re:Was this article all a mistake? by cavreader · · Score: 1

      "penultimate" Of course I noticed this after I submitted but the chances the guy I was responding noticing it is pretty small based on the level of intelligence he displayed in his original post.

    106. Re:Was this article all a mistake? by Dog-Cow · · Score: 1

      Real Time in OS terms just means that there is a guaranteed upper-bound to latency. That upper-bound could be measured in seconds, but that still fits the definition. Real Time doesn't mean "going really fast".

    107. Re:Was this article all a mistake? by godefroi · · Score: 1

      Then there was a shake up and we got a new manager of engineering and all that time and money went down the drain

      Damn, that .NET is insidious. I mean, I knew it ate babies, but stealing people's money too?

      --
      Karma: Poor (Mostly affected by lame karma-joke sigs)
    108. Re:Was this article all a mistake? by Dog-Cow · · Score: 1

      Baseless hatred is a character flaw. I'd have that looked at if I were you.

    109. Re:Was this article all a mistake? by Dog-Cow · · Score: 1

      If you're a developer and you allow an editor to line-wrap your code, I don't want to use your software.

    110. Re:Was this article all a mistake? by sourcerror · · Score: 1

      My experience is that code completition is very poor in all C++ IDEs, due to its complicated grammar. Although I only used the Express Version of VS C++, I guess code completition isn't dumbed down.

    111. Re:Was this article all a mistake? by RingDev · · Score: 1

      Right click, goto definition. I think the default shortcut is ctrl-F2 or something.

      -Rick

      --
      "Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
    112. Re:Was this article all a mistake? by Nadaka · · Score: 1

      Really? Eclipse has the keyboard shortcuts for common functions right there in the menu. That allows you to naturally learn the shortcuts and use the program more quickly. VS does not and their keyboard shortcuts are barely documented at all. The eclipse interface is also more customizable.

      The only real advantage that VS has is that its drag and drop GUI creation toolkit is built in, instead of using a plugin.

    113. Re:Was this article all a mistake? by AmiMoJo · · Score: 1

      Vista and above come with .NET 3 pre-installed.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    114. Re:Was this article all a mistake? by shutdown+-p+now · · Score: 1

      My experience is that code completition is very poor in all C++ IDEs, due to its complicated grammar.

      That is generally true. However, the game has changed specifically in VS 2010 (i.e. if your experience was with 2008, you can disregard it - the code completion engine was completely rewritten since).

      Most C++ IDEs, including past versions of VS, don't even try to parse C++ properly - they can handle simple constructs (i.e. no templates, or straightforward templates), and try to guess the rest. Generally, the more templates/macros you use, the more unreliable this gets. With heavy use of STL and Boost, it typically breaks down pretty fast.

      In VS 2010, the editor actually uses a full-fledged C++ compiler front end to build the AST and associated data structures to drive code completion. This means that it can handle pretty much arbitrarily complex C++ constructs correctly. In particular, it will handle any template metaprogramming etc (subject only to limits on recursive templates etc, to avoid crashing the IDE when recursion is infinite). It will also expand macros and process the result. This means that STL should just work, and Boost - even Bind, Lambda or Spirit - should also just work.

      The only downside of this is that it's a fair bit slower. A proper C++ reparse is not viable to do on every new letter typed in the editor, so it still has the "guessing" parser there, and the real one will catch up in background; so if you quickly e.g. paste a complicated template definition and immediately try to use it, it may not be immediately seen in code completion. Also, when first opening a project, it will have to parse the headers you included as well - normally takes a dozen seconds or so (IIRC, progress for this is displayed in the status bar).

      lthough I only used the Express Version of VS C++, I guess code completition isn't dumbed down.

      It's not. If you use VS2010 Express, and code completion didn't work for you in some way, can you describe what the problem was?

      (note: one known non-working scenario is code completion in C++/CLI projects; this simply doesn't work at all in VS2010, because the front-end driving it doesn't yet know CLI-specific constructs)

    115. Re:Was this article all a mistake? by svick · · Score: 1

      Then you should tell your boss to get Resharper for your team. It's from the same company as IntelliJ Idea and can make your productivity go up quite a lot, if used properly.

    116. Re:Was this article all a mistake? by magical+liopleurodon · · Score: 1

      Thank god. VB 6 is horrid. I am still trying to rehabilitate people who spent to many years programming in it.

      somebody mod parent up. He nailed it.
      That VB6 is so horrid alone justifies .net

    117. Re:Was this article all a mistake? by sourcerror · · Score: 1

      "In VS 2010, the editor actually uses a full-fledged C++ compiler front end to build the AST and associated data structures to drive code completion. "

      It's great to hear that.
      Eclipse does that for Java too. However getting that for C++ is quite feat.

    118. Re:Was this article all a mistake? by hxnwix · · Score: 1

      For high performance apps like games or visualization systems, it's not so hot.

      Yeah no-one ever uses XNA for games.

      Nobody ever uses XNA for games because they want to.

    119. Re:Was this article all a mistake? by Anonymous Coward · · Score: 0

      Those applications are configured on windows.

      There is no mention of any real-time apps actually running on windows. Reading comprehension fail.

    120. Re:Was this article all a mistake? by neonsignal · · Score: 1

      Some years back I heard Microsoft representatives at a firmware conference describe WinCE as a real-time operating system. They seemed to think that real-time meant fast scheduling and interrupt response times. It is a common misunderstanding (real-time actually means consistent completion times for task activities), and now makes me wary about any products (particularly Microsoft ones) that claim to be "real-time". Other presenters at the conference (Green Hills, QNX, etc) were far more knowledgable.

      Yes, there are real-time solutions for Windows, but there is more to a real-time operating system than just a few scheduling mods; for example, the interaction between drivers and the operating system also plays a significant part. That is why Windows (or Linux) would not normally be the first choice for a genuine real-time system.

      Microsoft may well disagree, but I would suggest that Microsoft marketing claims should be taken with a grain of salt.

    121. Re:Was this article all a mistake? by exomondo · · Score: 1

      No i got that but i assumed he that is what he meant because otherwise his post is completely pointless...duh!

    122. Re:Was this article all a mistake? by bored · · Score: 1

      I know, it sucks, I can only run .Net apps on any Windows system from the past 10 years!

      But if you had used win32, you could probably get an application to run on anything from NT 3.1, 95 ,etc to win7 if you were careful. Heck if you were _really_ careful, you could probably stick to the win32s subset and get windows 3.1 in there too. That is nearly twenty years of compatibility with a single ABI!

    123. Re:Was this article all a mistake? by bored · · Score: 1

      Frankly, they lacked the ability to achieve long-term results.. Microsoft failed to port their MOST IMPORTANT PRODUCTS (Office and VS) to the new language.

      I think you fail to understand the momentum a code base gets after a few years. Porting an application to .net was a nightmare for most established applications (I personally know of a couple name brand applications that simply could not get a port "working" even with MS assistance in the early 2000s). That is one reason why you don't see a .net Photoshop, quicken, etc. Another reason is that porting something like office (or photoshop/quicken) would have required porting .net to the mac. Something MS still hasn't done. Frankly, while .net is a fantastic piece of technology, its not really the kind of technology you should base an entire application framework on. Its fine for most things, but there are simply to many unsolved problems with regard to heavily threaded applications, large memory subsystems, the GC, application latency requirements, etc. MS has made great strides in these areas but they continue to trail behind what is possible just using the native APIs. Plus, anyone interested in the possibility of cross platform (or anyone who questions whether windows will be the OS of choice in 10 years) isn't willing to tie themselves as closely to a MS only solution.

    124. Re:Was this article all a mistake? by wjsteele · · Score: 1

      Microsoft ended all support for Visual Basic 6 in 2008

      Hmmm... That is simply not true. The Visual Basic 6 Runtime is STILL included with Windows 7 and is STILL supported by Microsoft and will be for at least the next 10 years. The Visual Basic 6 IDE is no longer supported, but that doesn't prevent your apps from running, nor does it force you to upgrade them to .NET.

      Bill

      --
      It's my Sig and you can't have it. Mine! All Mine!
    125. Re:Was this article all a mistake? by Hognoxious · · Score: 1

      Pretty much all of Beckhoff's real-time controllers run on TwinCAT, and that runs in Windows (technically alongside of it).

      Of course you can't do it in barebone Windows, you need a framework that relegates Windows to the lowest priority task and so on.

      So you eat cheese, because you put some ham next to the cheese, and then you throw away the cheese and eat the ham.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    126. Re:Was this article all a mistake? by tibit · · Score: 1

      Technically -- maybe, but in practice it works like this:

      1. Install TwinCat
      2. Reboot
      3. Fire up the UI, set up the PLC runtime to run your code.
      4. Done

      You're still in Windows, everything else works the same. The user experience is completely Windows-centric, you're not aware of something going on behind the scenes unless you read about it in the documentation.

      I'd say you eat both cheese and ham, with cheese under the ham. Ham took over.

      --
      A successful API design takes a mixture of software design and pedagogy.
    127. Re:Was this article all a mistake? by Tablizer · · Score: 1

      No, medium.

  3. No? by bhcompy · · Score: 5, Insightful

    Works fine for what it is. It's not meant to build OS's with. It's meant for the applications within, and certain applications at that. Works pretty damn well for that.

    1. Re:No? by KnightOwlSC · · Score: 2

      Agreed completely. I would much rather be writing LOB applications using .Net (C# specifically) then VB7 or C++ any day. The author of the original article is someone who spends a lot of time doing things that require C++ to do. And that's perfectly fine but that is a smaller and smaller % of development work. Heh.. can anyone really imagine writing a web site in C++?

    2. Re:No? by gabereiser · · Score: 0

      I agree.... it's a platform language, not a low-level systems language. It's for applications, not for memory-starved systems layers...

    3. Re:No? by exhilaration · · Score: 3, Insightful

      Agreed, it's a perfectly fine language for plenty of things like business applications. If you want to build operating systems or first person shooters, you won't be using .Net or Java, that's just not what they're for.

    4. Re:No? by subk · · Score: 1, Informative

      Works pretty damn well for that.

      Not by the time financial transaction software developers like Fidelity Information Services get a hold of it. How is running a daemon compiled together with it's monitor in a GUI-based .COM object even remotely "working pretty damn well"? Don't get me wrong, I've heard all the fairy tale applications for .NET, and sure it could have some uses.. But any .NET app I've ever seen has been a nightmare. Had to build server images with very specific versions of every single OS patch and interpretor, otherwise the thing went tits up... This is not what .NET was "supposed" to be about, but in the end it was utter crap.

      Don't even get me started on MS Biztalk.... ::cringe::

      --
      Now, if you'll excuse me, I have backups to corrupt.
    5. Re:No? by NJRoadfan · · Score: 3, Informative

      FWIW, I have seen Java applications require a specific version of the JRE to run properly. I've had stuff break if they were, for example, running on JRE1.5.0_06 instead of JRE1.5.0_05. .NET is no exception, plenty of stuff out there demands the .NET 1.1 runtime be installed even though 2.0 is present in the system.

    6. Re:No? by Anonymous Coward · · Score: 0

      Heh.. can anyone really imagine writing a web site in C++?

      No, that's what HTML is for.

    7. Re:No? by Anonymous Coward · · Score: 0

      No, but I did write a web site in ANSI-C once. It even had a visitors counter and a message board.
      Web site programming in C isn't that complicated.

    8. Re:No? by DragonWriter · · Score: 1

      Not by the time financial transaction software developers like Fidelity Information Services get a hold of it. How is running a daemon compiled together with it's monitor in a GUI-based .COM object even remotely "working pretty damn well"? Don't get me wrong, I've heard all the fairy tale applications for .NET, and sure it could have some uses.. But any .NET app I've ever seen has been a nightmare. Had to build server images with very specific versions of every single OS patch and interpretor, otherwise the thing went tits up... This is not what .NET was "supposed" to be about, but in the end it was utter crap.

      .NET doesn't magically stop people from developing brittle, poorly designed software. That's what you get competent developers and give them the resources they need to do the job right for. Or, at least, if you don't, you shouldn't blame the platform.

    9. Re:No? by marcello_dl · · Score: 1

      I agree for a different reason, examining .NET from a technological point of view... that's pointless. A java killer was already a not so good idea, a java killer without proper software freedom and platform independence is a joke, if I stick to one platform there's no point in doing stuff through a VM.

      It has been a success because it kept people under MS umbrella.

      And all it takes for MS to silence speculation is a new release with some cosmetic changes, I expect something like that, it is a good marketing move.

      It is not a bad thing for those developers who are used to sell the same stuff to clients all over again when a new incompatible release comes out.

      It is not a bad thing because forced java to be fully open source, poor java devs if oracle bought the only possible implementation.

      It's bad for the users: but hey, "MS strategy hurts users" isn't news.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
    10. Re:No? by Applekid · · Score: 1

      Works pretty damn well for that.

      Not by the time financial transaction software developers like Fidelity Information Services get a hold of it. How is running a daemon compiled together with it's monitor in a GUI-based .COM object even remotely "working pretty damn well"? Don't get me wrong, I've heard all the fairy tale applications for .NET, and sure it could have some uses.. But any .NET app I've ever seen has been a nightmare. Had to build server images with very specific versions of every single OS patch and interpretor, otherwise the thing went tits up... This is not what .NET was "supposed" to be about, but in the end it was utter crap.

      Any technology can be misused to generate despair.

      --
      More Twoson than Cupertino
    11. Re:No? by sjames · · Score: 1

      It could be a decent language if it wasn't locked to a specific OS.

    12. Re:No? by vlm · · Score: 1

      .NET doesn't magically stop people from developing brittle, poorly designed software. That's what you get competent developers and give them the resources they need to do the job right for. Or, at least, if you don't, you shouldn't blame the platform.

      Why does it only happen with .net and java? Must be some peculiarity of the language that leads them to it. Much as its easier to make write-only Perl than write-only python. Or it seems easier to make object oriented Ruby than object-oriented Perl.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    13. Re:No? by Mister+Pedant · · Score: 0

      You mean "applications using .Net (C# specifically) than VB7 or C++" as opposed to what you wrote "applications using .Net (C# specifically) then VB7 or C++". The way you wrote it implies you were writing using .Net then you changed to VB7 or C++. It's so strange when people use 'then' when the mean 'than', totally different words man.

    14. Re:No? by BasharTeg · · Score: 1

      .NET is a great platform, and C# is a great language. All of this .NET hate from anti-Microsoft types with no knowledge of the platform is just about as useful as all of the patent fear-mongering associated with Mono. Anything Microsoft invents, these people are going to try to tear down, whether it's a good innovation or a bad one.

      Except AJAX of course. They just pretend Microsoft didn't invent XMLHttpRequest or iframe.

    15. Re:No? by Anonymous Coward · · Score: 0

      Well, that seems to be a prevalent problem in programming... this idea that "We have a language... we must make it the one language that rules all!" Java is nice for some apps, .Net is nice for some apps, and C++ is nic for some apps. PHP works some places, Python or whatever other language for other things.

      Computer languages are just tools after all. And no tool is perfect for every job.

    16. Re:No? by DrXym · · Score: 1
      Not sure what Fidelity app you're talking about here. Many real world .NET apps were started with the best intention of porting code running in C++ or VB over to .NET to improve the look & feel and perhaps benefit in other ways such as being a more stable development platform than C++. But usually those intentions were never fulfilled for budgetary reasons and apps become frankenstein creations of bits of old C++, ActiveX controls with .NET holding it all together, possibly attached to MSDE / MS SQL Server and other MS technologies.

      It was my experience with porting apps and seeing all this stuff which convinced me that Mono was a waste of time. .NET is tied to Windows and it will never change. Even if MS deprecate it, I expect it will still be around for a long time to come.

      MS is at fault for making it easy to pollute .NET with unmanaged code. Maybe customers demanded it but it could have been done in a manner similar to JNI - causing enough pain to be discouraged. It might have seemed like a Great Idea at the time to tie devs into Windows, but it really tied them to x86 Windows. So .NET could well bite MS on the ass when they try and introduce ARM devices. Perhaps they think it's easier to start with a clean slate than bother sorting out the mess.

    17. Re:No? by Anonymous Coward · · Score: 2, Funny

      No, but secure website programming in C fucking well is.

    18. Re:No? by subk · · Score: 1

      .NET doesn't magically stop people from developing brittle, poorly designed software.

      True. Not only does it not stop them, it ENABLES them.

      --
      Now, if you'll excuse me, I have backups to corrupt.
    19. Re:No? by Anonymous Coward · · Score: 0

      Locked to a specific OS? what?
      http://lmgtfy.com/?q=mono+project
      http://lmgtfy.com/?q=monotouch

      And when you say "language" just what are you talking about? In DotNet you may freely combine a dozen or more languages as you find appropriate. Build an object in C#, extend it in VisualBasic.Net, consume it in Fortran.Net and print reports in Cobol... well you get the point.

      The benefit comes not from the language (although I rather like C#), but from the extraordinarily rich library that is the Dot Net Framework. In a nutshell, it's a mountain of code you'll never have to write that is reasonably consistent and easy to consume.

      Or is this really just a complaint because Microsoft created it?

    20. Re:No? by Anonymous Coward · · Score: 0

      ...If you want to build operating systems or first person shooters, you won't be using .Net or Java, that's just not what they're for....

      Why not? It looks like you can do it if you try.
      Here's a 3d engine.
      Here's an Operating System.

    21. Re:No? by subk · · Score: 1

      Not sure what Fidelity app you're talking about here.

      AP7000 >> ALS-COM

      --
      Now, if you'll excuse me, I have backups to corrupt.
    22. Re:No? by sourcerror · · Score: 1

      Because they're the most popular languages? In a bigger population of programmers you will find bigger idiots. Also, the problem is people who only know one programming language on a usable level. They miss out on a lot of intresting concepts, and it also makes them fanatic fanboys.

    23. Re:No? by Anonymous Coward · · Score: 0

      Exactly, .NET is pretty darn good for what it is. It provides a way to develop applications very quickly and with few staff, that still have a lot of power. I hear people complain all the time that the only real programming is in C++, and it's complete BS. I develop in C++ and .NET languages as needed... Java as well when I absolutely have to. I can tell you for certain that if I only used C++ to develop all our applications, the development time and cost would put off many customers. The fact is that .NET languages, be it C# or VB, are massively fast to develop in and the code is phenomenally flexible for reuse.

      I also don't buy the whole "it's only for windows" nonsense as an excuse why not to use .NET. Windows is the vast majority of desktop systems in the world, and an even larger share of office systems. For a developer to choose a development environment, language, or platform, based on the assumption that they might possibly need to be able to develop on a minority OS at some future point is quite absurd.

      At the end of the day people are entitled to their opinions, but until .NET development isn't absurdly lucrative I'll continue to use it.

    24. Re:No? by Dahamma · · Score: 1

      Exactly. They might as well try to argue Objective-C is a dead end for iOS app development because the XNU kernel was written in C/C++.

    25. Re:No? by DragonWriter · · Score: 2

      It could be a decent language if it wasn't locked to a specific OS.

      .NET isn't a languages, and the languages for it (C#, VB.NET, IronRuby, IronPython, etc.) aren't tied to a specific OS or even OS vendor.

      Some of the libraries are locked to a particular OS (or, more commonly, a family of OSs from a particular vendor).

    26. Re:No? by Anonymous Coward · · Score: 0

      Agreed, it works for making applications quick and simple - and with mono support works on almost every operating system out there. I call it a success!

    27. Re:No? by sjames · · Score: 1

      I think most people recognize that mono is more a bastard stepchild than a first class member of the .Net family. It was reluctantly permitted to live to avoid yet more anti-trust issues. It's existence is certainly not due to any efforts on MS's part.

      Compare to C, C++, FORTRAN, etc which are first class languages pretty much available for any platform out there. Compare also to Java (which .Net was clearly meant to compete with after Sun made clear that a platform locked perversion of Java wasn't going to fly). For that matter, Perl and Python.

      I really don't care who created it, I care more where it is available in first class form.

      I haven't seen a lot of .Net based programs ever running on anything but Windows, but I have seen plenty of software start life as a Unix/C program easily ported to Windows.

    28. Re:No? by sjames · · Score: 2

      So where is the variety of Apps in .Net running on all sorts of different OSes? I haven't seen much beyond proof of concept demos.

      It certainly doesn't seem that MS ever intended the Apps to work elsewhere.

      It's true that there is more than one language for .Net, but they all seem to be either brand new invented to run MS apps on MS OSes by MS or someone else's efforts.

      Java (for all it's many pitfalls) ran on multiple platforms right out of the box. .Net only came into existence when MS's efforts to pervert Java into an MS only variant was squashed by Sun.

    29. Re:No? by The+Dawn+Of+Time · · Score: 1

      Are you serious in that belief? If you are, I recommend you stop with the faith-based technology and come back to reality. It will make your life simpler.

    30. Re:No? by DragonWriter · · Score: 1

      Why does it only happen with .net and java?

      It doesn't. I've seen the kind of brittleness described upthread with every language I've seen development done in, and its been around longer than Java (and, obviously, also .NET) has.

      It seems, IME, to be more common on large projects, so its probably more common at any given time in the languages that are used mostly for large enterprise systems.

    31. Re:No? by Anonymous Coward · · Score: 0

      Don't forget the hugely popular Unity!

    32. Re:No? by walshy007 · · Score: 1

      I haven't seen a lot of .Net based programs ever running on anything but Windows,

      Things written for .net can (so long as certain later windows-only things were not used) typically just straight run on linux. No wine needed. Thanks to mono I never had to touch windows even in my c# units at uni.

    33. Re:No? by sjames · · Score: 1

      CAN, with significant caveats, but DO they? What is the liklihood that the business oriented app I implement in .Net will ever be usable to Ernie Ball?

      It seems that if multi-platform is one of my criteria, I should stick to things that are truly intended to be multi-platform and avoid those that are meant to lure me into using a single platform feature.

    34. Re:No? by HornWumpus · · Score: 1

      Having apps modular enough to port part of an app to .net and leave part in com objects is a fucking _feature_ of com and .net.

      Granting that business apps live on and rarely get complete rewrites, yes it's not optimal from a support POV, but it's reality for almost all in-house programmers.

      I've taught hacks to extend the life of Access applications by com automating the Access environment from a VB app. I then quit that job.

      People left behind have told me I'm going to hell for it. They miss the point. By wrappering their Access POS they have, without intending to, defined an 'API' that exposes the useful parts of the POS.

      Between the wrapper and the POS they had a roadmap for the replacement. Not my problem if they couldn't pull it off.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    35. Re:No? by styrotech · · Score: 4, Insightful

      .NET is a great platform, and C# is a great language. All of this .NET hate from anti-Microsoft types with no knowledge of the platform is just about as useful as all of the patent fear-mongering associated with Mono. Anything Microsoft invents, these people are going to try to tear down, whether it's a good innovation or a bad one.

      Yeah .NET and MS strategy has always had a bunch of hate from non MS types. But the last few months has seen a change where a lot of the criticism is coming from people inside the .NET world rather than outside it.

      Previously the .NET world seemed to be one of the most contented development communities that were happy to lap up whatever new framework MS dropped on them without much complaint.

      MS needs to be careful in how it addresses the growing threat of the mobile world (ie iOS and Andriod) without alienating its core developers.

      If they screw it up, they could be the next Oracle. ie still a massive profitable business, but a legacy one unlikely to attract new generations of devoted developers and passionate supporters any more.

    36. Re:No? by Anonymous Coward · · Score: 0

      Minecraft ;-)

    37. Re:No? by tftp · · Score: 3, Insightful

      So where is the variety of Apps in .Net running on all sorts of different OSes?

      Most computer users are pragmatists. When they need a function they buy a program that does what they want, and a computer that runs that program. It just happens that Windows runs about 100% of all programs that anyone would be interested in[1], so the choice of the OS is quite obvious here.

      Of course MS is not going to port their libraries to other OSes. Not only it is not good for Windows, it is also not good for any ISV who would have such an idea. The market for .NET applications on Linux (or even Mac) is not very large, and it's hard to make a business case for that.

      But libraries, being defined by their interfaces, can be rewritten from scratch - and that's what Mono is doing, as I understand, beyond the C# itself. It's a lot of effort - especially when you dive into WPF which is a very complex programming framework.

      Java (for all it's many pitfalls) ran on multiple platforms right out of the box.

      Java was also unusable on all of them. .NET is really implemented only on Windows, but it works great. Java appears to be in a better shape now, but still I can't readily recall a major, large program that is written in Java. All Java applications that I ever came across come with their own JRE, talk about compatibility... However it's easy to find examples in .NET world - like Paint.Net - and they run on whatever is installed on your box. Java in interests of portability supports only the lowest common denominator; .NET supports the latest and greatest. Guess which one is more appealing to a new developer?

      By now we should know two facts about MS:

      1. MS never releases a quality product in rev. 1
      2. MS always releases a quality product in rev. 3

      Today main MS cash cows - Windows, Office, .NET, Visial Studio etc. - are in good shape. It would be unwise to summarily ignore thousands of man-years that went into their development.

      [1] Of course that shouldn't be taken literally. I sorely need Squid 3.1 for my IPv4 to IPv6 proxy at home. IPv6 is supported only in the latest rev. 3.1. But Squid on Windows is dead as a doornail, with major pieces missing. I guess I need to splurge on another Ubuntu box, since nothing that I have can take another VM...

    38. Re:No? by Anonymous Coward · · Score: 0

      That's a myth. You can write a first person shooter just fine with c# + XNA.

    39. Re:No? by FredFredrickson · · Score: 1

      C# .net with the XNA library actually is pretty useful for first person shooters. Just ask XBOX devs.

      --
      Belief? Hope? Preference?The Existential Vortex
    40. Re:No? by sjames · · Score: 1

      Agreed, MS is unlikely to put effort into portability. That's fair enough, but likewise, If I'm going to learn a language to write programs in, I'm not likely to put a lot of effort into learning a language that is not likely to work well on multiple platforms. That is particularly true when there are plenty of languages and frameworks that are multi-platform by design. That naturally leads to my comment that .Net is a poor choice.

      Believe me, I'm no Java fanboy. I can program in it just fine but you would need a really compelling argument to convince me to start a new project in it (as opposed to working on an existing project). It HAS improved a lot over the years to the point where it's OK now, but still not my 1st choice for a new project.

    41. Re:No? by gweihir · · Score: 1

      The trick MS has mastered is to make sure developers on the Windows-island are not aware of the strengths of the alternatives. This explains the number of positive comments. People are really not aware that they are given 2nd-rated tools at best because they do not know the alternatives. And MS is working very hard to keep it that way. After all, with the developer crowd it really is their only advantage.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    42. Re:No? by Anonymous Coward · · Score: 0

      I'm afraid it's not. Even one of its core developers, Brian A. LaMacchia, author of ".NET Security Framework", resigned from the project in protest over what Microsoft did to the original security framework. Then he wasted the next 5 years of his life working on Trusted Computing, which is yet another failed project, because it turned out to be useless for its original goal of complete DRM. (Virtualization works around it quite nicely, which breaks its goal of controlling media and program loading to only occur on single hosts Just register a virtual host and move it around or replicate it as necessary to restore access to your DRM protected video and audio.)

      This is yet another of Microsoft's "big projects" that broke down due to aspects its original authors were told not to pay attention to. In this case, it was non-Windows compatiblity, and in the process of marrying it to the Windows, they completely ruined security and memory management.

    43. Re:No? by tftp · · Score: 1

      If I'm going to learn a language to write programs in, I'm not likely to put a lot of effort into learning a language that is not likely to work well on multiple platforms.

      And that is certainly your choice, if you think that the only framework that you will ever learn in your entire life must support multiple platforms.

      But IMO you won't find a perfect solution to your problem. If you are a professional programmer you must know multiple languages and frameworks. For example, I know:

      Languages: FORTRAN, PL/1, Pascal, Modula-II, C, C++, C#, some Java, Perl, TCL, BASH/KSH scripting, DBASE, various BASICs, assembly languages for a handful of processors, and probably a few more, totally insignificant in my practice - like LISP, which I had to code in for AutoCAD scripting, or PHP that I rarely need.

      Frameworks: OWL, MFC, Vermont Views, FoxPro, CURSES, MOTIF, Win16 and Win32, WDM (for drivers,) Qt, WPF (in .NET), some Java, and I'm sure more that are even more exotic.

      My point is that you have to learn all the time as you go. If you look at my list, OWL is really ancient today... but it was mighty good in days of Turbo C, you had to know it.

      The choice of the environment is driven by many factors. One of more popular ones is "the old software is written in $foo already, so you are stuck fixing it." But there are good reasons too. For example, coding for an ATTiny MCU should be done in assembly or in C. Coding of a Linux application today should be done in C or C++. Coding of a Windows application today would benefit from C# and .NET - perhaps C++, but still in the managed form, that helps in most cases.

      So there is no "silver bullet" and you have to know them all. You don't have to have working knowledge of everything; it's sufficient to know enough to get started quickly and without too much flailing. Most importantly, you need to know what language and what framework are best for a given application. On top of that you should be able to see bottlenecks and build systems out of components, that makes you even more valuable.

      Myself, I can't claim good knowledge of Java today; I wrote a few applications in it some years ago, but it wasn't very fast, so I switched to Qt/C++ and never looked back. Today I won't pick Java unless there are good reasons for that.

      But when I started a new database application for Windows users I had a different set of possibilities. My users are 100% on Windows (they don't even know that other OSes exist.) They are using MS SQL Server. They are running anything from XP SP3 to Win7. So I picked .NET - specifically, WPF and OleDb - and went from there. It's all written now, and works fine, as far as I can tell. The speed of development was at least 3x of what I could have accomplished with C++ - just the lack of destructors simplified the code a lot. Where necessary you can always use the using() { } block, then the runtime will help you with disposal; but only few objects deserve this treatment.

    44. Re:No? by sjames · · Score: 1

      I know quite a number of them myself, I just prefer more widely applicable languages no matter how many I end up learning. It's fine for a language to have strong and weak points, I just prefer them not to have strong single platform ties.

      There are plenty of platform neutral choices that offer rapid development and the ability to work with MS SQL.

    45. Re:No? by Anonymous Coward · · Score: 0

      .NET has some capability for game development:

      http://www.youtube.com/watch?v=tR7vE6l1MN0
      http://www.youtube.com/watch?v=elhBygNg9AA

      XNA(directX wrapper/game engine for C#) makes it easy as pie to work with HLSL. AAA titles won't probably see .NET languages any time soon if ever, but it can be used.

    46. Re:No? by ghostdoc · · Score: 1

      Depends on your customer base. My customers all run Windows and have .Net framework already installed.
      Any conversation with their IT departments go along the lines of:
            'what's the deployment impact?'
            'it's a .Net application, framework v3.5'
            'Cool, no impact then'.
      I love Python as a language, and I'd love to develop in it, but that conversation would go along the lines of:
              'what's the deployment impact?'
              'it's a Python app'
              'hmmm, OK, we'll be adding 3 months to your deployment phase while we approve Python apps for deployment on the SOE and get that rolled out. Have you considered using .Net?'

      If you're doing retail coding and you really care about the 10% market share that don't use Windows, then platform neutrality is important. For pretty much all commercial coding it's just not important. 99% of your customers will be on Windows and the other 1% will be used to handling Windows apps even if they don't like it.
      Of course, if you're doing mobile development then your picture is vastly different, and there are no platform-independent solutions anyway.

      --
      Business/App ideas are like arseholes: everyone's got one, they're mostly shit, but very rarely they contain a diamond
    47. Re:No? by deKernel · · Score: 1

      Well, I would suggest that Fidelity Information Services fire all of their development staff then. I have .Net based Windows service handling multiple sockets with multiple messages per second on each connection just fine and by just fine meaning the CPU barely hits 2% on several year old hardware. Hell, the darn anti-virus software uses more resources than my app.

    48. Re:No? by BitZtream · · Score: 1

      Yeah .NET and MS strategy has always had a bunch of hate from non MS types. But the last few months has seen a change where a lot of the criticism is coming from people inside the .NET world rather than outside it.

      You know, I'm someone who has to deal with .NET daily, as well as Objective-C and other real languages ;) and I just don't see how MS is 'abandoning .NET' in any way, or any of the other silly things being said recently. If you look at their development tools, VS 2010 has many important features missing from C/C++ projects ... one obvious one being intellisense (which is a good thing, prevents me from being lazy when I can't use it)! Everything I see just looks like normal moving forward, silverlight may be in some danger in favor of HTML 5, but its not going to be overnight, HTML5 isn't there just yet and MS isn't really known to just follow a standard ... though I think they may have learned with silverlight that its really not someplace they want to compete or expend resources ... probably just wishful thinking.

      I just don't see them dropping .NET in any way, just a little bit of a course change due to changing landscape in front of them. Plenty of bits of Win7 are .NET apps, Office looks at .NET as the preferred extension platform, and it is awesome for that purpose, XNA isn't the biggest thing in the world, but they'd upset a lot of people if they just dropped .NET and left all the XNA creators out in the cold, which would cost them lost xbox marketplace sales.

      It just seems really dumb financially to dump it or lower its priority at this time, its being used as a selling point on EVERYTHING they sell, and ties larges complex ecosystems together

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    49. Re:No? by mabhatter654 · · Score: 1

      Missing the point kids. .Net should have been running on "everything Microsoft". Phones, desktop, server, even Zune and XBox (1). Out of the gate it should have had AGGRESSIVE cross hardware settings. At this point 90% of Windows stuff should be .Net like Apple uses Objective C. An app being 100% .Net should have been a selling point... 5years ago. Both as a sign of forward and backward compatibility, and as a sign that companies cared enough about their products (that are HIGHLY PROFITABLE) to get in there and rewrite code after a SEVEN YEAR OS break.

      At this point a regular Windows server should have nothing but core Server apps (SQL, exchange, ect) running as native.., everything else should be native .Net v4 code, and ONLY .Net code... .Net has all those thing built right in so a bad app doesn't crash the system. Microsoft refused to LEAD the rewrite charge and FORCE companies tonkeep up.

      Companies not shipping .Net v4 codecshould be getting the same bad press as iPhone devs that aren't keeping up on iOS 5 betas. But that never really happened. I still have Windows tools from IBM that don't properly use the Vista-era theme manager... There's just no excuse, Microsiftvlet that go on WAY too long.

    50. Re:No? by sjames · · Score: 1

      On the Desktop, Mac is becoming a lot more common, and plenty of clients will appreciate not having that potential development foreclosed. There are those operations that just won't hear of anything but MS technologies, and I suppose there are people ready to cater to them, but it's not something I would be interested in.

      However, if they can accept IronPython, that might be OK. It's still a one note framework, but at least the language itself has other uses.

    51. Re:No? by sjames · · Score: 1

      The fact that even MS didn't buy into the .Net hype speaks volumes...

    52. Re:No? by after.fallout.34t98e · · Score: 1

      On the contrary, I have found it quite difficult to take a given C or C++ program which depended on a significant number of external libraries and port it from one platform to another.

      For example, the effort maintained in the libraries for Firefox is far from trivial.

      If I wrote a C# application which didn't use significant external libraries (IE, only use libraries either defined in the standard or which only use functionality from the standard), I could port it just as easily as a similar C++ app.

      The core problem is that the line of what is a documented standard and what is not is very blurred from a .NET developer's perspective.

    53. Re:No? by after.fallout.34t98e · · Score: 1

      as an aside:

      My favorite language is JavaScript, followed by Perl then Python.

      C# is nice, but dealing with tons of really poorly designed libraries drags it down. It is amazing what crappy developers can do to make working on a program not fun.
      Ruby, PHP and Java also have this problem but I don't like those languages in the first place (Perl and Python probably do too but it is relatively easy to avoid bad libraries there due to superior packaging facilities, and I have yet to attempt to use a js library where I didn't have clean source code).

      My preferred language order would be something like (out of languages I have ever written something that a non-developer used in):
      js > Perl = Python > C# = Haskell > C++ > C > Objective-C > Ruby > PHP > Java > VB.NET > VB6

    54. Re:No? by a-yz · · Score: 1

      I am personally very disappointed in screws. I've had screws grooves strip on me before. Screws are no damn good, phillips head or otherwise.

    55. Re:No? by sjames · · Score: 1

      I don't see what's contrary there. I can choose to limit dependencies in a C or FORTRAN program, but if the language itself is tied to the OS in some significant way, all is lost.

      For the truly hardcore cases, you can compile C with no libraries at all and a replacement startup function written in assembly code. On the other end is Python and Perl which bring their rather significant body of libraries with them. That approach can work for C as well. For example, Gimp brings it's GUI toolkit along in Windows or Mac.

      Note that if Mono grows up to the point that the MS product needs to be as concerned about not breaking compatibility as it does, the situation would be significantly different. Likewise if C was under the exclusive control of ANY single party, it would be a much less appropriate language.

    56. Re:No? by styrotech · · Score: 1

      Yeah, I can't see them dropping .NET either. But I am a little unsure why there seems to be so much FUD (and by that I mean their own fears uncertainties and doubts) expressed from .NET developers themselves this time around.

      I haven't heard that kind of stuff since VB6 was hung out to dry. But nothing is really being dropped this time around.

      It seems like developers can put up with lots of new frameworks and libraries to learn as long as you don't suggest any new languages. Or maybe developers put up with a lot of change when their chosen platform is growing and still competing against an incumbent (eg Java in this case), but become much more conservative or sensitive once things are successful and plateau/mature a bit. Maybe .NET has become Java :)

      I dunno - from the outside, I just hadn't noticed dissatisfaction like this coming from within the .NET ranks before.

    57. Re:No? by Guspaz · · Score: 1

      Lots of first person shooters are written in C#/.NET. Any FPS for Windows Phone 7, since WP7 requires third party apps be written with XNA or Silverlight. Any FPS XBox Live Indie Games are too. There's no particular reason you can't make an FPS with .NET. Are you going to make the next Crysis? No, but the performance is good enough that it won't be the platform holding you back from producing fun and engaging content, it'll be your abilities. But really, why design an FPS-oriented 3D engine from the ground up for .NET/XNA when there are many existing engines out there that are cheap or free? Unreal Engine, for example. The UDK is free.

      If you absolutely need it, you can also call native code in a .NET app, although you lose most of the portability (or the ability to run on the 360 or WP7). Is this cheating? Well, is it cheating to write performance critical sections of a c++ app in assembly?

    58. Re:No? by SplashMyBandit · · Score: 1

      Actually a Russian company called 1C rebuilt their product IL-2 Sturmovik (written years ago in Java with some C++, and runs extremely well) into C#.NET (and now it runs like a total dog, although it looks great). A real shame about the performance since the game is otherwise quite nice.

    59. Re:No? by SplashMyBandit · · Score: 3, Insightful

      You are talking about desktop apps as if that was the only programs out there. Many apps have moved to the Web, and a very large number of them are built in Java. Just because you can't see Java (because you have your eyes closed) doesn't mean you don't use it whenever you use the Web (same thing with Linux, which handles almost all the external-going mail you'll ever send, but this is also invisible to you because it works so damn well).

    60. Re:No? by tftp · · Score: 1

      Just because you can't see Java (because you have your eyes closed) doesn't mean you don't use it whenever you use the Web (same thing with Linux, which handles almost all the external-going mail you'll ever send, but this is also invisible to you because it works so damn well).

      I certainly know that Postfix handles my email because that was me who installed it :-)

      With regard to "hidden" software, I know about that too because some of my code is firmware for microcontrollers. There is plenty of cases when neither Java nor C# nor even C++ cut it - nothing but Ada, for example.

      However in the context of this thread (started with a rather trollish submission, I must say) it is reasonable to discuss desktop software. As I said [elsewhere] my experience with Java is not recent, and if it works well for someone then I'm glad for it. My own encounters with Java-based, Web-driven corporate trashware were not that exciting, though, and I'd very much prefer a native application. .NET solved the deployment problem with ClickOnce, so what other reasons remain to use IE 6.0 to run some old JVM? Certainly not portability; it is neither desired for such use nor even offered; the thing barely runs on Windows...

    61. Re:No? by julesh · · Score: 1

      So where is the variety of Apps in .Net running on all sorts of different OSes? I haven't seen much beyond proof of concept demos.

      I've been running real-world ASP.NET applications developed in C# under Apache + mono with Linux for several years. I assure you I'm far from the only one.

    62. Re:No? by connor_macleod · · Score: 1

      Microsoft *is* apparently building .Net closer in to the OS with Windows 8 - this was the vision for Longhorn (out of it we got much of what makes .Net 3+ awesome today) - but with Jupiter, this is apparently becoming a reality. - the announcement will be at http://buildwindows.com/
      more info: http://arstechnica.com/microsoft/news/2011/06/windows-8-for-software-developers-the-longhorn-dream-reborn.ars/2

      Either way, .Net is still a very exciting ecosystem to be involved with, there's some mind blowing stuff going in and around it, and it is still an extremely viable development platform for a, quite frankly, huge percentage of the worlds top companies & financial institutions. Articles and questions like this always amaze me with their naivety of what is happening in the business world.

    63. Re:No? by walshy007 · · Score: 1

      What is the likelihood that the business oriented app I implement in .Net will ever be usable to Ernie Ball?

      I'd say pretty darn good. Only a very very small subset which is clearly defined as windows only and not part of standard .net is what you cannot use.

      It seems that if multi-platform is one of my criteria, I should stick to things that are truly intended to be multi-platform and avoid those that are meant to lure me into using a single platform feature.

      THIS is why you don't see many .net programs not running on windows, linux people just do posix compliant stuff or use cross platform libraries instead of using managed code. There is very much a severe 'it's from microsoft, it will burn' sentiment also. While I understand hesitance in that instance there is nothing technically wrong with using .net for some projects, and some linux apps do in fact use it.

      I have a strong preference for native code also, however there is a time and a place for managed code where it can be very beneficial.

    64. Re:No? by sjames · · Score: 1

      This is getting close to the point. I have X amount of time I can dedicate to learning new languages. I can devote it to a language that certainly works everywhere and is developed by a wide and diverse community where nobody owns it or I can learn one intended for a single OS family with the understanding that SO FAR the people trying to make it available elsewhere haven't been sued. Why would I do that? There are plenty of open multi-platform languages and frameworks with equally impressive promises of productivity.

      Even MS didn't buy in to .NET whole heartedly (like they once boasted that they would).

    65. Re:No? by DrXym · · Score: 1

      Having apps modular enough to port part of an app to .net and leave part in com objects is a fucking _feature_ of com and .net.

      It's a feature of Java too, JNI allows you to call any arbitrary thing you like, which is how SWT (for example) taps Win32 in Eclipse. it's just not handed to people on a plate. You have to define an interface, you have to drop into C and write a DLL, and then package it properly. As a consequence it tends to be used less frequently and the long term result is a cleaner more portable code, or at least code where the "native" bits are cleanly stuck behind an interface.

      .NET's issue was it almost encouraged people to make their code dirty. .NET 1.0 & .2.0 were so inadequate that it was virtually impossible to write a real world app without a few hacks into Win32 (e.g. piss poor Winforms support). And ActiveX / COM was just a wizard away. That might have been great for VB developers used to that kind of thing but it polluted the platform. I'm sure that was Microsoft's intent but it will come back to bite them on the ass. Now we have all these real world apps tied to x86 windows and often a mess of dependencies on COM, OLE, ODBC too. Now MS want to port Windows to tablets and ARM processors and they realise the mess they've made for themselves. It's not surprising they've chosen to encourage HTML. I wouldn't be surprised if .NET on ARM was just a a subset, possibly just what Windows Phone 7.x provides and nothing else.

    66. Re:No? by DrXym · · Score: 1

      Ah good, not the app I was working on then :)

    67. Re:No? by spiffmastercow · · Score: 1

      Yeah, but the internal criticism is based on the fear that MS is leaving .NET for javascript, or whatever it was they were using on that Windows 8 demo. I don't really know what that's all about, but I'm 99% sure that anything they're doing there is only on the front end, and the "front end" has never been very stable in terms of development.. There's always a newer, better way to solve that problem floating around, and I assume this is just another iteration of that. Personally I just avoid getting too invested in front end technologies... Their lifespans are too short, and most of them are easy enough to pick up that there's nothing gained by becoming an expert in them.

    68. Re:No? by walshy007 · · Score: 1

      SO FAR the people trying to make it available elsewhere haven't been sued.

      You make it sound like that is a bad thing... patent claims can be made against pretty much any piece of software these days, nothing is immune. If you were to exclude anything capable of having a patent suit against it, you would not be running software.

      Why would I do that? There are plenty of open multi-platform languages and frameworks with equally impressive promises of productivity.

      Different designs yield different benefits. If you do not expose yourself to varying tech you will never know which is more suited to what. And c# at least doesn't exactly have much of a learning curve if you are familiar with c or java style syntax.

    69. Re:No? by sjames · · Score: 1

      I'm going to be learning new languages anyway, I just want to learn the ones most likely to expand my thinking and to be useful in a wide variety of situations later.

    70. Re:No? by bored · · Score: 1

      The fact that even MS didn't buy into the .Net hype speaks volumes...

      And thirty seconds of analysis can bring up a half dozen total deal killers for nearly any pre-existing application. Take office for example, it runs on the mac, that means ms either has to support a .net version and a non .net version, or they have to port .net to the mac too. Another is the fact that porting an existing application to .net isn't a customer facing benefit (for the ones where it is even "possible"). As a project architect, if someone came to me and said, we should port our application to .net, I would go "Nice idea, here lets make a first pass guess at how long it would take, ok, now lets try to prioritize that with these 200+ other items my team is busy adding to the product...

    71. Re:No? by sjames · · Score: 1

      Sounds a LOT like why I said .Net isn't a good choice! It's the one part where I agree with MS.

      They're the ones who claimed the whole OS was going .Net

  4. Signs point to by jra · · Score: 1, Funny

    "Yes".

    1. Re:Signs point to by Anonymous Coward · · Score: 5, Insightful

      Ditto. .NET drove me away from developing windows apps altogether... it killed visual studio for me.

      When it first launched, nobody had .NET framework installed, so you were screwed on that end. Then it started shipping with the OS, but it was never up to date it seemed like. The number of times I just wanted to download an app and have it run, only to be foiled by an out of date version of the .NET framework... which was also freaking HUGE!

      It was basically in theory the same idea as java, except with even more restrictions, limits, and headaches. On top of all that, it was force-fed down all of our throats by Microsoft for years, and still even up to this date.

      In short, it's like java, but a 10x bigger disaster.

    2. Re:Signs point to by Rary · · Score: 2

      In short, it's like java, but a 10x bigger disaster.

      And, incidentally, both it and Java are the two primary development platforms in the corporate world today, and still going strong. Pick either one, and you'll find work with little effort. Familiarize yourself with both, and companies will fight over you.

      Sure, it's not for everyone. Apparently it doesn't suit your purposes. But it's the right tool for certain jobs— and there are lots of those jobs.

      --

      "You cannot simultaneously prevent and prepare for war." -- Albert Einstein

    3. Re:Signs point to by GerardAtJob · · Score: 0

      .Net isn't a fail. .Net is a revamped J++ with a new interface ripped from Delphi, and it does the job well. And due to many M$ fanboy, it's used here and there, running interpreted code while it's not even helpfull (no crossplatform = what's the need to be interpreted?)
      I dunno why M$ didn't bought Borland instead of "Embarcadero" (not sure of the spelling)... .Net with native compilation would have been the best of both world.

      But for now, I'll stick with C++, maintaining and adding features to some old shit ;)

      --
      I can't call that English ;-)
    4. Re:Signs point to by Anonymous Coward · · Score: 0

      Sure... one have to put food on the table. Making software using propietary, inneficient and badly technically justified platforms, doesnt make this a better and more ecologic world... but hey! I am on fashion (engineering be dammend)

    5. Re:Signs point to by Anonymous Coward · · Score: 1

      The CLR can just-in-time compile code to native.

    6. Re:Signs point to by Anonymous Coward · · Score: 0

      You know nothing. You know you can package whatever version of .NET you want with your app.

    7. Re:Signs point to by Xest · · Score: 1

      "The number of times I just wanted to download an app and have it run, only to be foiled by an out of date version of the .NET framework... which was also freaking HUGE!"

      Well, seeing as there's only been 4 (or 6 if you include 3.5 and 1.1) versions of the .NET framework I would imagine by number of times, you could only actually mean at most, 5.

      As they were released in 2002, 2003, 2005, 2006, 2007, 2010 respectively then I can only assume you ever really tried to run .NET apps about once a year at most.

      But if I'm honest I'm not sure what your point is, because it's really nothing new, and it's much better with .NET than it is with Java which updates the JRE far far more frequently with smaller updates than a full release, but that still often introduce breaking changes.

      Ignoring managed languages in general, it's not like we haven't seen the same in the past with MFC, and so forth also.

      "It was basically in theory the same idea as java, except with even more restrictions, limits, and headaches."

      Apart from on the restrictions front (I can't remember a time when .NET was more restrictive than Java- both allow for native code, but .NETs is better integrated) then this was certainly true in .NET's early days. It caught up with Java around .NET 2.0 in 2005, and overtook it in 3.5 in 2007. Nowadays it's much further ahead of Java with things like dynamic types, LINQ, lambda expressions.

      "In short, it's like java, but a 10x bigger disaster."

      In short, you're full of shit, because much of what you say just outright isn't true, or is at best grossly exagerated.

      But then, that's why you posted AC isn't it?

    8. Re:Signs point to by Pope · · Score: 1

      That sounds like every little indie VB application I ever downloaded in my Windows days. "This program needs VB Runtime v3! Download it here." "This program needs VB Runtime v4! Download it here." And another long wait on my 33.6 modem. PITA

      --
      It doesn't mean much now, it's built for the future.
  5. Thanks slashdot. by Anonymous Coward · · Score: 1

    Sometimes this community really disappoints me. This is no exception.

    A 9 minute demo of a new UI for Windows 8 Tablets at a trade conference means that Microsoft is abandoning .NET somehow, just because HTML 5 markup will be used for the UI work.

    1. Re:Thanks slashdot. by Anonymous Coward · · Score: 0

      Don't forget to wonder how ready .NET is for running well on ARM and hardware with no keyboards. It's not just about HTML5. Don't expect to be rescued by a LLVM component.
      It's time for a long overdue total reboot. Sometimes adding more soap isn't enough and you really need to start with fresh bathwater.

    2. Re:Thanks slashdot. by mcl630 · · Score: 1

      Yep, all this stuff about .NET becoming a "second-class citizen" is based on that one demo. AFAIK, Microsoft's never said anything official about the future of .NET (of the lack of one).

  6. Messy by flaming+error · · Score: 4, Funny

    > Windows programmers are going to be living with the
    > mess for years to come.

    It's a dirty job, and every other Friday I cry all the way to the bank.

    1. Re:Messy by Anonymous Coward · · Score: 0

      Very much like the Enron excutives, i know what you mean

    2. Re:Messy by Anonymous Coward · · Score: 0

      Glad that you're happy with your money. I'm quite happy with my accomplishments and richness of life.

    3. Re:Messy by KiloByte · · Score: 1

      Windows is a glasser's fallacy -- harmful for anyone but glass makers and fixers.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    4. Re:Messy by orange47 · · Score: 1

      linux programmers, on the other hand, can safely use online banking..

  7. Huh? by Anonymous Coward · · Score: 0

    Is this just a troll?

    1. Re:Huh? by Z00L00K · · Score: 2

      Microsoft has been trolling all the time since MS-Dos, so there is nothing new or surprising here.

      The only result we get is a bigger and bigger backpack hanging on programmers containing contradicting technologies from Microsoft.

      --
      If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  8. Overhead issue by Hsien-Ko · · Score: 1

    You gotta love those huge .NET runtime DLLs and packages giving a nice big overhead to everything, and those odd looking flat buttons!

    1. Re:Overhead issue by The+MAZZTer · · Score: 1

      You mean the runtimes that are shared between all .NET applications? How about the buttons that look just like all other Windows buttons, unless the PROGRAMMER screws them up (which is a lot harder to do after 1.1, where it was easy to miss visual styling).

    2. Re:Overhead issue by tftp · · Score: 1

      I personally use very nice styled buttons and all it takes is to say Style="{StaticResource OrangeButton}" in XAML.

  9. Not For My Company by cosm · · Score: 2

    We're a ~100 person .NET shop and we do about 10 million a year with small businesses. It's worked great for us!

    --
    'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
    1. Re:Not For My Company by Anonymous Coward · · Score: 0

      That's only about $100k/person each year -- BEFORE taxes and expenses. Doesn't seem all that promising at those low rates...

    2. Re:Not For My Company by Psychotria · · Score: 3, Funny

      cosm didn't specify it was 10 million DOLLARS a year; perhaps it's 10 million new applications a year, although I do think that would be a heavy workload

    3. Re:Not For My Company by Excelcia · · Score: 1

      Your signature says it all... suckers... er, I meant government contracts.

    4. Re:Not For My Company by Anonymous Coward · · Score: 0

      We're a ~250 person PHP shop and we do about 100 million a year with large businesses. If you are going to dick wag, at least say something relatively compelling...

    5. Re:Not For My Company by Anonymous Coward · · Score: 0

      just proves true that the government bureaucrats are fucking morons and they spend our money on DAT NIT programmers who shovel shit, for a quality price.

    6. Re:Not For My Company by Anonymous Coward · · Score: 0

      Yep... and a few years later .NET customers are ripe for the picking for LAMP. That is when my company starts making money... So, it is actually very lucrative for all involved ;-)

    7. Re:Not For My Company by Anonymous Coward · · Score: 0

      $100k turnover per developer per year? It's not working out as great as you think in my opinion.

    8. Re:Not For My Company by Anonymous Coward · · Score: 0

      That's only 100k per person. Subtract out your overheads and your people must be being paid crap.

    9. Re:Not For My Company by Gutboy · · Score: 1

      Where did he say that was before taxes and expenses?

    10. Re:Not For My Company by Anonymous Coward · · Score: 0

      Each developer is only bringing in an average of $100k of revenue? How the hell do you keep the lights on? That wouldn't cover their salary, let alone payroll taxes, benefits, infrastructure, utilities, insurance, etc...

    11. Re:Not For My Company by Anonymous Coward · · Score: 0

      If you're writing a web service, you're already doing it wrong, regardless of what language you're using. C++ programmers know better than to make mistakes like that.

    12. Re:Not For My Company by Anonymous Coward · · Score: 0

      Boy, that's not much business for ~100 people. I'm surprised that you can keep the doors open. 25 - 100 million should be your target.

    13. Re:Not For My Company by Anonymous Coward · · Score: 0

      and after developer salaries you make a total profit of $50

    14. Re:Not For My Company by Anonymous Coward · · Score: 0

      So that's about 100K per person per year for the business.....

    15. Re:Not For My Company by hoggoth · · Score: 1

      > We're a ~100 person .NET shop and we do about 10 million a year with small businesses. It's worked great for us!

      For various definitions of "great".

      Let's say your largest single expense is salaries. We'll use 50% of gross, or $5 million/yr. Probably the owners take home much more then the rest of the team, we'll use $500K between 2 or 3 owners. You have $4,500,000 left. Divide that by your 100 people and you are all making an average of $45,000/yr.

      Hopefully you are in Idaho, not New York or San Francisco because $45,000/yr is not "great" in either of those cities.

      --
      - For the complete works of Shakespeare: cat /dev/random (may take some time)
    16. Re:Not For My Company by Kakao · · Score: 1

      That means 100 thousand per head a year. That is Ok. It is not that great.

      --
      2011. The year Gnome decided Linux will never be on the desktop.
    17. Re:Not For My Company by Anonymous Coward · · Score: 0

      You have 100 employees and only do $10M/year? A lot of people wouldn't say that that isn't working great.

  10. What?! On the contrary: .NET is becoming relevant! by Kensai7 · · Score: 4, Informative

    According to an Ars Technica article, .NET will be first-class citizen in Windows 8.

    --
    "Sum Ergo Cogito"
  11. What has .NET brought to the programmer? by roc97007 · · Score: 2, Interesting

    What .NET has brought to the Microsoft programmer is a decade of lucrative employment. That's not a bad thing. The trick now is to convert back to C++ and ... I'm tempted to say "go out and get real jobs" but that would be unfair.

    --
    Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    1. Re:What has .NET brought to the programmer? by Excelcia · · Score: 1

      Unfair = "not conforming to approved standards, as of justice, honesty, or ethics" - the statement was not unjust, certainly not dishonest, and unless you make money writing C++ compilers, it wasn't unethical. Please, by all means, tell all the .net programmers out there to get real jobs.

    2. Re:What has .NET brought to the programmer? by Anonymous Coward · · Score: 1

      C# is far better than C++ for applications development. Then again, there's something that's better than C++ for every given area. C++ is a mess.

    3. Re:What has .NET brought to the programmer? by roc97007 · · Score: 1

      Right, and the .NET development environment arguably has no parallel. The only issue is that it's a .NET development environment.

      Now, one could argue that C# has uses beyond the .NET environment, but is it really used all that much outside .NET? (This is an honest question -- I don't know.)

      But more to the point, I suspect that if you have a job anywhere else -- say, Microsoft's OS team, or Oracle's AWR team, or Red Hat's kernel team or IBM's Z-series applications team(s) -- you'll have to program in whatever language the rest of the team is programming in, even if it's COBOL. No matter how good C# is.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    4. Re:What has .NET brought to the programmer? by bloodhawk · · Score: 2

      Why would they want to convert back to C++, With .NET getting massive investment and becoming an even better target in Windows 8 there is less and less reason to go the C++ route. sure C++ is better for writing the OS etc, but .NET or Java remains the platforms of choice for fast application development. The article is basically some clueless idiot that doesn't understand what .NET and Java are for and mistakes Microsoft's lack of use for writing there OS with it as some sort of move away from .NET, nothing could be further from the truth.

    5. Re:What has .NET brought to the programmer? by Anonymous Coward · · Score: 0

      What .NET has brought to the Microsoft programmer is a decade of lucrative employment.

      You say that as though a heap of people would be unemployed if it wasn't for the holy .Net descending from on high. Everyone currently employed doing .Net would still be employed doing Visual Basic 7/8 or Java.

    6. Re:What has .NET brought to the programmer? by xhrit · · Score: 1

      That is like saying oil spills brought environmental cleanup workers decade of lucrative employment.

    7. Re:What has .NET brought to the programmer? by roc97007 · · Score: 1

      > You say that as though a heap of people would be unemployed if it wasn't for the holy .Net descending from on high. [...yadda...]

      Wow, are you barking up the wrong tree. Actually I say that as though I personally know .NET programmers who would probably NOT have been employed during the long dry period after boom.dot.bust were it not for .NET and how (this is important) certain companies valued it. Which is the case. This has nothing to do with how holy .NET might or might not be. It has very much to do with how companies were incorporating .NET (which is their decision to make, not yours) who happened to be hiring at the time.

      And during that dry period, and this one, by the way, every person who is employed writing or supporting .NET applications is someone who is not looking for a job somewhere else, which is a good thing, both for them and for the other people looking for jobs. Regardless of whether these programmers in question could get jobs elsewhere, I think it's arguable that .NET's existence has generally increased the number of positions in support and development of web applications. This is entirely separate from my personal feelings regarding the technology, which are not positive, and which I will not enumerate here.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
    8. Re:What has .NET brought to the programmer? by Anonymous Coward · · Score: 0

      what a typical of the C++ programmer comment. Well, fine, keep writing the same code, chase the same pointer/reference issues, worry way too much about memory management and worry more so for bugs, overflows, and security issues.

      Most real jobs make cash. If it takes me 5x less time and effort to create an application using .NET than C++ and find it just as secure and easier to maintain AND build says a lot.

      Speaking about elitism, if you want a real job, write assembly.

    9. Re:What has .NET brought to the programmer? by a-yz · · Score: 1

      I've developed both C++ applications (fairly hardcore ones too) and C# applications. Everyone is different, but most who would have those experiences under their belts would tend to prefer C# if the domain allowed it, even if most of those people aren't on slashdot.

    10. Re:What has .NET brought to the programmer? by roc97007 · · Score: 1

      "If the domain allowed it" is the operative phrase. One usually doesn't go out looking for a job as a C# programmer, especially in a down economy. One goes out looking for a programmer position, and then codes in whatever language the job provider wants them to. (and if it happens to be C#, bonus!) I mean, seriously. There are a lot of programming languages, and some are better than others at particular jobs, but that's not by any means the only consideration. If you want to continue making that mortgage payment, that is.

      --
      Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
  12. A mistake? by Brummund · · Score: 4, Funny

    Yeah, look at the flop that is asp.net, or how hard doing protocol agnostic services with WCF is. *sigh* .NET is a huge success in the corporate world, and hopefully c# will be one of the last nails in VB's coffin.

    If you measured Java's success based on the non-proliferation of applets, it too is a flop.

    (And if you are a Java programmer, I hope you get something similar to Linq soon :-)

    1. Re:A mistake? by DragonWriter · · Score: 1

      Yeah, look at the flop that is asp.net, or how hard doing protocol agnostic services with WCF is. *sigh* .NET is a huge success in the corporate world, and hopefully c# will be one of the last nails in VB's coffin.

      C# has been around with .NET since .NET 1.0 and VB is still going strong. If Microsoft had kept supporting and actively pushed IronRuby and/or IronPython, they might have combined with C# to displace VB.NET

    2. Re:A mistake? by segedunum · · Score: 1

      hopefully c# will be one of the last nails in VB's coffin.

      This is being said after .Net is ten years old and here is still a massive amount of COM and VB code that is still kicking around that will never be rewritten. Keep hoping.

      (And if you are a Java programmer, I hope you get something similar to Linq soon :-)

      Ruby on Rails had it for longer.

    3. Re:A mistake? by Anonymous Coward · · Score: 0

      Similar to Linq? Are you insane? Hibernate's HQL is a thousand times easier than linq and available in .NET too. The reverse Polish SQL that is Linq is unmaintainable.

    4. Re:A mistake? by Brummund · · Score: 1

      You are mistaking Linq for Linq to SQL.

    5. Re:A mistake? by mikeg22 · · Score: 1

      Linq is Language INtegrated Query. It is used to query anything that implements an interface called IEnumerable, which is basically anything that is a list. It can be used to query all kinds of things outside of database tables (although it is pretty decent at that).

    6. Re:A mistake? by Anonymous Coward · · Score: 0

      If you measured Java's success based on the non-proliferation of applets, it too is a flop.

      I do, and it is. Every other thing people use Java for is better done by another tool, the only thing interesting it had going for it was applets.

    7. Re:A mistake? by gbjbaanb · · Score: 1

      actually, I'm finding protocol-agnostic services in WCF is pretty damn hard, it seems you have 1 choice : soap web services, and they appear to have an ever-so-slightly different interpretation of the standards compared to the Java and (I'm told) PHP libraries.

      Of course, it works great when communicating between Windows WCF services!

      I always thought C# wasn't a bad language, but the crap way references are handled and the lack of some things that are needed by professional programmers (eg no system wide 'include' path to pick up references, so you have great difficulty unless all your devs use the same relative path) and the side-by-side hell we now have (not to mention version manifests and the GAC) mean that I'm quite disappointed by .NET (the system framework).

      Still, internal politics at Microsoft will see that its no longer the "cool" technology and so all the Microsoft-only devs will start to drop it. It happens all the time, the continual chase after the 'latest thing' in Microsoft's world will be both the making of, and the death of .NET.

    8. Re:A mistake? by devent · · Score: 1

      Speaking as a Java programmer, I don't need Linq, because I can choose from Groovy, Scala, Clojure, JRuby, Jython, etc. They are first class citizens in Java and have good IDE support. That's why I don't really care for Java 7 or 8 because I used all the convenient features already (since I learned Groovy).

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    9. Re:A mistake? by Anonymous Coward · · Score: 0

      It must be difficult having to install the GB's of crap .NET requires. What a truly POS language.

    10. Re:A mistake? by Brummund · · Score: 1

      You don't know Linq. And you don't use Clojure for your day job. Get real.

    11. Re:A mistake? by bertok · · Score: 1

      but the crap way references are handled and the lack of some things that are needed by professional programmers (eg no system wide 'include' path to pick up references, so you have great difficulty unless all your devs use the same relative path)

      Don't blame the ergonomics of your hammer if you're using the handle to hit the nail.

      The Visual Studio project system -- or any sane source control based development process for that matter -- uses relative paths. It's just how it's done in professional environments.

      With more than a single developer, absolute paths can't be used any more. You sort-of realise this yourself, but you simply decided to force every developer to use the same absolute paths instead of fixing your project structure. That wallpapers over the issue for a while, but the problem with that is that even a single developer can't use absolute paths if they need to keep multiple complete copies of the source tree around, which is essential for most projects.

      For us that know how to use our tools properly, Visual Studio has a brilliant dependency and reference resolution system. I can cross-reference projects trivially and have it automatically determine the build order, include library DLLs in output paths, and build manifests automatically. The binding system is flexible -- it can be used to select the version of a library based on a bunch of different rules.

    12. Re:A mistake? by shutdown+-p+now · · Score: 1

      And if you are a Java programmer, I hope you get something similar to Linq soon

      Don't tempt them. They're only just getting lambdas in Java 8.

    13. Re:A mistake? by shutdown+-p+now · · Score: 1

      GP likely meant "VB6" when he wrote VB, not the newer .NET version. Really, as far as languages go, they have very little in common. Most similarity is syntactical, not semantical. It's like Java and JavaScript.

    14. Re:A mistake? by Anonymous Coward · · Score: 0

      (And if you are a Java programmer, I hope you get something similar to Linq soon :-)

      I'll look into Linq again, but from what I've heard most .NET development shops are moving to NHibernate for the ORM capabilities instead of reverting to the SQL embedding into C# that Linq seems to be.

    15. Re:A mistake? by SplashMyBandit · · Score: 1

      And I hope you get something similar to GWT soon (since Project Volta ain't going anywhere). ASP is horrid.

    16. Re:A mistake? by gbjbaanb · · Score: 1

      no, you can cross-reference projects quite well, if you put them all in a humungous single solution.
      I never said I used an absolute path, and in fact an absolute path woudl work in my case, it's not what I was talking about.

      The C++ way of doing this worked: you have an environment variable that said "look here, or here" when resolving references. Easy. Each dev could set that for the project or globally. You can do this in VS/C# projects too, but you have to do it *per project*.

      So, for an example, if I build a release version of an SDK and put it in c:\builds\release, and I have a debug version in c:\dev\sdk\debug, I cannot rebuild my app to reference the release version. That may not seem to big a deal, but really is when you're trying to do configuration management correctly, so you *know* what you have and what you release.

      I think the problem is that the tool assumes you build the entire thing yourself, and most of the time you don't. You need to reference 3rd party or external projects and these do not necessarily fit in whatever directory structure your project is laid out in.

      As for versioning, it always uses the version built against, unless explicitly overridden. Guess what, 99% of the time you want it to use the latest version. that means a load of hasle updating your config files for each app to resolve the newer dependant dll. Or a rebuild of the lot in required when a sub-dll is changed. To see why this is a problem, just think of the security fixes that MS rolls out regularly. Imagine if every app that used those had to be updated too.

    17. Re:A mistake? by benjymouse · · Score: 1

      Speaking as a Java programmer, I don't need Linq, because I can choose from Groovy, Scala, Clojure, JRuby, Jython, etc. They are first class citizens in Java and have good IDE support. That's why I don't really care for Java 7 or 8 because I used all the convenient features already (since I learned Groovy).

      First class citizens? Then please show us how you consume a JRuby-defined object in Java, calling it's dynamic methods or accessing its fields. Then compare it to how IronRuby or IronPython objects are integrated into .NET (C# or VB.NET). (Hint: seamlessly).

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    18. Re:A mistake? by bertok · · Score: 1

      you can cross-reference projects quite well, if you put them all in a humungous single solution.

      You're meant to do that!

      You can completely unload projects from a solution -- to speed up the IDE performance even if there are hundreds or even thousands of projects. Even if you don't unload the projects, you can temporarily remove them from builds. A solution file is literally just a 1kb config file, not exactly a huge burden on a modern workstation.

      And third-party projects are also meant to go into your source control along with everything else, or otherwise some poor bastard who'll have to build an 3 year old version of the system will tear his hair out trying to track down the exact right version of the library required.

      I usually just drag & drop the DLLs directly into the project folders. They get stored in source control, included in output paths and setup projects, and all the references just work automagically.

      As for versioning, it always uses the version built against, unless explicitly overridden.

      That's the feature that fixes DLL hell! If that wasn't the rule, then developers could be linking against DLLs in the GAC installed by completely unrelated third-party software, and not realise it. Similarly, they could have, say, tested a newer version of the solution, ran the installer (populating the GAC), and then went back to work on an older version to reproduce a bug. Boom... wrong DLLs, unless the version linked is the version used in the build.

      Don't try to reproduce your C++ build system for a .NET project. Actually, some of the things you appear to be doing aren't a good idea for a C++ project either...

    19. Re:A mistake? by YojimboJango · · Score: 1

      As a dev that is taking c# to the bank every week I can say that I have never seen a productivity boost like the day and a half I hunkered down and actually figured out linq and how to use lambda expressions with linq. Nothing even comes close.

      Oracle really needs to take a break from milking to feed some major improvements into Java including core support for lambda (which iirc is 'coming soon') and a linq equivalent,

    20. Re:A mistake? by gbjbaanb · · Score: 1

      you're nuts. Drop a 3rd party project into your SCM? I agree it needs to be versioned, but if its a big installed-by-msi package and you don't have source code or even a list of the dlls it ships, then what are you supposed to do?

      I know its Microsoft's recommendation to host all your projects in a single solution. I think this is a crap workaround for a broken system. You must be able to pull in dlls that are not part of your build, that are pre-built and installed where they want to be installed (eg program files/xyz). Microsoft just didn't get this when they failed to handle this.
      I also know that if you hold too many, performance dies. And if you use resharper (as very many do) then you'd better have a huge box with a very large amount of ram. even then I found that I had to reboot after some rebuild all tasks. That ain't a good solution at all.

      version hell.. you usually *want* the latest version. Installing a security fix is required, and yet you can't drop it in, you have to go configure your app too. Right now I'm in the middle of this mess: I build with the latest security-patched dlls, ship it to my customer, and get a report back "it doesn't load". My answer of 'update your system' is met with the response that they cannot do that until the security fixes are tested and rolled out to all. So I have to downgrade my build environment. We're still in a bad place, but now we're in the worst-of-all-worlds option.

    21. Re:A mistake? by Anonymous Coward · · Score: 0

      Yeah, Hibernate does that too. They both use sql style methods/syntaxes though. I've written with both.

    22. Re:A mistake? by bertok · · Score: 1

      Drop a 3rd party project into your SCM?

      Yes!

      I've dropped a 200 MB Oracle .NET client into source control before, for example, to prevent exactly the kind of issues you're talking about. We had several incompatible versions floating about on servers. By having it in the source control and using relative linking, my app always used the specific version it needed. Similarly, I've dropped all of the binaries and libraries of the ANTLR parser generator into a project. It can be checked out of source control and used automatically with no intervention from the developer at all. They just edit the grammar file, hit compile, and it works. That's a quite complex scenario: it's a program that's used as a part of the build process to generate code and it has a redistributable runtime DLL!

      Similarly, security patching ought not to be a concern for DLLs used during the development process. I mean, seriously, what are you developing, a web browser? And then testing it on seedy porn sites?

      In turn, if you release software that uses third-party libraries, it should cater for security patching by allowing a range of versions, OR it should ship with the specific DLL required in the application folder, and then you should release patches yourself.

      This is why most application installers are so huge -- they ship with all of the dependencies, even system components.

    23. Re:A mistake? by svick · · Score: 1

      One huge advantage LINQ has over HQL (whether in Java on in .Net using NHibernate) is compile-time checking.

      When you write a LINQ query and it compiles, there is a good chance is will run as you intended. If you write HQL, you just don't know, until you run it. And that's made even worse when the mistake is in a piece of code that doesn't run often.

      Of course, you can try to catch mistakes like this using Unit Tests. But the point is, with LINQ, you don't need them for this kind of bugs, because the compiler will find them.

      Also, dynamically building a LINQ query is a piece of cake. Dynamically building any string-based query (be it HQL or SQL) is a mess.

    24. Re:A mistake? by svick · · Score: 1

      But LINQ is not an ORM. LINQ to SQL is. And if you don't like that, you can use something like NHibernate and still use LINQ to do the querying. And let me tell you, using LINQ with NHibernate is much better than using HQL or ICriteria.

      The beauty of LINQ is that it's very general, using it, you can query in-memory array or a database using NHibernate as an ORM or OData WebServices.

  13. Isn't the job market... by BigDaveyL · · Score: 1
    for .Net developers pretty healthy? I see a lot of job postings for it.

    Now if I could get into said market if it is healthy ;-)

  14. Ridiculous by Anonymous Coward · · Score: 1

    .NET is an incredibly easy to use, powerful programming language. It integrates well with Visual Studio, and for 99% of all applications, it works as well as it could possibly need to.

    It's brought about 10 solid years of reduced development effort and increased productivity, and tons of cool and useful applications.

    Direct use of the Windows APIs? Who cares? Unless you're writing seriously low-level stuff, you'll never need that access, and in that case you'd probably want to avoid managed code altogether anyway.

    Troll...

    1. Re:Ridiculous by ChipMonk · · Score: 0

      .NET is a framework.

      C# is the language.

      The general tone of your response is "but it works fine for me!". Spoken like a true M$ shill. I've seen FOSS devs burned at the stake for saying that, and rightly so.

      Claimer (not a disclaimer): I neither use nor develop C# or .NET programs, so I have no vested interest in their success or failure.

    2. Re:Ridiculous by Anonymous Coward · · Score: 0

      So easy to use...
      On a GUI App I was working on in a previous employer I asked the .NET C# guys how to disable/hide a UI element. I was met with incredulous stares and a 'you don't want to do that' response. As far as I could tell there was NO WAY to enable/disable/hide a UI element without writing my own from scratch.
      Perhaps I am too stupid but I've been writing native Win32 apps since Windows 3.1-OS/2 3.0 were new.
      I COULD NOT FIGURE OUT HOW TO DO IT! Docs were useless (typical Microsoft explain the interface and don't say why you would use an API)
      I just wanted a piece of the GUI to go away when it wasn't needed.
      They ended up using a purchased control library that supported enable/disable/hide.

      CATCHPA: unwieldy
      HA!

    3. Re:Ridiculous by VGPowerlord · · Score: 1

      On a GUI App I was working on in a previous employer I asked the .NET C# guys how to disable/hide a UI element. I was met with incredulous stares and a 'you don't want to do that' response. As far as I could tell there was NO WAY to enable/disable/hide a UI element without writing my own from scratch.

      Unless you were using some weird non-standard GUI layer, I'd fire those devs.

      The standard WinForms controls all have .Visible and .Enabled properties. And always have, since .NET 1.0.

      They're named .IsEnabled and .Visibility in the newer WPF graphics layer.

      I COULD NOT FIGURE OUT HOW TO DO IT!

      And they would have shown up in the Visual Studio property editor, so I'd have to fire you as well.

      --
      GLaDOS for President 2016! "Well here we are again. It's always such a pleasure." -- GLaDOS, 2011
    4. Re:Ridiculous by lyml · · Score: 1

      control.Enabled = false;
      control.Enabled = true;

      That you couldn't find a simple property searching through msdn says a lot about you.

      http://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled.aspx

      Hell "disable control c#" gives you an answer in the first hit on google. The msdn page might be a little to technical for you so might I suggest starting with:

      http://www.homeandlearn.co.uk/csharp/csharp.html

    5. Re:Ridiculous by Anonymous Coward · · Score: 0

      They did, but THEY WERE NOT DYNAMIC.
      How do you change the property of a control on the fly? You mean iterate through the properties with a custom interface and change it? You mean the way that .NET ignores any changes at runtime to the properties? You change the property and the GUI doesn't update or change. .NET was intended for simple things, not real world complex apps. If it's so good why hasn't Office switched over to it?

      In Win32 to change the state of a control you send a WM_ENABLE message. Done. .NET didn't make the API easier to use or writing windows apps less shitty, just different.

      This was a MASSIVELY complicated app.
      There was so much stuff that you couldn't run two copies of it at the same time as Windows ran out of window handles. (Another shitpile from Microsoft)
      The app itself was pretty well made, it was just doing huge amounts of stuff with dynamically generated GUIs based on script files for generating hundreds of megs of output data from gigs of input data, With a GUI suitable for artists.

    6. Re:Ridiculous by gbjbaanb · · Score: 1

      says a lot about a lot of Microsoft developers. .NET has made it so easy that they let anyone code nowadays. Of course, you now see why that wasn't such a good idea :)

      The MSDN documentation is absolute crud compared to what it used to be, so I'd give him a pass on that particular aspect. He's still clueless though.

    7. Re:Ridiculous by Anonymous Coward · · Score: 0

      You haven't actually coded in C# before have you.

      >>How do you change the property of a control on the fly?

      You change it

      >>You mean iterate through the properties with a custom interface and change it?

      foreach (controls) { control.Enabled = false; }

      >>You mean the way that .NET ignores any changes at runtime to the properties?

      false

      >>You change the property and the GUI doesn't update or change.

      You should fire your C# dev (or yourself) because you don't know jack.

      >>If it's so good why hasn't Office switched over to it?

      Because it uses a lot of undocumented Win32 API (ask the Wine guys all about it)

      Conclusion: You don't nothing and are proud of it.

  15. I looked at .NET briefly by MpVpRb · · Score: 1, Insightful

    Asked "why should I use this"?

    Couldn't come up with a good answer.

    Went back to Win32 and C++

    Could it be that maybe I was right?

    1. Re:I looked at .NET briefly by causality · · Score: 1

      Asked "why should I use this"?

      Couldn't come up with a good answer.

      Went back to Win32 and C++

      Could it be that maybe I was right?

      Well, yeah. You independently evaluated your own needs and chose the solution that was a best-fit. You did not jump on a bandwagon and learn a whole new skillset because "everybody's doing it" or merely because a vendor would like to push it on you.

      It's hard to be wrong when you do things this way.

      --
      It is a miracle that curiosity survives formal education. - Einstein
    2. Re:I looked at .NET briefly by darkgrayknight · · Score: 1

      Not particularly. Most applications I write don't require much in the way of speed or close proximity to hardware layer. It has been significantly easier to write apps in .Net than what I experienced with Win32 and C++.

    3. Re:I looked at .NET briefly by The+MAZZTer · · Score: 2, Interesting

      This won't happen anymore (ideally). Pretty much the whole point is to eliminate (as much as possible) buffer overflows, invalid memory accesses, memory leaks, and other low-level bugs that easily pop up in C++ programs. .NET abstracts away dealing with low-level pointers, everything is "managed" by the framework so it is freed when no longer used (it is still possible to leak memory by keeping references to things you don't use anymore, but the framework can only do so much for you), and various attempts to attack your program with buffer overflows etc to run shellcode wouldn't work because your high-level program doesn't deal with pointers, and .NET internals will stop buffers from overflowing (etc). Oddly enough I have seen my own programs I build crash on launch after a while of not working on them, but a recompile always fixes it. Otherwise I have never seen a .NET program crash unless I did something dumb with unmanaged code.

      You largely don't have to worry about that sort of low-level stuff and you can just go build your program (the exception being .Disposing some objects helps with garbage collection). Plus you have a ton of useful libraries already included. Want to pull a file from the web? No problem, create an object to represent your request, a callback to handle the response object, then send it out. Want to parse XML? One function call and you're left with a tree of XMLNode objects to walk. Maybe you can find amazing libraries for C++ but you're starting from scratch (well you had to at one point, at least) and have to check licenses on them all, etc. With .NET you start off with a good base of libraries you can use in your apps for free.

      I also love the Window Designer tool in VS, though various Window toolkits for C++ offer similar things IIRC, I just like how I can pull together a skeleton class for my form and begin coding basic functionality immediately.

    4. Re:I looked at .NET briefly by calzakk · · Score: 1

      How brief was it? Because if you'd looked a little harder, you'd have realised that .NET can be used to do almost any type of application, with few exceptions (low level, low latency, real time). .NET programming is so easy, you can churn out .NET applications much faster than if you were developing using C++ and the Win32 API. It's virtually a fact (well, if it isn't then it should be).

      BTW, I program in both C++ (unmanaged on Windows+Linux+Unix) and C# (Windows). I see the benefits of both, I'm not a C++ snob ;)

    5. Re:I looked at .NET briefly by josath · · Score: 2

      You've never seen a .NET program crash in managed code? You must not run very many of them then...I've seen it all the time. It's perfectly possible to crash a program with unhandled errors etc, without having to touch unmanaged code at all.

      --
      sig? uhh, umm, ok
    6. Re:I looked at .NET briefly by Anonymous Coward · · Score: 0

      Excuse me, but when was the last time you programmed in C++. All people I know use RAII and smart pointers. Practcally nobody uses raw pointers except in _very_special_ cases. Memory leaks are unheard of. Maybe invalid memory access if you choose to use the unguarded functions, but why would you.

      Stop spreading FUD.

    7. Re:I looked at .NET briefly by suy · · Score: 1

      .NET abstracts away dealing with low-level pointers, everything is "managed" by the framework so it is freed when no longer used (it is still possible to leak memory by keeping references to things you don't use anymore, but the framework can only do so much for you), and various attempts to attack your program with buffer overflows etc to run shellcode wouldn't work because your high-level program doesn't deal with pointers, and .NET internals will stop buffers from overflowing (etc)

      Then welcome to the world of interpreted languages. Replace .NET with Perl, Python, Java, Ruby or a ton of other languages that existed prior to C#, and this sentence makes the same sense.

      Plus you have a ton of useful libraries already included. Want to pull a file from the web? No problem, create an object to represent your request, a callback to handle the response object, then send it out. Want to parse XML? One function call and you're left with a tree of XMLNode objects to walk. Maybe you can find amazing libraries for C++ but you're starting from scratch (well you had to at one point, at least) and have to check licenses on them all, etc. With .NET you start off with a good base of libraries you can use in your apps for free.

      So what? Do you really think that there aren't awesome libraries with permissive licenses that can be used in any language or framework? I don't have much experience with Python, Perl, Ruby or Java, but a quick search on the list of Debian packages with "aptitude search language | wc -l" reveals more than 900 names with Ruby, 2800 with Python, 2700 with Perl and 1200 with Java (of course, not every library is packaged, and many results are bogus). This list of course includes XML and networking (and other importang things), but also more esoteric use cases, like an IRC bot or colorizing logs. All of this in a more cross platform way than .NET.

      I'm not saying that .NET is bad. Probably for some specific use cases is the best. But overall, I doubt it's better than others, and I'm pretty sure it isn't worth the effort of creating it, unless you are Microsoft and have tons of cash to spare in an endevour to lock-in applications to your OS.

    8. Re:I looked at .NET briefly by FrootLoops · · Score: 2

      I was guessing the GP was just ignoring unhandled exceptions in managed code, since it's obvious that a program can crash from a basic runtime error.

    9. Re:I looked at .NET briefly by Anonymous Coward · · Score: 0

      Illegal operations won't happen unless you do something interesting, or interface with any OCX ever. So long as you stay in the managed sandbox you're okay. The moment you try to do anything interesting, you're back to square one.

      Printing can crash you app (if the native drivers suck). Trying to use IE can crash your app. Trying to call across threads can crash your app. .NET is easy if you stay in the single-threaded playpen. .NET is not easy if you have to deal with any legacy or are working with multiple threads.

    10. Re:I looked at .NET briefly by Anonymous Coward · · Score: 0

      The C++ ecosystem has everything you mentioned in the Qt library. Add boost and STL and you've got quite a lot. Still, .NET and C# are great tools for building business applications. But so is C++ and Delphi.

      For Windows apps, .NET is better than native C++ because .NET has better support than the combination of the Windows API and C++. MFC was built first to be non-portable, then they made it possible to also build applications. ATL threatened to offer ways to build portable apps, but that was nipped in the bud by attaching it to the giant MFC wart. So .NET enabled Microsoft to offer a great system for building Windows apps while using a different method to block cross-platform portability. If Mono is really as good and as portable as people, say, though, then Microsoft will have a reason to end .NET development.

      For some reason, Microsoft appears to be supporting the comeback of C++. I can only guess it's now considered harmless.

    11. Re:I looked at .NET briefly by Anonymous Coward · · Score: 0

      Could it be that maybe I was right?

      That or maybe you couldn't see past your own biases.

    12. Re:I looked at .NET briefly by shutdown+-p+now · · Score: 1

      The point is that a crash (i.e. an unhandled exception) in managed code will, at worst, just bring down the process. Unless it's something really nasty like OOM or stack overflow, it will even do the usual stack unwinding and execute cleanup code. What's really important, though, is that it's defined behavior - unlike buffer overrun, which might not crash the program right there and then (or ever) in the first place, rather than feed garbage to random variables, and which can be used to inject arbitrary code.

    13. Re:I looked at .NET briefly by Anonymous Coward · · Score: 0

      Don't blame the language for bad programming practices. If you write good clean code, C++ code is as safe as it gets. The problem is when you cut corners, don't check preconditions and try to overoptimize with unintuitive practices.
      Granted, C++ is an overkill for a GUI business application, but then again, C# and Java aren't particularly suited for that purpose either.

      Maybe you can find amazing libraries for C++ but you're starting from scratch (well you had to at one point, at least) and have to check licenses on them all, etc. With .NET you start off with a good base of libraries you can use in your apps for free.

      Except Microsoft supplies native C++ libraries for both, and they ship with VS. The interface isn't radically different from the .NET way either.

      I also love the Window Designer tool in VS, though various Window toolkits for C++ offer similar things IIRC, I just like how I can pull together a skeleton class for my form and begin coding basic functionality immediately.

      The Form designer also functions for MFC applications. I fail to see your point.

    14. Re:I looked at .NET briefly by dunkelfalke · · Score: 1

      Only if you are into BDSM. Especially the M part of it. .NET and C# are far more comfortable to develop for than Win32 and C++.

      --
      "It's such a fine line between stupid and clever" -- David St. Hubbins, Spinal Tap
    15. Re:I looked at .NET briefly by bar-agent · · Score: 1

      Apparently, you can't safely store an auto_ptr in a collection. That is a pretty common situation. While auto_ptrs are pretty sweet, and by that I mean totally cool, they are not a panacea.

      http://www.gotw.ca/publications/using_auto_ptr_effectively.htm

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
  16. controls backfire by roman_mir · · Score: 2, Insightful

    Any attempt at controlling technology, people, businesses via artificial mean backfire, so this is no different.

    IF .NET is just a managed environment that makes it easier to develop for Windows platforms, then it's not a wrong thing to do, but if it marketed as a VM for the sake of being a VM while being boxed into Windows only, then it loses purpose.

    What's the purpose of this VM that can only be used in Windows? Is it just to provide a managed environment for the developers? Because if that's all it is, it can have a niche use, but it cannot compete with VMs that can run the same code on multiple platforms. In any case, I always saw it as a trap and not the kind I'd walk into, because my applications run on real operating systems and not on desktop toys.

    1. Re:controls backfire by Anonymous Coward · · Score: 0

      Any attempt at controlling technology, people, businesses via artificial mean backfire

      Stupidest thing I've read all week. Microsoft is a monopoly and has done pretty well as one.

    2. Re:controls backfire by Anonymous Coward · · Score: 0

      "What's the purpose of this VM that can only be used in Windows?" .Net on Windows on 32 bit x86 vs .Net on Windows on 64 bit x86. The same exe file works on both without issue. And, in all probability, .Net on Windows on ARM. There's also .net on Windows Phone 7 on ARM, .Net on XBOX 360, etc etc. .Net was never, really, about cross-platform. There are token gestures towards it - "System.Enviroment.NewLine" for example - but IMHO, it's more about being processor-agnostic rather than being operating system agnostic. (Honestly, being OS agnostic is harder than being processor agnostic. E.g., for a lot of programs, it's straightforward to port from Linux-on-x86 to Linux-on-ARM; compared to porting from Linux-on-x86 to Windows-on-x86.)

      IMHO, the real issue is that the Windows Shell team don't seem to want to switch. If the standard utilities that came with Windows were written in .Net - and they could be - things would be much better. Or if Internet Explorer was in .Net. Given the work the Visual C++ guys did, where you can compile existing C++ code to the .Net CLR with virtually unchanged code, this is such a shame.

    3. Re:controls backfire by aztracker1 · · Score: 1

      Well, if you're judicious, your code will run just as well in many platforms via Mono... as a tool to ease development of windows apps alone would probably be enough, combined with VS, it does that quite well.

      I'm personally hoping to see more proliferation of NodeJS and MongoDB, so you may well consider me a nutter.

      --
      Michael J. Ryan - tracker1.info
    4. Re:controls backfire by Svartalf · · Score: 1

      Heh... But the drawbacks there are that there's known issues with Patents that until you've sorted out the whole software patent thing, you're better off NOT using Mono. Seriously. It's difficult to not get bit by one of them because ECMA's part that Microsoft won't sue over is smallish and you can only really make simple programs with it. Anything else gets you off into a high risk area.

      So...with that in mind, why even go there when there's other solutions?

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    5. Re:controls backfire by shutdown+-p+now · · Score: 1

      There are other benefits to having a VM. For example, since code is JIT-compiled, its optimization level can be tuned on the fly. In VS this is used to enable better debugging - if you run a .NET application under debugger, then any JIT-compiled code (from the moment you attached) will be compiled with optimizations disabled, and extra debugging information produced. When writing code in C++, you have to swap release binaries for debug ones as needed and re-run (hope you have a stable repro!).

      Then, of course, there's the classic goal of platform/architecture independence. And, sure, .NET - as in, the Microsoft product - only runs on Microsoft platforms; but there's more than one of those, and they span multiple architectures. Right now we're talking about desktop/server Windows on x86 and AMD64, Windows CE (in all its incarnations - WinMo, WP7 etc) on ARM, and Xbox on PPC.

    6. Re:controls backfire by benjymouse · · Score: 1

      Heh... But the drawbacks there are that there's known issues with Patents that until you've sorted out the whole software patent thing, you're better off NOT using Mono.

      What a load of FUD. Old FUD at that. You cannot quote a single "known" issue. You only have FSF FUD. MS or anyone else cannot patent an API, only an implementation of a "machine" in the abstract sense. Even if MS is holding a patent on an actual implementation of -say- WPF that doesn't preclude other implementations. If other implementations infringe on the patent, other similar implementations in other languages/platform would as well, and the issue becomes moot.

      It's difficult to not get bit by one of them because ECMA's part that Microsoft won't sue over is smallish and you can only really make simple programs with it. Anything else gets you off into a high risk area.

      FUD again. Silverlight/DLR is also covered. And ASP.NET MVC is open sourced entirely by MS under a OSI approved open source license with patent grants.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    7. Re:controls backfire by Anonymous Coward · · Score: 0

      I guess the purpose of .NET is to gradually move application developers from Win API. And then at some point of time in future MS can ditch NT OS line in favor of Cingularity or whatever else they'll call it at the time. They won't need to go thru a painful transition like Apple did since all apps will already be targeting a VM and not the OS itself. If I'm right, then it's a brilliant and well executed plan. Rumors of .NET becoming a '1st class citizen" in Win8 reaffirms this point of view. But of course heck, what do I know...

    8. Re:controls backfire by aztracker1 · · Score: 1

      Said drawback wrt patents don't protect you when writing inC++, or Python either... with Mono, if all you want are Linux apps, you have GTK# and other options. Though gtk, and many other options are rather alien on other platforms, it does work pretty well. The patent wall here is pretty FUD driven. No significant software project is safe from patents... period, which is why the solution is to abolish software patents in the US, and push back against them globally.

      --
      Michael J. Ryan - tracker1.info
  17. Stupid article by Anonymous Coward · · Score: 0

    Mostly a stupid article written by a guy who is mostly clueless. I love statements such as:

    Try using DirectX 10 or later from C# for example.

    Was this supposed to be something hard to accomplish or has the guy never heard of XNA Game Studio?

    1. Re:Stupid article by Anonymous Coward · · Score: 0

      XNA 4.0 is still built on top of DirectX 9. Which is fine, because one of the key selling points is easy deployment of the same code base to PC, XBox 360 and WP7.

    2. Re:Stupid article by Applekid · · Score: 1

      Mostly a stupid article written by a guy who is mostly clueless. I love statements such as:

      Try using DirectX 10 or later from C# for example.

      Was this supposed to be something hard to accomplish or has the guy never heard of XNA Game Studio?

      I love it. Check out the By line on the article, and then the page on Meet the Team

      Ian Elliot

      Specialist subjects: JavaScript, web programming, .NET programming

      As a freelance consultant Ian is used to meeting challenges in a range of arenas and using all the tools and skills a programmer has in their armoury. He has written numerous articles for VSJ mainly on web development.

      So, he's NOT a DirectX expert? Javascript is listed first? I call bullshit that he ever even tried to interop on DirectX.

      --
      More Twoson than Cupertino
    3. Re:Stupid article by Anonymous Coward · · Score: 0

      XNA 4.0 is still built on top of DirectX 9.

      Not quite correct. XNA 4.0 obviously still supports DirectX 9 but it has access to the DirectX 10 APIs. Did you even bother to do 2 seconds of research?

    4. Re:Stupid article by Anonymous Coward · · Score: 0
      Yup I did. Did you?

      No Microsoft product including the latest XNA releases provides DirectX 10 support for the .NET Framework.

  18. Not a mistake; competition! by Skinkie · · Score: 1

    Obviously it was not a mistake. Since what happened with .NET might have triggered what later happened to Java. People started to implement other languages in .NET and Java. Creating just in time versions of languages what once were only available precompiled. Best off all it actually was semi-crossplatform, and an alternative/competitor to Java.

    --
    Support Eachother, Copy Dutch Property!
  19. Troll article by Anonymous Coward · · Score: 0

    No language is going to simultaneously be better than C++ and Java at everything. C# has a great many strengths, a few weaknesses, and a definite place in windows development. Yes, a few of Microsoft's flagship products are still C++. Some of that is for performance considerations, mostly though, it's because MSFT is a company looking to profitably ship software and not rewrite a massive code base just because a new shiny language came out.

    (Tangent: Posting as anon since I can't seem to stay logged in using IE9, FF4, or Chrome :( )

  20. meh by Anonymous Coward · · Score: 0

    if you are working in an all microsoft environment such as a large corporation, .net and all the associated dev tools and frameworks are really kind of great.

    i think a lot of people are either upset that it isn't as easy to shoehorn into their existing workflow as they'd like, or haven't actually done any in depth development with microsoft's products in many years.

  21. Tripe. by RightSaidFred99 · · Score: 1

    .NET isn't intended for system programming. It's intended for enterprise/LoB apps, Windows Phone, traditional desktop apps, etc... Try writing a large distributed application in C++, unless you absolutely need extreme high performance (real time, e.g. trading app or something like that), you don't know what you're doing if you use C++ instead of .NET (or Java, I guess).

    If people are using C++ for these types of apps either they have specialized needs or they just don't know what they're doing and like to spend 2X the time developing shit.

    1. Re:Tripe. by Desler · · Score: 1

      If people are using C++ for these types of apps either they have specialized needs or they just don't know what they're doing and like to spend 2X the time developing shit.

      Or they could fit in neither of your choices.

    2. Re:Tripe. by Svartalf · · Score: 1

      Heh... Depends on your demands for a "large distributed" system. If you're talking about something with a high transaction rate, say handling buy/sell bookings for 8 primary securities markets simultaneously, Java or .Net will leave you broken upon the wheel as they can't cope. The garbage collection happening at unpredictable times alone will do that to you- and we won't get into the VM being fine for many things...just not things like that or a game like Rage. ;-D

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    3. Re:Tripe. by tftp · · Score: 1

      If you're talking about something with a high transaction rate, say handling buy/sell bookings for 8 primary securities markets simultaneously, Java or .Net will leave you broken upon the wheel as they can't cope.

      That also depends on how you structure your system, where the bottlenecks are. If you have 100 GUI terminals that request one transaction per second, that's plenty fast for a human operator to issue. But as these requests are concentrated at the back office box they become 100 per second, and that's where you need to be careful.

      Besides, in all my Windows experience I had more problems with non-deterministic behavior of Windows itself, rather than the application. You do something, click somewhere, and Windows starts thrashing the disk for interminable seconds, while the desktop is unresponsive.

      If GC is a concern, an extra GB or two can be always thrown at the problem, it's a cheap solution and it offers instant gratification. Today a common box has 8 GB - if your application can allocate that much you are probably running Firefox :-) and FF is not a managed code anyway.

    4. Re:Tripe. by Anonymous Coward · · Score: 0

      How?

  22. Of course it was a mistake... by Excelcia · · Score: 2, Insightful

    Of course .NET was a mistake. It had all the drawbacks of an interpreted system with none of the benefits. Inherent cross-platform run-anywhere ability which was Java's purpose from the beginning was never intended for .net. Cross-platform is the only consideration that makes interpreted code worth the cost in resources. .NET was a needless (read useless) distraction, and the only "benefit" I can perceive is an across-the-board requirement for people to purchase more powerful hardware to accomplish the same goals.

    1. Re:Of course it was a mistake... by nitzmahone · · Score: 1

      "Insightful?" .NET's not interpreted- get your facts straight. People can write crap in every environment- give .NET to a skilled dev that understands where its power lies, and he'll build you something incredible, performant, and do it quickly. Give it to an idiot, and you'll see the same crap the idiot would write in C++ or any other language, you'll just probably see the end result a little sooner.

    2. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      Um... .NET is not a language and it's as much interpreted as the JVM is (read: not at all).

    3. Re:Of course it was a mistake... by roman_mir · · Score: 1

      I don't believe the code is 'interpreted' in VMs, Java or .NET

      There is a use case for a VM that is outside of being cross-platform, which is code management. So things like garbage collection, security implementations can be taken care of by the platform. Now, whether this requires a VM - I don't believe it does if the code is only supposed to run on Windows anyway. Instead of using a VM, all of these features can be taken care of by the language design and compiler, which then can use necessary libraries to take care of such things.

    4. Re:Of course it was a mistake... by realmolo · · Score: 1

      You're right.

      MS would've been better off just giving developers the better automated tools that were "included" with .NET, and skipping the actual .NET part.

      The .NET *environment* is really nice, but the "managed code" aspect of it is more-or-less worthless.

    5. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      Of course .NET was a mistake. It had all the drawbacks of an interpreted system with none of the benefits. Inherent cross-platform run-anywhere ability which was Java's purpose from the beginning was never intended for .net. Cross-platform is the only consideration that makes interpreted code worth the cost in resources. .NET was a needless (read useless) distraction, and the only "benefit" I can perceive is an across-the-board requirement for people to purchase more powerful hardware to accomplish the same goals.

      Microsoft was never interested in interoperability or cross-platform anything. .NET is a large mistake because Microsoft management never really could find a true direction for it. In the end, .NET was a failed attempt to make enterprise even more married to the Windows Server platform. The ONLY advantage of an interpreted language is that changes/bug fixes can be more rapidly deployed because time consuming re-compiling is out of the equation. Microsoft would have been better suited trying to develop a Java Application Server that outshined its competition.

    6. Re:Of course it was a mistake... by BasharTeg · · Score: 4, Interesting

      How exactly is .NET interpreted? CIL (formerly MSIL) is JIT compiled, just like Java is. The JIT compiles of assemblies are cached in the GAC, so it only happens once. After that it's native code for the platform you're running on, whether that's 32bit Intel, 64bit Intel, or Itanium. Or you can choose a specific platform in Visual Studio and compile directly to that platform and avoid the intermediate language altogether. From your description of .NET it seems like you have no knowledge of the platform.

      Insightful? Come on mods, do better.

    7. Re:Of course it was a mistake... by pxpt · · Score: 5, Interesting

      I strongly disagree that .NET in general and C# in particular has all the drawbacks of an interpreted system with none of the benefits. I don't care whether it runs everywhere or not (although that would be nice). What I do care is the intelligent garbage collection that is only possible with this type of architecture. What I do care about is the enormous library available to me for offloading common programming tasks. What I do care about are generics, strong typing and collections. What I do care about is the easy database accessing. What I do care about is the intelligence available in Visual Studio that can work out refactoring for me. What I do care about is getting complex business apps out the door and being able to support the business with ever more complicated requirements. Sure I could do that with C++ but never in the same time frame. C# and the .NET Framework are my big programming lever.

    8. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      You obviously haven't developed anything using .Net (and possibly nothing at all). .Net languages are not interpreted and do not have all of the drawbacks of interpreted language. They compile to an intermediate language (CIL) and then to native code. .Net assemblies are stored in the portable executable format.

      While it hasn't become popular as a cross platform solution (mono is fairly mature despite all the haters), the .net architecture allows for easy interoperability between code written in any of the .net languages.

    9. Re:Of course it was a mistake... by RightSaidFred99 · · Score: 1

      Insightful? I guess in the land of the blind, a one eyed man is king...

    10. Re:Of course it was a mistake... by Excelcia · · Score: 1

      http://en.wikipedia.org/wiki/Common_Language_Runtime

      You've been writing .net for how long and you didn't know it was interpreted bytecode? I think I can just rest my case right now.

    11. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      Everyone always brings up "cross-platform support" yet I have never had the need to move an IIS application to Apache or anything else. IIS servers need very little CPU and not really that much ram to get great performance. The cheapest boxes we buy for our data center are Windows with IIS. We only use dedicated boxes for the most high volume applications like Customer Service and Call Center. Everything else we run on VM and save a bundle. I work for a fortune 500 company and 70% or what we do is written in a "needless distraction"? Please... Embrace Spring.Net...it will change your life!

    12. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      Of course .NET was a mistake. It had all the drawbacks of an interpreted system with none of the benefits. Inherent cross-platform run-anywhere ability which was Java's purpose from the beginning was never intended for .net. Cross-platform is the only consideration that makes interpreted code worth the cost in resources. .NET was a needless (read useless) distraction, and the only "benefit" I can perceive is an across-the-board requirement for people to purchase more powerful hardware to accomplish the same goals.

      I remember reading long ago that .NET was Microsoft's attempt and OpenSourcing an interpretted, cross-platform language. Obviously, it's failed miserably in that intent, but I'd argue that under that intent the platform makes perfect sense. Also, it has created tons of jobs, and has at least introduced programming to a great many people. I'd mark it as a win.

    13. Re:Of course it was a mistake... by pxpt · · Score: 1

      Ooooh - I almost forgot to mention Linq and all it's flavours (Linq to objects, Linq to SQL, Linq to entities, PLinq... lambda expressions too... In fact, with the latest entity framework I can get a fairly complicated system up and running within a day along with MVC, dbContexting and an Entity model. Even better is that if the design changes I can leverage the stuff I have already and basically refactor the whole lot with extra fields, business logic and whatnots in a VERY quick turnaround time with the additional knowledge that I have not forgotten any part of the system that needed the change. That sort of thing used to take me days - now it take me tens of minutes. Beat that! (Disclaimer - this is within a business environment and is not on systems intended to be sold externally to the business).

    14. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      These reply's are confusing, am I misunderstanding the definition for "Interpreted"?
      Even if a program is 'compiled' down to Bytecode or whatever .NET uses,
      it still needs to be interpreted as it's not Assembly, correct?

    15. Re:Of course it was a mistake... by JoeMerchant · · Score: 1

      Compiled into "managed byte code" - always sounded interpreted to me.

    16. Re:Of course it was a mistake... by MobyDisk · · Score: 1

      1) It isn't interpreted.
      2) There are lots of successful interpreted languages. One of them is running on your computer, displaying this post right now.

    17. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      Doesn't it just make you sick that people modded this shit up? Do Slashdorks even know what an interpreted language is anymore? Yet someone will come along soon and claim that Slashdorks are smarter than average. I see little proof of it but plenty of proof against it.
       
      Excelia? You're a fucking retard who really shouldn't be commenting on these matters.

    18. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      Well, I've been doing j2se/j2ee development since about when it first was released, and then .net. It has been nothing but a mistake. People with no prior experience in mfc/win32 programming might think so - but those experienced with those atrocious apis know better.

      For me personally, it brought about 500K in profits over the last 5 years. Much better than java in that regard.

      As for cross-platform qualities - Java is cross platform, but there are lots of things that need to be tested and tweaked to make it work on the less popular OSes. With .net I can just put a sticker 'requires windows' and not have to worry about someone with too much time on their hands trying to deploy it on a gnu hurd box :-)

      For those that believe that .net killed visual studio - I think we must be living in different universes. Visual Studio 10 years ago was a bloody mess, instable, and coupled with poorly documented mfc and insanely unintuitive win32 api philosophy meant lots of sleepless nights for thousand of developers. .NET was a huge improvement over that mess, and since they copied java when it was already more-or-less stable, feature wise, there were none of the headaches we Java developers had to endure between 1.0 and 1.3 releases, with changes breaking compatibility etc.

      I am also interested in why people think vb.net is such an atrocious language. I have coded millions of lines of code in x86 assembly, c, c++, oc, java, even J# - and I find vb.net more or less equivalent to c#/java, feature wise. Sure, the syntax is amateurish, but why care about the syntax? After all, it is about the algorithms, about how the final product behaves, about how easy it is to support. With the current state of things, where most coding is done by nearly brain-dead india or philippines based 'developers', vb.net is actually quite ok. A good object oriented language for very stupid people.

    19. Re:Of course it was a mistake... by Edmund+Blackadder · · Score: 2

      A "just in time" compiler is a type of interpreter. I know it sounds confusing but that is the way it is.

    20. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      On the off-chance you're not just trolling, having done 10 years of .NET development and 2 years of admittedly much lighter Java development, I would choose .NET in a heartbeat every time. For the most part, yes, you're locked into Windows (though Mono is getting more credible all the time), but I would much rather have first-class tools and a first-class language that are a joy to use - and can only be deployed to Windows - than go back to the stone ages with Java's crude language constructs and Eclipse, but be able to deploy anywhere.

      As for needing to "purchase more powerful hardware to accomplish the same goals", it's my understanding that WPF is a dog (never used it), but the CLR itself runs staggeringly fast with well-written and architected code. Check out how little hardware Stack Overflow uses. Apple vs. orange metrics are meaningless but I'd assume the same app written by a top-notch Java team and a top-notch .NET team would run roughly at the same speed. But I think the .NET team would be done faster and the code would be cleaner, easier to read, easier to maintain, and there'd be less of it.

      C# is a great language, and I have not heard ANYONE say anything less than positive about F#. Whether .NET could have been done without CLR, MSIL, and the overhead of interpreted code you suspect and I discount, I don't know. But even if CLR is a negative (which I disagree with), it's a fair price to pay for everything else the .NET platform provides.

      And check out Mono. It's the closest anyone has come to true cross-platform development for Android, iOS, and WP7.

    21. Re:Of course it was a mistake... by Excelcia · · Score: 1

      *sigh* I hate having to explain this every time. Makes me feel old.

      What is interpreted? It's a native runtime reading a non-native set of instructions, deciding what to do with it in real-time, and then running native code to execute those instructions.

      What is JIT compiling? Well, "Just-In-Time" compiling is compiling just-in-time to run. So it's a native runtime reading a non-native set of instructions, deciding what to do with it in real-time, and then running native code to execute those instructions.

      JIT is a catchword euphamism. It came into being because "interpreted" became a dirty word when compilers became available to the masses. It does tend to infer a level of native code caching that straight "interpreters" didn't used to have. The reality is, though, that any good interpreted language has some amount of caching. In fact modern versions of some historically "interpreted" languages that now cache are in many cases labelled JIT compilers vice interpreters.

      Keep in mind too that JIT compiler caching, even for the most state-of-the-art bytecode languages, isn't as efficient as many people like to think. Many language structures and primitives require re-"compiling" each time they are encountered.

      The reality is, JIT "compiling" is simply a somewhat more efficient interpreter.

    22. Re:Of course it was a mistake... by segedunum · · Score: 1

      The JIT compiles of assemblies are cached in the GAC, so it only happens once. After that it's native code for the platform you're running on, whether that's 32bit Intel, 64bit Intel, or Itanium. Or you can choose a specific platform in Visual Studio and compile directly to that platform and avoid the intermediate language altogether.

      I think what the OP is arguing is, why bother that lot at all?

    23. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      P.S.

      In the corporate environment performance of the runtime environment is a non-issue, since most coding is done by morons and apps run slow because their fundamental design principles are all wrong, designed by MBA types. I've seen systems deployed on 64-cpu itanium boxes barely providing the same levels of performance of mainframes from the 1980's they replaced only because some idiot designed a data model that caused a multi-million row data base tobe a multi-trillion row database. Sure, in the hands of a capable developer c++/oc/c even are better, but the corporate world has moved on and cares about supportability, complexity and costs much more than about performance or design qualities. What else to expect when you have a bunch of highly paid mba-'educated' morons managing offshore developers with no actual programming experience?

      I've talked with a hr lady from HP that does recruitment in India; she told me the standard process is to hand over questionnaires to the soon-to-be developers which have questions like 'know vb.net? know asp.net? know c#? know java? know apache? know mssql? knows pl/sql?", and then recruit based on answers to those questions *alone*. Do you think that for folks that started to program when they were 20 it matters whether the language is interpreted by vm or compiled to machine code and executed directly? Most of them would have problems understanding the difference.

    24. Re:Of course it was a mistake... by the+linux+geek · · Score: 1

      You don't know the difference between interpreted code and JIT? CLR is JIT, and generally a bit more aggressive about compiling than, say, the client Java VM.

    25. Re:Of course it was a mistake... by Fwipp · · Score: 1

      JIT compilation is not the same as interpreted code. In fact, if you search that article for the word "interpret," it won't appear once (until you edit it to make me look wrong, of course).

    26. Re:Of course it was a mistake... by epyT-R · · Score: 1

      the bytecode might be compiled down to x86 or whatever, but the result is still memory hungry and slow.

    27. Re:Of course it was a mistake... by Excelcia · · Score: 1

      Intelligent garbage collection is great. In fact, I disagree with what many of the "compiler" fanatics go on about when they say garbage collection is for programmers who don't know how to clean up after themselves. I also agree with much of the rest of your post. However, you don't need a VM for any of it. A VM implemented to accomplish tasks that you need to use a VM for because the OS lacks the support mechanisms is destined to end up along the wayside. And a VM implemented by a company who's bread and butter is operating systems that then uses a VM to accomplish tasks because their OS lacks the support is just sad.

      None of what you promote (except for the garbage collection) are advantages of .NET, per se. They are advantages of the MS C# implementation. Rather than saddling people with yet another VM, MS could have added garbage collection into the native API and implemented C# purely native. What a fantastic benefit that would have been.

    28. Re:Of course it was a mistake... by mean+pun · · Score: 0

      A "just in time" compiler is a type of interpreter. I know it sounds confusing but that is the way it is.

      Eh? A JIT compiler generates native machine code, and the generated code will be directly executed by the processor. Why isn't that compilation?

    29. Re:Of course it was a mistake... by Lagged2Death · · Score: 1

      Garbage collection is such a huge win, I'd be willing to pay almost any price.

      But why does it require a complete virtual machine system, and all the weight and complexity that implies? It's my understanding that there are compiled languages that support garbage collection.

      The other advantages you list should be possible through the development of new libraries, new languages, and through evolutionary development of the existing Windows API.

      I've never understood why MS went to the bother of building the VM without actually porting it to any other system.

    30. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      ... so you agree with the post above you? Everything you mentioned is something Java has (Visual Studio may as well equate to Eclipse) except that Java is write-once-run-everywhere whereas .NET is write-once-run-on-windows.

    31. Re:Of course it was a mistake... by lederhosen · · Score: 1

      the bytecode is translated down to machine code, so it is only interpreted once, it is like java.

    32. Re:Of course it was a mistake... by azcodemonkey · · Score: 1

      I wish I had mod points.

    33. Re:Of course it was a mistake... by Altrag · · Score: 1

      No, its not. A JIT actually compiles the code to native bytes just as a regular compiler does. The only difference is when that compilation is done.

      Interpreted languages on the other hand are never converted to a native format. An interpeter actually performs the commands as it reads them from the input stream.

      Think of it in terms of natural language. An "interpreter" is used when you need to speak directly to someone who doesn't understand your language, whereas a translation of a written work is more in line with what a compiler does. A "JIT translator" would be say a scribe who writes in German while you dictate in Finnish -- blurs the lines a bit maybe, but still a lot closer to a translation than an interactive conversation via an interpreter.

      (Of course the English language is full of ambiguities and we often use the phrase "translator" when we mean "interpreter").

    34. Re:Of course it was a mistake... by gbjbaanb · · Score: 1

      GC isn't quite as good as you think, I'd much rather it had deterministic finalisation so the superior RAII pattern would work.

      MS could have implemented this (if you know C++, imagine if every .NET object was allocated on the heap and the reference to it was automatically wrapped in a shared_ptr) but they didn't quite have the imagination. Hell, it took a huge discussion on the msdn forums just to get them to implement the Dispose pattern, and that was just a "this is what you can do if you want to" thing. Turns out it was quite the good idea, so much so that they made it a 1st class part of the language and added the using keyword to give you RAII-if-you-code-it-yourself.

      So, I think you can easily live without GC. It doesn't mean you'd have to go back to memory management using malloc.

    35. Re:Of course it was a mistake... by Lagged2Death · · Score: 1

      I think you put the case too strongly, although I see where you're coming from. It also seems to me that .NET refuses to play to its own strengths, and consequently does some things pretty well while really excelling at nothing.

      The high resource requirements of .NET apps are, in part, because they're not interpreted, but JITed, after all, just like Java. If .NET were interpreted, .NET apps would probably be much lighter-weight.

    36. Re:Of course it was a mistake... by Svartalf · · Score: 1

      Ah...but it's STILL interpreted. And, if you're thinking it isn't...you might want to learn a little bit about what a JIT really is.

      From Wikipedia:

      JIT compilers represent a hybrid approach, with translation occurring continuously, as with interpreters, but with caching of translated code to minimize performance degradation. It also offers other advantages over statically compiled code at development time, such as handling of late-bound data types and the ability to enforce security guarantees.

      A JIT does a final compilation of select pieces, just in time, but NOT all of the codebase at once- and if you asked an "old-school" computer scientist, they'd tell you it was a hybrid interpreter. It's still interpreting things- just moving heavily used translations into native code as best as it can when it thinks it can do it. It can approach 80 or so percent of peak native code speeds overall- without considering GC loading and similar issues. In short, it's still interpreted, it still has GC related performance issues, etc. It makes for a good business application framework- but not for the higher end server stuff or for things like games or visualization. It's got issues that're non-deterministic and you'd sure not want it GC-ing things when it's in the middle of managing a defibrilator pulse, for example... Might not get enough of one or too much of one depending on when GC kicked in.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    37. Re:Of course it was a mistake... by lgw · · Score: 1

      Those who truely grok RAII don't need GC, and in fact suffer from the lack of deterministic finalisation. That was always such a small percentage of C++ programmers, though. For the average dev, GC is for the best, really.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    38. Re:Of course it was a mistake... by Svartalf · · Score: 1

      Heh... A JIT does not typically keep all the translations cached... It redoes a LOT of them from time to time. It's a virtualized machine. If it does NOT produce a final native code result that's kept and used directly time and time again, there's SOME interpretation that gets done each time the code is executed.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    39. Re:Of course it was a mistake... by Svartalf · · Score: 1

      I can relate. Doing it over and over again makes me feel old too.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    40. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      You are mixing the advantages of component based development and frameworks with completely unnedded bytecode based, jit performance dependent, walled garden for market deformation "solutions"

      Take a look to Oberon_F for a better design with the same architectural advantages and none of the unnedded costs
      http://www.oberon.ch/blackbox.html

    41. Re:Of course it was a mistake... by Anonymous Coward · · Score: 0

      I'm nor sure which JIT your talking about but the clr does keep compiled versions around and if you really want to you can ngen/AOT your assemblies to get native code.

    42. Re:Of course it was a mistake... by bertok · · Score: 1

      I think what the OP is arguing is, why bother that lot at all?

      Because when Microsoft releases Windows 8 with ARM support, existing .NET binaries compiled for "AnyCPU" will Just Work.

    43. Re:Of course it was a mistake... by Altrag · · Score: 1

      It might sound interpreted, but its not. Its actually a 2-stage compilation.

      Stage 1 is compiling from source code to byte code and is done with the standalone compiler.

      Stage 2 is compiling from byte code to native code, and is done as a just-in-time step. This step is generally cached so that it only has to be redone when the byte code changes (in the same way that you usually only recompile a "normal" program when you modify the source).

      Interpreters on the other hand perform the actions themselves.

      A compiler sees "print x" and spits out something like "PUSH x; CALL [print]" (or the equivalent code bytes if it skips the assembly language step).

      An interpreter sees "print x" and spits out "7" (or whatever value x happens to hold).

    44. Re:Of course it was a mistake... by shutdown+-p+now · · Score: 1

      A JIT does a final compilation of select pieces, just in time, but NOT all of the codebase at once

      That's right, but notice that this definition does not involve in any way, shape or form any "interpreted bytecode". It's not interpreted - it's compiled "just-in-time", and what runs is the compiled version.

      It's still interpreting things- just moving heavily used translations into native code as best as it can when it thinks it can do it.

      Now here you're confusing matters, likely because you're assuming that your knowledge of HotSpot JVM JIT compiler also applies to .NET. It does not. It's true that HotSpot interprets bytecode, and only selectively compiles methods when it sees that one is heavily used. .NET does not have any bytecode interpreter whatsoever - the moment a method is executed for the first time, it's JIT-compiled.

      The way this is done is by putting pointers to special JIT stubs into class vtables initially - the first time a method is called, using the normal indirect CALL instruction, this stub runs. The only thing it does is put the unique method ID in the register, and jump to JIT-compiler code. The latter looks up bytecode by method ID, translates it to native code, rewrites the corresponding vtable slot to point at that generated code, restores the original environment, and finally jumps to generated code. All consequent calls go directly to generated code, since that's what's in vtable.

      (note: all of the above can be easily seen in source code for Rotor if you care to look; of course, things changed in .NET codebase since then, but not so significantly as to invalidate any of the above)

      So no, it's not interpreted. 100% of the code that runs is native code. You will, obviously, get delays from JIT, but these are finite (eventually, all methods in your app are going to be called at least once), and you can avoid them completely by using NGen, which simply precompiles everything and caches it.

      The reason why it's still slower is because the compiler does not do optimizations as advanced as what modern C++ compilers can do. To a large extent this is because a JIT-compiler has to strike a reasonable balance - it can't take too long to compile a method, otherwise apps would take too long to load. With C++, it's okay if the program takes several minutes to compile, so long as the output is 5% faster. And yes, GC is also a factor, though it's possible to write code in such a way that it is never triggered (though then of course you may just as well be writing in C++).

    45. Re:Of course it was a mistake... by shutdown+-p+now · · Score: 1

      In case of .NET, it does cache all translations. Once a method is compiled, the overhead for a virtual code is exactly the same as in C++ - one pointer dereference to read vtable, and one indirect call.

    46. Re:Of course it was a mistake... by shutdown+-p+now · · Score: 1

      None of those things you've listed requires a VM, strictly speaking (though some would argue that running a GC in a C program is already a kind of VM).

      One thing that bytecode does give you, though, is the ability to have dynamic libraries with generic types. With C++, it's either-or - if you want to use templates, they go into headers, and their instantiations are linked directly into the calling code. If you want the implementation to live in a .dll/.so, you'll need to drop templates. In .NET, it just works, because JIT compiler can separately compile every new instantiation of a generic type as it happens - it doesn't need to know all of them in advance, and in fact you can dynamically load code that causes more instantiations to be created.

      Another nifty side effect is that, in C#, you can have a generic virtual method (note: not a virtual method in a generic type, but a method that itself has generic type parameters, and uses them in its argument list and/or return type). Consider how you would go about implementing that in C++.

    47. Re:Of course it was a mistake... by BasharTeg · · Score: 1

      Again, *know* what you're talking about. We're not talking about just any generic theoretical JIT. We're talking about the .NET CLR which *does* cache all of the JIT compiles in the GAC. Here, let me help you know more about what you're talking about: http://en.wikipedia.org/wiki/Global_Assembly_Cache

    48. Re:Of course it was a mistake... by BasharTeg · · Score: 1

      I hate having to explain this to non-.NET developers over and over again. Try to follow along.

      In Visual Studio, if you select x86 or x64 or Itanium as your target instruction set, CIL (formerly MSIL) is not generated. NATIVE machine language is generated, doing the job that the JIT would normally do. You with me so far? You can target native platforms, and produce native code.

      Beyond that, if you do choose to generate an "Any CPU" binary, .NET caches all of its JIT compiles in the GAC. Thus for a particular platform, the CIL is only compiled into native code ONCE. The second time the code is executed, even between shutdowns and reboots, the native code is executed. You can read more about the GAC here:

      http://en.wikipedia.org/wiki/Global_Assembly_Cache

      Your argument is like saying, because you have to run a tarball of source through ./configure && make once on a particular platform, the code is interpreted. That's ridiculous. Interpreted code is read by an interpreter AT runtime. Deferring final compilation to 0.01 seconds before the program entrypoint is executed doesn't mean a program is interpreted. What actually executes at runtime is native x86 or x64 or Itanium assembly language, generated exactly once.

    49. Re:Of course it was a mistake... by 10101001+10101001 · · Score: 2

      Well, according to here, the JIT compiler is just a JIT compiler with the persistence at most to the life of a process. If you want something more persistent, you can use NGen which can store native code in the NGen cache. Having said that, NGen code seems to have some caveats that make it worse than native code (either less ability to share pages between processes or a potentially longer startup time). So, yes, there's an option for native code, but it doesn't sound like a default except for the .NET framework itself.

      --
      Eurohacker European paranoia, gun rights, and h
    50. Re:Of course it was a mistake... by cartman · · Score: 1

      Did you read the wikipedia article you cited?

      From the wikipedia article:

      . This runtime is where the source code of an application is compiled into an intermediate language called CIL , originally known as MSIL (Microsoft Intermediate Language)... the CIL code is [then] translated into the native code of the operating system using a ... compiler.

      From your post:

      You've been writing .net for how long and you didn't know it was interpreted bytecode?

      You have no idea what you're talking about.

    51. Re:Of course it was a mistake... by cartman · · Score: 1

      Ah...but it's STILL interpreted. And, if you're thinking it isn't...

      No, it isn't.

      .you might want to learn a little bit about what a JIT really is.

      You might want to read about computer science from somewhere other than wikipedia, from which you quoted.

      The difficulty here is that modern VMs blur the distinction between compilers and interpreters. Even the IBM Java VM released in 1999 had "selective compilation" where it would compile frequently-used methods and interpret others:

      The IBM Jit compiler and JVM allow efficient mixed-mode execution of interpreted and JIT-generated code by sharing... The notion of mixed execution of interpretation and compiled code was considered as a continuous compier or smart JIT approach in Plezbert and Cytron.

      Nevertheless, the original comment was quite incorrect to refer to it as just an "interpreted system."

      A JIT does a final compilation of select pieces, just in time, but NOT all of the codebase at once- and if you asked an "old-school" computer scientist, they'd tell you it was a hybrid interpreter.

      Whether or not you compile the codebase all at once or separately in pieces is not what determines whether you're interpreting or compiling.

      without considering GC loading and similar issues. In short, it's still interpreted, it still has GC related performance issues.. Might not get enough of one or too much of one depending on when GC kicked in.

      I don't know why you're bringing up GC, since that has nothing to do with it. Many compiled languages have GCs available as libraries.

    52. Re:Of course it was a mistake... by cartman · · Score: 1

      I can relate. Doing it over and over again makes me feel old too.

      I hope you guys weren't think you could say "I'm old" and then others would infer some kind of expertise as a result. I'm not young either, but I don't mention the fact in support of arguments about interpreters.

    53. Re:Of course it was a mistake... by cartman · · Score: 1

      JIT is a catchword euphamism [sic]. It came into being because "interpreted" became a dirty word when compilers became available to the masses.

      Nope. JITs or similar things have been around since the early 1960s, long before compilers (or even computers!) became available to the "masses". However the term "JIT" was popularized by early Java vendors (circa 1996-1997) to distinguish their products from Sun's early Java VM, which interpreted each instruction and so was horribly slow. The term JIT was popularized because of JAVA, in 1996 or so, and meant "NOT bytecode interpreted one instruction at a time" as was Java 1.0.

      Neither the technology of selective compilation, nor the popularity of the term "JIT", occurred when compilers became available to the masses. Neither the technology nor the term were caused by the reason you cited.

      The reality is, JIT "compiling" is simply a somewhat more efficient interpreter.

      You call it JIT "compiling", but there is no reason for the quotation marks. A JIT is actually compiling.

      *sigh* I hate having to explain this every time. Makes me feel old.

      Heh. I don't know how seriously you expect me to take a remark like that.

    54. Re:Of course it was a mistake... by cartman · · Score: 1

      You might want to read about computer science from somewhere other than wikipedia, from which you quoted.

      I apologize if I was too testy with this remark. Your comment struck me as rude ("you might want to learn a little bit...") to that fellow.

      I have no doubt that you have considerable knowledge about VMs. The problem here is that guys seem to be using the terms differently.

    55. Re:Of course it was a mistake... by MadKeithV · · Score: 1

      Garbage collection is such a huge win

      To a native C++ developer used to deterministic cleanup, garbage collection is a collosal non-deterministic pain in the ass, especially in the presence of wrapped native objects.

    56. Re:Of course it was a mistake... by Edmund+Blackadder · · Score: 1

      It is compilation but it is compilation that is done by an interpreter. An interpreter is a program that runs another program. The JIT type of interpreter runs the other program by compiling it and executing it while the JIT is running. So yes it is an interpreter, just one that performs compilation as an intermediate step.

    57. Re:Of course it was a mistake... by Edmund+Blackadder · · Score: 1

      Every interpreter must eventually convert the incoming code into machine code. That is the case because an interpreter must execute the incoming program somehow and the only way you can execute anything on a CPU is by sending that CPU machine instructions.

      An interpreter is merely a program that executes another program. The .Net CLR does this, so it is an interpreter. It is also true that the .Net CLR performs an interim compilation step, but that does not prevent it from being an interpreter.

    58. Re:Of course it was a mistake... by gbjbaanb · · Score: 1

      those kind of devs should stick to VB :)

    59. Re:Of course it was a mistake... by benjymouse · · Score: 2

      Heh... A JIT does not typically keep all the translations cached... It redoes a LOT of them from time to time. It's a virtualized machine. If it does NOT produce a final native code result that's kept and used directly time and time again, there's SOME interpretation that gets done each time the code is executed.

      The context is .NET which indeed does cache all translations for the application domain. It doesn't redo "a LOT" of them as you claim. It compiles an assembly/method only once per process.

      .NET does indeed also allow on-installation or ahead-of-time compilation through the ngen.exe tool. It will, as was claimed above, compile to *native* code and store it in the GAC. When such an assembly is used by other .NET code *no* compilation will take place.

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
    60. Re:Of course it was a mistake... by bondsbw · · Score: 1

      If you want to cache the native .NET image, use ngen.exe.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    61. Re:Of course it was a mistake... by bar-agent · · Score: 1

      Those who truely grok RAII don't need GC... For the average dev, GC is for the best, really.

      Yes, if you have to choose, GC is better for the average programmer, or for any programmer. I don't care how well you grok RAII.

      There are ways of doing garbage collection that collects deterministically. You can use reference counting with weak references, like what Objective C does.

      But without deterministic GC, RAII actually just makes things worse. RAII ties resource allocation to object lifetime. Without deterministic GC, you will have unexpected object lifetime problems. If throw RAII in to the mix, your unexpected object lifetime problems now become unexpected resource allocation problems. If you do not use RAII, the two lifetime problems would at least be orthogonal.

      --
      i'd hit it so hard, if you pulled me out you'd be the king of britain [bash.org]
    62. Re:Of course it was a mistake... by BasharTeg · · Score: 1

      "This article is based on a prerelease version of the .NET Framework 2.0"

      Can I recommend that you find a slightly newer source?

    63. Re:Of course it was a mistake... by lgw · · Score: 1

      I've never had unexpected object lifetime problems in C++, or unexpected resource (de)allocation problems for that matter, and I've been writing C++ for a couple of decades now. (I have fought both problems in GC languages - but hten, nothing can be expected to be idiot proof.) I really don't understand why so many people find it so hard to just do things the right way (it's not rocket science, or even anything to brag about, it's just a mindset). But I accept that many devs just can't "get it", and resign myself to chasing file handle leaks in Java and C#.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    64. Re:Of course it was a mistake... by 10101001+10101001 · · Score: 1

      Why? Do you know of any source that indicates that later .NET Frameworks have changed in this respect? I did bother to do some further searches on NGen on MSDN and all I got were the various optimization improvements on NGen's code general or a general rehash of why NGen should be used by people. All of that to me would indicate that you have to go out of your way to select NGen and to have native code generated and cached on disk. That makes a lot of sense in some ways, since there's situations in which a JIT solution may actually be faster--for example, it sounds like there's a circumstance where JIT can be 6x faster than NGen for Static Field Fetch, whatever that is, although with ASP.NET possibly making NGen 2x faster than JIT. Of course, overall program performance is based on what are the bottlenecks, most commonly used code, etc, so it's a non-trivial point.

      The real question to me is how much NGen is hamstrung into sub-optimal situations because it has to be flexible enough to deal with JIT code generation or the other quirks of .NET vs if the code was linked against Win32 dlls. I don't know enough about Win32 to really have a clue. But my guess would be that Win32 programs don't have the same level of instructions overhead for a lot of the shared library interactions. Having said that, I can see a lot of special situations where JITing would easily win out because it can detect ways to better optimize frequently run loops which would more than compensate for any other more general kludginess.

      --
      Eurohacker European paranoia, gun rights, and h
  23. .Net to get equal footing with C++, not vice versa by Anonymous Coward · · Score: 0

    Submitter clearly has no idea. See here.

  24. Barriers To Entry by cosm · · Score: 1

    Visual Studio Express Editions + SQL covers:
    - Web Services - ASP.Net Pages - Windows binaries

    Express Editions Completely free? Yes. Do they work and are they flexible? Yes? Properly documented? Yes. Solid and highly proliferated languages? Yes. Large job market for .NET devs? Yes. Large platform install base across the corporate and consumer realms? Yes. Large user-base online for support? Yes. Large selection of open-source .NET project available for tinkering? Yes and growing. Interopability with most Win32 API calls? Yes. What is the issue here troll?

    Of course every platform has its limitations, but you can't paint the entire .NET stack in a Glen Beck style question. Is Linux ever going to be a good platform? Is Apple ever going to be more than turdshine? Is the article poster a troll?

    --
    'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
    1. Re:Barriers To Entry by darkgrayknight · · Score: 1

      exactly, +1

    2. Re:Barriers To Entry by rickb928 · · Score: 1

      20% of our users can't install SQL 2008 Express, required for our app in development. FAIL.

      Almost 10% of SQL 2008 Express reinstalls, caused by app errors, fail. As in FAIL. .NET Framework issues are abating somewhat.

      Random app errors come up for at least 30% of our users, blamed variously by the developers on WPF, WAF, and even 'touch screen inputs'. FAIL.

      Our experience here with .NET is that the developers are entirely unprepared for the installation problems, many Windows machines are hosed up for SQL 2008 but the users have no idea (since they are entirely functional with our old VB app), and performance is unacceptably slow.

      Some of that is developers, but a lot of it is the heavyweight infrastructure you get with .NET. SQL, frameworks, next thing you know your machine is under constant strain from memory needs and wasted cycles. .NET can't go away fast enough for me. My only regret will be that we start the dev cycle all over again. Another 3 years over the dam.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    3. Re:Barriers To Entry by awitod · · Score: 1

      Let me be the first to say: They are doing it wrong.

      There is no such thing as a 'random app error'. Such things are almost always excuses used by developers who suck at development regardless of the tool set. I would be willing to bet a week's pay that in 5 minutes of code review I'd find that they do not properly dispose object instances or close database connections.

    4. Re:Barriers To Entry by rickb928 · · Score: 1

      "random" is our term for app errors that result in an app close with the usual generic event logged. The developers don't even bother to name them.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
    5. Re:Barriers To Entry by awitod · · Score: 1

      The point is they aren't random and lots of other people have tens of thousands of .NET apps deployed that don't crash. Furthermore, if the exception handling was any good the log would tell you exactly where the problem is.

      I know I sound like an Internet douche-bag, but seriously - good professional developers don't have these problems.

    6. Re:Barriers To Entry by Yaur · · Score: 1

      The developers don't even bother to name them.

      Then your problem is that your developers suck. There are no "random errors" only bugs that need to be fixed.

    7. Re:Barriers To Entry by rickb928 · · Score: 1

      I agree. We spec'd a replacement for an old VB/Access app. Going to .NET/SQL meant they would be getting a significantly larger app. More difficult and resource-hungry platform, and risked having many unable to run the app on existing hardware. We wanted no significant increase in features or performance. I know the previous app well, and was part of the design process for this New app - the new app doesn't add any either, It's a poor choice of platform. And we are paying to let these yokels learn .NET. this is a management failure as much as a developer failure.

      --
      deleting the extra space after periods so i can stay relevant, yeah.
  25. Return to C++? by Anonymous Coward · · Score: 0

    FTA: "There has been, throughout the life of .NET, a steady but growing undertow to return to C++ and COM. Now the undertow seems to be growing and this is what prompts these thoughts."

    Sorry, but I've never had any desire to go back to C++ if it wasn't necessary. LINQ and lambda expressions are awesome. Managed code, even with the overhead is totally worth it if that's what you need. I'm tired of hearing of these commandments that everything in the programming/systems have to be a certain way.

    And who cares if it's not platform independent? It's built for Rapid Application Development and it does it very well. So what if it's not like Java in that regard?

    1. Re:Return to C++? by TheRaven64 · · Score: 1

      Sorry, but I've never had any desire to go back to C++ if it wasn't necessary. LINQ and lambda expressions are awesome. Managed code, even with the overhead is totally worth it if that's what you need.

      No LINQ, but the latest versions of Microsoft's C++ compiler can generate managed .NET code, and do support C++0x lambda expressions. Oh, and you can also use the managed target for catching memory errors while debugging, and then ship the native version.

      --
      I am TheRaven on Soylent News
  26. Re:What?! On the contrary: .NET is becoming releva by Anonymous Coward · · Score: 0

    Like Java was a "first-class citizen" on OS X.

  27. I leave for 5+ years and nothing changes by Anonymous Coward · · Score: 0

    /. users are still smoking crack.

    Would you build an OS in Java? Ruby? Scala? ?

    No. Same with .NET. But I also wouldn't build a CMS or line-of-business app in C++. .NET is used in a lot of places _within_ MSFT, eg SQL Server, Exchange, Biztalk, not to mention to run sites like microsoft.com, msdn.microsoft.com, asp.net (and those are just the MSFT ones). Also, if you happen to be an iphone person, a lot of the top games are written in C# (google for "unity"), along with a fair number of other apps (google: monotouch). And if you are an android user, try googleing for "mono for android".

    Pull you head out of your backside and go troll on.... oh, wait. You are trolling on /. already. Sorry. My mistake.

    Cya in another 5 years. I'm sure the conversation will not have moved on much.

  28. So is it C++ or is it Javascript/HTML5 by liquiddark · · Score: 1

    The article writer frets that there's an "undertow" to return to C++ and COM (I'd love to know where that undertow resides, because it ain't on these shores, let me tell you), but his original article was about how Microsoft is abandoning .NET for Javascript and HTML5. It's as if there is no possibility that these four could coexist and even *gasp* compliment one another. One begins to wonder what you whippersnappers are smoking.

    1. Re:So is it C++ or is it Javascript/HTML5 by Excelcia · · Score: 1

      .net co-exist with Javascript and HTML5? I think the whippersnappers are indeed lacking your experience. They haven't yet found anything to smoke that even comes close to your stash.

    2. Re:So is it C++ or is it Javascript/HTML5 by rrohbeck · · Score: 1

      OMG Microsoft has implemented artificial politeness?

    3. Re:So is it C++ or is it Javascript/HTML5 by icebraining · · Score: 1

      Jurassic is an implementation of the ECMAScript language and runtime. It aims to provide the best performing and most standards-compliant implementation of JavaScript for .NET. Jurassic is not intended for end-users; instead it is intended to be integrated into .NET programs. If you are the author of a .NET program, you can use Jurassic to compile and execute JavaScript code.

    4. Re:So is it C++ or is it Javascript/HTML5 by liquiddark · · Score: 1

      What are you writing on the server side that's running native JavaScript, pray tell?

  29. Recent unsettling behavior? by 93+Escort+Wagon · · Score: 1

    [citation needed]

    Would it have killed the submitter to add a link to some demonstrable evidence of claimed "recent unsettling behavior", given that many of us don't live and breathe All Things Microsoft(TM)?

    --
    #DeleteChrome
    1. Re:Recent unsettling behavior? by The+Moof · · Score: 2

      The only rumblings (which were covered here) are about MS dropping Silverlight and going with HTML5/JavaScript for web. Somehow, the article took that and misconstrued it as MS abandoning .NET.

    2. Re:Recent unsettling behavior? by Lennie · · Score: 1

      Actually, you missed something and that was the part that this whole scare is about. You mentioned web, not Windows 8.

      In Windows 8, the new interface is build on top of IE10 and HTML5/JS and that combines with IE won't support silverlight on the long run.

      That got the silverlight people really scared, because it looks like Microsoft will be dropping silverlight.

      --
      New things are always on the horizon
    3. Re:Recent unsettling behavior? by DeathFromSomewhere · · Score: 1

      Considering WP7 is pretty much built around Silverlight I would say those developers fears are unfounded. I wouldn't be surprised at all if existing Silverlight WP7 apps found a way to run on the new Windows 8 UI.

      --
      -1 overrated isn't the same thing as "I disagree".
    4. Re:Recent unsettling behavior? by Lennie · · Score: 1

      I don't know, all I know is. The people that got scared might just be jumping to conclusions.

      --
      New things are always on the horizon
  30. Not a mistake, just badly executed by DavidR1991 · · Score: 0

    As per my comment title. My major issue with using .NET for any project is the fact the framework is massive, many people still don't actually have it (or a recent version of it) - but most importantly, there is no 'must have' .NET application that spurs people to install it themselves. MS didn't even use it for their own products

    1. Re:Not a mistake, just badly executed by Anonymous Coward · · Score: 0

      Office 2010... WPF application.

    2. Re:Not a mistake, just badly executed by MobyDisk · · Score: 1

      Not true. Office 2010 is written in C++ and does not use WPF. In fact, the ribbon control introduced a few years ago is a free download from their web site, and you can only use it from C++.
      Office 2010 does not use WPF

    3. Re:Not a mistake, just badly executed by MobyDisk · · Score: 1

      How is that possible? Windows XP SP2 came with .NET 2.0. Vista includes 3.0, and Windows 7 includes 3.5.

    4. Re:Not a mistake, just badly executed by 0123456 · · Score: 1

      How is that possible? Windows XP SP2 came with .NET 2.0. Vista includes 3.0, and Windows 7 includes 3.5.

      So which of the various Frameworks do you build for?

      And note that anything .Net won't run on my XP PC because at some point in the past I installed a .Net Framework service pack which screwed it up so badly that it can't install and can't uninstall and even the 'brute force uninstaller' from Microsoft won't fix the damn thing.

    5. Re:Not a mistake, just badly executed by jader3rd · · Score: 2

      Exchange and IIS are .Net. I know SQL server has a lot of .Net in it. The Visual Studio shell is WPF, and there's plenty of .Net in other places in VS.

    6. Re:Not a mistake, just badly executed by Anonymous Coward · · Score: 0

      MS didn't even use it for their own products

      Visual Studio is written in .NET.

    7. Re:Not a mistake, just badly executed by aztracker1 · · Score: 1

      It's used a lot in web and line of business apps. It is pretty much a split market with Java and .Net for business web apps.

      As to a killer app, try paint.net or pinta.

      --
      Michael J. Ryan - tracker1.info
    8. Re:Not a mistake, just badly executed by Anonymous Coward · · Score: 0

      Yeah, except for all of their online services, and their products like the Expression Suite. And VS itself. And Office BCS. And dozens of other things.

    9. Re:Not a mistake, just badly executed by Anonymous Coward · · Score: 0

      You target the lowest common denominator that you expect to need to support. if you know you need to support people with 2.0 then target it, that code will happily run in 3.0, 3.5 or 4.0, not to mention with .NET you can have all versions of the framework running side by side so targetting a specific version if there is some compatibility reason for it dosn't lock anyone out.

    10. Re:Not a mistake, just badly executed by UnknowingFool · · Score: 1

      It's not that you can't get work as a .NET programmer but it is that it didn't eradicate Java as MS had hoped. One of main reasons is that you really need to run it on Windows and businesses are loathe to replace their functioning Unix/Linux servers just for the sake of a development platform. Yes Mono exists but it isn't complete and doesn't work well with anything other than an Intel/AMD hardware.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    11. Re:Not a mistake, just badly executed by Anonymous Coward · · Score: 0

      "MS didn't even use it for their own products"

      This is simply a factually wrong statement. Many, many Microsoft products are built on .NET, either partially or wholly.

    12. Re:Not a mistake, just badly executed by Altrag · · Score: 1

      MS didn't even use it for their own products

      This is a stupid argument. Rewriting a product the size of Office in an entirely differently language is a massive undertaking, even for a company the size of Microsoft. Never mind all of the other hundreds of programs that they've got laying around that just don't happen to have the visibility of their two flagship products.

      I'm sure they would love to completely abandon 25 years of crud and start fresh, but its just not practical. Not to mention it would require porting .NET to the Mac in order to support the Mac version of Office (and any other systems they might support), which may be stopped by more than the simple time and technical challenges (ie: Microsoft might not want .NET to be portable for sales reasons).

      Newer stuff that they're doing DOES support .NET, and in fact a lot of it is built on .NET. XNA is a C# derivative for developing Xbox/Windows games in a somewhat cross-platform manner. .NET is the platform of choice for Windows Phone 7, etc.

      As for a 'must have' .NET application... who cares? Its not that hard to include the redistributable with your application. If you're really worried about your users having .NET pre-installed, then just use an older version of .NET rather than hoping some random third party developer has already done the installation for you. Its extremely easy to switch your target output between 2.0/3.0/3.5/4.0 from within the Visual Studio project settings.

    13. Re:Not a mistake, just badly executed by Anonymous Coward · · Score: 0

      MS didn't even use it for their own products

      what about Sharepoint? MS has been using .Net for stuff which would fit with what .net offers.

    14. Re:Not a mistake, just badly executed by Lennie · · Score: 1

      No-one suggested that. He mentioned: there is no killer appplication for people to install the runtime. Not even an application from Microsoft themselfs.

      --
      New things are always on the horizon
  31. But I said all that years ago by erroneus · · Score: 3, Insightful

    ... and people here told me I was an idiot and didn't know what I was talking about and on and on and on. Good to know, at least, I'm not the only one.

    But I do see .NET for what it could have been -- the application programming API for the migration to the next Windows OS which isn't Win32/64 compatible. Microsoft still doesn't have the balls to shift to a brand new OS the way Apple did. But they should have done that a long, long time ago.

    1. Re:But I said all that years ago by Anonymous Coward · · Score: 0

      ... and people here told me I was an idiot and didn't know what I was talking about ap>

      Sorry, but you were and are

    2. Re:But I said all that years ago by Anonymous Coward · · Score: 0

      Actually Microsoft did shift to a new OS with NT and Windows 2000.

    3. Re:But I said all that years ago by the+linux+geek · · Score: 2

      Why should Microsoft kill Windows, exactly? In pretty much all respects, it's a reasonably modern, secure, and stable operating system.

    4. Re:But I said all that years ago by aztracker1 · · Score: 1

      I think that what you mention will be the case for Windows 8 on ARM.

      --
      Michael J. Ryan - tracker1.info
    5. Re:But I said all that years ago by Anonymous Coward · · Score: 0

      Microsoft still doesn't have the balls to shift to a brand new OS the way Apple did

      As he types it into his NT64 based machine and not dos or OS2 or win9x.

    6. Re:But I said all that years ago by Anonymous Coward · · Score: 0

      Microsoft still doesn't have the balls to shift to a brand new OS the way Apple did. But they should have done that a long, long time ago.

      You mean like when they didn't go from from 3.x to 95, or from 9x to NT?

    7. Re:But I said all that years ago by Yaur · · Score: 1

      Do you realize how broken previous Mac OSes were? Microsoft made an equivalent switch in 1995.

    8. Re:But I said all that years ago by erroneus · · Score: 1

      The change Apple made was much more dramatic. They completely abandoned software compatibility and then provided a kludge for classic apps that barely worked. Win3.1 software worked on Win95. Microsoft has not abandoned DOS, let alone Win16/32/64..

    9. Re:But I said all that years ago by GasparGMSwordsman · · Score: 1

      But I do see .NET for what it could have been -- the application programming API for the migration to the next Windows OS which isn't Win32/64 compatible. Microsoft still doesn't have the balls to shift to a brand new OS the way Apple did. But they should have done that a long, long time ago.

      It isn't that they don't "have the balls". The issue is that Microsoft cares more about keeping their clients/end users happy than they do about forcing you to buy a new OS. If you doubt this read Raymond Chen's blog some time. He has all kinds of stories regaling the lengths MS goes to make sure that random stupid ass program works on every OS version.

    10. Re:But I said all that years ago by BasharTeg · · Score: 1

      Microsoft hasn't abandoned DOS or Win16???? Have you tried running a DOS program or a Windows 3.x program in Windows 7? I think you'll find that your information is more than a little out of date.

      And NT was a complete and total abandonment of the Windows 9x codebase. The entire OS was rewritten from scratch in C, an entire NT API exists under the hood that powers that OS, and then the Win32 API/ABI was added as a compatibility layer on top of that OS. As was their POSIX and OS/2 compatibility layer.

      I know you probably can't be bothered to validate what you're saying before you say it, but perhaps a little bit of Google is in order before you spout off? Or try running a DOS app. Or something. Or let the grown ups talk.

    11. Re:But I said all that years ago by Xest · · Score: 1

      "... and people here told me I was an idiot and didn't know what I was talking about and on and on and on. Good to know, at least, I'm not the only one."

      Yes, the problem with your self-congratulation is that both you and the article are wrong.

      "the application programming API for the migration to the next Windows OS which isn't Win32/64 compatible. Microsoft still doesn't have the balls to shift to a brand new OS the way Apple did."

      Why would they want to kill their desktop business and fuck over 90% of the World's businesses as a result? that seems a little dumb. Legacy support and backwards compat. are a fundamental reason why Microsoft are successful.

      But to answer your question this is kind of the point of .NET, the more Microsoft can move onto it the easier it is to make fundamental shifts. If you hadn't noticed they'd done it to an extent though, Windows Phone 7 - different architecture, different OS, supports .NET code. Windows 8 is going to support ARM, and, suprise suprise, .NET apps will run just fine on it.

    12. Re:But I said all that years ago by johndfalk · · Score: 1

      ... and people here told me I was an idiot and didn't know what I was talking about and on and on and on. Good to know, at least, I'm not the only one.

      But I do see .NET for what it could have been -- the application programming API for the migration to the next Windows OS which isn't Win32/64 compatible. Microsoft still doesn't have the balls to shift to a brand new OS the way Apple did. But they should have done that a long, long time ago.

      That's because you are an idiot....... Along with everyone who didn't want to do any research, as @Kensai7 has already said ars has been over this extensively. It is not going away. Maybe another link to the article will help people understand: http://arstechnica.com/microsoft/news/2011/06/windows-8-for-software-developers-the-longhorn-dream-reborn.ars

    13. Re:But I said all that years ago by Anonymous Coward · · Score: 0

      I saw it too. Real train wreck. According to netcraft.com, ISS is at its lowest point market share wise since about 1997. IIS people, handwriting is on the wall. Read it or be left behind.

  32. "recent unsettling behavior at Microsoft?" by The+Moof · · Score: 1
    What recent unsettling behavior at MS concerning .NET? All I've heard about is Microsoft ditching Silverlight for HTML5, nothing about .NET being dropped as a whole. Even when the article tries to allude to it, they still only talk about Silverlight.

    One other thing....

    .NET has always been a second class Windows citizen unable to make direct use of the Windows APIs

    Really?

    1. Re:"recent unsettling behavior at Microsoft?" by DragonWriter · · Score: 1

      What recent unsettling behavior at MS concerning .NET? All I've heard about is Microsoft ditching Silverlight for HTML5

      And even that seems to be overblown over a Windows 8 demo that focussed on the fact that Win8 supports HTML5-based desktop apps, rather than anything concrete. In fact, given the release of Visual Studio Light Switch, I'd say Microsoft is doubling down on Silverlight for line-of-business app development.

    2. Re:"recent unsettling behavior at Microsoft?" by Anonymous Coward · · Score: 0

      LightSwitch and Silverlight are DevDiv projects.

      Win8 and IE10 (HTML5) are WinDiv projects.

      And that's all you really need to know about this to figure out which way the wind is blowing.

  33. I actually like it by grasshoppa · · Score: 1

    I'm not a programmer by trade, but for the quick and dirty little apps that makes people's lives easier, I liked .NET. I could have a single use utility coded up in an afternoon that would save hours off of a day, from highly paid employees.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
    1. Re:I actually like it by Excelcia · · Score: 2

      Delphi, C++ Builder, and the free cousin Lazarus are great tools for this. Lazarus is making some great cross-platform strides too. As a bonus, when you're done, you have real code. :)

    2. Re:I actually like it by grasshoppa · · Score: 1

      I have real code when I'm done with my own little projects too. Real as in, it solves the real problems I set out to solve with minimal fuss.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    3. Re:I actually like it by BasharTeg · · Score: 1

      Are you serious? We abandoned C++ Builder for Visual Studio and C# .NET and every other developer meeting we're praising the flying spaghetti monster that we did. The massive reduction in defects and the massive improvement in productivity were huge for our team. C++ Builder is great for breaking compatibility with every release (we owned literally every version up to XE), the IDE and/or compiler crashing at random intervals or producing broken code that itself crashes at random intervals. Plus you're serious about real code when you're talking about writing software that's based on the VCL?

      Oh and by the way, a base class library that requires you to *new* every BCL object but doesn't have garbage collection, simply begs for access violations and memory leaks. Simply idiotic. You couldn't pay us to switch back.

      As a bonus, we can compile our .NET binaries to native code with one drop down box selection, rather than code that pushes all of our data through a Delphi interface and back and beats the hell out of a shitty heap implementation. At least they switched to a 3rd party C++ STL implementation rather than their own buggy garbage.

  34. Re:What?! On the contrary: .NET is becoming releva by NJRoadfan · · Score: 1

    Used to be. Even supported Cocoa libraries, but nobody used it.

  35. Just a bigger and better framework by cdrguru · · Score: 4, Insightful

    What MFC was all about was hiding the nasty parts of writing applications for Windows inside of a framework that was supposed to make everything nice and orthogonal. For the most part, it failed in this task because you had to understand the underlying SDK-level API in order to make effective use of MFC.

    ActiveX was the next round of this and ATL was again supposed to hide things from the developer. It didn't do this, although it did make COM much simpler for a lot of the world. And Microsoft seemed to want to make COM into the "new" API for Windows without having it support any of the nasty parts.

    C# and VB.NET were the mostly the next round of this with COM as the primary path to getting anything done at all. If you like COM (or are forced into it), then C# and VB.NET make a lot of sense because now COM isn't some add-on to C or a template library that is 90% implemented - it is 100% there. But again, if you don't understand how Windows is doing things for you through the COM API functionality you will never understand why things are working the way they are.

    Yes, they added an entirely new GUI definition package and a whole lot of things as new COM interfaces to things that didn't have them before. The idea was clearly to make it possible to write applications completely in the COM world without ever having to touch the "native" API. And for the most part this succeeded because finally enough effort was put into the framework that a large number of application developers could get along with only the interfaces supplied.

    The problem with building an application framework ontop of a native API is that you can easily find yourself with a never-ending task if the native API keeps growing and changing, which it certainly has. Microsoft doesn't do well with never-ending tasks - priorities shift and where there were once hundreds of people working on something there might only be a few later on. Again, we have the MFC dilemma where you can write 90% of the application with MFC but that last 10% has to be done by someone familiar with both MFC and the native API. C# and VB.NET are mostly still better than that, but when you fall into a hole in the framework it takes someone familiar with three or four API levels, not just two as it was before.

    Is the idea of a processor-independent CLR a good one? Maybe. If the idea of Windows on multiple processor families (like MIPS and PPC, for example) ever amounted to anything it would be very useful. With 99.9999 of the hardware out there being x86 and x64 (x86 compatible) there is little point to it today. Those directions are very difficult to see and I suspect Microsoft was committed to the CLR approach long before the decision was made to abandon MIPS and PPC, as well as nearly every other hardware architecture other than x86/x64. This might change again in the future, but without huge memory and processor availability it is unlikely that much cross-platform application compatibility will really exist. It makes no sense to have a cross-platform application that relies on so much memory that it won't run on handheld devices when the choices are x86 desktops and other handheld devices only. The future of a non-x86 compatible desktop at this point is very much in question, probably to the point of it taking another 10 or 20 years before there is a real change there.

    Back in the 1970s IBM mainframe customers pretty much made certain that nothing that wasn't compatible with the 370 instruction set would sell, and we are living with that legacy today, still, 30+ years later. Somewhere around 1995 or so it was pretty plain that the market for non-x86 compatible hardware in the PC world was limited and perhaps non-existant. Alpha was still produced and Windows NT came out with MIPS, Alpha and PPC support. But the number of real applications that were ever ported to non-x86 platforms was exceedingly small. Not saying it couldn't possibly happen, but at this point the need to break away from x86/x64 is vanishingly small and betting

    1. Re:Just a bigger and better framework by pcause · · Score: 4, Informative

      The key is that Microsoft is porting Windows to ARM. if you built you app with .Net and MS doesn't screw things up you should have an app that works on the ARM version of Windows 8. If that happens, then for MS and developers the entire .Net experience has been a HUGE win. MS will have a Win 8 ARM with a huge supply of apps and developers and developers will have access to the tablet market without having to do much new.

    2. Re:Just a bigger and better framework by Anonymous Coward · · Score: 0

      Windows 8 will run on ARM processors, so it will once again run on a non-x86 platform.

    3. Re:Just a bigger and better framework by aztracker1 · · Score: 1

      Actually MS has been demoing Windows 8 on ARM, and would predict that a lot f the higher layers of the UI utilize .Net for application logic.

      --
      Michael J. Ryan - tracker1.info
    4. Re:Just a bigger and better framework by jeti · · Score: 1

      The majority of hardware out there is now based on ARM. Think about it.

    5. Re:Just a bigger and better framework by Anonymous Coward · · Score: 0

      The key is that Microsoft is porting Windows to ARM. if you built your app with .Net and MS doesn't screw things up (like they usually do), you should have an app that works on the ARM version of Windows 8. If that happens, then for MS and developers the entire .Net experience has been a HUGE win (#winning). MS will have a Win 8 ARM with a huge supply of apps and developers, developers, developers will have access to the tablet market without having to do much new.

      Fixed for you ;) Microsoft themselves know they can't compete which is why they've been persuing patent revenue from Android distributors.

    6. Re:Just a bigger and better framework by Anonymous Coward · · Score: 0

      Microsoft (and Intel and HP) went all-in for the Itanium architecture and it simply did not pan out. The .NET system would have been a great boon to Itanium.

      More interesting is the question of why Microsoft would go with Itanium but not any of the other CPU architectures. Either Bill Gates simply believed what Intel said, or the two companies are financially linked even more closely than the rest of us know.

    7. Re:Just a bigger and better framework by durdur · · Score: 1

      > Not saying it couldn't possibly happen, but at this point the need to break away from x86/x64 is vanishingly small

      This was true a few years ago. It is not true any more, now that so much is being done on portable devices.

    8. Re:Just a bigger and better framework by Anonymous Coward · · Score: 0

      ... provided that MS produces a CLR on ARM Windows 8 that is compatible with prior CLRs on other platforms. .NET progression through versions has demonstrated deprecation of classes that have forced me to do rewrites whenever my user decides to just install .NET 4 on a new machine and try and run my .NET 2 app.

      The CLR is an excellent idea, if only there was absolute consistency. It would have been great if Windows CE/Phone 7 had fully-fledged, equivalent CLRs, but they haven't. Instead the target has changed *within* the same generation of OS (Windows 7) that has caused me to do more checking and refactoring than if I'd just targeted the underlying OS instead.

      Microsoft have been trying to create this degree of abstraction through multiple generations of technology and still not achieved it; no shame on them... it's a hard problem.

      In the end, though, I want to write code once and deploy it to desktops, laptops, mainframes, embedded, phones, STBs, POS systems without a recompile. Ironically, if google felt inclined to develop a wrapper around the Android SDK that I could use to deploy apps to linux, we'd be there (without ever intending it in the first place). In the end, though, I guess that holy grail is the web browser and HTML5.

    9. Re:Just a bigger and better framework by svick · · Score: 1

      The point of the CLR (or rather the intermediate language, IL) is not just cross-platform compatibility (which actually does work, thanks to Mono).

      It's also cross-language compatibility. Code written in C#, VB.NET, F# or IronPython can easily work together, without using header files or redeclaring structs.

      Another point is safety: You can run other code in "partial trust". That other code will be able to do only what you explicitly allow. I don't think you can do something like that in unmanaged environment, especially in the presence of pointers (when you can access any address in the process' memory, you can do anything the process can).

    10. Re:Just a bigger and better framework by svick · · Score: 1

      Could you be more specific? What classes are no longer usable in .Net 4 that forced you to rewrite your apps?

  36. What happens? by FranTaylor · · Score: 4, Insightful

    What happens when your vendor decides to move on, just like they have done many times before? Your application is now a ticking time bomb, set to explode at the support cutoff date.

    Hello did you learn the lesson from the mainframe era? Don't code to vendor specific APIs. Stay platform-neutral and you give yourself a much wider range of platforms for your application. It gives you much more leverage in your hardware purchasing, if you are free to choose any platform.

    The folks in the trucking industry figured this stuff out a long time ago. It is shocking to me to see people, today, intentionally choosing vendor lock-in.

    1. Re:What happens? by aztracker1 · · Score: 4, Insightful

      Sheesh, what a FUD trip this is.. there are non-MS implementations of .Net that are open-source and support cross platform migration as easily as any other managed runtime. As to TFS regarding not being able to access the system API, the author doesn't know WTF they are talking about. The ability to interact with system libraries is far easier in.Net than any other managed platform, even in a platform agnostic way.

      --
      Michael J. Ryan - tracker1.info
    2. Re:What happens? by Anonymous Coward · · Score: 1

      What happens when your vendor decides to move on, just like they have done many times before? Your application is now a ticking time bomb, set to explode at the support cutoff date.

      Hello did you learn the lesson from the mainframe era? Don't code to vendor specific APIs. Stay platform-neutral and you give yourself a much wider range of platforms for your application. It gives you much more leverage in your hardware purchasing, if you are free to choose any platform.

      The folks in the trucking industry figured this stuff out a long time ago. It is shocking to me to see people, today, intentionally choosing vendor lock-in.

      What kind of software do you ship, and does it have any users?

      If your code doesn't use the native APIs on at least one of {Windows, Mac OS, iOS, Android, BlackBerry OS}, its potential user base is microscopic compared to a program that does. Those of us who have to produce something people will find useful do not have the luxury of putting our ideology above the needs of users.

      Stay platform-neutral and you give yourself a much wider range of platforms for your application

      Having a much wider range of platforms for your application is pointless when all of those platforms have no users. You can't write an application that doesn't suck without using a platform specific API on a platform with users.

    3. Re:What happens? by bhcompy · · Score: 2

      It gets emulated, just like everything else. Emulated PICK, emulated AS400, etc. Code doesn't stop working because support is gone or the OS manufacturer went out of business. I have customers that run Win2k server VMs for particular software. Optimal? No, but platform independence just means more problems on the design side. The average business app designer doesn't have the time or the resources to ensure that his/her program is compatible/compilable in OSs that they don't even use or haven't been invented.

      Specific APIs mean better performance within that environment. There is a reason OpenGL was ditched by everyone in favor of D3d

    4. Re:What happens? by Anonymous Coward · · Score: 0

      Um, wrong metaphor.

      With a mainframe you can not only still compile you're circa 1965 code, but you can still run your circa 1965 binaries (in case you lost the code).

    5. Re:What happens? by dcray2000 · · Score: 1

      I'm afraid you are vendor or author locked no matter what you do. In the event you want to go a straight C++ route then you'll have to be everything to everyone, and you'll be compiling like it's Gentoo95.

    6. Re:What happens? by tftp · · Score: 1

      You can't write an application that doesn't suck without using a platform specific API on a platform with users.

      Here is an example. Some years ago I was developing in Qt on Windows and Linux. And one thing nearly drove me to madness. On Linux you can't save positions of your windows! This is because they are determined by the WM, which in turn uses a theme to find out the size of decorations. This creates an offset, and your windows drift when they are restored. I knew that this can be done, since XMMS does that just fine; but Qt, at all its awesome cross-platformeness, fell flat on its face there with a bug. The documentation on Qt actually talked about this issue and "suggested" solutions that Qt itself hasn't implemented. In the end I wrote some *extremely* platform-specific (even WM-specific) code to fix something that "just worked" on Windows. It cost me quite a number of hours digging into WM details that I had no interest in.

    7. Re:What happens? by gweihir · · Score: 1

      Indeed. It used to be that professional-level buying required the availability of a second source for everything commercial (closed source), and that does include the OS and compiler.

      Vendor lock-in is not necessary stupid, after all quite a few people get bribed directly or indirectly by MS, an art they have down to a high level of excellence. But it is hugely egoistic, hugely unethical, borderline criminal and a massive disservice to your employer.

      In fact, I believe it should qualify as gross negligence or outright maliciousness as it violates basic management best practices and should make those doing it personally and criminally liable.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:What happens? by Anonymous Coward · · Score: 0

      That's the same shit losers who coded in Delphi said too and now there's no cross platform nor 64it implementation and all their code is a waste.

    9. Re:What happens? by Anonymous Coward · · Score: 0

      What language are you suggesting or recommending?

      Personally, to avoid those nasty api's I write all software in assembler and a version for each architecture.

    10. Re:What happens? by bmo · · Score: 1, Troll

      >Sheesh, what a FUD trip this is.. there are non-MS implementations of .Net that are open-source and support cross platform

      But nobody ever uses them, because they are all subsets of Microsoft's .NET framework.

      You can't simply take source that uses .NET and have it work on mono. It just doesn't work that way. Mono is laughable.

      --
      BMO

    11. Re:What happens? by codepunk · · Score: 1

      You stand corrected coward.

      http://lazarus.freepascal.org/

      That is about as cross platform (delphi/pascal) as it gets.

      --


      Got Code?
    12. Re:What happens? by Tablizer · · Score: 1

      Including compatible GUI libraries?

    13. Re:What happens? by SplashMyBandit · · Score: 4, Insightful

      Yes, there are alternatives for the language implementation, but check the libraries out. With .NET you are locked into the libraries (unless you can afford to re-write your app in exotic [for Windows] Gnome technologies). Actually I found Java's JNA easier than .NET in working with system libraries, no matter what platform. Shame you don't know about it.

    14. Re:What happens? by Barryke · · Score: 1

      You might like Delphi XE2 and FireMonkey.

      --
      Hivemind harvest in progress..
    15. Re:What happens? by jawahar · · Score: 1

      Java = Platform agonist
      .Net = Programming language agonist
      JavaScript = Platform + Programming language agonist

    16. Re:What happens? by Anonymous Coward · · Score: 0

      Hahaha... cross-platform .Net..... hahaha..... Mono...... hahahahaha

      enuff said.

    17. Re:What happens? by aztracker1 · · Score: 1

      Well, Pinta is pretty impressive, and Tomboy's popularity spawned a huge fud-driven effort to create a non-mono version. I worked on a kiosk system using mono + castle-activerecord + firebirdsql + gtkmozembed for the UI... worked really nicely, running on an AMD embedded x86 platform, I forget the specifics, but it worked really well for our usage.

      --
      Michael J. Ryan - tracker1.info
    18. Re:What happens? by aztracker1 · · Score: 1

      I'm quite familiar with the PITA that JNA is thank you... P/Invoke calls in .Net are much more straight forward imho, and the are gen tools similar to JNA if you need to expose more of an underlying api.

      --
      Michael J. Ryan - tracker1.info
    19. Re:What happens? by aztracker1 · · Score: 1

      Pinta seems to run fine on my mac, and in linux... *shrug*

      --
      Michael J. Ryan - tracker1.info
    20. Re:What happens? by bored · · Score: 1

      In fact, I believe it should qualify as gross negligence or outright maliciousness as it violates basic management best practices and should make those doing it personally and criminally liable.

      Chuckle, I'm there with you, and a lot of the manufacturing industry just woke up to the fact that the Toyota just in time models blow up spectacularly. Of course that doesn't solve the problems everywhere in the system, because every single MBA stamped out in the last 20 years has been taught that stocking parts, and having multiple suppliers is a death blow to efficiency.

    21. Re:What happens? by Anonymous Coward · · Score: 0

      heck, what has mainframe to do with it? "Learn anything from mainframe era..."? Every COBOL application running on a mainframe still have direct support from IBM. Even the newest CICS release can deal with COBOL I apps.

      Now, I would use this example in the opposite way: IBM has created a platform a long time ago and keeps supporting it. Mainframe has Java now, but COBOL is still the platform of choice to write business apps over z/OS. MS, in my opinion, will be doing the same thing with .Net. Backwards compatibility is a great issue with Windows platforms, but I hope this change in the near future.

    22. Re:What happens? by gweihir · · Score: 1

      Well, yes. But that happens when engineering decisions are made by MBAs without an understanding of what they decide about. If you cut costs enough, eventually it breaks, often spectacularly. Any good engineer understands that. Any good manager understands that these decisions have to be made by engineers in the final consequence as they do not understand the subject matter. However as the usual command-structure is not made up to support this, the only way I see is to criminalize managers that make engineering decisions, as the one thing they can understand here is that they are not qualified. After all, really traditional engineering (e.g. civil engineering, cars are still a bit new), you need an engineering sign-off for for any design. And if the design breaks and kills people, the law will come after whoever signed-off on it, hence no sane engineer will sign-off on stuff that is not consistent with the rules of the engineering art.

      A good example where this starts to get into IT as well is HIPPA. Here, MBA stupidity will land the MBA in question in prison and liable for the damage. And that is exactly as it should be.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  37. Re:What?! On the contrary: .NET is becoming releva by NJRoadfan · · Score: 1

    Wasn't it supposed to be a first-class citizen in Windows Vista? Like one of the "pillars of Longhorn"?

  38. I agree by Anonymous Coward · · Score: 0

    I agree. Most C++ programmers aren't that good at C++ and should be using something like C# especially, as the parent implies, when writing business applications. Most programmers are not writing high performance applications and they don't need the power (and problems) associated with C++.

    Microsoft is simply lost. First Java, Python, et. al. take over the server side. MS is okay with that because the real power is the desktop. Then the iPad comes along and kicks their money maker out from under them. For the longest time MS said that tablets were any good and, lo, Apple makes a good table!

    MS was never good at one thing, it just that the things they did worked together. Now they're big attacked on several fronts and they don't know what to do.

  39. Stop trolling the end of .NET by MobyDisk · · Score: 2, Insightful

    The i-programmer.info site has been trolling several articles about the end of .NET. Wake me when they have something other than speculation.

    with the systems guys building Windows preferring to stick with C++ the outcome was inevitable.

    .NET is not a systems language. It never will be. Neither is Perl, Ruby, Python, Java, or HTML5. This does not mean those languages are mistakes or that they are going away.

    .NET has always been a second class Windows citizen unable to make direct use of the Windows APIs — especially the latest.

    Actually, the opposite is true. Microsoft has been adding new functionality to Windows that is only available to .NET, not to C++ code. WPF is the biggest example of this. They are actually deprecating Windows APIs with each new release of the OS.

    The author does not seem to realize that that Microsoft is working on a C# 5.0, and that much of Microsoft's new development is in .NET: Office, Visual Studio, and Sharepoint. All of this trolling stemmed from one demo where they showed some mobile HTML5 apps, and someone just leapt to the conclusion that .NET was dying.

    1. Re:Stop trolling the end of .NET by Anonymous Coward · · Score: 0

      The author should have waited for Netcraft to confirm that .NET was dying

    2. Re:Stop trolling the end of .NET by Anonymous Coward · · Score: 0

      They are NOT depreciating the Win32 API, infact .Net libraries are mear wrappers around COM and Win32 counterparts.

      Without COM and Win32 .Net libraries would NOT exist.

      There is a TONNE of embedded and canned box industry shop floor applications written in Flat C and Win32.

      If they kill Win32 and flat C support, an THE ENTIRE MANUACTURING INDUSTRY will jump back to QNX or Linux as a lot left QNX in favour of presumably cheaper Win32 back in the 2000s.

      They will simply jump back to Linux this time if they have to perform a major rewrite.

    3. Re:Stop trolling the end of .NET by discord5 · · Score: 1

      .NET is not a systems language. It never will be. Neither is Perl, Ruby, Python, Java, or HTML5.

      Well, shit. There go my hopes of writing an OS in HTML5 and javascript. Grmbl, ruining all my fun...

    4. Re:Stop trolling the end of .NET by MobyDisk · · Score: 1

      .Net libraries are mear wrappers around COM and Win32 counterparts.

      Not as much as you might think. Some examples are System.Xml which is not a wrapper of MSXML, the Managed portions of System.Security.Cryptography, and WPF, which is written in entirely managed code. Also note that GDI+ was written in C++ and cannot be called from C code.

    5. Re:Stop trolling the end of .NET by Anonymous Coward · · Score: 0

      WPF is not good example. Ask VS 2010 team

  40. Could hardly read; also, see Joel Spolsky's piece by KerrickStaley · · Score: 1

    Please, use commas when you write; the summary was extremely difficult to read. Also, Joel Spolsky has a great blog entry on Microsoft's tendency to vacillate between different frameworks (the article, though a decade old, is still relevant): http://www.joelonsoftware.com/articles/fog0000000339.html

  41. Back to perl we go by cod3r_ · · Score: 1

    what what

    1. Re:Back to perl we go by DeeEff · · Score: 1

      PERL!? Garbage!

      The only language we can use to protect the business market is COBOL!

      Now get off my lawn you insensitive clod!

  42. depends on your point of view by zman58 · · Score: 1

    If you want the typical bloated, slow, resource sucking, application with all the bells and whistles that runs only on Windows platform, then go for it. Pony up the cash, saddle up and ride away. If you can convince customers to pay good money for the ride, then more power to you.
    On the other hand, if you want to be able to leverage code artifacts to the fullest and reuse solutions for other, more cost efficient platforms, say Linux, then your .NET application is totally stuck in the muck. Don't even think about moving it, you will have all kinds of IP problems, and will be unable to make any kind of efficient move to another platform anyway. Was .NET more about locking business into the myopic servitude of a Windows-only world? It succeeded at that. ...but egads! its no longer a Windows-only world.

  43. Ian Elliot is a much bigger mistake than .NET by rpresser · · Score: 1

    Ian Elliot is a much bigger mistake than .NET ever will be.

  44. Tools for the job by djkitsch · · Score: 1

    Well, if you want to write an OS, a critical real-time system, or a high-performance scientific data analysis suite, then no, .NET is probably not for you (although .NET 4.0 and its parallel processing additions certainly improve matters there). But if you want to rapidly develop enterprise business applications (or indeed webapps - everyone here appears to have overlooked the massively popular ASP.NET), then .NET's pretty damn good.

    The strength isn't really in the idea of the CLR or whatever - that's an implementation detail. It's the huge framework of ready-made classes that accelerate development. Sure, there are plenty of PHP frameworks and so on, but with .NET, and C# in particular, you've got a massive library ready, tightly integration tested, and virtually guaranteed to run on anything from Windows XP up... oh, and I've rarely found a .NET app compiled for Windows which wouldn't run without modification under Mono.

    As I suggested in the subject line, it's a matter of tools for the job. I regularly do C#, Obj-C, C, JavaScript, Perl and the odd bit of PHP and Java, and C#'s my favourite for headache-free development. It's not perfect for *every* job, but for the ones where it works, it works very well indeed.

    --
    sig:- (wit >= sarcasm)
    1. Re:Tools for the job by pxpt · · Score: 1

      I had to hack together a computational module using C# that did some pretty intensive maths calculations and was pleasantly surprised when I discovered that the actual performance wasn't that bad at all. It was so good, in fact, that it stayed in C#.

  45. two problems with .Net that can't be fixed by Anonymous Coward · · Score: 0

    1) platform dependency on Windows, and by extension, Microsoft's development staff

    2) application code is trivially reverse-engineerable, in fact it could be argued in court that the source code is effectively being shipped with the code so the authors have made the app "shared source" just by the act of releasing the binaries (this is a problem with Java as well). Even if the courts reject that argument, well, we see how well the music industry has been able to protect their IP.

  46. professional programmer? by Anonymous Coward · · Score: 0

    This professional programmer should stick to programming; I couldn't even make it through his blog post.

    Someone buy him another box of commas. Please.

  47. I definitely agree by msobkow · · Score: 4, Insightful

    The C#/.Net world is very well suited to front-end applications in the business world. You wouldn't want to write a video game or OS tools with it, but for it's target market, it's very effective. I particularly like how clean the class libraries are compared to the old Win32 SDK APIs.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:I definitely agree by FredFredrickson · · Score: 4, Informative

      With vs .net 2010, and the XNA game studio, a lot of game devs are writing both windows and xbox games .. in C#. I think you might rethink that.

      --
      Belief? Hope? Preference?The Existential Vortex
    2. Re:I definitely agree by gweihir · · Score: 1

      Well, if you compare a pile of crap with a steaming pile of crap, of course the former looks good.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:I definitely agree by Anonymous Coward · · Score: 0

      But that niche is quickly being consumed by webapps. There seems to little need to design lightweight client apps.

    4. Re:I definitely agree by Anonymous Coward · · Score: 1

      Hey, maybe not for the next bethedsa game but for smaller ones it works great too!. Terraria was a big it, and while not as popular, the Dishwasher was one sick game. A lot of games use .net for their tooling too.

    5. Re:I definitely agree by gabebear · · Score: 1

      Language speed doesn't matter as much in some games ( e.g. http://media.tojicode.com/q3bsp/ ), but you could easily be shooting yourself in the foot if you start with performance penalties imposed by the language and aren't getting any extra benefits. .Net doesn't bring much to the table.

    6. Re:I definitely agree by Anonymous Coward · · Score: 0

      The C#/.Net world is very well suited to front-end applications in the business world. You wouldn't want to write a video game or OS tools with it, but for it's target market, it's very effective. I particularly like how clean the class libraries are compared to the old Win32 SDK APIs.

      Excuse me, but I write OS Tools with C# and VB.NET all the time and do very well with it.

    7. Re:I definitely agree by Anonymous Coward · · Score: 0

      I definitely agree with FredFredrickson.
      You really want to re-think that.

      http://www.korvinkorax.com/2011/04/quake2-bsp-rendering-using-microsoft-xna-4/

      Its Ill-advised to make assumptions about technology you don't understand fully.

  48. My favorite analysis of C# by npsimons · · Score: 1

    I know it's not .NET in particular, but it certainly applies: What Languages Fix. The problem that C# was invented to fix? Java is controlled by Sun. Same goes for .NET vs. JVM.

  49. Re:What?! On the contrary: .NET is becoming releva by icebraining · · Score: 1

    Sure. That and WinFS.

  50. re: Language bigotry by transporter_ii · · Score: 1

    If C# compiled and ran 20% faster than VB, I could understand the animosity, but C# and VB both compile to the same intermediate language and offer pretty much identical performance. I've been working with both and in some instances, the only difference between the two is putting a ";" at the end of the line or typing out "Next" instead of "}."

    For all the MS bashing, this is one thing they did right with ASP.NET. Let people choose the language they want to work in, but produce the same results in the end.

    This is Slash "Freedom of Choice" Dot, but we must kill off languages we don't like...because in VB you have to type a few more words out.

    Really, if it wasn't for VB, you would have less people to feel superior to. Why would you want the final nail?

    --
    Doctors destroy health, lawyers destroy justice, universities destroy knowledge, religion destroys spirituality
  51. It failed at cross-platform by msobkow · · Score: 1

    Mono tried to provide an alternative platform environment, but as far as I know even that was limited to Intel/AMD architecture Linux boxen. Without support from mainframes, AS400, Macintosh, portable devices, etc. it never even approached being a "cross platform" tool.

    And the Mono project was an abject failure, lacking even fundamental communications security implementations that are critical for securing business applications communication.

    --
    I do not fail; I succeed at finding out what does not work.
  52. Systems Languages vs Managed/Application Languages by luis_a_espinal · · Score: 1

    The recent unsettling behavior at Microsoft concerning .NET makes it a good time to re-evaluate what the technology is all about. It may have been good technology but with the systems guys building Windows preferring to stick with C++ the outcome was inevitable. Because they failed to support its way of doing things .NET has always been a second class Windows citizen unable to make direct use of the Windows APIs — especially the latest. .NET started out as Microsoft's best challenge to Java but now you have to ask what has the excursion into managed code brought the Microsoft programmer and indeed what good has it done Microsoft? From where we are now it begins to look very much like an unnecessary forced detour and Windows programmers are going to be living with the mess for years to come.

    There are two, possibly unrelated factors to take into account here: 1) appropriate support for .NET, and 2) the value of managed code.

    I would argue that the last thing one wants to do, in general, is to NOT use managed code for application development, in particular application code that is subject to continuous modifications and deployments.

    That Windows systems developers prefer to stick to C++ (and actually C as you go deeper), that should not come as a surprise. I would be a surprise if anyone half-literate in software development would think otherwise. I would be more surprised if anyone would expect anyone but a dumb-wit to do low-level systems development with managed code.

    So, I don't understand why an understandable preference to do systems development with a systems language (which just so happens to be C or C++, but which could have been Ada or Pascal) would have a detrimental impact on using a managed code platform and stack for the general case of application-level development.

    Me no get it. Does not compute.

    Moreover, it seems that the author of this piece is conflating issues here. This is what the author seems to be going about:

    1. Fact: MS seems to be moving towards JavaScript and HTML5 as the main development stack for application development instead of .NET
    2. Fact: System-level Windows programmers use a systems level programming language (C++) for systems-level development.
    -----------
    Ergo: Oh shit, the later caused the former!(10+1)

    Correlation does not mean causation. And in fact, there isn't even a correlation at all. Whether MS drops .NET in favor of HTM5 and JavaScript does not mean anything about MS venturing into managed code land. And I would be hard-pressed to imagine that MS does not have any plans for the significant investment it has made in the .NET platform.

    The funniest thing of all is that the author seems to miss this important fact: JavaScript is managed code. So in essence, MS is simply moving from one managed code stack "a" to another managed code stack "b". That's all. Fundamentally, it is just that, a change of managed stacks, a reflection (or adjustment) to the changes, to the paradigm shifts in application delivery. Nothing more.

    How a preference for C++ for Windows systems level programming is even in the picture here, it beats the hell out of me.

  53. What .NET really did by Dcnjoe60 · · Score: 1

    What .NET really did was it allowed IT shops/departments to have all of the advantages/disadvantages of Java but still remain a 100% Microsoft shop. Yes .NET improved upon some Java things, but ultimately, it wasn't enough of an improvement to kill Java. It didn't kill Java, but it did kill Visual Basic.

    As for the notion that .NET was supposed to replace C++ for Windows development, that was naive. As long as major applications were written in C++ and needed to be maintained in C++, C++ is going to still be what Windows developers will use. Just like COBOL was supposed to be dead a long time ago, and yet COBOL programmers are still in demand for large mainframe systems.

    1. Re:What .NET really did by pxpt · · Score: 1

      .NET hasn't killed Java - Oracle is the one to do that!

    2. Re:What .NET really did by Svartalf · · Score: 1

      Uh... You could've had all the advantages of Java, still remain a 100% Microsoft shop (If everything you're running on is Windows/Microsoft...), and KEEP Java- and had an exit strategy if the Windows stuff didn't work out as well as it could. With .Net, you're mostly stuck with Microsoft. Mono's a nice framework, but it's not the same thing as .Net and it shows in varying ways. If you constrain yourself to Mono, it'd work out pretty well, but you'd limit yourself and you'd invite being left high and dry at the wrong time if Microsoft takes a fancy to suing people over infringing stuff that's clearly within the Mono ecosystem.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    3. Re:What .NET really did by Svartalf · · Score: 1

      No kidding. Sun couldn't even do that one- even though they tried through their lack of vision for what to do with it.

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
  54. balderdash and piffle by garlicbready · · Score: 1

    Well I write .Net code for a living, VB Mostly instead of C#
    I've also been into Linux for a long while (originally Mandrake, now Gentoo)

    if nothing else it can be used as a fast prototyping language and it's miles better than the old VB6
    our entire business is based on it websites / processing applications
    it works well and you can write code for it very quickly and easily
    and it's not a language but a platform (language + standard libs for common operations)

    In the old days it was all about squeezing as much as you could from the processor
    (I know this more than most, assembler on the Z80 / Spectrum, Atari 68000 etc)
    each language has it's place depending on the trade off between simplicity and performance
    I've always seen C as driver low level, C++ as mid OS GUI / 3D abstraction level
    and the likes of Java / PHP / .Net as upper layer for business logic

    But where it comes to actual applications or websites that sit on top of the OS not a part of the OS
    where business logic not performance counts
    where it's key to be able to change something quickly at the cost of a small performance hit
    (becuase you have a server with umpteen CPU's and massive memory in a rack, so performance comes secondary)
    you need a higher level language than C++ to do these things quickly / simply
    and I'm ashamed to say as a Linux geek I've not found anything that I could write cleaner or quicker code in than .Net
    I really have tried with java and netbeans, but I hate it's Enums and namespacing, I've even considered scalar
    netbeans also has this habbit of completley changing they're platform / libs layout (which sits on top of the java platform)

    if I want to write a simple line of text to a text file, I can do it in a single line
    System.IO.file.appendalltext(filepath, content)
    with C++ unless you count the STL there's no fixed standard list of libs to use for common tasks
    it can vary between platforms (less so with open source)
    so typically I end up opening a file handle creating an int to store it in, making sure my string is null terminated
    etc etc for somethinhg that should be a simple job
    having the language managed, and catching exceptions which mean something is an added bonus

    I know there are a lot of wrapper libs for this sort of thing like QT
    kdevelop has auto-completion but it's still not a patch on the ease of use of Studio / .Net's
    simply because of the differences in language design

    In an ideal world I'd like to write .Net VB apps that use QT as a GUI backend
    and that can run under windows or Linux via Qyoto and mono
    given that KDE's smoke has recently been split into seperate parts under Gentoo and that Qyoto has been updated to 4.7
    I'm hoping this might finally be possible
    Linux is missing a lot of GUI based apps for configuration front ends vs windows
    and with .Net you could create these very easily

    But at the end of the day it's all about personal preference
    some people can probably write code in C++ more quickly than .Net depending on what they're more familar with
    also we don't have the same patent issues over here in the UK as the USA (for now at least)

    1. Re:balderdash and piffle by iONiUM · · Score: 1

      VB.NET? I'm honestly curious why you use that language. C# is far more powerful, and much easier to use for anyone with a C programming background.

      I'm not trolling or anything, I just honestly never understood why anyone using .NET would use VB.NET language over C#, except for in the case where VB6 was all they knew, and VB.NET was "close enough" to it..

    2. Re:balderdash and piffle by garlicbready · · Score: 1

      From a business point of view the director of the company
      (who's also the same guy that started the company)
      is a techie and wrote most of the initial apps the business use (SMS Processing for example) in VB6
      so we're very VB orientated (we've only just started moving from .Net2.0 to 4.0, and that's because I've pushed for it by setting up a TFS Server to replace sourcesafe)

      From a personal point of view most of the first languages I used were basic on a Z80, anyone remember STOS or AMOS or GFI?
      I have written some C and C++ now and again (a linux DVBS USB satalite tuner card driver, and a plugin for evms before it was depreciated), plus bits of a million other languages such as PHP and Java
      But I always found VB6 better to understand during the early days when I was trying to understand object orientation (the auto complete made it a lot easier to just bash something together)

      But I've always felt VB was better at the business logic / those users that had written a lot of VB6 in the past
      while C# felt like it was more for those coming across from writing a lot of C++ (I only ever wrote small bits of it)
      I could move to C# but it would just feel like I'm writing backwards (because of the variable decelerations)
      so it's just more of a personal preference thing in the style of it, I can just glance through VB code and understand most of it in a few seconds, with C# it just takes me a bit longer to get my head around the differences because I'm not used to it

      with the newer frameworks (4.0) I don't think there's a lot of differences left between the two anyway

  55. Why compare with c++? by Alkonaut · · Score: 1

    It may have been good technology but with the systems guys building Windows preferring to stick with C++ the outcome was inevitable.

    Why should the fact that some microsoft developers prefer C++ for the job mean that C#/.NET is unsuitable for other tasks? If I had to choose ONE platform for all apps, it would definitely be .NET over unmanaged development. I.e., I'd rather write a webapp, an office plugin and a mobile app in C#, than write all 3 in C++.

    Because they failed to support its way of doing things .NET has always been a second class Windows citizen unable to make direct use of the Windows APIs — especially the latest.

    Ask 100 .NET developers if they feel that .NET is a second class citizen. They will have no Idea what you are talking about of course, as 90 of them are doing ASP.NET applications (which is a joy compared to classic asp). The remaining 10 are doing other things such as office plugins, WinPhone7-apps etc. etc. But if you ask 1000 .NET developers, you may find one that actually uses .NET in the sense that might expose it as being a second class citizen in windows. I write heavy desktop applications in C#, and sometimes feel that frustration, but I can imagine the envy goes both ways. I wouldn't want to write anything db related without LINQ for example.

    1. Re:Why compare with c++? by flimflammer · · Score: 1

      I think this whole article was just one big troll. And the FUD being spread around in the comments just adds icing on the cake.

  56. Purpose of .NET by Sloppy · · Score: 4, Insightful

    I thought the purpose of .NET was to lure developers away from writing portable apps in Java. As long as the apps stay unportable, those developers' customers remain stuck with Windows.

    (Whether Java was a credible threat at the time (pre-Android) we'll never know, but what's done is done and .NET happened.)

    Assuming that's what the purpose was, it pretty much did its job for the better part of a decade and can hardly be called a mistake. Let's see you try to prevent the spread of technology at the beginning of the 21st century, and then we'll talk about who makes "mistakes" and who is the meta-luddite genius.

    "Gentlemen," [All raise their drink glasses] "To Evil!" [Wild cheering]

    --
    As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    1. Re:Purpose of .NET by Anonymous Coward · · Score: 0

      All of you anti microsoft guys are so funny! =) Somewhere around 90% (total made up number, but I'm certain it's pretty damn close) of the software economy is tied to business applications. And now, probably about 70% (again made up number which can't be far from accurate) of that software is written in .NET. You guys live in a fantasy world and I wish I could join you out there. =( This real life stuff sucks =(

    2. Re:Purpose of .NET by scorp1us · · Score: 1

      I believe you are right on. I watched all this play out just after got out of college as a C/C++ developer.

      Here's what I remember.
      C++ was dominating the land. MFC was lousy, but worked.
      Sun in an attempt to sell SPARC systems invents Java
      MS Embraces and extends Java, and loses in court
      MS invents .NET which is Java, but taken to Java's logical conclusion. Originally I applauded MS for this, the CLR was a fanastic idea.
      But I knew what they were doing... The C/C++ world was moving to POSIX compliance and MS could not have that because we would have source compatibility. Remember, Windows 98, ME, 2000 and were out and blue screens were still common. The 640K barrier still had implications for 98/ME. The internet was taking off and powered by Unix. By introducing .NET they pulled everyone off track.

      But In the mean time, scripting languages arose and got polished. Python in particular really advanced, and I learned it. Then this year, I had to learn C#. And it was a step back from Python. It was nice not having to worry about header files, -> vs . and memory management, C# and Python both delivered this, but C# seems unnecessarily complex.

      Meanwhile Qt advanced and as far as I am concerned is the only true cross-platform development kit. It's suffered from license issues but not anymore. And when you bring Qt into Python via PySide or PyQt, then you get a truly cross-platform 4th generation language.

      We could have done it without .NET It really hasn't added anything to computing. And me talking to the .NET heads at work are talking a different language, but we both mean the same thing. They definitely embraced and extended Java... While still keeping it single platform! Java is actually used on many platforms, but .NET? When was the last time you used Mono?

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    3. Re:Purpose of .NET by scorp1us · · Score: 1

      Addendum:

      Today I was thinking, as I read some Windows Scripting Host code Why do we still have multiple syntaxs by the same vendor? Ok, LISP gets it's own.
      But the following languages are all OOP or OOP-able, and all do the same thing:
      C++, Python, PHP, Perl, C#, Java, WSH, JavaScript

      Can we make a couple rules, like:
      We don't use $ to precede variables
      Members are '.'
      Scope is designated with '.'
      Blocks are indented
      statements are separated with new lines, unless you want multiple statements on one line, in which case you use ';'
      Characters are strings of length 1.

      And for the love of god, stop that C++0x stuff. Its a mess adding to mess. Making a bigger mess. Its humans worrying about implementation details. That should be the compiler's job. While it takes some level of implementation detail to get the computer to do what you want, the people programming it need to get stuff done. Then home for dinner. We should be working at the algebraic/calculus level and not worrying about how we add.

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    4. Re:Purpose of .NET by Anonymous Coward · · Score: 0

      Java has been a threat to MS since Sun sued them for adding proprietary stuff to their JVM to support extra features in J++
      MS abandoned their implementation of the JVM and started on .Not.
      Its probably only a matter of time now before Oracle sues MS for breaching their newly acquired Sun patents

    5. Re:Purpose of .NET by Anonymous Coward · · Score: 0

      Yes, stopping Java was really what it was all about, and giving newbie programmers their first real job after college. However, it lures programmers into making bad mistakes and writing crappy bloatware.

    6. Re:Purpose of .NET by Anonymous Coward · · Score: 0

      Be realistic. At the time .Net came out and now, 80%+ of computers out there run windows. .Net gave garbage collection and a platform for multilanguage programming. Those are the big wins I think. Before you coded in C++, everything was great. You coded in VB everything was great. But if you had one guy making a GUI in VB and another righting "system" code in C++ you had a mess. Same think ran much differently, had different libraries available etc. Now you have one IDE and can choose what language you feel like wrting in every day. I'm the only developer at my work and that is exactly what I do, mah feel like C# today so off I go.

      Sure .Net isn't platform independent, it would be great if it was, but did anyone seriously expect MS to produce a platform independent option? It still was a huge win for about 80% of developers that build business apps and such. The 20% of system developers either keep learning the new APIs every time a new one comes out or have moved on to other platforms (for example Linux).

    7. Re:Purpose of .NET by SplashMyBandit · · Score: 1

      That is exactly why .NET was created (as someone who has around for a long time in IT watching it all unfold over the years).

    8. Re:Purpose of .NET by Anonymous Coward · · Score: 0

      If that is the purpose, Sir, it was a BIG failure.

      You know, choosing a language (C#) with syntax and semanthic which basically overlaps with the language you are against (Java) for 95% isn't really building a barrier.

      I knew basics of Java and learned C# that way. After working 6 years in C# with a brief adventure back to my original language (C++) I had to went back to Java. Apart from wall-banging things like no auto-boxing and string comparison, I was productive in Java again in like 2 hours, reusing most if not all the experience I made in C# in what really counts.. like designing a good class architecture and so on. The biggest difficulties ? Using curly braces on the same line (which you can skip unless you care for style) and using lowercase letters for method names. Even the base class library is very similar.

      Beside, "luring" developers away from Java (made by a competitor) to .NET would not be EVIL but, well, market competition ?

      The definition of evil you use is quite, you know, biased towards your views.

    9. Re:Purpose of .NET by marcosdumay · · Score: 1

      "Can we make a couple rules, like:"

      No.

      Your rules are either completely arbitrary, or simply make entire languages not work.

      Also, C++0x have a very good reason to exist. The fact that you don't uderstand it doesn't make it useless.

    10. Re:Purpose of .NET by scorp1us · · Score: 1

      I understand the reason for it existing. I don't understand why we leave so much in the developer's hands. Developers are flawed. They make mistakes like everyone else. I'd much rather have the compiler handle the complexity identically every time rather than rely on a human to always implement correctly. That's what compilers are for.

      My rules might be arbitrary. But it is not that I want to stop other languages from working. I just want to eliminate language fragmentation. A lot of that is syntactic saccharin.

      "syntactic sugar causes cancer of the semicolon" - Alan Perlis

      http://en.wikipedia.org/wiki/Syntactic_sugar

      --
      Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
  57. Java / .Net / BASIC by JoeMerchant · · Score: 1

    Java / .Net / BASIC are all interpreted languages - BASIC was a great learning tool, when I was 12. I assume Java and .NET serve similar (and different) purposes today.

    Whenever I start a significant project, I ask myself: "Am I going to regret my choice of platform before this is over?" - if what you are doing doesn't need the ultimate in speed, power, and portability - then .NET may well be your best choice.

    Enough of what I do does require every last bit of speed, or portability between platforms, that I have stayed away from interpreted languages - and if you get familiar enough with C++, it's not really any easier to work with a "managed environment," not enough easier to justify keeping proficiency up in both languages at once.

  58. Re:What?! On the contrary: .NET is becoming releva by idontgno · · Score: 4, Funny

    I'm looking forward to the Year of the .Net Desktop.

    That, Strong AI, and flying cars.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
  59. Troll by Anonymous Coward · · Score: 0

    There is very little to compare with .NET & C# and Win32 & C++. There really is no comparison.

  60. Windows? by Jeremiah+Cornelius · · Score: 1, Funny

    Windows?

    What are these "windows" of which you speak, strange visitor?

    --
    "Flyin' in just a sweet place,
    Never been known to fail..."
    1. Re:Windows? by lucm · · Score: 1

      > Slashdot is a Microsoft shop now.

      Baghdad Bob, is that you?

      --
      lucm, indeed.
    2. Re:Windows? by carnivore302 · · Score: 1

      Ah! Let me explain: windows is an operating system meant to be the successor of MS-DOS. There are some that think windows will once be installed on more than a million pc's. While this is obviously bullshit (there aren't even that many pc's in the world, nor will there be any need for so much computing power), the people on wallstreet are very excited about this technology. But I see one drawback: to install the latest windows you need about a million floppy disks. Now who in earth is going to do that?

      --
      Please login to access my lawn
  61. Re:What?! On the contrary: .NET is becoming releva by Anonymous Coward · · Score: 0

    it'll never be so long as it's interpreted bytecode. first class means native binaries without a vm.

  62. Several mistakes... by gstrickler · · Score: 4, Insightful

    And the big one was thinking that a dominant OS vendor could/would create anything that was truly cross platform. From the beginning it was clear that .NET was a Windows first system, anyone else would be on their own. No matter how good the design and concept of .NET may be, while it's under MS control, it is fundamentally subjugated to keeping people on Windows. And while that may have sounded good to the executives at MS, it's a terrible way to address any threat they felt from Java. There is also the pressure from MS to have .NET support all the latest/greatest things in Windows, which is a backwards model. If they really wanted a sustainable and/or cross platform development/runtime, the Windows developers should bring their latest/greatest to .NET, if there are comparable capabilities on other platforms, then the .NET team might extend it in a way that supports portability. If not, but the Windows features are compelling enough, then developers would use them with the knowledge that such things are platform specific.

    In short, the .NET team being part of MS put them in the position of having to support two masters, and that's always a no win scenario. They needed to be a separate entity with separate decision making authority and separate accounting, even if MS owned the majority of that entity.

    --
    make imaginary.friends COUNT=100 VISIBLE=false
    1. Re:Several mistakes... by HarrySquatter · · Score: 1

      And while that may have sounded good to the executives at MS, it's a terrible way to address any threat they felt from Java.

      What threat from Java? C# and .NET was created to break away from Sun's stranglehold on Java's evolution.

    2. Re:Several mistakes... by Anonymous Coward · · Score: 0

      If your a Java Developer enjoy your new Oracle Overlord. As for me all of my programs work with Mono so am I cross platform not completely but for all OS'es that matter I am. So is it a fail? I am not sure if I can hit 99% of all desktop OS'es then I guess it must be one hell of a fail. Excuse me while I try to attempt to Port some of my applications to Java with a severe amount of dependencies on add-ons.

    3. Re:Several mistakes... by Anonymous Coward · · Score: 0

      Exactly what threat did Java end up giving them? Do you know anyone that dropped Windows because of all the great cross platform java apps that are out there? Cross platform only matters when the dominant platform isn't yours. I my mind at least MS has won so often because they target developers as first class users of their products. Basic/Visual Basic gave a level of productivity that wasn't available at the time for less knowledgeable developers to start out making useful programs right away. Windows developer conference, MSDN etc etc there just was a huge and long term investment in courting developers to make programs for their platform. Why would they throw that all away and make everyone's platform be able to use their tools? Its not being evil its just rational behaviour. If you don't like the MS platform and the features .Net provides code in something else, or code for another platform. Thats fine but if you like .Net than MS wants you making programs to keep their ecosystem strong. Seems like a reasonable trade for the investment they put into it. Perhaps in the hayday when Java was all the rage Sun Solaris could have done better if Java attracted developers to its platform.

    4. Re:Several mistakes... by Anonymous Coward · · Score: 0

      MS never had any intention of making .NET "cross-platform", other than running on potentially any Windows platform available. You see, back in the late 90's MS saw that Java was the greatest thing since sliced bread and would be great for writing apps -- if not for just a few deficiencies. So MS fixed those deficiencies to make it easier to write Windows apps in Java. However, Sun didn't want anybody to write Windows apps in Java, so they sued MS and made it so that MS had to find an alternative for writing Windows apps.

      So the whole point of .NET in the first place was to have a nice managed environment for writing Windows apps. Of course the language and the runtime are cross-platform, and MS got their specifications standardized by ECMA. In fact, MS published an open-source version of the Common Language Runtime that ran on FreeBSD.

      But, just as Java is a language (Java), a runtime (JVM), and a set of class libraries, .NET is a set of languages (C#, VB, F#, etc.), a runtime (CLR), and a set of class libraries (BCL). The .NET runtime and class libraries are not cross-platform, but who cares? They were never supposed to be.

      Don't forget, though, that desktop Windows is not the only platform that MS has for .NET; they have WinCE, Silverlight, video game consoles, embedded devices, and so on.

      dom

    5. Re:Several mistakes... by Anonymous Coward · · Score: 0

      Is it that you just don't like reading? You're saying that .NET isn't being all it can be because it has to serve the interests of Microsoft. First, name any business that doesn't create products that serve its primary revenue generator. Google engineers every bit of its software to support ad sales - even Android. Oracle seems to want to kill everything Sun created that that doesn't serve theirs.
      But despite that, the .net platform is open and running with MONO and Microsoft has given a lot of support to that effort. Silverlight has been ported to Moonlight with the help of Microsoft and Novell and runs on Linux (including Android), Windows and Mac (with multiple browsers in each). Currently, I can write an app in c#/Silverlight and compile it to run on almost every platform out there except iOS, and if I tweak and recompile in MonoTouch, I can run it there too.

      It's fun rhetoric, but when you really look, you can take your c# code and push it WELL off the Microsoft platform. Does it shine on Windows? Sure. Home field advantage applies to a lot of things. Does that mean it can't be fantastic elsewhere? Not remotely.

  63. Re:dat net by Z00L00K · · Score: 1

    The whole thing is just going dot nut.

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  64. RAD Studio XE2 by Anonymous Coward · · Score: 0

    It seems ontopic and news: the new Delphi XE2 also compiles for OSX and x64. It may not be much, but for the first time i am more optimistic about Delphi programming. Did not see this negative .NET article coming though, it seems solid and establieched to mex especially with Windows 8 and ARM platforms.

  65. You're focusing too much on one aspect of it. by ghjm · · Score: 1

    The Win32 API is, and always was, too hard to use. Simple operations often take a dozen function calls, with a lot of frictional code that just translates one kind of handle to another. Error checking every returned value is a real pain. You get used to it, in the same way you get used to living with a mildly abusive spouse.

    The .NET API is much easier to use. It is object-oriented with a good, well-thought-out conventions for the applications programmer to use. Borland Delphi was once popular precisely because the Delphi API (called the VCL) provided a full encapsulation of the native Win32 API but was much easier to use. This is not a coincidence: The improvement to the Microsoft APIs got easier right when Microsoft hired Anders Hejlsberg away from Borland. Or to put it another way, you no longer have to pay Borland a premium to get a good Anders Hejlsberg-designed API, because now you can get it straight from Microsoft. This is an uncomplicatedly good thing.

    Nearly unrelatedly, it was also decided to have .NET compile applications to a managed instruction set and execute them in a virtual machine. This design desicion was made at a time when x86 seemed threatened, x86-64 was a second-class citizen that Intel had sworn never to support, and the world thought we might someday all wind up running on Itanium or PowerPC or some other as-yet-unknown 64-bit instruction set resulting from an Intel purchase of AMD, or something. So it kind of made sense to give .NET applications the potential to maybe run OK on a non-x86 platform. As things turned out, it wasn't very helpful, but nobody could have known that at the time.

    So even if "managed code" turned out to be a lot of work for no purpose, the .NET Framework is still a much more usable API than raw-Win32, MFC, ATL, etc. ever were.

  66. It infected a popular Linux distro with mono by Culture20 · · Score: 1

    When Suse started using mono for its update service (forcing me to make a script to kill and restart the update service daily), I dumped Suse for my desktop OS. Congratulations, Microsoft. Your strategy worked. Now I use Ubuntu, but I'll probably switch to Debian if the UI debacle doesn't clear up soon.

  67. Re:What?! On the contrary: .NET is becoming releva by jhantin · · Score: 1

    "Longhorn" was a truly epic vision, apparently not within the capability of Microsoft's organization to deliver within any reasonable time frame. That may have made Vista as delivered ... an epic fail. (rimshot)

    I have to give them proper respect for what they did manage to do: stuff in the NT 6 kernel, a compositing window manager, concurrent user support in Client-Side Caching (which I heard was a nightmare to add) ... and, unfortunately, a whole cargo shipload of slowdown inducing stuff like creating persistent local shadow copies by default or doing plug-and-play rescans for no easily apparent reason. Can't win 'em all, I guess.

    --
    ...when you're writing a game...tweak the difficulty of "Easy" to something [your mother] can cope with. -- onion2k
  68. Who still builds thick-client apps anyway? by Anonymous Coward · · Score: 0

    This whole article is written from the perspective of a thick-client developer. At this point, who is still developing thick-client apps? Most of us have moved on to the web a long time ago: no framework to download, no nothing. With ASP.NET MVC you can write standards-compliant web apps easily.

    With all due respect to Slashdot for what it once was, this article really smacks of irrelevance.

    1. Re:Who still builds thick-client apps anyway? by FlyingGuy · · Score: 1

      I normally do not reply to AC but I hope you actually read this and get the hell out of the basement now and then.

      Contrary to popular belief building native code apps is quite alive and well. It is faster and when built with .net ( I don't like it but have to respect it for what it is AND what it can do ) but it runs on any windows platform from XP on client AND server and has every hook built in for database work AND has data aware grid controls.

      The web browser in its current incarnation is a MAJOR PITA to do serious work with requires VAST amounts of backend server code to do even the simplest of interactive task that amount to anything.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    2. Re:Who still builds thick-client apps anyway? by neminem · · Score: 1

      Hi. People still develop thick-client apps. The company I work for, which isn't huge but not tiny either, develops a couple web clients, and several thick ones. Our customers are happy having both. I can understand the desire to have both, but I simply cannot understand peoples' desire to move everything to the browser and forget about thick clients. Yes, web apps have been getting increasingly friendly, but they're still hosted in a browser.

      And for what it's worth, I love C#. I didn't think I would at first, but having been using it for a couple years now, I'm dreading going back to (win32) c++, its kludgy preprocessor, its dozen different types of strings, its... general unprettiness. Yes, C# might be less portable, but so? Our customers are governments and large businesses, they all run Windows anyway. (And for the public-facing application for people who just want to retrieve one piece of information from anywhere, who might be using anything, that's what web applications *are* good for.)

  69. My 2 bits by Paulie_Lost · · Score: 1

    Writing in .Net is productive. It's fast, effiicent, and easy to write for.
    The tremendous Base Class Library, and all the extra technologies(LINQ et al) won't make me a better programmer, but they do make me nimble, and allows for fast structural changes.

    When I code in C++ (I only learned GNU not Microsoft all those '__' make me nervous), I spend a lot of time plumbing, ensuring patterns are correct, and resources are correctly allocated to be correctly disposed. I spend a lot of time laying out corner stones, and taking measurements. In .net I can happily lay a cheap foundation for given project and just go for it. If I have made a mistake it's still a pain to correct, but it's not nearly as damaging as in can be found in an unmanaged environment. The CLR, and C# almost insist that you play around with it to get the right solution for your thinking, and like I say, it's mostly productive tinkering your doing. It's not about class resources, or static entry points it's about developing the solution and solving the problem.
    For that alone I find .net worth it's weight in floppy disks, and punchcards(I'm using measurement to ensure the crumdugeonly posters before me can follow my level of praise). Then you have Visual Studio's tool chain, at which point I'm going to get misty eyed, and making hooting noises, because it's undeniably fantastic.
    I'm a Sharepoint developer (Put the sarcasm down), which from an API standpoint sits on top of a truck of COM objects and IIS, and boy do we know about it. SPWeb.Dispose() (for a given context of SPWeb), is a founding tennent of SharePoint development, not only does it leak, it costs. Sharepoint Sandbox development takes even further but actually assigning a cost (points) based on the actions of the application, thanks to a amanged code environ. SharePoint is a system that ties into AD, Exchange, Office, IIS and SQL Server, out of the box. If you did not have a managed code environment to resting over all of that plumbing, communication, instation of objects, threads (IIS, and Windows and SQL) etc then how on earth could a product like that exist in the first place? For example the Open Text offering (I forget the name of the product, one part used to be called red dot), needs two servers to handle publishing, and moves between, python, java, asp and some .net too! It's a little unweidly.
    In short: .net allows to me solve problems by writing code, rather than creating a frame to phrase problem, that lets me to solve problem using code.
    Anyway back to my Windows only technology, and the IE/Firefox/Opera/Safari cross broswer Sharepoint site I've been building.

    1. Re:My 2 bits by MightyMartian · · Score: 1

      And all those delightful licensing fees you and your customers get to pay....

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:My 2 bits by BasharTeg · · Score: 1

      Yeah those Mono license fees are expensive. Almost wiped out my company with those fees. It's not like they have .NET 2 through .NET 4 implemented in Mono for free, which you can run on Linux or Windows. Idiot.

  70. Sharepoint by EmperorOfCanada · · Score: 1

    I would say that .net died around the time of Sharepoint. Too much of the .net API started to support more and more of Microsoft's products and solve fewer and fewer of my problems as a programmer. When .net version 1.0 came out I was able to delete dozens of functions I had written for interacting with email and web servers from an application. Then 1.1 was even better. I would say that Java even was feeling a bit of heat from .net. But 2.0 started to get a bit weird; still good but weird. Microsoft lost me with 2.5. Simply didn't upgrade and soon moved to LAMP. I can't tell you what the last version of .net is. All my application programming has been with QT and C++. It works and is rock solid. It looks like Nokia is now screwing up QT so I will eventually have to move but I won't be leaving C++.
    Where I found .net starting to go wrong was that it was telling me how to program. Also each upgrade was very painful to deploy. .net 2.5 was basically hostile to machines that hadn't seen an upgrade in a while. Whereas with C++ I do whatever I damn well please. If I think of a feature then I can build the feature without some part of the architecture tripping me up. And as for deployment: worst case scenario you pile the libraries in with the executable. I also find with C++ that old code stays around for a much longer time. With .net code I found myself recoding/updating it over and over.

    1. Re:Sharepoint by Anonymous Coward · · Score: 0

      Considering Microsoft never released a .Net 2.5, no wonder you had problems installing it.

  71. It's only a mistake if you think one language.... by gestalt_n_pepper · · Score: 1

    should rule them all. I get the distinct feeling from a lot of guys who cut their teeth on C++ that any other language is a cheat, vaguely sinful and one should wash one's hands after handling. I happily use my own .net applications to manage an automated testing system. It's quick, easy and the price is right (i.e. free). The advantages are much like those of (Horrors) VB6.

    Look guys, the guy building a house doesn't have to know about optimal melting temperatures and cooling rates for the metal in the nails he pounds, or optimal pitch rates in the the screws he uses. Any box of nails screws has already had these details worked out by specialized engineers. That box represents a series of solved, and not very interesting problems.

    The guy building a monitoring application doesn't need to know if the variables are passed by reference, whether a numeric type takes 16 bytes or 32, or what a pointer is or what happens to the memory when the application closes. Any decent modern language had these details worked out by specialized developers. That language, full of pre-made components, represents a series of solved, and not very interesting problems.

    Many of us have to write some software. NOT everyone aspires to be a C++ alpha-geek, the best programmer in the shop, or anything else. Most of us are trying to make a living. Software is a means to an end, NOT an end in itself.

    --
    Please do not read this sig. Thank you.
  72. .NETafied C/C++ Libs? by donkeyoverlord · · Score: 1

    Could Microsoft have created a new C/C++ standard library that was .NET enabled? Effectively giving the advantages of .NET (managed code) to standard C/C++ programs? Or maybe a better question would be could the VS compiler create .NET byte code from C/C++ programs? If doable this would have been an interesting solution as all programs compiled for Windows using VS and/or Microsoft's standard libraries would automatically become .NET applications.

    1. Re:.NETafied C/C++ Libs? by Anonymous Coward · · Score: 0

      They did. It's called C++/CLI. You can even use WPF controls on MFC dialogs and I believe vise versa. I have not tried it myself though.

      My 32-bit app is already running up against the 3GB limit with large datasets. The last thing I need is something to make it slower and take up more memory, so I have not delved into .NET too far. Just sticking with C++ and keeping it lean and mean.

      Also read something about MS having a library for writing C++ web services that blows the .NET web services out of the water when it comes to transactions per second. Like many have said it depends on what you are writing.

  73. Willfully Blind Zealots by ChaoticCoyote · · Score: 1

    I prefer C, C++, Python, and OCaml. I make much of my living from writing portable code.

    That given: Not all code needs to or should be shared. Really. In most business ecosystems, no one gives a rat's ass about Linux or BSD or whatever outside the server room. And for vertical apps and internal code, C# is very nice, sort of a Java with better libraries. Microsoft won't abandon it, no one cares if these apps port, and code development is quick and easy.

    Please, you zealots wouldn't even be interested in the C# I write. It's not cool, it's not innovative, it's freaking GUI data entry crap.

    Well, okay, I have one C# app on my web site, a nice piece of signal visualization written at the behest of a now defunct company. The original was tied to proprietary hardware with proprietary drivers that only worked on Windows. The company went tits up, but I liked the code so much, I removed the hardware dependencies and released it for fun. That company, however, was creating a commercial product, and I *told* them C#/Windows was a mistake. They're dead now. But that's a different story from where most C# is used, which is for vertical market and internal apps in shops where no one is or will be running anything other than Windows.

    I'm revising the signal program, BTW. in portable C++. C# is not a good solution in many cases, but that doesn't make it crap, either.

    But I'm sure no facts will lessen the anti-MS zealotry.

  74. Re:dat net by Melkman · · Score: 1

    In Frisian "dot net" is phonetically the same as "Don't do it". ( it's like " do it not" )

  75. Re:What?! On the contrary: .NET is becoming releva by Anonymous Coward · · Score: 0

    That was when NT 6 was supposed to be part of Longhorn.

    Then Longhorn got released (NT 5.2 as Server 2003 R2) and NT 6 was nowhere to be found.

    Then they rewrote the driver model and put aside the make-.Net-equal-to-Win32 bullet point. That became NT 6 (Vista).

    Then they cleaned up the mess from the release of Vista, released NT 6.1 (as Windows 7), and then started on the effort to make .Net a first-class environment.

    Why then? Windows Phone and XBox (XNA). The underlying Windows OS is now ready for .Net, and as a bonus, they have an ass-ton of developers ready to go. The experiment was with .Net 1.0 and 1.1. If it had no developer support at that point, it would have gone away. But then they sank some real dev effort into making it not suck with Whidbey (.Net 2.0).

    That was the moment of truth. It left the labs and became The Next Big Thing at that point. After the release of .Net 2.0 in late 2005, there was no question whether it would be the primary API some day. MFC is dead. Win32 is an aging dinosaur (especially with 64-bit becoming mainstream, even the name is out of date). There has been minimal support for "traditional" development in the primary IDE (Visual Studio) for over a decade now. There was no chance that .Net was going to just go away at the point it got the 2.0 release.

    Now, they're prepping Windows 8 for full support of .Net as the primary API. The business-class stuff is already there. The game framework is coming along nicely (XNA).

    And once again, Microsoft has aced everyone else out of the possibility of competing with them on level ground. Want to write a database? Good luck with that. They don't support anything that isn't through the .Net framework. You used an API that was unsupported, and therefore, your broken stuff is your problem not theirs. Nevermind the fact that writing a database in .Net would be akin to stabbing your eye with a rusty spork. Want a database on Windows? SQL Server to the rescue! Want a cheaper database on Windows? Too bad.

    Either the lock-in is just beginning, or the end of Windows is nigh. I would bet on both, and I'll ride it for all the cash I can get. One born every minute...

  76. Long memory... by PinchDuck · · Score: 1

    There are two distinct points in the history of .net
    1) Take Over Everything
    2) Ouch, that hurt, stick to making decent tools

    2)When .net was first proposed, it scared the hell out of me. It was an MS powerplay for _everything_. .net + Passport was meant to be the single authentication service to rule them all. It was obvious that if MS had put that in place, then one day the authentication service for any non-sanctioned MS platform was simply stop working. Basically, Microsoft tried to embrace & extend the authentication infrastructure of the internet (such as it was in '01) and, by extension, anything that wanted to connect via TCP/IP. It never really caught on, though, so MS licked their wounds and continued with...
    2) VisualStudio.net, Windows Server.net, SQL Server.net got renamed to their original monikers overnight. Passport was dead and MS faced a huge task: Write or cobble together support libraries for the clr to match the maturity of the Java ecosystem. After a lot of hard work, they managed to do it. I saw C# go from "how do I connect to LDAP? Apparently I write my own code..." to a mature, stable system that is pleasant to work with. This is the part that Microsoft is apparently killing with a pocket veto. The development tools have gone from "Blah Blah Blah for .net" to "Um, yeah, .net, um, we support that, too..."

    I'm not sure that letting .net die that way is a good idea. All of a sudden, MS opens themselves up to competing tools and toolchains, a problem they haven't had since they put a stake through Delphi's heart. Maybe it's inevitable if they want to avoid being a bubble of non-conformity in a sea of standards. That would mean that they learned the lesson of the UNIX wars, which ironically they won with the Windows desktop. Still, I think that the death of the local .exe is greatly exaggerated.

    It will be really interesting to see how this plays out.

  77. Strawmen (was Re: Language bigotry) by DragonWriter · · Score: 1

    If C# compiled and ran 20% faster than VB, I could understand the animosity

    Performance of compiled code isn't the only important productivity contributor.

    For all the MS bashing, this is one thing they did right with ASP.NET. Let people choose the language they want to work in, but produce the same results in the end.

    Planning .NET (this isn't specific at all to ASP.NET, so I don't know why you would refer to that) from the outset as a multilanguage VM was a good choice. And I understand the market reasons why VB.NET (to transition VB users -- both desktop and ASP -- onto the platform) and C# (to provide a migration path for Java users) were the choices. And I know why the feature sets of the two languages are so closely aligned. The design decisions make perfect sense if you are Microsoft. They're just a headache if you aren't Microsoft.

    This is Slash "Freedom of Choice" Dot, but we must kill off languages we don't like...

    I have an aesthetic distaste for VB.NET and wish it would fade over time to reduce unproductive complexity on projects I run into, but I certainly wouldn't say I must kill it off, just that the IT world would be a better place if it were to fade away.

    Really, if it wasn't for VB, you would have less people to feel superior to.

    I don't feel superior to people who use VB.NET, I just wish it would go away since it doesn't (unlike F#, IronRuby, IronPython, or any of quite a lot of other languages that run on .NET that aren't C#) have any compelling use case to favor it over C#, but I keep running into environments where the two are mixed with no real rationale for the use of each language. Diversity that adds value is good, diversity that adds support overhead without adding value isn't.

  78. I love .NET by Anonymous Coward · · Score: 0

    I love .NET and I had written even my own .net compiler for fun and its a very good specification and with mono you have support on several plataforms, and for information systems is a very good option for java, mostly because visual studio IDE and debuggers rocks when you try to do a fast and cheap work (as I should do almost everytime) while building customized information systems and for this kind of programs .net is a very good option from my point of view.

  79. Re:dat net by Panaflex · · Score: 1

    Heßischer you heathen!

    --
    I said no... but I missed and it came out yes.
  80. Did its job by Anonymous Coward · · Score: 0

    It did its job of killing Sun Microsystems and "winning" in Billy G's head. Not saying that simply violating Sun's licensing by making Visual J totally native byte code incompatible didn't work either. Yes, Microsoft lost in court, but by then the damage was done, just as they did with the OS war on PC compatibles and Internet Explorer vs Netscape before that.

  81. 2nd Class by Bengie · · Score: 1

    "Because they failed to support its way of doing things .NET has always been a second class Windows citizen unable to make direct use of the Windows APIs"

    I heard that Win8 will have many new APIs that you can't call in unmanaged code. It should start to swing the other way. MS is currently trying to "start over" with a lot of their APIs and clean them up.

  82. maybe this explains the embedded .Net project by Locutus · · Score: 0

    they don't want to kill it right off the bat because that really would piss off those diehard followers who took the .Net plunge. So they'll make a home for it in this obscure .Net for embedded systems. It won't look like they are killing it but the effect is letting die a slow death.
    Maybe this is the reason for that instead of trying to beat out Googles ADK or even Arduino.

    LoB

    --
    "Anyone who stands out in the middle of a road looks like roadkill to me." --Linus
  83. Re:What?! On the contrary: .NET is becoming releva by NJRoadfan · · Score: 1

    Funny, the only .NET app I have ever written from the ground up interfaced with a MySQL server. It worked pretty well, but the ADO.NET connector for it was in its early stages back in 2004 and not up to the ease of use of Microsoft's provided database connectors.

  84. Do I have to spell it out for you nerds? by Anonymous Coward · · Score: 0

    Such "detours" are Microsoft's history. If it's innovation you want you need to look at their Legal Dept. When Microsoft was laying the groundwork for their domination of the industry most of the pundits here were still pissing their nappies. But they see fit to lecture, it would appear.

  85. UI only by techvette · · Score: 1

    What a lot of people seem to be missing is that the HTML5/JS crap is for UI - it isn't, and can't be, used for real app development. Just as with conventional web development, where the UI has to be based in HTML and JavaScript (which, we all know, we use because we have to, not because it's a good platform), your server-side language of choice is still doing the real work. Even in the exceedingly unlikely event that Winforms and WPF are depracated, .NET is still going to be the real workhorse of any application that's not built in C++. .NET is embedded in the industry as a whole - the vast majority of Windows software is built in a .NET language these days, and the vast majority of software written is for Windows. Even Microsoft's products rely heavily upon the framework - for instance, the entire VS2010 UI is WPF. This reminds me of the guy I sat in a meeting with two years ago who claimed that using stored procedures was stupid because MS was removing support from SQL Server. Yeah - not bloody likely. Gotta love the trolls.

    1. Re:UI only by DeathSquid · · Score: 1

      I agree that Javascript is a horrible language.

      Pragmatically, however, it is becoming ridiculously powerful because of all the optimization work, especially by the Google Chrome team. A couple of years back I saw http://code.google.com/p/quake2-gwt-port/ and realized that JS, for all its faults, was going to be a big part of the future.

      There'll always be a place for centralized data crunching. But JS allows you to scale outwards in a platform independent way, and do vastly more computing than any server farm could. I'm currently involved in a bunch of experimental projects in JS that go far beyond just UI.

      I'm just hoping that someone designs a better language that can be layered on JS and eventually supplant it...

  86. Author wishes for VB6 to have evolved. by Anonymous Coward · · Score: 0

    His view is that if MS had stuck with C++ and just iterated on VB6 we'd all be in a better place. My question to the author is this, "Did you ever use VB6?". C# and even VB.NET are worlds better than anything that VB6 could have evolved in to.

  87. .NOT "developer" goes crazy by Anonymous Coward · · Score: 0

    Angry .NET "developer" goes psycho because people are criticizing the only language he knows. Kind of pathetic. But then, aren't all .NOT 'developers'?

  88. does the author really think by PJ6 · · Score: 1

    that everyone develops the same types of applications he does, or would seriously benefit by switching to C++?

    Yeah, let's develop all desktop and web applications in C++. Right, big productivity boost there.

  89. Not a Mistake by Anonymous Coward · · Score: 0

    I suspect Microsoft can't stand paying anyone royalties for anything, that is why there is WMA/WMV instead of MP3, MP4, OGG and that is why there is a .NET runtime instead of a Sun JAVA runtime..

  90. C++ Considered Harmful by PJ6 · · Score: 1

    The author should read this article.

  91. COMs from Outerspace by dcray2000 · · Score: 1

    I'll program any language on any platform, they all suck in one way or another. I must say that .NET is outstanding and easy when working with enterprise Microsoft platforms. Also, unlike what is noted in this little opus, you can call whatever API you need from .NET... pinvoke...duh

    Anyway, it's clear the person who wrote this slash never had to write enterprise automation using ATL COM.

  92. So Miguel is sad? by Anonymous Coward · · Score: 0

    Serves him right.

  93. Re: Language bigotry by Brummund · · Score: 1

    Look, VB had it uses and time of glory in the nineties.

    I have not seen a new VB(.NET) project started in the last 5 years, and for me, that is a sign VB will be dead and buried by C#. Most have converted to VB.NET and transitioned to C# at some point, and either replaced or retrained the programmers. But by all means, if you want to be the last person standing at the Visual Basic Alamo, be my guest.

  94. Not so fast... it is suited to many types of games by Anonymous Coward · · Score: 0

    Actually you can write video games with C#/.NET. Every single WP7 game is written in C#/.NET as well as XBOX XBLA games, plus many PC games. C# is actually pretty snazzy fast. .NET, among all its other wonders, wraps DirectX.

  95. Hardware changes drive the software path by oldCoder · · Score: 1

    .NET was written in anticipation of Itanium. Instead, the growth area is mobiles, pads, pdas and such, which use an eclectic mix of chips. The .NET option of generate-code-on-install doesn't apply to mobile apps, where the app store only has what the platform can use. And the big CLR doesn't always fit.

    Apple is making a mint on hand-helds, and now has about 70 billion dollars in cash for a rainy day. Apple is huge. The comeback of the integrated hardware-software combination (Apple) changed the marketplace.

    Now the Nokia-Microsoft deal is all about putting .NET on phones, so
    1) That story is bogus or
    2) .NET is making a comeback there, or
    3) .NET will bankrupt Nokia.

    --

    I18N == Intergalacticization
  96. it did manage to provide an upgrade path by wwbbs · · Score: 1

    Well it did manage to provide an upgrade path for the many millions of developers of small business / custom application development. (It kept the money train moving and lots of people employed during a time period when there wasn't much reason to continue development.) PHB: Hey look at the cool elite new things I can do without having to invest large amounts of time or money and the customer will be glad that were using leading edge software. M$ Has always coddled the developer's as it locks end uses into an upgrade path. Reminds me when VB 4 or 5 came out and all of sudden.... Vendors were like Opps sorry your going to need to upgrade to IE 4 if you want to install the help files...

  97. bullocks by tenshihan · · Score: 1

    oh i hate java personally, and i used eclipse and wrote my first android app. Only thing i could really complain about was java's odd idea of scope. When i write inline anonymous functions in c#, they have the scope of where they are. In jva, the scope is a different class. Annoying! otherwise, both sides please stfu. Apples and oranges are both good fruit.

  98. Re:Systems Languages vs Managed/Application Langua by Anonymous Coward · · Score: 0

    Your fact #1 is not a fact, merely a bunch of chicken littles misinterpreting a MS demo.

  99. No, it was a successfull diversion... by alexmin · · Score: 1

    to keep people busy learning new MS ways of doing old tricks and stop looking into competing products.
    After 10 years it's fair to say that It has fully achieved it's goal. It seems like now it's time for a rerun.

  100. All a mistake? No. 90% a mistake? Yes. by Requiem18th · · Score: 1

    The two problems with .NET is that it promised a lot of things that are either false or pointless. The other problem is the fanboys that keep preaching these features even when they are false and/or pointless.

    And please don't tell me PHP/Ruby/Python has fanboys too, I'm not arguing that. Let me review some of the fantastic claims of .NET although let me admit that I only worked with .NET for a living for a little over 2 years.

    1) It's cross-platform!

    No it's not. Not in any adventitious way. For a lot of users this involves the very lengthy and slow -albeit simple- process of installing the .NET runtime. Now get this, if cross-platform by installing extra runtimes is your definition of cross-platform then python, ruby and of course Java are cross-platform too.

    1.1) My code is compatible with all the important operative systems because only Windows matters and only idiots don't have .NET installed hur hur!

    No ass-hat, and yes this is an argument people are making here in slashdot. Now I understand that all your clients work in Windows, I understand that you don't need platform independence, but you don't get to brag about platform independence when you don't have it, it's a have your cake or eat it matter.

    1.2) But it runs on XP and W7, it *is* cross-platform!

    Again, not in any meaningful way. XP and W7 are not different enough to get called different platforms. I have yet to find an XP program that doesn't run on W7, if random C/C++/Delphi apps for XP run fine on W7 cross-platformness is not an advantage of .NET

    1.3) Mono...

    Mono can't run .NET apps. .NET may run Mono apps, but that's an argument in favor of Mono, not .NET. Probably you would have to code in a subset of Mono, this coupled with the fact that Mono will always play catch up to .NET means that developing cross-platform apps in Mono will always place severe restrictions on you. Now I admit that this might be worthy for the people who want to code in C# AND care about cross-platformness. If you are going to code in something else than C# you are better off coding directly to that environment, like Python or Ruby. So it's only half a point.

    2) It's language independent!

    Again, not in any meaningful way. Not only does IronPython and IronRuby have little syntax differences, they have huge library ones. A non trivial Python program has little chance to run unmodified in IronPython. An IronPython one has zero-chance to run in a real Python interpreter.

    And of course there is an easy way to write python/ruby programs that are cross-platform. Write for the real interpreter!

    2.1) But I can share libraries!

    Sure to an extent. However calling dynamic typed code from static typed code is still cumbersome and you wouldn't want to do it since static type coders avoid dynamic languages like the plague.

    Calling static code from dynamic code on the other hand is a very good use case. Python/Ruby/PHP/etc already have great support for calling code from compiled libraries. Of course, since Iron$language is incompatible with $language, it means that you have to port code, which you wouldn't't do if you choose to remain compatible with real $language.

    So calling C# code from your Iron$language code is only an option if you forgo compatibility with $language but still hate C#, except C# is the crown jewel of .NET you can't hate it.

    2.2) Not true! Lot's of people mix multiple languages in .NET

    The only two languages that people ordinarily mix on .NET are C# and VB.NET and VB.NET is a microcosmos of failure on it's own. VB.NET was built on the premise that it was compatible with VB, which it isn't. On the 2+ years I spent on that .NET shop, the only two VB.NET projects I worked on suffered from it. As the resident language gu

    --
    But... the future refused to change.
    1. Re:All a mistake? No. 90% a mistake? Yes. by BasharTeg · · Score: 1

      "Mono can't run .NET apps."

      Wow, that's funny. I must be on acid, because I thought I just compiled a .NET app in Visual Studio, copied it to Linux, and literally ran the Portable Executable file (.EXE) with Mono.

      "Probably you would have to code in a subset of Mono, this coupled with the fact that Mono will always play catch up to .NET means that developing cross-platform apps in Mono will always place severe restrictions on you."

      Let's see how true this is:

      http://mono-project.com/Compatibility

      So here's what's missing:

      CodeContracts - API complete, partial tooling
      EntityFrameworks - Not available.
      Server-side OData - Depends on Entity Framework.
      WCF - silverlight 2.0 subset completed
      WPF - no plans to implement
      WF - Will implement WF 4 instead on future versions of Mono.
      System.Management - does not map to Linux
      System.EnterpriseServices - deprecated

      So other than the above Microsoft specific technology plus Entity Framework (use NHibernate instead), the entire C# 4.0, .NET 4.0, and ASP.NET 4.0 platforms are supported. Oh, and what really matters is ISO/IEC 23271:2006 and ISO/IEC 23270:2006... you know the ISO standards that Mono implements.

      So basically, your entire point against Mono as a multi-platform solution for ISO standards based .NET development is bullshit. The few libraries that are limited on Mono aren't that critical for applications, web, or backend development. WinForms is supported, ASP.NET is supported, and services (as console apps) are supported.

    2. Re:All a mistake? No. 90% a mistake? Yes. by benjymouse · · Score: 1

      The two problems with .NET is that it promised a lot of things that are either false or pointless.

      1) Strawman. Microsoft never promised cross-platform. .NET was developed when Sun refused to let Java become a viable option for writing native apps. Java always insisted on "virtualizing" the OS - even rendering each pixel of screen widgets. MS rightfully felt that this was offering a sub-par user experience and first tried to worm in the ability to use native widgets - and when that failed they created .NET. Which has P/Invoke which offers a much better integration to the underlying OS than anything Java.

      2) False; .NET actually *is* language independant. Unlike Java .NET was designed with this in mind from the start, hence the CLR was always "bigger" (had features not exposed in C# or VB) than any one of the languages. And you obviously hasn't been following along. Consuming dynamic language objects from C#/VB.NET is *extremely* easy (look up the new dynamic type).

      --
      Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  101. VB and C# by Spril · · Score: 1

    C# doesn't need to kill VB because it's assimilating it. Thanks to the CLR, they become more alike with every release. While it was almost impossible to write good code in VB4 and earlier, VB6 made it possible to write maintainable code, and VB.Net is effectively a different dialect of C#.

  102. Its a fuckton of updates by Osgeld · · Score: 1

    just so 1 installer application will work, really outside of independent programmers who uses this, why do I need 4 versions of it, 2 or 3 service packs, and a fuckton of security updates EACH.

    Shit biscuits, I reinstalled a XP machine earlier this week and thought I was going to nailgun my face to the desk over what these bloatware things require.

  103. Systems programmers are not business programmers by Anonymous Coward · · Score: 0

    The majority of Windows programmers need a Java-like environment and C# + .NET fills that need very nicely: Proper exception handling, managed memory, a well-designed library, etc. You get a lot, if you don't mind the bit of overhead and occasionally unpredictable performance (garbage collection).

    If anything, Microsoft's "mistake" is in making C++ the only viable choice for systems coding. In fact, and while it probably won't be easy, it'd be at least interesting if Microsoft introduced a minimally-modified variant of C# for exactly this.

  104. C# is actually a great platform for games by Anonymous Coward · · Score: 1

    You might not write a AAA title like Doom 4 or Borderlands 2 in C#, but it's just fine for lots of games. Xbox Live Indie Games are all C#, as are some XBLA games. Windows Phone 7 games are all C#, not that anyone is buying Windows Phones. Games written in C# are starting to show up on Steam, despite Microsoft not having an indie game channel for PCs. Casual game developers are also using Unity to target PCs, Macs, consoles, phones, and browsers with the Mono flavor of C#.

    C# is perfectly capable of meeting high performance gaming needs if you know what you're doing. You can write poor code in any language ;-)

  105. Nonsense by Renegade+Iconoclast · · Score: 1

    I agree that no sane person would make an O/S with it, but it is a great platform for video games, including 3d shooters. In fact, that's what my business partner and I are developing our game with. C# + XNA. Admittedly, our game is 2d, but only because we don't have the resources to create 3d assets, not because XNA is somehow lacking. Our time to production will be cut way, way short because of the simplicity and elegance of XNA. The only thing that makes it difficult is that the XBox version will require us to pre-allocate ALL of our objects, because the garbage collector on the XBox sucks. This does make things a bit trickier, you have to create object pools and crap that you normally would expect the GC to do for you, but it's still the bee's-knees in terms of coding time.

    Most of the work of modern games is done on the graphics hardware, not the CPUs. For the tiny amount that is done on the CPUs, C# is plenty fast enough. I can put like 6000 sprites on the screen, rotating and scaling, before I drop below 60fps. And that's only due to my graphics hardware. The game code is hardly doing anything.

    Furthermore, the tools to develop against the XBox are just freaking cool. I can debug the console exactly as though it were running on my local box, set a break point, inspect variables, etc, and I can't even tell it's a remote process. It just works.

    And finally, the lead developer for XNA is the same guy who made Allegro in the 90s. I don't know if you were programming games back then, or playing around with it, but Allegro was great. The main problem is that it was slow. Well, Sean has had nearly 20 years to refine his techniques, and of hardware advances, and he has it down to an art. You barely need to write any code to have a game up and running. The vast majority of your time is spent in game logic, not looking up arcane DirectX commands. DX is mostly abstracted away.

  106. Re:What?! On the contrary: .NET is becoming releva by Anonymous Coward · · Score: 1

    C#, like Java, is just-in-time (JIT) compiled, not interpreted. In addition, both can be compiled to native code, although in general, JIT will be faster.

  107. I wrote a long post by Anonymous Coward · · Score: 0

    I wrote a long post, but in the name of bandwidth, I cut it down. The short answer: Yes. Its another redundant Microsoft framework/technology/language that the rest of the world already does, better. Who will be most affected by its demise? Independent microsoft "developers, developers, developers, developers" (repeat ad nauseum).

  108. Re: Language bigotry by a-yz · · Score: 1

    I wish it were so, but VB.NET is firmly entrenched in many sectors of the corporate world, probably because it hides complexity from the developers and that appeals to management and pseudo developers (though the complexity eventually tends to rip the lining of that 'safety blanket' anyway). Nevertheless, VB, like COBOL before it, isn't going to disappear any time soon, you just won't see it out in the open as much.

  109. realtime apps on non realtime OS by dutchwhizzman · · Score: 1

    You just take an environment, lock it and make sure you have enough resources for your app to finish in the amount of time required. It's been done all the time. True, it's not a real time OS, but the entire apparatus does the job real time. Most of todays telco stuff is done that way, VOIP, SMS and all those protocols largely run on systems designed this way. True, they're almost never run on Windows, but rather Solaris and Linux, but the principles are the same.

    --
    I was promised a flying car. Where is my flying car?
  110. It's a matter of taste. by Anonymous Coward · · Score: 0

    The problem with Microsoft is they just have no taste. They have absolutely no taste. And I don't mean that in a small way, I mean that in a big way, including the design of API's.

    Dead serious.

  111. Why Evernote abandoned .NET by Anonymous Coward · · Score: 0

    Evernote Abandons Microsoft .NET

      "The blurry fonts, slow startup times, large memory footprint, and poor support for certain graphics cards were all issues that the technology behind 3.5 was incapable of resolving. As a result, we ended up chasing down platform bugs rather than adding the great features our users wanted"

    “There is a substantive effort in open source to bring such an implementation of .Net to market, known as Mono and being driven by Novell, and one of the attributes of the agreement we made with Novell is that the intellectual property associated with that is available to Novell customers” link

    1. Re:Why Evernote abandoned .NET by KingMotley · · Score: 1

      As noted in that article, most of those complaints were fixed, or addressed already. Additionally, they used WPF instead of the more mature WinForms and/or the newer Silverlight that didn't have many of these issues.

  112. Re:Java / .Net / BASIC by tibit · · Score: 1

    This is beyond silly. .Net is not a language. Both CLR and JVM bytecodes can be interpreted when you're not on the beaten path. Once a piece of code gets hot, the JIT compiler compiles to native code and that's the end of interpreting that. There are plenty of flavors of Basic, some of them run on either CLR or JVM and thus automagically get compiled. There are also freestanding Basics that get compiled. Your whole rant about "interpreted" languages is based on some fantasy you have that is simply not true today, and hasn't been for a good while.

    --
    A successful API design takes a mixture of software design and pedagogy.
  113. Here, have a tissue... by Corson · · Score: 1

    I read that article. The author mostly (and repeatedly) complains about the lack of cross-platform compatibility. So what? Objective C is perfect for Mac OS X and C++ is just fine for Linux. The bottom line -- C#.NET is well much alive and kicking, thank you for asking. No programmers were harmed during its cohabitation with C++ on Windows (except, perhaps, on a psychological level).

  114. Miguel by Anonymous Coward · · Score: 0

    Well it did give Miguel de Icaza something harmless to do for ten years. Well mostly harmless.

  115. Been telling you. by unity100 · · Score: 1

    whenever we say this you ms people are going berserk. silverlight has been dropped, this that, the talk of net being dropped. they WILL drop net. it doesnt do much for them.

    it doesnt matter whether net is cool, useful, you like it, this that - it is not serving microsoft's aims. so just like any profit oriented company would, they will drop any such thing and concentrate on other stuff which may serve their aims.

    you should switch to something that is not tied to the whim of a private company as soon as you can.

    1. Re:Been telling you. by Lennie · · Score: 1

      I don't know if they will drop .net, but I agree that if Microsoft wouldn't want .net anymore they would drop it like it's hot.

      And there would be nothing anyone could do to keep it going.

      --
      New things are always on the horizon
  116. Read the label. by westlake · · Score: 1

    It proves that the original statement that Humble Bundle makes more money from Linux & Mac combined than from Windows

    The pie chart reads "Total Payments by Platform."

    Windows payments about 60% of the total. Mac and Linux payments each about 20%.

    This even though individual sales average about $12 for Linux, $7 for the Mac and $4 for Windows.

    1. Re:Read the label. by Gutboy · · Score: 1

      Correct, total Payments, not total Orders.

  117. It's a beauty. by xonen · · Score: 1

    Luckily, i see others 'defending' .NET here too. Cause just because it's from Microsoft 'it must be bad' is a very invalid statement. That it isn't portable is simply a troll too, that just depends on the libraries you use, very much like any other language. There's .NET, there's mono. If portability is a key, use mono (or make sure it compiles on mono), and you'r pretty much set.
    I rejected .NET for long time too, just for the same invalid reasons, until i actually gave it a shot.. Let me state a few conclusions:

    * The language itself is a beauty. Really. It's the best and most beautiful programming language i ever met. It's powerful, it has very nice language constructs, it has about everything a programmer could wish for - and more. From the beauty stance of view, C# is Claudia Shiffer whereas Java would be the average south european, Python the average german, Ruby the average american, pearl the average russian geek and c++ just a plain troll from the tundra.

    * It is very portable. I developed some standalone specialiced servers. To deploy it on my linux server, i just copy the frikking binaries. No more. No less. It _just_ _works_. Yes, there are some details. 32 vs 64 bit, for example. Or platform-dependant assemblies. It is hardly an issue. Of course, integrating IE in your app would be windows only. Or take winforms, it is what it sais: forms for windows. Use GTK if you need cross-platform UI's, for example, as mono defaults too.

    * It's versatile. From UI's, stand alone server apps, http integration (ASP). Actually, a lot of ASP solutions run on apache + mono. Stating that C# has only use for a few niches is simply false. Of course, take the right tool for the job, up to you to decide, but there's not much that could be excluded by definition.

    Now, the cons:
    * It's managed code, rendering it a bit slower than strictly needed. However, this has the advantage of easifying cross-platform binaries. The same as Java does. So, this con as a pre same time.
    * Microsoft refrained from creating (and thus supporting) a cross platform implementation themselves. They rely on (cooperation with) the mono project for this. Having said they, MS clearly stated they embrace the mono project.
    * Microsoft created it. The name alone blinds zealots. Please, spend a few weeks or months learning the language, then come back and say what you think.

    --
    A glitch a day keeps the bugs away.
  118. Re:What?! On the contrary: .NET is becoming releva by Lennie · · Score: 1

    While I'm looking at my other screen.

    All I wonder is, if Windows Explorer will ever get it right when predicting how long it takes to copy or zip something.

    It has been saying for atleast for 4 minutes: 10 seconds remaining and now it says 5 seconds remaining. Right, eventhough the bar says: only 85% done.

    right...

    --
    New things are always on the horizon
  119. VB6 in TFA by Anonymous Coward · · Score: 0

    "Programmers at the time (...) and mourned the passing of VB 6 "

    BWAHAHAHAHAHAHAHAHAHAHAHAHAHHAHAHAAAA... HAHAHA... Ha.... No. They didnt.

  120. Unable to make direct use of the Windows APIs? by Anonymous Coward · · Score: 0

    Funny - I was able to use Windows API calls in .NET, specifically VB.NET in fact:

    ".NET has always been a second class Windows citizen unable to make direct use of the Windows APIs" - mikejuk http://developers.slashdot.org/story/11/08/03/2027207/Was-NET-All-a-Mistake

    AND, I was doing so YEARS ago in Visual Studio 2003 &/or 2005, in VB.NET to do it (but, I sacrificed the protections .NET gave you to do it)!

    (That statement I quoted above's a truckload of "FUD"/B.S., & that's not just "my opinion", it's FACT!)

    APK

    P.S.=> It wasn't anymore difficult to do than doing API work in VB6 using DECLARE directives for Windows API's or even 3rd party lib/dll ones!

    ... apk

  121. a cunning plan by Anonymous Coward · · Score: 0

    I believe the real purpose of .NET is to prepare the big move from NT OS line to Cingularity or whatever it will be called at the time. When all application development is no longer dependent on Win API, NT can be ditched in favor of another OS, and all you really have to do is provide .NET runtime for that OS. The fact that Office is being ported over to .NET (afaik) reaffirms this theory. The transition will be less painful than Apple's - no need for "universal binaries" etc. If I'm right, then it's a great and well executed plan.

  122. Re:Systems Languages vs Managed/Application Langua by luis_a_espinal · · Score: 1

    Your fact #1 is not a fact, merely a bunch of chicken littles misinterpreting a MS demo.

    It is a demo of what? Flipping burgers? No. It is a demo of a possible dev stack. Ergo, I used the word "seems" rather than "will".

  123. Re:Systems Languages vs Managed/Application Langua by benjymouse · · Score: 1

    1. Fact: MS seems to be moving towards JavaScript and HTML5 as the main development stack for application development instead of .NET
    2. Fact: System-level Windows programmers use a systems level programming language (C++) for systems-level development.

    Your first "fact" is blatantly wrong. It is a misconception pushed by MS detractors. What they build this contention on is the idea that because MS did *not* mention Silverlight when they demonstrated the Windows 8 tiles, Silverlight had somehow fallen out of grace. If all the technologies *not* mentioned by MS in a random demo must be assumed to be slated for EOL there wouldn't be anything left.

    The *real* fact is that Silverlight is very much alive, it is the cornerstone of Phone 7 and will have a very prominent position in Windows 8 as well (more so than in previous versions of Windows). Silverlight and WPF are moving closer (as they should be). The HTML5 emphasis in Windows 8 is a bridge to allow websites to run as seamless Windows 8 tiles. Your favorite sites can offer tiles by simply marking up their website with certain micro-formats. To get an idea look at IE7+ webslices. When you browse to such a site, the tile-able elements will lit up and you can mark them as tiles on Windows 8 desktop. After that, the tiles run as small browsers in which javascript can execute and change content/appearance. But for actuall local apps development, expect to find Silverlight front and center.

    And when was Silverlight equated with .NET anyway? .NET > Silverlight. Silverlight is a .NET application, not the entire framework.

    Your second "fact" is somewhat correct. But the TFA gives the impression that using Win32 API is somehow difficult or even impossible from .NET. Which is blatantly false. P/Invoke is direct way to make system calls (on any platform). Unlike Java/JNI it directly supports marshalling parameters with no external glue code required whatsoever.

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  124. quite well... by samjam · · Score: 1

    > The thing is, Microsoft has actually nailed down the whole security thing quite well on the server now

    That line speaks volumes and there isn't really anything you can say in MS favour after that, so I stopped reading at that point.

    "nailed down" as a process of incremental security is quite vivid.
    "quite well" as the limit of "nailing down" is also very expressive.

    1. Re:quite well... by Xest · · Score: 1

      Well make up random conclusions by reading far too much into a statement all you want, the point was pretty simple though so most people who aren't either plain dumb or just irrational zealots should be able to get it. I'd like to think you're neither, but as you missed the point it's kinda hard to tell. The point is that security in Microsoft's server line products are much better now than they historically have been, and are at a level that makes them an acceptable choice for deploying on the public internet. You can no longer really say "I'm not deploying Windows Server because it's insecure" because it's akint o saying "I'm not deploying Linux because it's insecure", neither is really better than the other now. The only thing I'll agree is a fair point is that if a major exploit in the OS did arise, then in Linux you'll get a faster response, or can of course fix it yourself, whereas with Microsoft you've got a choice of potentially downing your system, or leaving yourself vulnerable until they get their arse into gear and release a patch because of the inherent problem with proprietary software in this respect, but it's really about theory vs. practice, and this sort of thing hasn't been an issue in years. Perhaps sometime soon it will be and issue, and FOSS fans can laugh at anyone who deployed Windows server publicly, but until then it's mere theory, and doesn't necessarily reflect what happens in practice.

      10, probably even 5 years ago, I'd have had qualms about deploying Windows server on the public internet tbh, but with 2008 and 2008 R2 I'm not so bothered, it can hold it's own nowadays as well as any Linux server. Ultimately now the problems are more down to 3rd party application services, and web applications running on them.

      The reason most attacks nowadays are SQL injection attacks and the like is because remotely rooting a Windows server just isn't as easy as it used to be. Nowadays it's easier to attack the web application or whatever, and hope some idiot has used the same password on the web app as they have on the rest of their network. This kind of attack is really OS neutral, which again highlights the shrinking difference in levels of security between the likes of Linux and Windows server nowadays- attacking either directly can be like banging your head against a wall, so it's better and easier to just attack the apps and application services.

      So go carry on reading my post now you understand the point, you may not like what you read, but if you dislike Microsoft it's better to be aware of what your enemy is doing, than live oblivious to reality, telling yourself they suck, they're not threat etc. otherwise you might find yourself 5 years down the line in a world more filled than ever with Windows Servers and be sat thinking to yourself "How did that happen?".

  125. Yes by Anonymous Coward · · Score: 0

    Yessy yeserton

  126. .NET was all about vendor lock-in. by master_p · · Score: 1

    Microsoft could have easily adopted C++ as its programming language of choice. After all, if little Trolltech can make Qt, Microsoft could do better.

    But, adopting C++ means your code can be ported to other platforms easier than a totally proprietary platform. Thus, Microsoft had VB, and then .NET. Anyone investing in those technologies was locked into Windows.

    But now that the computer world has a lot more diversity (with all the consoles, phones and pads), Microsoft no longer is in a dominant position, and hence people don't chose Microsoft to develop their applications, and therefore a very proprietary platform like .NET doesn't encourage developers to chose the Microsoft platform.

    And that's why Microsoft's love for C++ is reborn.

  127. .NET has something for everyone by Anonymous Coward · · Score: 0

    .NET has democratised both application & web development. It has provided lucrative opportunities for a small number of competent programmers who spend their time fixing the mess that the rest of .NET's drag & drop, coding-by-numbers 'developers' produce, usually in the time it takes the average .NET application to open.

  128. Kind of Missing the Point by NulDevice · · Score: 1

    The fundamental premise of this article is a bit flawed. It assumes that .NET was created to write windows applications instead of C++/MFC.

    If we look at history here, .NET came along with a pretty clear objective - keep people from switching to Java. In the mid-late 90's there were throngs of Business IT developers who were looking to get their stuff online in the .COM boom. Their main choices were ASP, Java and a bunch of smaller choices like ColdFusion and such. ASP became popular with IT shops, but it quickly became clear that it lacked the framework support of Java, was all top-down, didn't scale especially well, lacked a lot of important features, and was easily spaghetti'ed. And with new programmers coming out of the colleges and tech schools and so forth with backgrounds in Java instead of Pascal or Basic, Microsoft realized that they were going to lose their dev marketshare quick if they didn't somehow get on board the web-focused, OO train, particualrly one that would allow them to integrate their web-dev platform and desktop dev platform (at least in some small, marketable way).

    Hence, .NET.

    Yeah, it's gotten a little ridiculously large, it had a shaky start (v1.0 was pretty dreadful) and some of the language features were slow in coming (how long was it before we got generics?), but strategically speaking it was a smart move for MS - it kept their very large business development base from abandoning them for a competitor. And that is a HUGE market for them. .NET also gave MS room to grow. Adding chunks to the framework like AJAX or LINQ wasn't exactly simple, but it was a lot easier than it would've been if they'd stuck to the old VB model.

    It's never really been about whether it's better or worse than MFC or whether Microsoft wants to focus everything on managed code. It's always been about "keeping enterprise developers from abandoning Microsoft for competitors like Java." It's doubtful they'll abandon it entirely, and if they do, it'll be a long slow transition to something else, simply because they've staked a huge and very IT-conservative enterprise market on .NET as a complete end-to-end platform.

    --

    ----
    "I used to listen to Null Device before they sold out."

  129. Let it pine for the fjords. by frambris · · Score: 1

    Fair competition is almost always a good thing. .NET probably pushed some good things into other languages like Java. However, let it pine for the fjords.

  130. Not a reflection of reality by Anonymous Coward · · Score: 0

    The person who wrote the underlying article is an idiot. These technology choices aren't an all-or-nothing proposition. If Windows 8 supports an HTML5/JavaScript development model that does NOT mean that other models aren't supported either. Plenty of apps will continue to be developed in .NET, as plenty of things are still developed using C++. The real goal of the future is the right tool for the right job.

  131. c# is the iPhone for Developers by Anonymous Coward · · Score: 0

    im programming now a few years applications with the .net-Framework. Microsoft isn't fameous for creating end-user solutions that are exciting or revolutionary but for developers they created, i think, just that.
    Its like, you get a IDE that fits perfekt for the .Net Environment. You get a language that is - compared to c/c++ and java - beautiful. You get a Framework that is thought-out and like a fine machine that helps you to do what you want to do. Its like the iPhone.

    And beside of that, the author of that article mix up the technologies for the front-end and the rest. In fact he is right, Microsoft does some confusing thinks about how they will support WPF, Winforms etc. in future. But that doesn't change the 80 % of the applications intelligence at the back-end. For that you can go very fine with .net. That intelligence can be on a server - in the cloud or somewere else.
    A classic windows application on the client that need to be installed will be dead anyway.

  132. Have you ever even developed something in .NET? by Anonymous Coward · · Score: 0

    I find it hard to believe that you have ever developed anything in .NET. For the developer of business applications, developing in .NET is easier than any other MS-centric system out there. Besides supporting a huge variety of languages and programming systems, it has a very easy-to-use API that allows you to access pretty much anything you want. And if you need to get down to the Windows API level P/Invoke is not that hard to implement. Stick to you your Java if you want, but I'll program using C# and .NET anyday.

  133. Re:Systems Languages vs Managed/Application Langua by fwarren · · Score: 1

    People keep using the term "manged code" in a manner I do not understand. Per WikiPedia Managed Code = Code managed by the CLR, thus by extension, code that runs on a VM. So if I write C++ that compiles to a normal binary, it is unmanaged code. If I write C++ that compiles to bytecode that runs on the CLR, then it is managed code. Managed Code certainly sounds better than Unmanaged Code. Wtih unmanaged having so many negative connotations who would want the old broken down badness, instead of the new hotness?

    If "the value of managed code" means it byte code and runs on a VM that only runs on the win32/win64 platform then that sucks. If what people mean is garbage collection, and a rapid development gui/debugger then that is another thing. However at that point, I don't think the term "managed code" is appropriate. Unless you are also saying that Java is managed code. Since it is bytecode that runs on a VM that provides a garbage collector.

    --
    vi + /etc over regedit any day of the week.
  134. Re:Java / .Net / BASIC by JoeMerchant · · Score: 1

    Everything (computer language wise) is a good deal faster than when I was 12 - and also a good deal more muddled - then it was relatively simple, less than a dozen "languages" total, and they broke down into 3 categories: Assembly, Compiled (automagic writing of usually (at the time) non-optimal assembly), and Interpreted. For a given problem, you could usually count on a slowdown factor from Assembly of ~2 for compiled and ~50 for interpreted. For any significant project, you could also count on a code writing time speedup factor of 10 to 100 using a compiled or interpreted language vs Assembly. Today, it "feels" like there are hundreds of "languages" to choose from, and performance of the modern ones has been converging on both the execution speed and development time sides. The three traditional distinctions are mostly gone, and even hardcore assembly writers usually start with a high level language and then just tweak the important parts.

    If .NET floats your boat, stay with it - it's not evil or lame. I have stayed away from it because skills developed for it don't cross well to embedded / Linux / Mac - the "speed" thing is mostly irrelevant today, unless you're in a $10/copy embedded system with 64K of RAM running at 4MHz, on 0.1mW of power.

    But, still, JIT is the very same thing that 1982 TRS-80 BASIC did when you ran a program - the main improvement in .NET and modern Java is that they only do the JIT step once and cache the "native code" that everybody is so gaga for, but it's still at run-time. If the byte-code were portable to anything but Windows, I might be impressed, but, then, I've been waiting to be impressed by Java for nearly 15 years...

    The one thing that has impressed me for performance + portability + ease of implementation is Qt. It's not the end-all, but it serves very well as a robust library of convenience routines, is more (easily and gracefully) portable than anything else I have ever seen, and the C/C++ skills that I keep sharp while using it are also very useful in other environments.

    On the downside, when I go looking for a job, they aren't as plentiful as .NET positions - but the higher paying ones tend to be easier to find.

  135. Re:Java / .Net / BASIC by tibit · · Score: 1

    I agree about Qt. Have been using it seriously since 2.x times.

    The TRS-80 BASIC, and most other basics of that era, did not do any sort of JIT. It didn't even do what Python does -- no bytecode interpretation. The level 1 BASIC was a port of Tiny Basic, I remember that I first saw TB in Dr. Dobb's Journal of Computer Calisthenics and Orthodontia that my dad got his hands on -- behind the Iron Courtain, too. This was IIRC an untokenized, on-the-fly interpreter. The level 2 BASIC was MS BASIC, and it too doesn't use a bytecode, just tokens. There is a difference between bytecode and tokens: the bytecode represents assembly-type operations on a low-level virtual machine of some sort. The tokens are simply a more compact representation of the source code, and are fairly high level. The tokenized stream is fed to a parser that eventually calls upon the evaluator with the abstract syntax expression tree of some sort. Most of this is constructed on the fly, since the memory is tight.

    Luxor's ABC-800 had a very fast BASIC that did use bytecodes, and was much closer to today's Python than other BASICs of the time. I have a bunch of ABC-802s and their BASIC is faster than MS-BASIC was on PC-XT.

    --
    A successful API design takes a mixture of software design and pedagogy.
  136. Nonsense by Grismar · · Score: 1

    Nobody says you have to like .Net for anything, you're entitled to your negative opinion.

    But there is something wrong with this type of reasoning: platform X does not fulfill all my expectations of it, therefore platform X is all a mistake.

    Otherwise, along the same lines, one could easily argue that "Java was all a mistake" and considering that most developers have left it by now, "C++ was all a mistake" too. Now the entire field of software development is quickly starting to look like "it's all a mistake". Unless of course this is your actual opinion, which begs the question if there was a particular reason to focus on .Net.

  137. Nada se perde ou se cria! Se transforma! by Anonymous Coward · · Score: 0

    Não creio que o .NET vá deixa de existir. É uma das coisas mais certas que a Microsoft resolveu bancar!

    Talvez exista ponto que precisam ser melhorados, mas é tão infinitamente mais benéfico!

    Com as mudanças radicais no comportamento dos usuários, os sistemas tiveram que evoluir, e isso leva cada plataforma seja .NET, Java, ObjC, etc, a buscarem evoluções para atenderem as novas necessidades que esse novo comportamento exige.

    Mudanças virão! e isso é extremamente necessário sempre!

  138. Mike needs a doctor - Anshuman by Anonymous Coward · · Score: 0

    Who is this 'mikejuk' ?

    I have never heard this name in the programming world.... Guys..this person is trying to gain cheap publicity in the same way in the same way monika lewinsky gained publicity by blaming Bill C. .NET platform is the most advanced technology till date. It has everything a programmer needs ..desktop apps, web apps, web services, windows services, game development ..

    The success lies in the fact that more than 50% of the software currently developed is in .NET ...

    Mike , if you have really gone to school ..atleast for some period of your life, then talk in numbers....

  139. Scuse me? by Anonymous Coward · · Score: 0

    .Net has an enormous following when it comes to building business applications. And is only gaining steam as it builds on itself and further simplifies complexities of distributed systems (WCF for SOAP and REST), modular web development (MVC) and data access (LINQ). Yes, there have been some costly missteps (i.e. asp.net webforms), but it works great for most application needs out there.