Slashdot Mirror


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

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.

58 of 421 comments (clear)

  1. Why bother? by BarbaraHudson · · Score: 3, Informative

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

    --
    "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    1. Re:Why bother? by Frosty+Piss · · Score: 3, Informative

      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.

      --
      If you want news from today, you have to come back tomorrow.
    2. Re:Why bother? by Kagetsuki · · Score: 3, Insightful

      .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.

    3. Re:Why bother? by BarbaraHudson · · Score: 5, Insightful

      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) 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.

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    4. Re:Why bother? by BarbaraHudson · · Score: 2

      Are you saying that software development languages in their current state are perfect and there is no reason to learn anything new or different? If so, in the not too distant future I predict you'll be walking out of your job with your personal items in a cardboard box.

      That's not what I wrote. I wrote that there's no real reason for projects and programmers who are already implementing solutions using other toolchains to make the switch. Why re-code the wheel? If, for example, you coded your project in Java (which has been open-sourced for years and runs on multiple platforms), why would you switch to .NET and obsolete all your current code that's (hopefully) already been written and debugged?

      --
      "Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
    5. Re:Why bother? by Anonymous Coward · · Score: 4, Informative

      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.

    6. Re:Why bother? by digsbo · · Score: 3, Interesting

      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.

    7. Re:Why bother? by jd2112 · · Score: 5, Insightful

      .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.

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    8. Re:Why bother? by Crazy+Taco · · Score: 3, Interesting

      .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 as .Net's (Visual Studio is probably the best IDE ever built), and most importantly, the constant daily updates of Java to fix security flaws are driving everyone crazy and causing support nightmares. 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)?

      And one other thing about Java and another reason enterprises are trying to weed it out... the various Java application servers sprawling all over the place are seriously annoying and make supporting Java well a massive undertaking of training and manpower. In my organization, we have purchased Java applications from vendors that are based on all of these: Oracle Weblogic, IBM Websphere, Apache Tomcat, Redhat JBoss, and Apache Geronimo, and we have to figure out how to admin and support them all. And worse, none of these are as good as .Net/IIS, which is what we've chosen for all custom development that we do in house.

      Plus, there are other things about .Net that make it better than many alternatives. For one thing, it's not a language, it's a runtime. There are all variety of languages you can use, which means you can use .Net whether your programmers come from a C syntax background or a Visual Basic type of background. And when it comes to web technologies, MVC and other .Net contributions are excellent: much better than the Java equivalents. And IIS is a fantastic web servers these days. True, it got off to a rocky, buggy start and trailed Apache for years, up through the IIS 6 days, but with IIS 7 and above it's actually much better than Apache, both in ease of administration and more importantly, in performance (why is Apache still spawning processes for every request that comes in... don't they realize the overhead of that??). A lot of the performance reasons that are behind people switching from Apache to Nginx are also capabilities that IIS has.

      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. I totally get that a lot of people up to now have certainly preferred open source because it is free, but with .Net going that way a lot of you should try it. Having used Java and .Net both, I'd never in a million years pick Java over .Net. And I'd never pick PHP over .Net either, because that technology is pretty much the equivalent of what Microsoft's classic ASP was a decade ago, and .Net is far ahead of it now.

      --
      Beware of bugs in the above code; I have only proved it correct, not tried it.
    9. Re:Why bother? by ClickOnThis · · Score: 2

      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?

      --
      If it weren't for deadlines, nothing would be late.
    10. Re:Why bother? by Bite+The+Pillow · · Score: 3, Interesting

      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.

    11. Re:Why bother? by jsrjsr · · Score: 2

      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.

    12. Re:Why bother? by curmudgeon99 · · Score: 4, Informative

      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.

    13. Re:Why bother? by DuckDodgers · · Score: 5, Insightful

      .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/... ) 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?

    14. Re:Why bother? by Kagetsuki · · Score: 4, Interesting

      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).

    15. Re:Why bother? by curmudgeon99 · · Score: 5, Interesting
      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.

    16. Re:Why bother? by locketine · · Score: 4, Interesting

      .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.

      --
      Think globally but act within local variable scope.
    17. Re:Why bother? by wonkavader · · Score: 2

      This is a stupid response. A great product where the maker insures you're going to get pushed to other things you'll have to pay for from that same maker is a product there's a darn good argument against.

    18. Re:Why bother? by AqD · · Score: 2

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

    19. Re:Why bother? by Jeeeb · · Score: 2, Interesting

      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.

    20. Re:Why bother? by phantomfive · · Score: 2

      .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.

      --
      "First they came for the slanderers and i said nothing."
    21. Re:Why bother? by hyperquantization · · Score: 2

      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.

    22. Re:Why bother? by rjstanford · · Score: 4, Informative

      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.

      --
      You're special forces then? That's great! I just love your olympics!
    23. Re:Why bother? by ahabswhale · · Score: 4, Informative

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

      --
      Are agnostics skeptical of unicorns too?
    24. Re:Why bother? by LostMyBeaver · · Score: 2, 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 unusual places I encountered in my travels. I've been an instructor (ever since I found out that it pays much more to talk about working than actually working) and have met people everywhere. I felt like engineers in Minneapolis were much more likely to be happy with less overall ambition. It's an odd generalization, possibly more poorly researched than your own, but it struck me as if engineers were just another cog in the machine and many of the engineers I encountered adopted an almost Scandinavian lifestyle of working to live instead of living to work.

      While here in Oslo, Noway I consider that the norm or the average, in the U.S., I consider it highly unusual and somehow a little scary.

      My point is, that I feel that Minneapolis from my perspective probably should never be used as an example of "normal". There are some special things which make Minneapolis a wonderful place to live. In fact, if it weren't for the impressively awful weather (which makes Norway look warm), I would love to live there... as long as I didn't need to work there.

    25. Re:Why bother? by ToasterMonkey · · Score: 2, 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 this technology-retarding "Apple model" in your mind? Sorry man, it's just silly to hear something along the lines of "if Apple prevailed, we wouldn't have nice things" when they have been the lead in most of the nice things PCs have. If Apple prevailed... IDK, MAYBE Dell would have made nice computers sooner and we'd still be where we are at today?

    26. Re:Why bother? by shutdown+-p+now · · Score: 4, Interesting

      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).

    27. Re:Why bother? by jrumney · · Score: 2

      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.

    28. Re:Why bother? by turbidostato · · Score: 2

      "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.

    29. Re:Why bother? by znrt · · Score: 2, Interesting

      And the primary argument against .NET is that it is a Microsoft product

      Which is a stupid argument. Judge the product by the product, not its maker.

      being concerned about "ms product" is not stupid. the ultimate purpose of .net is to sell windows licenses. if you are ok with using windows / cashing out for licenses, be my guest. if you are not then .net simply isn't an option (there's mono but it always was more a marketing stunt than a real option). java is nowadays an "oracle product", and that sucks too, but you can safely ignore the full stack of expensive bloat oracle offers, except for the jvm which is free as in beer, and will run almost everywhere. for now.

      regarding technical merits ... you can't really judgde such complex and large products by merely reading an abstract on them. you have to put them to use and the use cases vary wildly, and deploying a whole stack of solutions takes years. both can work, but it depends on many more choices you will make along the road. it's not something you "test". you choose and live with it.

      then, the java ecosystem has been evolving for years with an unmatched community contributing an impressive stack of open source middleware and tools, and this is one of the main reasons java is so prevalent in enterprise. the paradigm "everything around the java language, in any os" turned out to be much stronger than "everything around windows os, in any language". no surprise, we already knew that before ballmer's "developers" dance.

      if you ask me, it's irrelevant. i've been proficent in java-world for decades but it's now boring like hell, and i would not touch .net with a stick. fuck java, fuck .net, javascript is the new toy! :D

    30. Re: Why bother? by ljw1004 · · Score: 4, Informative

      Ok. Does that mean the full Visual Studio is free as well? Cost is the main hindrance for adoption of it anyway.

      Yes it is free. "Visual Studio Community Edition" it's called.

    31. Re:Why bother? by Jeeeb · · Score: 5, Insightful

      Your reply is also somewhat confusing to me. I don't think you've actually looked into the issue. .NET popularity has gone downhill as more developers want to use more dynamic and developer-oriented solutions which are almost invariably open source. This is an actual trend; a real statistic, and essentially the reason why MS went ahead and open sourced .NET.

      If it is a real trend and a real statistic then please link to some reference for this. I'm interested to see. Maybe I'm not very good at Google searches but I cannot find any reliable statistics to support this.

      As for C and .NET you can use .NET quite easily with C. Even if your project is strictly in C#, if you know C I doubt you'd have much trouble with C# (other than maybe getting the hang of good-practices?).

      I code mostly in C++ and C# and have no trouble at all with C#. It's one of my favourite languages. My post however was not about myself, I was paraphrasing the original question, as perhaps I've missed something but the statement "why you are asking for citation when the whole discussion is sort of based on this issue" is completely at odds with how I read the original question - i.e. (very much paraphrasing here) 'Should I learn C# it seems to be the way forward'

      Though even if your interpretation of the original question is correct, it would still not seem unreasonable to ask for a reference to support the statement that .NET is losing popularity. The only evidence of this "fact" I can see on this thread is mis-matched anecdotes, hence my reply to your post.

    32. Re: Why bother? by MemeRot · · Score: 2

      You don't actually. That's the point of open sourcing .net core, to really beef up mono. MS has a strong commitment to supporting mono, especially in vNext. You can write C# to target mono, ios, and android and ignore Windows deployment entirely

    33. Re:Why bother? by dwat001 · · Score: 2

      Within .Net there is a move away from ASP.Net towards new frameworks such as MVC.Net. You get a different picture with a slightly different link http://www.indeed.com/jobtrend...

    34. Re:Why bother? by bondsbw · · Score: 2

      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.

      --
      All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
    35. Re: Why bother? by curmudgeon99 · · Score: 2

      You know there are support groups out there that can help you with your grief about the immanent collapse of the .NET ecosystem.

      Even Microsoft has orphaned you by going with HTML5 and JavaScript for Metro interfaces.

      Java is the one. Going on about how nice Visual Studio is to work in is like telling us how nice the deck chairs were on the Titanic. It's too late, friend. Sure, .NET will live on in pockets of diehard iconclasts until finally even they--like Japanese soliders on deserted islands, thinking that WWII was still being fought--wake up to the fact that .NET is a dead man walking. Mono is dead. .NET is the Zune and Java is the iPod.

      Can't you see the writing on the wall? Starting to open source .NET? That's a desperate Hail Mary ploy by MS to try to resurrect that corpse called .NET. It's dying and you need to get over your denial, and your anger and get on with the bargaining, depression and acceptance.

      Remember that CEO who said CEO Friday: Why we don’t hire .NET programmers. Don't worry, you don't have to click on that link, I'll quote the relevant part for you:

      ...Everything, that is, but .NET.

      Now let me clarify — .NET is a dandy language. It’s modern, it’s fancy, it’s got all the bells and whistles. And if you’re doing Windows Mobile 7 apps (which the stats suggest you aren’t), it’s your only choice. But choosing .NET is a choice, and whenever anybody does it, I can’t help but ask “why?”
      Don’t get me wrong: .NET on your resume isn’t an instant showstopper. But it will definitely raise questions during the phone screen, for reasons that are best explained by simile:

      Programming with .NET is like cooking in a McDonalds kitchen. It is full of amazing tools that automate absolutely everything. Just press the right button and follow the beeping lights, and you can churn out flawless 1.6 oz burgers faster than anybody else on the planet.

      However, if you need to make a 1.7 oz burger, you simply can’t. There’s no button for it. The patties are pre-formed in the wrong size. They start out frozen so they can’t be smushed up and reformed, and the thawing machine is so tightly integrated with the cooking machine that there’s no way to intercept it between the two. A McDonalds kitchen makes exactly what’s on the McDonalds menu — and does so in an absolutely foolproof fashion. But it can’t go off the menu, and any attempt to bend the machine to your will just breaks it such that it needs to be sent back to the factory for repairs.

      Instead, we look for a very different sort of person....

  2. C# and Xamarin allow cross platform mobile by MemeRot · · Score: 4, Interesting

    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.

  3. MS has been late to every recent tech movement by scorp1us · · Score: 5, Interesting

    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?

    --
    Slashdot's rate-of-post filter: Preventing you from posting too many great ideas at once.
    1. Re:MS has been late to every recent tech movement by Anonymous Coward · · Score: 5, Informative

      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).

    2. Re:MS has been late to every recent tech movement by steelfood · · Score: 4, Insightful

      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.

      --
      "If a nation expects to be ignorant and free in a state of civilization, it expects what never was and never will be."
    3. Re:MS has been late to every recent tech movement by rjstanford · · Score: 2

      Someone as simple as YouTube could probably handle that, but for any complex interactions I'll be damned if I'm going to take my time statefully rendering HTML pages on the server (about the most expensive and restrictive operations you can do) just for the truly minute fraction of one percent that won't trust their browsers to execute dynamic code in a nice secure sandbox. Sorry, but I'm with those guys now. You're gonna need a lot of rakes.

      --
      You're special forces then? That's great! I just love your olympics!
    4. Re:MS has been late to every recent tech movement by SourceFrog · · Score: 2

      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 Microsoft, engaging in the same dirty tactics Microsoft used to.

      --
      My other UID is three digits.
  4. we can't find talented workers by Anonymous Coward · · Score: 2, Interesting

    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.

  5. Here's a question... by Black+Parrot · · Score: 3, Interesting

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

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re: Here's a question... by Rob+Y. · · Score: 2

      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?

      --
      Posted from my Android phone. Oh, I can change this? There, that's better...
  6. Microsoft is adapting to a new role by MtHuurne · · Score: 3, Interesting

    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.

    1. Re:Microsoft is adapting to a new role by phantomfive · · Score: 2

      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.

      --
      "First they came for the slanderers and i said nothing."
  7. Yes MS has lost and is now nice by Billly+Gates · · Score: 4, Interesting

    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.

  8. Re:You seem to think .NET is a language by Billly+Gates · · Score: 2

    There are dozens of languages that compile to the .NET CLI, including BASIC, C++, Ruby, PHP, Java, JavaScript, Python, Lisp, Pascal, Perl, Scheme, etc. C# is the most popular language to compile to the CLI, yes, but almost any other common language out there can be used too.

    Yeah but really who uses them?

    95% of .NET is in c#. All the VB jobs are still for legacy 5.x and 6.x code that I see. Take it back 85% c# and 10% c++. Just because it can be done COBOL doesn't mean people use it other than to see if they can write a hello world program.

    In essence it is a c# based environment.

  9. Re:You seem to think .NET is a language by Nemyst · · Score: 2

    Not even that, Visual C++ .NET is a broken aberration that I have not seen used anywhere ever (it's not the same as Visual C++, which is straight up C++). .NET is effectively C#.

  10. Not a panacea by Eravnrekaree · · Score: 2

    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.

  11. your information is 20 years out of date by raymorris · · Score: 5, Insightful

    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.

  12. Re:Sort of, I don't know, I don't see the advantag by ahabswhale · · Score: 3, Informative

    There's no doubt C# is a nicer language to work in that Java but so is just about everything. Java is simply dated. However, there's nothing stopping you from using other JVM languages (like Groovy which is extremely easy to learn for a Java dev).

    --
    Are agnostics skeptical of unicorns too?
  13. Re:I'm Using C++ by toejam13 · · Score: 4, Informative

    The C standard library provides an API to all your system resources.

    The C standard library (libC) provides a very basic API to some of your system resources. You have to include a large number of other libraries in order to obtain a feature set similar to the Java and .NET frameworks.

    And in addition to the IO, thread and math limitations that the AC above touches on, there are several other major problems facing the core C libraries: wchar support, qword support, socket support and overflow safe functions. There has been significant balkanization between the BSD, GNU and Microsoft camps on these topics, making cross platform development difficult. I've written a lot of wrapper code over the years dealing with the issue.

    The nice part about the Java and .NET frameworks is that they eliminate most of the problems I mentioned and several of the issues the AC brought up.

    But I do still find the C libraries, Java framework and .NET framework all lacking. They're good for about 80% of all cases, but I seem to find myself thumping on the native APIs far more than I thought I should. I'm really annoyed at how often I find myself using PInovoke under C#.

    My hope is that with the Core .NET moving off to the open source camp, maybe Microsoft can start focusing on adding C# bindings for the rest of WinAPI. The day I can write code without having to use a PInvoke is the day I'll stop writing C/C++ code.

  14. Re:Major shill in my opinion... by znrt · · Score: 2

    Java was going down the tubes 3 years ago. I had serious doubts about it and was looking closely as Scala

    funny how you tried to escape java "going down the tubes" by switching to a ... java emitter.

  15. Re:I'm a Java developer by benjymouse · · Score: 2

    With the open sourcing of .NET, I wonder how far they've gone. Is it the exact same runtime used on Windows, now fully open sourced like the JVM?

    Yes

    Was the entire .NET platform open sourced, or just a subset?

    The entire *server* stack - i.e. everything you need to run a .NET server application. They have even created a small-footprint webserver Kestrel for Linux based on libuv. The reason for libuv actually touches on a very important aspect/advantage of modern .NET (and to some extent, Windows Server) . More on that below.

    Doesn't .NET require IIS to run web apps?

    No. You have *always* been able to just self-host the ASP.NET bits. However, MS have taken it a step further and completely separated out the bits of the pipeline so that you can pick and choose. For a long time there have been plugins for Apache httpd and others that would allow you to run Mono. Those will work fine regardless of whether ASP.NET is provided by Mono or MS. Kremel mentioned above, but you can use any other way. ASP.NET vNext is "pluggable".

    How will you run a .NET web app on Linux?

    curl -sSL https://raw.githubusercontent.... | sh && source ~/.kre/kvm/kvm.sh

    In the Java world, the entire platform and runtimes are open source.

    In the .NET world, the entire platform and runtimes are open source, and the platform specification is governed by international standards organizations (ECMA and ISO).

    Microsoft grants patent licenses for anyone who wants to create implementations of the specifications, and Microsoft *specifically* does not require paid testing suites and they do NOT assert that using the APIs constitutes copyright infringement.

    And now for some reflections on the differences: Microsofts stack - especially with the latest .NET and Windows Runtime - have grown to become completely focused on asynchronous programming. Windows (the NT line) with the "overlapped IO" available from the initial version always had a very high-performing "completion" oriented async model for all types of IO. While this model could yield much better scalability, to leverage it you had to program in a "callback" style that were often at odds on how you think about a problem (sequentially) as well as poor match for constructs such as exception handling, looping/branching etc.

    With C# 5.0 (and the equivalent VB.NET) async became an integrated feature of the language. This is not about smart synchronization primitives, multithreading or similar "low level" concepts. This is aboy having a language that effortlessly allows a programmer to express a sequential problem in a way that allow asynchronous processing all the way down to the system level where overlapped IO will be used. Without invading the way the solution is expressed.

    This is huge. I am aware of only one other ecosystem that does something similar: node.js. Python has the capability, but there's no ecosystem built around it where the capability is the default way to design libraries and APIs.

    In terms of enabling and supporting async programming style, C#, .NET (and F#) is the most mature option out there, along with the "new" kid node.js.

    Java only recently acquired the ability to process web requests asynchronously (yielding the thread to process other requests) - but the language and APIs make it exceedingly hard to leverage this capability for anything useful. If you look up articles for how to do async in Java you will notice a strange t

    --
    Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
  16. Ok, I'll bite by Bent+Spoke · · Score: 2

    To me, .NET === Resource-Hog

    At my place of employment, we implemented a number of .NET apps that were mostly just a wrapper-frontend to our websocket based main app. We can pretty much do the same thing using Chrome, but it was thought this would be easier for our clients to use. Unfortunately, we also run a resource heavy data-generating simulator on the PC along with the app. So we couldn't help notice that when we used the .NET app, the simulator would get starved out. On the other hand, when using a browser, there was no such problem. (BTW: I find this a little ironic as browsers were the original 800lb gorrila.)

    So this leads one to wonder if one goal of .NET for MS wasn't to nudge up the number of server licenses, along with licenses for other MS products (IIS,SQL Server, ...)

  17. WPF by Joey+Vegetables · · Score: 4, Insightful

    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.