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.
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.
Why bother? (Score:4, Informative)
Re: (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.
Re: (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.
Re:Why bother? (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.
Re:Why bother? (Score:5, Informative)
Re: (Score:2)
For what reasons? Here .NET has been replacing Java in all areas for many years.
Re:Why bother? (Score:5, 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.
Re: (Score:3, Insightful)
I did a few searches on Monster.com and found that Java and
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: (Score:3)
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,
Re:Why bother? (Score:5, 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).
Re: (Score:3, 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.
Re:Why bother? (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.
Re: Why bother? (Score:5, 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.
Re: (Score:2)
Oh bullshit. Java dwarfs .NET.
Re: (Score:3)
Re: (Score:2)
I'm not comparing features, but penetration.
Re: (Score:3)
"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.
Re: (Score:3)
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:2)
10 years ago .NET was at 1.1. Today it's at 4.5.
Enterprises usually don't start using a new tech extensively until it has been out for a while.
Re: (Score:3, Interesting)
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)
The Java Virtual Machine is also a runtime.
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)
.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.
Re: (Score:3)
.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)
Performance comparisons from a Microsoft employee make C# look faster than Java? Fascinating.
Re: (Score:2)
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)
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).
Re: (Score:2)
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)
Monster:
Dice
So, ONLY on Dice and ONLY in Redmond, WA--Microsoft's home--are there more .NET jobs than Java. Everywhere else Java kills .NET.
Re: (Score:2)
Did you count the jobs that only listed C# or VB.NET in the .NET category?
Re: (Score:3)
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.
Re: (Score:2)
Yes, you should (and you should also include e.g. SharePoint for .NET). But without doing all that stuff, the numbers are basically meaningless.
Re: (Score:2)
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). .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
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
Re: (Score:2)
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...
your information is 20 years out of date (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.
Re: (Score:2)
> 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
Re: (Score:3)
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.
Re: Why bother? (Score:3)
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
Re: (Score:3, 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 everywhe
Re: (Score:3)
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.
Re: (Score:3)
Re: (Score:2)
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)
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)
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? .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.
As I understand it, only parts of
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.
Re: (Score:2)
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)
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.
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
There are enough differences to matter.
Not really.
Re: (Score:2)
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.
Re: (Score:2)
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
Re: (Score:2)
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. .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
Re: (Score:3)
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?
Re: (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?
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)
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)
Re: (Score:2)
Re: (Score:2)
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?
Re: (Score:2)
Re: (Score:3)
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?
C# and Xamarin allow cross platform mobile (Score:5, 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.
Re: (Score:2)
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.
MS has been late to every recent tech movement (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?
Re:MS has been late to every recent tech movement (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).
Zune was great (Score:2)
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.
Re:MS has been late to every recent tech movement (Score:5, 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.
Re: (Score:2)
Besides some fancy admin tools, what is the difference between Oracle and MySQL?
I know Oracle sells a lot of enterprise solution apps, but from a database point of view, what's the difference?
Re: (Score:2)
Almost everything but for an easy kill let's talk about real clustering that f'n works. MySQL, even with the 3rd party solutions out there (and I've tried many of them) doesn't get close to Oracle for a truly vertical and horizontal multi-datacenter cluster.
If you don't need that, MySQL is decent, although at least recently was still lacking in simple things like online index creation (adding an index to a table with hundreds of millions of rows shouldn't lock the table for hours, mmmkay?). Sure, there ar
Re: (Score:2)
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.
Re: (Score:3)
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
Re: (Score:2)
Irritates to no end those people who think that coding for node is a skillset superior to jscript itself.
Of course it is superior, just like knowing RoR is superior to knowing just Ruby.
You might want to reformulate your point, as it seemingly didn't quite come across the way you intended to, unless your point was to make you look stupid.
Re: (Score:2)
jscript is some hacked implementation of javascript, by Microsoft. Thanks for making my point for me.
Re: (Score:2)
Microsoft's standard methods of "innovation" have always been to copy, steal or burn.
That's how I read your sentence, so... FTFY ;)
Re: (Score:3)
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.
we can't find talented workers (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.
I'm Using C++ (Score:2)
i think you'll find you're wrong about the C standard library being "nothing compared to what's out there". If
Comment removed (Score:5, Informative)
Here's a question... (Score:4, Interesting)
How come "Ask Slashdot" posts always boil down to "give me some ammunition for an argument with my boss" ?
Re: Here's a question... (Score:3)
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?
Microsoft is adapting to a new role (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.
Re: (Score:3)
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.
Re: (Score:2)
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
Re: (Score:2)
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.
Yes MS has lost and is now nice (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 .NET and lots of frameworks
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
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.
Re: (Score:2)
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.
Re: (Score:2)
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.
Wrong questions (Score:2)
> 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
Not a panacea (Score:3)
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.
Its all about THE CLOUD (Score:2, Informative)
WPF (Score:5, Insightful)
Re: (Score:2)
.NET is a runtime environment, not a language. You won't get worthwhile answers because your questions are broken.
The .NET "ecosystem" includes many components, including C#, which is a language.
The question is fine, but your response is pedantic.
Re: (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.
Re: (Score:3)
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.
Re: (Score:3)
Re: (Score:2)
C++/CLI gets used plenty, but mostly in places where straight C++ has to interact with other managed code. It works, but C# is a *lot* easier to deal with if you're staying completely within the managed environment. If you don't have the need to mix them, you likely won't see it. In my case, I've had to use it both at my current job and the one previous when integrating legacy C++ code with newer
Re: (Score:2)
And, increasingly, F#. I haven't done the leap myself but will soon have to out of necessity, but I haven't seen a single C# -> F# developer want to go back.
Re: (Score:2)
It pretty much is one language, you just have to pick you prefered syntax.
There are a few minor differences but almost any statement in any of the 3 support languages has a functional equlivlent in the other 2.
Of course if for some deluded reason you chose the C++ frontend you can also mix in superior regular C++. Anyone who uses C++/CLI for anything other than compadiblity reasons should be isolated and forced to exculsively program in it untill they see the error of their thinking.
Re: (Score:2)
firefox bloat? please explain.
Re:Sort of, I don't know, I don't see the advantag (Score:4, 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).
Re: (Score:3)
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 [github.com] for Linux based on libuv [github.com]. 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 c