Hello?
"...World..."?
Doubt it.
"The world is built on C++ and so is Microsoft," proclaimed Herb Sutter at Microsoft's Build conference last week in Seattle, Washington. Sutter is chair of the ISO C++ standards committee and Microsoft's Visual C++ language architect. Native code is currently ascendant inside his company, with C++ prominent in SDKs for …
Visual Studio does not force you to write "Metro" applications. Want free? There you go.
For one I welcome increased compatibility with C++11 and hope that remaining features (deleted and defaulted functions please, and "rvalue for *this" too)
Problem with the VS 2012 Express stuff is that you're still somewhat tied to Windows 8, which is something I'm really not looking forward of using.
So instead of that stuff I'd sooner recommend grabbing one of the VS 2010 Express versions instead. Works excellent on both Windows 7 or Windows 8 (if that's your thing).
You don't even have to deal with the "Desktop version" nonsense (personal opinion) but instead can focus on language; are you going to use C#, VB or C++ ?
"Way worse than .NET (the Microsoft Java clone, way more messed up than Java itself)."
Uhm, you do realize that .NET is nothing more but a framework which can be used to gain easier access to specific Windows components? Its not a programming language and most certainly not a Java clone.
What you're referring to is C#(.NET); a programming language which can be used to write applications which fully utilize the .NET framework, comparable to the way a Java program is build upon the Java runtime. And indeed; in a way C# mimics Java.
But don't forget that you can also use Visual Basic as well as C++ to build .NET applications. Heck, MS' own application server (IIS) even provides .NET support for ASP build webpages.
You have no clue what you are talking about, really.
.NET is a virtual machine just like Java.
"nothing more but a framework" you wrote there means absolutely nothing that way.
The C# language for accessing .NET components and programming doesn't mean that it isn't a virtual machine because .NET is a virtual machine, plain and simple.
That is the reason why .NET apps are so slow and bad compared to C++ ones.
And that is a good reason why since Microsoft forced video cards/GPU manufacturers to write drivers using .NET the distribution packages became a bloated mess and the number of bugs increased like never before.
C# and .NET just like Java are suited for not real programmers. Real programmers use C/C++ and in-line assembly at least.
The thumbs-down is curious. Perhaps you'd care to actually explain to me what exactly is wrong with this statement:
Java is a language, not a VM. Compiled Java code may, or may not, run on a VM.
...?
Before explaining, you could perhaps look up some Java compilers that compile direct to machine code, or perhaps even open a text book.
Real programmers code in any given language that fits the task they are given and the platform they need to integrate to. Be it C++, C# VB.NET, Perl, Python etc etc etc. At the end of the day they are all pretty easy to pick up.
Sticking to one platform is usally the domain of amateur developers. Professsionals who stick to one platform severely limit their employment options.
VB.NET is not BASIC. It looks a bit like BASIC to some one who isn't familiar with BASIC, in the same way that C# looks a bit like C++. But decades of programming BASIC don't give you any familiarity with VB.NET. Quite the reverse: your deep understanding of the way any BASIC will work just makes VB.NET irritating.
And to continue the thought, ASP (vbscript) is not ASP.NET (CLR).
Anyway, Dot Net is in no way a "framework which can be used to gain easier access to specific Windows components". It is the framework which is required to achieve access to Windows from the CLR.
Which is not quite the same thing.
don't forget that you can also use Visual Basic as well as C++ to build .NET applications
Yes, and dozens of other languages. VB.NET would be somewhere around my last choice, personally.
See for example the list at [1]. It's rather idiosyncratic and not terribly accurate (it lists F# only as a Caml implementation, for example, and the information for .NET COBOL implementations is rather out of date), but it gives a sense of the state of play.
C# is actually the "Java clone".
There are several hundred reasons why it is superior to Java not least the ability to compare strings with the "==" operand rather than the awful aString.equals(anotherString) construct.
I would not normally consider myself an MS fan. I use Ubuntu with Python or C as my preferred development platform. But must use a variety of languages in my day job which pays the rent (Java, COBOL, C, bash, Rexx, VBA and C#) the only computer language I really don't like using is C++ -- the learning curve is way too steep for anyone not using it full time.
So all credit to MS for C# and .net.
Never understood why the world and his dog don't spend more time making C++ better rather than inventing loads of junk languages. Or at least improve other solid languages that run well and fast.
Abstraction and virtualisation was possible and desirable on desktops, but on the mobile device you really want as little of that as you can get.
C++11 is BETTER THAN YOU CAN HANDLE. No, seriously, it is. It's added so many new, better features that's it's now barely usable. For example, user defined compile time constants.
The idea of improving the language by *reducing* the number of features so as to make it more flexible, consistent and understandable (and removing some of the outright bugs in the syntax) does not seem to have occurred to them.
This post has been deleted by its author
People are downvoting this, but probably many forgot what MS C/C++ compiler was before Borland C++ became a serious competitor. It forced Microsft to deliver far better tools (and meanwhile do whatever they can to crush Borland - especially hiring its better employees like Hejlsberg....). Unluckily the current owner of the ex-Borland products is not capable of delivering nothing at that level... and no one else dares to enter such a market.
No - if you have a common set of API whatever the underlying hardware architecture is you just need to recompile - a PCode/IL just defers the compilation step to execution time. Only kernel code may have to face different hardware architecture issues - and not all of it.
Windows NT supported Alpha and MIPS also - do you remember?
Look at Linux and GCC - on how many hardware platform does it compile? C itself was devised to allow for porting operating system easily from an hardware platform to another - as long as you have a compiler for that platform you can run it on it (of course you will need some ad-hoc drivers....)
I know a company that's doing that, sort of. Luckily in the years that the planned release has slipped, Mono has improved to the point where it might actually work. Equally luckily, NIST changed the policy on SHA-1 that originally gave a hard limit of 2010 for the release date.
>.NET is a cross-platform solution just as soon as the open-source community choose to make it so.
Which is exactly my point. OSS can smell the trojan horse that .Net has been from a mile away regardless of Microsoft's promises. Thats why most distributions don't include Mono and any apps by default. Until Microsoft explicitly supports .Net on a platform, to use it for anything business critical is just plain stupid. Oracle understands this and is one more reason Java is eating .Net lunch.
"We have a really mature compiler and optimiser. It's been around for a decade or two, on x86 and x64. Then we have a version 1 release of ARM. You can expect that to get better."
The Microsoft ARM compiler is not much younger than the x64 compiler. The former dates back to the early WinCE releases, and the latter post-dates the era when Intel were trying to convince everyone that there would be no 64-bit extension to x86. If Microsoft's ARM compiler is immature, it certainly isn't because it is new.
So this article all but admits .Net has been a failure (obvious to rest of world) and caused M$ to badly neglect MFC (which they have done) which is still how many pros build windows clients that will run on virtually every modern version of windows (sorry web folks but even HTML 5 is not fit for a fat client). Now much like with .Net and Silverlight they are pushing WinRT which like Silverlight will fail and be deprecated in three years. Hey Microsoft how about fixing MFC, and modernizing it instead of pushing out crap 3rd party add ons like the BCGSoft ribbon stuff which is badly broken. Give up trying to be sexy, you suck at it and get back to making tools real developers will use in the enterprise.
Managed code has its place but Microsoft was stupid to believe unmanaged code would disappear by now. Just because fresh out coding hacks don't understand how a computer works and can now hack out crap doesn't mean there is not a need for people who do understand how a computer works and can write efficient code to take advantage of that.
All one needs to know about why the BCGSoft ribbon (now named MFCRibbonBar after M$ bought in desperation) stuff sucks can be summed up in the phrase you see the most in there nonexistent documentation, "this topic is included for completeness only". And while I'm at has MSDN online been shit slow for anyone else for last several days?
> if you consider the number of jobs wanting these skills, which is what its all about.
Well here in the US if that is your criteria we should all be java programmers which is what .Net tried to take down and failed miserably. At least with C++ and Java you are not tied down to one platform and one company unlike C# (Mono hahahaha).
http://www.indeed.com/jobanalytics/jobtrends?q=java%2C+C%2B%2B%2C+C%23%2C+visual+basic%2C+Perl%2C+objective+c&l=
This post has been deleted by its author
asdf maybe stick to topics you know something about in future; game development clearly isn't one of them. Big fancy 3D titles have been written in managed languages for years.
I guess you're either a coding dinosaur or you read an article on "Java is slow because it's not compiled" in the 90's once.
http://unity3d.com/gallery/
I use C# because it lets me write 3D game code that will work on Windows, OSX, iOS, Android and the Web (soon to include Windows Phone 8). Yes, it relies on Mono, but the only things of use that are missing from Mono are those things that only make sense in a Windows environment.
The productivity gain in not having to recode for different platforms is huge.
It is a 3D Scrabble game that rotates smoothly on Android with hundreds of active game objects.
The underlying game engine (Unity) runs in native code on each target platform.
As an aside, I believe that the greater the degree of rudeness and dogmatism that a person exhibits when discussing a particular subject, the less they actually know about it.
Your contribution has done nothing to alter this belief.
This post has been deleted by its author
Good luck on your upgrade path continuing to work on IOS and Mac OSX a few years from now. As for Android no surprise there as its the most open platform you named. Yes C# has excellent technical merits and has its place. My point is Microsoft badly neglecting C++ and MFC over the last decade is a huge mistake and yet another symptom of the disease that is rotting it from the core out. Losing their big wig in charge of Win8 is yet more reinforcement. Its good to know as many technologies as you can but C# is tied to closely too one company and their ecosystem for its own good. Its too bad really because if its developed by any other company without the massive vested empire it may well have supplanted Java.
Also for the record for every one success story about using Mono business wise, I have heard about a dozen people of companies trying it out and giving up as the solution being too flaky or even worse have to yank and re-engineer later. Microsoft dropping Silverlight like a hot potato should have been the wake up call why this is not a good strategy long term as well.