Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
Microsoft Open Source Software

Ask Slashdot: Is an Open Source .NET Up To the Job? 421

Rob Y. writes: The discussion on Slashdot about Microsoft's move to open source .NET core has centered on:

1. whether this means Microsoft is no longer the enemy of the open source movement
2. if not, then does it mean Microsoft has so lost in the web server arena that it's resorting to desperate moves.
3. or nah — it's standard Microsoft operating procedure. Embrace, extend, extinguish.

What I'd like to ask is whether anybody that's not currently a .NET fan actually wants to use it? Open source or not. What is the competition? Java? PHP? Ruby? Node.js? All of the above? Anything but Microsoft? Because as an OSS advocate, I see only one serious reason to even consider using it — standardization. Any of those competing platforms could be as good or better, but the problem is: how to get a job in this industry when there are so many massively complex platforms out there. I'm still coding in C, and at 62, will probably live out my working days doing that. But I can still remember when learning a new programming language was no big deal. Even C required learning a fairly large library to make it useful, but it's nothing compared to what's out there today. And worse, jobs (and technologies) don't last like they used to. Odds are, in a few years, you'll be starting over in yet another job where they use something else.

Employers love standardization. Choosing a standard means you can't be blamed for your choice. Choosing a standard means you can recruit young, cheap developers and actually get some output from them before they move on. Or you can outsource with some hope of success (because that's what outsourcing firms do — recruit young, cheap devs and rotate them around). To me, those are red flags — not pluses at all. But they're undeniable pluses to greedy employers. Of course, there's much more to being an effective developer than knowing the platform so you can be easily slotted in to a project. But try telling that to the private equity guys running too much of the show these days.

So, assuming Microsoft is sincere about this open source move,
1. Is .NET up to the job?
2. Is there an open source choice today that's popular enough to be considered the standard that employers would like?
3. If the answer to 1 is yes and 2 is no, make the argument for avoiding .NET.
This discussion has been archived. No new comments can be posted.

Ask Slashdot: Is an Open Source .NET Up To the Job?

Comments Filter:
  • Why bother? (Score:4, Informative)

    by BarbaraHudson ( 3785311 ) <<barbara.jane.hudson> <at> <icloud.com>> on Saturday December 20, 2014 @09:12PM (#48644097) Journal
    If you're already using something that works (and who isn't), what's the motivation to change?
    • Re: (Score:3, Informative)

      by Frosty Piss ( 770223 ) *

      If you're already using something that works (and who isn't), what's the motivation to change?

      As much as the Slashdot Hardcore might hate it, .NET has a huge presence in "enterprise" software and IT. It behooves one to know something about it, it's a popular too that might get you a job... On the other hand, there are many still on the Java boat.

      • Re: (Score:3, Insightful)

        by Kagetsuki ( 1620613 )

        .NET is slowly beeing weeded out of the enterprise though and that's a trend I don't want to see diminished by devs picking up .NET because it's now "open source". It's OK to hate .NET, open source or not.

        • Re:Why bother? (Score:5, Insightful)

          by jd2112 ( 1535857 ) on Saturday December 20, 2014 @10:31PM (#48644449)

          .NET is slowly beeing weeded out of the enterprise though and that's a trend I don't want to see diminished by devs picking up .NET because it's now "open source". It's OK to hate .NET, open source or not.

          Citation please? I've been seeing a gradual increase in .NET development, And I get called frequently by headhunters looking for .NET developers despite that software development is not my primary job function.

          • Re:Why bother? (Score:5, Informative)

            by curmudgeon99 ( 1040054 ) on Saturday December 20, 2014 @11:17PM (#48644613)
            Java is killing it all around the United States. My company just had me rewrite a series of apps to remove the entire MS stack from .NET to SQLServer.
            • by AqD ( 1885732 )

              For what reasons? Here .NET has been replacing Java in all areas for many years.

              • Re:Why bother? (Score:5, Informative)

                by ahabswhale ( 1189519 ) on Sunday December 21, 2014 @02:30AM (#48645237)

                In my city (Minneapolis) Java (and other JVM languages) completely dominates. I would guess most cities end up leaning one way or the other.

                • Re: (Score:3, Insightful)

                  In my city, PHP completely dominates... that is of course unless I look at things asking for skills other than PHP.

                  I did a few searches on Monster.com and found that Java and .NET are about the same. There is however a single employer posting way more java jobs in Minneapolis.

                  This is actually not meant to be a troll or rude, but having traveled 42 states and 60+ countries, Minneapolis, while being an amazing place and a diamond in the rough was strangely, from an employment perspective, one of the most unus
          • Re:Why bother? (Score:5, Interesting)

            by Kagetsuki ( 1620613 ) on Saturday December 20, 2014 @11:26PM (#48644649)

            Uhh... .NET usage has been falling for many years now, that's why they made it open source to try and recover from that trend. I'm confused as to why you are asking for citation when the whole discussion is sort of based on this issue. Also note that headhunters looking for .NET devs could be the result of devs *leaving* .NET causing a lack of hands and thusly an increased need.

            If you want a more detailed answer: .NET was generally used in these huge systems where end to end would be built with the same framework. The thing is .NET is not always the "right tool for the job" and increasingly it is rarely the framework devs want to work with. Because of this the general trend is to have more modular systems where each component is built separately and just connected with an API or some cross-component communication protocol (EG Rails server app with API and native mobile clients).

            Of course there are a variety of mertis and demeris, cost issues, etc. to consider so I'm not going to tell you to get off .NET but it would probably be a good idea to keep an open mind and to at least try out some other frameworks (and languages) in your spare time. That "gradual increase" you are preceiving in .NET could end and it would be good to have a fallback; not to mention you can reverse-import some tricks from other frameworks into .NET once you know them (or bring some tricks from .NET into other langauges or frameworks).

            • Re: (Score:3, Interesting)

              by Jeeeb ( 1141117 )

              Uhh... .NET usage has been falling for many years now, that's why they made it open source to try and recover from that trend. I'm confused as to why you are asking for citation when the whole discussion is sort of based on this issue. Also note that headhunters looking for .NET devs could be the result of devs *leaving* .NET causing a lack of hands and thusly an increased need.

              As far as I can see the premise of the original question is that 'my employees like .NET but I'm happy in C and about to retire, should I bother learning it'? Nothing about that implies that .NET is fading. In fact it seems to imply the exact opposite to me. In the hypothetical situation that it did imply that .NET is fading though, that still wouldn't make it a fact. Is there actual evidence that .NET is failing? All I can see on this Slashdot thread is mis-matched anecdotes.

          • Oh bullshit. Java dwarfs .NET.

            • In which ways? C# has historically been years ahead of Java in terms of features and flexibility. Now, if you want to argue about JVM vs. .NET, then you might have an argument.
              • I'm not comparing features, but penetration.

              • "C# has historically been years ahead of Java"

                Given that Java is older than C# by more than a decade I have problems accepting your assertion that C# has historically been years ahead of Java at nothing.

                • by bondsbw ( 888959 )

                  Also this is completely wrong:

                  Given that Java is older than C# by more than a decade

                  Java 1 was released in 1996, C# 1 was released in 2002.

        • Re: (Score:3, Interesting)

          by Crazy Taco ( 1083423 )

          .NET is slowly beeing weeded out of the enterprise though and that's a trend I don't want to see diminished by devs picking up .NET because it's now "open source". It's OK to hate .NET, open source or not.

          Lol, are you serious about that? That's not true at all! I work at a fortune 500 company and it's the exact opposite: it's Java that everyone is trying to weed out. There are several reasons for this, but they include these three things: Java's performance is slower than .Net, Java's IDEs are not as good a

          • Re:Why bother? (Score:5, Insightful)

            by DuckDodgers ( 541817 ) <keeper_of_the_wo ... inus threevowels> on Saturday December 20, 2014 @11:23PM (#48644637)
            .NET performance isn't better, I don't know where you got that from. .NET startup is better - non-Micro-Edition versions of the Java Virtual Machine load the whole Java language standard library at startup, and it's a pretty big standard library, so it is slower and uses more memory than a .NET application at startup. But the Java Virtual Machine has the HotSpot ( https://en.wikipedia.org/wiki/... [wikipedia.org] ) which does runtime alteration and optimization of code. What that means is that for long-running code - which is of course the common case for web servers - the Java Virtual Machine monitors the execution profile of methods and once a method is executed around 10,000 times it will examine it and if it can find common cases or frequently used code paths it will dynamically rewrite the method or inline it to make it faster. As far as I know, .NET has nothing similar - performance never changes.

            The Java Virtual Machine is also a runtime. .NET supports C#, VB.net, F#, Nemerle, and a number of other languages. The Java Virtual Machine supports Java, Ruby, Python, Groovy, Scala, Clojure, Scheme (Kawa), Lisp (ABCL), Javascript, and a number of other languages.

            And last but most importantly, it's been more than five years since I rejected Microsoft options out of hand for technical reasons. But I still reject them for ethical ones. This is a company that intentionally modified APIs to break third party applications, lied about software releases and features to hurt competitors, made business deals that are illegal under US anti-trust law with OEMs to block competition, waged countless FUD campaigns throughout its life, and wields its intellectual property resources like a weapon of mass economic destruction to squash innovative competitors. Where would the world technology industry be today if we didn't have this trillion dollar parasite doing more work than any other factor to stifle competition?
            • Re:Why bother? (Score:5, Interesting)

              by locketine ( 1101453 ) on Saturday December 20, 2014 @11:47PM (#48644721) Homepage

              .Net also does dynamic and re-usable runtime optimizations. You can also instruct it to inline certain methods, load certain resources in the background that you expect to use but the runtime will do the same thing, just maybe not as intelligently. "Code Complete 2" has some code execution speed examples in it and most of them show C# running faster than Java; The author was comparing simple ops like method calls, conditionals, dictionaries, arrays, etc.

              • .Net also does dynamic and re-usable runtime optimizations.

                Everyone knows this. We know this because they paid a lot of money to Sun for violating their patents for such optimizations.

              • Re: (Score:2, Funny)

                by ahabswhale ( 1189519 )

                Performance comparisons from a Microsoft employee make C# look faster than Java? Fascinating.

            • by ndykman ( 659315 )

              Performance is a tricky issue, but .Net does the same options as Java does in terms of dynamic optimizations. Also, the platform allows for pre-compilation of assemblies, which can really add to performance if used correctly (again, startup and memory performance). And .Net Native seems to be promising in some cases (potential for POGO based optimization), but it's in preview, so we have to see how it really plays out.

              It's true that the Ruby and Python versions that run onto of .Net have stalled. There is a

              • Re: (Score:3, Insightful)

                but if the Apple model had prevailed, I think technology would not be as far along. But it's impossible to say what if.

                That's a silly thing to say. If Apple wasn't around, what would desktop PC makers have looked up to the past fifteen years?

                We'd have had PS2 connectors, floppy drives, beige boxes, flaky suspend/resume, x86 BIOS, 32-bit processors, no built-in 3D acceleration, no built-in WiFi, 100mb ethernet, etc. for even LONGER than we did. Do you remember having to buy PCI-USB cards, PCI WiFi adaptors, unaccelerated desktop interfaces, rolling the dice on resume from sleep, PS2/USB converters?? I do.

                What exactly is

            • Re:Why bother? (Score:5, Interesting)

              by shutdown -p now ( 807394 ) on Sunday December 21, 2014 @04:00AM (#48645461) Journal

              Perf of JVM vs CLR is a complicated topic. Generally speaking, JVM (HotSpot, specifically) has an edge when it comes to optimizing code, but CLR has an edge in that some of the language semantics generate more efficient code to begin with. User-defined value types (structs) and non-type-erased generics thereof make a big difference there.

              HotSpot is better at optimization because it can afford to be slower - it can interpret the bytecode for rare code paths, and only kick in the full-fledged optimizer after it figures out that something is worth optimizing. CLR doesn't have a bytecode interpreter at all, it always JIT-compiles on first call - which means that the compiler has to be fast enough, and that in turn means shedding slow but effective optimizations.

              Of late, .NET Native is an interesting piece of tech that precompiles .NET apps using VC++ compiler backend. So you get all optimizations in your .NET code that C++ normally gets. Of course, it's still slower due to the more deterministic but less memory-friendly sequencing and memory model, and all the extra runtime checks, but it's still faster than JIT (and, I strongly suspect, HotSpot, though I don't think anyone has profiled them yet).

          • So I really don't understand where this bashing of .Net comes from, but I'm guessing a lot of it is from open source fanboys that love to hate Microsoft and have never taken time to use the recent (last 3-5 years) iterations of it's products.

            It's not about perceived quality, although the perceived quality is fairly low because all of the identifiably .NET software I've used so far has been slower than the competition... but I'm willing to imagine that the software I've used has been of particularly poor quality itself, and it's not .NET's fault. It's because I don't trust Microsoft. Now that they are apparently open sourcing the interesting parts of .NET, their primary influence over the language should be only their control over the best IDE,

          • Re:Why bother? (Score:5, Interesting)

            by curmudgeon99 ( 1040054 ) on Saturday December 20, 2014 @11:30PM (#48644667)
            Not true.
            Monster:
            • NYC: 134 jobs Java, 74 .NET
            • Chicago: 59 jobs Java , 45 jobs .NET
            • San Francisco, CA: 116 jobs Java, 16 jobs .NET
            • Seattle: 38 jobs Java, 35 jobs .NET
            • Redmond, WA: 39 jobs Java, 32 jobs .NET

            Dice

            • NYC: 863 jobs Java, 330 jobs .NET
            • Chicago: 293 jobs Java, 197 jobs .NET
            • San Francisco: 512 jobs Java, 115 jobs .NET
            • Seattle: 301 jobs Java, 74 jobs .NET
            • Redmond, WA: 13 jobs Java, 34 jobs .NET

            So, ONLY on Dice and ONLY in Redmond, WA--Microsoft's home--are there more .NET jobs than Java. Everywhere else Java kills .NET.

            • Did you count the jobs that only listed C# or VB.NET in the .NET category?

              • by jrumney ( 197329 )

                Did you count the jobs that only listed C# or VB.NET in the .NET category?

                Last time I tried doing this I found that C# pulled in a lot of C jobs. And if you're going down that path to be fair to .NET, you'd better also be fair to Java by including jobs that only list J2EE or Android.

                • Yes, you should (and you should also include e.g. SharePoint for .NET). But without doing all that stuff, the numbers are basically meaningless.

          • 1. I'm really sorry you wrote that long comment because I'm not necessarily disagreeing with you and I'm not some Enterprise Java nut (I actually really, really hate Enterprise Java).
            2. "Lol, are you serious about that? That's not true at all! I work at a fortune 500 company" Awesome tone there; fuck you. So your big super rich company got sold on .Net and you're switching over to it. Good for you? I honestly don't care. Though I totally agree on most of your points comparing .Net to Java and by that crite

          • by qpqp ( 1969898 )

            When haven't you recently turned on your computer only to have Java say an update is ready to install, and then pop up it's really slow installer to do it (that tries to install Ask.com as your homepage to boot)?

            I don't do Windows, you insensitive clod. Things don't "pop up" and say updates are needed.
            Also, the reference implementation is OpenJDK [wikipedia.org].

            Don't get me wrong, Java (and the JVM) has it's flaws, but to bind myself to MS stuff again? Fool me once...

          • by raymorris ( 2726007 ) on Sunday December 21, 2014 @01:31AM (#48645105) Journal

            You're comparing 1990s Apache to 2013 IIS. If you care to know what your talking about, you may wish to have another look to too what has changed in the last 10-20 years. Here's one example that's not only way out of date, but also wrong even for that time period :

            > why is Apache still spawning processes for every request that comes in... don't they realize the overhead of that??).

            Prior to the release'of Apache 2.0 in 2000 (fourteen years ago), Apache pre-spawned a group of processes and each process would handle one request AT A TIME. It never spawned a process for each request, it had a pool of processes that were reused. Pretty much just like how modern browsers now run separate tabs in separate processes. The #1 reason for that was to allow Apache to use libraries (like GD) that weren't thread safe. If Apache were multi-thread rather than multi-process, you couldn't use those libraries.

            Note also that Apache was designed for SERVER operating systems like Unix, Linux, and BSD, not for a desktop OS. On a server OS, forking a few processes at startup isn't that resource intensive- far less intensive that preloading IE and Office at startup.

            Of course like everything in Apache, the multiprocessing is done by a module, so you can still use processes rather than threads if you want to. You can do that and by choosing sane settings for the number of spare processes you won't fork new ones more than a few per hour.

            > A lot of the performance reasons that are behind people switching from Apache to Nginx

            I tested this very thoroughly. 90% of the performance difference of Nginx, which only occurs on some systems, is that it essentially forced noatime, regardless of the administrator's selection of mount options. Back when noatime wasn't the default, less-knowledgeable admins who didn't know to use noatime would see a significant performance benefit from Nginx vs Apache. Knowledgeable admins would mount with noatime, and find that Apache and Nginx performance was almost identical. Knowledgeable admins would also comment out the 90% of available modules they don't use, like mod_speling, and set MaxClients etc appropriately. With a reasonable configuration, Apache can give better performance than Nginx, depending on which benchmark you choose. In all cases, Apache provides more PREDICTABLE performance because it actually works as documented, while Nginx has documentation copy-pasted from elsewhere, but their code isn't actually the same as server they copy-pasted documentation from.

          • by ls671 ( 1122017 )

            > both in ease of administration and more importantly, in performance (why is Apache still spawning processes for every request that comes in..

            Apache has had thread model (no need to fork new processes) and EVEN nginx like event model, with fewer/threads than connections for quite a while. Update your info. We run latest IIS and apache on production servers and IIS seems to do pretty well but saying the things you say about apache isn't fair and false in some cases.

            In fact, we run instances of apache wit

        • by jsrjsr ( 658966 )
          Really? Weeded out? I've been developing in C# since .NET 1.0 showed up. Around .NET 2.0, we wrote our first full product in .NET. Our next new product uses .NET 4.5. So far I've heard nothing about .NET getting "weeded out" from anyone at my company.
          • You are a .NET dev in a .NET company with .NET devs. Why on earth would someone there just up and say "Oh hey, .NET isn't as popular as it was before and many new systems at other companies are being developed in other frameworks. Let's just change all our stuff at increidble cost and huge risk with a massive learning curve".

            Of course you're not going to hear that and I'm most certainly not going to tell you to drop or weed out .NET for where you are at. But please be aware your personal experience in your

      • Re:Why bother? (Score:5, Insightful)

        by BarbaraHudson ( 3785311 ) <<barbara.jane.hudson> <at> <icloud.com>> on Saturday December 20, 2014 @09:47PM (#48644265) Journal

        I think you missed my point, so please allow me to elaborate. For someone who wants to go from Windows to other platforms, an open-source .NET makes sense, but only if their code is already in .NET.

        For people who are already using toolchains other than .NET that support their products on multiple platforms, there's no reason to switch. It's just "re-implementing the wheel" with another language.

        And since the official Java implementation is open source (OpenJDK) [wikipedia.org] and has been for years, why not just stick with it if you're already using it? So really, the majority of people who aren't already using .NET have no real reason to switch.

        • Re:Why bother? (Score:4, Interesting)

          by Bite The Pillow ( 3087109 ) on Saturday December 20, 2014 @10:54PM (#48644531)

          You ask why switch... but that is not the only option.

          I have enough experience in Java to know how to write Java style, with Java conventions. And the problems it can cause. I have enough experience with Java developers writing .NET code to know which questions you have to ask to see if someone can code by copying Stackoverflow or Codeproject examples, or really knows their business.

          If you have a .NET focused person who also claims Java experience, how do you know what questions to ask if you don't know .NET?

          My focus is in hiring or interviewing. At a tech lead level you might have to decide whom to trust when deadlines matter and skillsets are a mystery. As a sole developer, you may have interview questions on both languages if you put them down, so they can decide where you are most needed.

          Ca read .NET and write Java? What if they need someone who can read/maintain Java and write .NET?

          I've always said that learning a competing language shows you the faults in your own. If there are no faults, you can defend that statement.

          You say why bother, I say why not?

          1. Is .NET up to the job?
          As I understand it, only parts of .NET are open source at the moment. Platforms other than Windows may not be supported, and the CLR is not yet open. Your requirements determine if it is up to the job. I'm guessing that for most people, the closed Windows implementation may be, but the open source part might not be.

          2. Is there an open source choice today that's popular enough to be considered the standard that employers would like?
          Java, but it is hardly a standard requirement. I'm answering no to this one.

          3. If the answer to 1 is yes and 2 is no, make the argument for avoiding .NET.
          Answer #1 has already made that argument for you. I'm guessing you didn't understand what is or is not open source now.

          In particular, some of .NET CLR is a managed wrapper of the Windows API, much like MFC was an object-oriented wrapper. I don't see those bits being valuable cross-platform without an abstraction layer like WINE in between, and then the utility to people who use GTK or wxWidgets will be marginal. Why use it if you already know another windowing library?

          "Why not learn it?" of course, but since we're talking about OS-level internals now, and things that are not supported by the current state of the .NET release, it's fair to say that the argument to avoid it is obvious.

          Disclaimer: I get paid to do .NET, but I don't get paid to convince you to do the same.

          • If you have a .NET focused person who also claims Java experience, how do you know what questions to ask if you don't know .NET?

            If I were interviewing someone who programmed in either .NET or Java who had trouble picking up the other language, I would absolutely not hire them. They are both so similar that if you can't pick up the language, then you are incompetent.

            • Re:Why bother? (Score:5, Informative)

              by rjstanford ( 69735 ) on Sunday December 21, 2014 @01:53AM (#48645149) Homepage Journal

              Its not the language, its the libraries, the conventions, the external resources. I picked up Ruby and Python, Node and even dusted off my PHP chops to write some modules for a client a few months ago. It wasn't hard, but I spent 20% of my time on the language, 50% figuring out what libraries to use, and another 30% making damn sure that my novice attempts were at least idiomatic and didn't come across as novice (including having them vetted by more seasoned users).

              Anyone can write a for() loop in anything. Knowing the massive standard libraries for a language well enough to leverage them (for example, in Java I still see people dragging in external Base64 implementations that haven't been needed in a decade but once were) takes far, far longer.

              I want people to write clean code that will be well understood and maintainable by others 5 years from now, not someone who just figures out how to get code to compile.

              • Ruby, Python, Node, and PHP are distinct, with distinct styles. C# and Java are so similar that you can forget which one you are looking at sometimes. The biggest difference in those languages on a day-to-day basis is remembering whether to capitalize the first character of your methods and variables.
                • This was true circa Java 1.4 / C# 1.0. Since then they've got rather different model for generics, lambdas, and a bunch of other stuff. C# has LINQ, dynamic and iterators on top of that. There are enough differences to matter.

                  • There are enough differences to matter.

                    Not really.

                    • This is subjective. But it certainly goes beyond "remembering whether to capitalize the first character of your methods and variables", at least if we're talking about idiomatic C# vs Java.

                      Granted, Java is catching up with lambdas and the associated library stuff in Java 8. But it is still hampered by type erasure, and libraries haven't picked up on their use yet, while in C# the patterns that only really make sense with lambdas have been idiomatic in libraries for a few years now.

      • I welcome it if it is more open and cheaper. 100k to start a website for unlimited licenses is freaking nuts.

        But that was a few years ago.

        MS is changing because they have lost and can no longer use leverage like they once did. Witness IE and visual studio where lots of free competition exists?

        I welcome an alternative to java and hopes it encourages python and php to get their acts together. More competition the better for everyone

      • by jd2112 ( 1535857 )

        If you're already using something that works (and who isn't), what's the motivation to change?

        As much as the Slashdot Hardcore might hate it, .NET has a huge presence in "enterprise" software and IT. It behooves one to know something about it, it's a popular too that might get you a job... On the other hand, there are many still on the Java boat.

        The question now is "Which is the greater Evil and/or threat to Open Source: Microsoft or Oracle?" Personally I think Oracle wins hands down on both counts.
        I have always preferred .NET to Java, with the main drawback to .NET is that in the past its cross-platform functionality has been quite limited.

        • I have always preferred .NET to Java,

          Why? A sincere question, not a snark. Is it multi-programing-language support? The Microsoft IDE (VS?) What is it that wins over the Java ecosystem?

          with the main drawback to .NET is that in the past its cross-platform functionality has been quite limited.

          Until Mono came along, I assume you mean. I have little experience with Mono. Those who do, please weigh in: does Mono offer equivalent cross-platform flexibility to Java run-time environments?

          • by jd2112 ( 1535857 )

            I have always preferred .NET to Java,

            Why? A sincere question, not a snark. Is it multi-programing-language support? The Microsoft IDE (VS?) What is it that wins over the Java ecosystem?

            Just personal preference. I've used both and at least for me Java tends to induce more headaches than C#.

            with the main drawback to .NET is that in the past its cross-platform functionality has been quite limited.

            Until Mono came along, I assume you mean. I have little experience with Mono. Those who do, please weigh in: does Mono offer equivalent cross-platform flexibility to Java run-time environments?

            Mono never really caught on in the Linux community due to general distrust of Microsoft, as many people believe that if Mono ever caught on Microsoft would attempt to crush it. Hopefully Microsoft releasing .NET un

    • Re:Why bother? (Score:4, Informative)

      by Anonymous Coward on Saturday December 20, 2014 @10:12PM (#48644373)

      Two words: Visual Studio. As a tool for productivity, Visual Studio is the best debugger out there and has been for 25 years. And it runs on Windows, which is the desktop OS of choice as far as corporate America is concerned. Particularly for IT managers at businesses outside the software industry, that looks mighty attractive when they're deciding on a platform for their inhouse apps. .NET is as good or better than Java for most purposes and the managers don't care about the FOSS ideology and Microsoft's past antitrust abuses, at least not when they're wearing their company hats.

      • Re:Why bother? (Score:4, Interesting)

        by digsbo ( 1292334 ) on Saturday December 20, 2014 @10:30PM (#48644443)
        Agree with AC. I've done a number of different languages, and used a few different IDEs (including Eclipse, Netbeans, and whatever WebObjects used), and VS is the best of those, hands down. I still have to argue with C guys at the office that for application development (not bit slinging) that automatically memory managed languages like C# are superior for productivity to C/C++. I am thrilled that developing in visual studio and deploying to Linux (without limitation) is a realistic option in a couple years.
        • That still doesn't address my point - you're not going to orphan an existing code base to switch to another language and waste your time essentially re-inventing your wheel.
          • by qpqp ( 1969898 )

            you're not going to orphan an existing code base to switch to another language and waste your time essentially re-inventing your wheel.

            Only think that is generally considered in such cases is writing a wrapper around it and calling it a (legacy) black box. But who in their right mind would ever write a wrapper around the JVM for .net, except maybe emscripten?

      • Visual Studio keeps forgetting that it is primarily a text editor. Never, ever, ever do stuff in the main thread that would stop me from entering text. I suspect this is mostly because they allow 3rd parties to run code within the editor process.
  • by MemeRot ( 80975 ) on Saturday December 20, 2014 @09:17PM (#48644125) Homepage Journal

    Which is probably more important than anything else. The benefit of open sourcing .net core is that mono will get better. So if you have a lot of existing .net code and want to get away from ms licensing, at least ms will keep the dev tool revenue.

    • by Jeeeb ( 1141117 )

      Which is probably more important than anything else. The benefit of open sourcing .net core is that mono will get better. So if you have a lot of existing .net code and want to get away from ms licensing, at least ms will keep the dev tool revenue.

      From (mostly indirect) experience, maybe it does for CRUD apps. For complicated applications though you might get ~30% code sharing and a lot of pain.

  • by scorp1us ( 235526 ) on Saturday December 20, 2014 @09:24PM (#48644155) Journal

    I've been a cross-platform coder for about a decade now. I liked the ideas of Java and .NET when they came out, but they were lacking in execution. If you look at everything powering technology today: Big Data, Node.js, Android/iOS, cloud remember (Hotmail was bought by MS, originally on BSD servers) Microsoft hasn't done squat. Meanwhile MS has delivered a lot of failed tech: WinForms, Zune, Windows Phone. (I've only ever seen two people with a Windows Phone) Only the Xbox and .NET have succeeded. I would be very concerned hitching my trailer to MS. They don't do innovation anymore, they don't even do copying (embrace and extend) well.

    A big .NET friend of mine has recently taken to web development. He develops on OSX, deploys to Linux (AWS). He loves how he can take one thing and just run it on another. He doesn't have to worry about putting IIS on Linux, Node works everywhere. The code he develops isn't tied to any specific OS platform. Angular is node dependent, but Knockout isn't.

    And there in I think the real danger is realized. If you use .NET you are locked into MS stagnant mono-culture, and their failing culture of innovation. If you want bleeding edge, OS agnosticism, MS isn't going to deliver it. Their goal will always be to lock you into their vertical to protect their verticals.

    With the very good developments in Linux and the Apple premium is gone, only organizations with legacy applications need consider any Microsoft technology.

    PS. I use Qt for everything on Mobile and desktop, Node for server and Knockout/Angular for web client. There is a slight possibility that Qt's QML will work on the web. Python for anything else. This is crossplatform, and not one drop of MS. It is my speculation that MS is a wounded animal, realizing they are like Cadillac. Cadillac realized the average age of their customers were getting older, and over 60 and that market would be no longer driving in a few years. There's an exodus from MS platforms. Their new focus aims to fix this. Buyer beware. Where is the money in it for them?

    • by Anonymous Coward on Saturday December 20, 2014 @10:14PM (#48644385)

      So much misinformation.

      1) Angular is NOT node dependent, at all. We use it with our own custom .NET web server (libuv + libcurl + our own HTTP stack), with no special support for angular at all (which is a purely client side DSL for web applications built on top of ECMA262, DOM Level 3/4, and a few HTML5 WG specs like a modern Selectors & History API).

      2) You can deploy traditional .NET (ASP.NET / MVC) servers any which way you want too, you can develop on OSX, deploy to Mono on Linux in an EC2 instance, or you can deploy to an IIS instance anywhere you want as well.

      3) You're mixing up technologies, .NET is an brand for the implementation of the CLI & BCL (ECMA specifications (just like JavaScript) that form the framework that is the basis of most MSIL VMs, eg: Mono and .NET's various VMs on windows).

      4) You're tying in ASP.NET / MVC in with .NET in general, however with the exception of M$ shops - anyone writing large scale web servers in .NET is certainly NOT using ASP.NET (horribly stateful, not amazingly efficient), and certainly not plain ASP.NET (they're augmenting it w/ Kestrel or whatever) - they're using an owin compatible server like Katana, Nowin, etc - and using frameworks like Nancy or SimpleWeb, which are the .NET equivilents of Node.js w/ koa or express.

      P.S. I run a .net web service running on FreeBSD on AWS (using Mono) that servers ~300,000 concurrent users at any point in time, not quite 1 million requests/minute on average 24/7 (a barely successful iOS app, enough to sustain a small software company).

    • Every person that has owned or owns a Zune loves it. They had pretty good reviews as well. Bleeding edge is not a good thing BTW.

    • by steelfood ( 895457 ) on Saturday December 20, 2014 @10:44PM (#48644497)

      This is a result of their past transgressions coming back to haunt them. Over the past 15 years, they've managed to alienate practically everybody. They've burned everyone who's worked with them, including vendors, partners, and now with Windows 8, application developers, server administrators, and general users.

      Their reputation precedes them. Nobody trusts them. People are avoiding anything by Microsoft. If it wasn't for Windows Server and Active Directory, Office, and to a lesser extent, SQL Server, and Visual Studio, everyone would have long switched away from Microsoft products.

      Their tactics worked in the 90's because there were so many small players that they could take advantage of, and people were largely ignorant of Microsoft's dirty actions. Today, there are a few major players, all of whom are well-known and liked by their users and partners. They're not just competing with Microsoft on technology, but also on reputation as well. People are showing their willingness to deal with a bit of inconvenience in using (arguably) slightly inferior enterprise solutions over the potential risks of being locked in and screwed over by a company with a history of doing so.

      Oracle is starting to feel this too. Anti-competitive behavior is being punished. Oracle still has a stranglehold on enterprise databases, but that's eroding very quickly. Look what's happening to Java and even more so, OpenOffice and MySQL.

    • Ok ok. I always thought Angular was dependent on node because I always saw them together. I apologize for that one singular inaccuracy. The rest is true.

      The point remains. To pick up .NET now, you are marring yourself to an out-of-date tech stack.

    • To be fair, Android/iOS are not exactly innovative either - they just managed to get themselves in the 'right place and right time' for the smartphone trend - but if you look at "innovation", the only thing they've innovated, is the business models (e.g. "app store" distribution cartels that reap 30% from ISVs).

      Microsoft haven't done squat in the past, but they have a new CEO with a very new approach - I'll be watching them closely. This is not the Microsoft of old. And Google has already become the new Mi

  • by Anonymous Coward

    I work at a funded startup in the Seattle area and we've had several .NET (C#) developer positions open for several months now. We rarely even get applicants and the ones we get rarely pass a basic phone screen.

      No way would we discriminate on age. The talent pool from what we've seen is crap.

  • I'd been on Java for a while but started moving back toward C++ a couple years ago. Between boost, the Eigen math library and the new C++11 standard features, I haven't had to code my own utility libraries unless I want to. I've also started playing around with Qt as an easy-to-use and modern GUI library. The majority of my development has been on Linux, and these tools get me where I need to be.

    i think you'll find you're wrong about the C standard library being "nothing compared to what's out there". If

  • Here's a question... (Score:4, Interesting)

    by Black Parrot ( 19622 ) on Saturday December 20, 2014 @09:29PM (#48644187)

    How come "Ask Slashdot" posts always boil down to "give me some ammunition for an argument with my boss" ?

    • Umm. It was my question, and more for ammunition in a discussion with myself. I don't know much about .NET, but I know the web has done fine without it. And as an open source fan, that's good news. So, yeah, I'm not nuts about inviting Microsoft in - I'm sure their calculation is that they have nothing to lose and something to gain. Is there anything wrong with us making similar assessments?

  • by MtHuurne ( 602934 ) on Saturday December 20, 2014 @09:29PM (#48644189) Homepage

    I think Microsoft is adapting to being one of several vendors instead of being a dominant force. They have to play better with others because they don't have the market power they had 10 years ago.

    As for .Net, I used it briefly some years ago and wasn't impressed. Compared to Java, they decided that exceptions don't need to be declared, so you have to look up in the documentation which exceptions you have to handle. However, the documentation doesn't list all exceptions that can be thrown. So I have no idea how one would do proper error handling in .Net.

    Another thing that bothered me is that the documentation consists mostly of examples. However, if I read documentation I don't want a code fragment to copy-paste, I want to read the specification for a particular method. In particular, how it handles edge cases. That information was usually missing. Of course you can test the behavior, but there is no guarantee the next release will have the same behavior if the behavior was never documented. All in all, it didn't feel like a good platform for writing reliable applications.

    • Compared to Java, they decided that exceptions don't need to be declared, so you have to look up in the documentation which exceptions you have to handle. However, the documentation doesn't list all exceptions that can be thrown.

      Yeah, this is a big one, and it's especially painful when working with programmers who are less competent.

      If you are writing it yourself, you can just wrap everything in try{}catch{}, which is what I do, but you never no what method is going to throw an exception.

      • by Jeeeb ( 1141117 )

        Yeah, this is a big one, and it's especially painful when working with programmers who are less competent. If you are writing it yourself, you can just wrap everything in try{}catch{}, which is what I do, but you never no what method is going to throw an exception.

        Agreed about the docs. MSDN documentation in general is horrendous. It lacks critical information and is generally written in a completly impenetrable way. They also rely on crappy machine translation for non-English languages, ugh.

        There is one good reason for avoiding checked exceptions though. Interfaces. In Java it is required that either 1. all exceptions that might ever be thrown by implementations of an interface be declared at the interface decleration or 2. all exceptions be bundled in RuntimeExcept

    • Another thing that bothered me is that the documentation consists mostly of examples. However, if I read documentation I don't want a code fragment to copy-paste, I want to read the specification for a particular method. In particular, how it handles edge cases. That information was usually missing. Of course you can test the behavior, but there is no guarantee the next release will have the same behavior if the behavior was never documented. All in all, it didn't feel like a good platform for writing reliable applications.

      As someone who works on API documentation (no, nothing to do with .NET, thank goodness), I really wish you would tell this to the marketing types at work who keep telling me, "Nobody wants... [*grimace*] specs. Just give them lots of examples to work from." And then smack them a couple of times.

  • by Billly Gates ( 198444 ) on Saturday December 20, 2014 @10:07PM (#48644359) Journal

    The old gray beards today might say the same with IBM or Digital but once market forces correct a monopoly the company either whithers or adapts.

    Doesn't mean MS is no different than any other corporation even if that opinion is unpopular here on slashdot. Timewarner/AT&T/Comcast are far more evil and God forbid what Jobs would have in store if Apple won the Pc wars in the 1980s and achieved 90% marketshare! MS would be tame in comparison.

    Under a free market people play nice or loose out.

    Today I like Microsoft even though I hated them hence my name 13 years ago. Here are the facts in late 2014
    1. IE is not a bad browser anymore. It used to be both feared and loathed in the old days as it was a threat to win32 applications. Today they no longer will ever have the control they did in 2004 when you needed to go to a library to use IE 6 if you used a mac or linux to fill out job apps. Yes I remember doing that. Monster.com was optimized for IE 6 quirks back then.IE 11 is modern and has great debugging tools and behaves like a real browser behaves and has the best security with sandboxing. IE 12 will even have an add-on framework ala Chrome/Firefox. I use adblock on IE today
    2. Visual Studio 2015 supports Android and Linux Xiarmin development?? No I am lying. Go google it as emulators are included including CLANG support.
    3. Office is available for Android and IOS. Full suite is coming soon
    4. MS more liberal with pricing for non corporations. Google VS Community edition. It is pro and free!
    5. MS is opening sourcing .NET and lots of frameworks
    6. Azure supports non win32 operating systems.
    7. MS is putting more effort in security and stabilizing and fixing bugs now that competition exists.

    Am I a fanboy? No. I am agnostic this day but I find MS getting much better and if it were not for Metro I would be a fan even of their desktop products. Windows 7 is a very stable desktop oriented OS. It is not and I repeat not the POS slashdotters who have not run Windows in 15 years remember.

    MS woke up and realized oh shoot. IOS and Android are eating our lunch! Eclipse will eat our lunch! Amazon will eat our lunch! Firefox and now I should say Chrome has eating our lunch! Ms has so much competition today on so many fronts it can't go back and use leverage of a monopoly in one area for another. Blocking Android on Windows? Who cares about Windows blah. Block W3C standards iwth IE? Fine I will use another browser etc.

    This was unthinkable in 1999. So Linux did not win the desktop wars like we hoped but open source software did win everything else. Browsers are competitive. Mobile operating systems competitive. Development environments are competitive. Clouds and virtual services for legacy win32 apps scare the crap out of them so soon if mega corps want to leave they can.

    MS is done. I welcome the new MS. As some (I did not say all folks) products are fairly decent and play well with others.

    • I have to say it: I've been running Win7 Pro in a VM for 3 years now and it is, indeed, a stable desktop. I wish MS (Ballmer, prick) didn't screw it up and leave it behind. Our POS requires a Windows backend and Win7 is fine.

      Running on a Debian host, of course. Still, not a bad desktop OS at all.

    • by Uecker ( 1842596 )

      I am still angry about Nokia. 10 thousands of jobs lost and the only mobile platform which was nice from a technology point of view destroyed. All for a hopeless attempt to get some market shared for Windows Mobile.

  • > 2. Is there an open source choice today that's popular enough to be considered the standard that employers would like?

    I think this poster is really asking the wrong questions. There are lots of different choices that are all popular, depending on what you want to do. Web development? Java, PHP, and Node are all fairly popular. Android development? That means Java. iOS? It's Objective C and/or Swift. Windows? It's C#. Cross platform game engines? C++. There are good reasons for those differe

  • by Eravnrekaree ( 467752 ) on Sunday December 21, 2014 @12:36AM (#48644905)

    From what I understand about .NET is they only open sourced the server side parts. Not the stuff desktop apps would use. Obviously this is because Microsoft is most challenged for market share on servers so has less to lose by doing this, it hopes to cut into the share of other platforms. Microsoft is not giving up much and doing little or nothing to advance cross platform application support on the desktop, mostly maintaining the Windows vendor lockin where it has its monopoly, on desktops.

  • What people don't get is this. Microsoft is totally being left out of the cloud.<br><br>The fact is that no cloud provider wants to keep track of licenses, so all cloud platforms, all the new and exciting PaaS platforms etc. are based on ALL OPEN SOURCE. And there is a reason for this.<br><br>When you are offering a system that can fire up nodes and destroy them dynamically and on-demand, its just not worth it to have to keep track of some piece of that being commercially licensed
  • WPF (Score:5, Insightful)

    by Joey Vegetables ( 686525 ) on Monday December 22, 2014 @09:14AM (#48651403) Journal
    I was surprised that the WPF issue has not been discussed more. Aside from C#, which is a sweet little language in most respects, and still ahead of Java IMO, WPF is the other fairly unique thing that .NET Microsoft brings to the table. It has no real parallel for the rich- or smart-client use case. (Mozilla's XUL is perhaps the most directly comparable FOSS technology.) And it is NOT being open-sourced. In fact, instead of throwing its weight behind a single WPF / XAML implementation, Microsoft allowed it to fragment between Silverlight (deprecated), WPF (supported only in the most lackluster fashion), and the client component of WinRT (Windows 8 only). This may in fact prove to be the opening needed for the modern HTML5 stack to become the preferred rich- and smart-client deployment technology even for desktop and laptop form factors. In that case it would also rapidly eat away at the very last piece of the technology business that Microsoft dominates.

Our OS who art in CPU, UNIX be thy name. Thy programs run, thy syscalls done, In kernel as it is in user!

Working...