Post a Comment
Why does Visual Studio have problems with standards compliant code that compiles in GCC perfectly fine (C++98 and C++03)? and vice verse (non standard c++ code not compiling in GCC)
You know, there are some people who professionally develop for Windows, getting payed for it.
Such people use VS because it makes life much, much easier when you need MFC, ATL, C#/WPF, ASP.NET, SQL Server, whatever.
Open source fanatics can troll as much as they want about gcc and whatever floss ide being better, that trolling doesn't change a thing.
Edited 2010-04-12 16:10 UTC
You really shouldn't hold up gcc to be a strict standards compliant c compiler. Historically, at least, it hasn't always demanded strict compliance with any standard. Don't ask me to recall them, its been awhile since c was my primary language.
I haven't used Visual Studio in a while, but I hear good things. I absolutely have grown to dislike eclipse. Its fully featured, but as fast and nimble as station wagon full of cement.
Now you can
http://www.microsoft.com/express/Downloads/
Maybe no Express yet, but you can download RC for free: http://www.microsoft.com/downloads/details.aspx?FamilyID=f9c0b89b-4...
I'm using it for a month now. After it expires - one year after you donwload it - I'll either buy Professional or use Express if I won't need all the features.
And if you are a student you can get it for free via DreamSpark:
https://www.dreamspark.com/Products/Product.aspx?ProductId=25
Oh, and there's also an Express version indeed (don't know if you have to be a student to get than one on dreamspark.com, maybe someone can check it out):
https://www.dreamspark.com/Products/Product.aspx?ProductId=29
I downloaded VS2010 via the DreamSpark website for free and I really like it. After years of coding OSS software I decided to see what all the fuzz was about. And I must say that I really like developing for my Windows 7 machine using WPF in VS. It has a great set of tools, the new IntelliTrace is a great feature and I am really productive.
Add to it the Blender tools for graphical development and you can easily see why so many developers are using the VS over the alternatives. Say what you want about Microsoft but they do take care of their developers (just look at Xbox vs PS3!).
These are the words from someone running Linux for 10 years (and I own a PS3 and no 360 btw). I just try to keep an open mind. 
I actually deliberately skipped Windows Phone 7 since I have no clue what the development tools for it looks like. But judging from Visual Studio, .NET, DirectX and XNA it wouldn't surprise me if they are good. Microsoft is pretty good at making nice tools for developers.
They are also very friendly on MSDN and I really like the Codeplex.
Still, there's a lot of stuff that I miss but credit where credit is due. 
So MS categorizes developers into 3 archtypes; Mort, Elvis, and Einstein
Mort doesn't really care about programming that much. He took some courses cause he could make money at it, he comes in at 9 and leaves at 5:01 every day. Any improvement he makes as a developer requires training provided by his company. He works hard, but he isn't exactly a "rockstar". Mort has a hard time with any programming that doesn't involve using his mouse.
Elvis loves programming. He is all about providing the best possible solutions in the most efficient way possible. In a large corporate environment, he is probably the team lead. Elvis enjoys reading blogs and going to conferences, and he will probably shun most of the drag and drop stuff in favor of more maintainable code.
Einstein is brilliant, but doesn't trust anything he hasn't written himself. He will choose going low level over using a framework every time, and wouldn't be caught dead using a mouse to code.
MS has sliced up their audience based on the representation of those three archtypes (if you ever hear the phrase "mort needs controls", this is what they are talking about). Unfortunately, there are a hell of a lot more "morts" out there then anything else, so tools cater to mort before the other two.
Once you understand that, you understand the tools. The MS platform is hands down the best out there for quickly banging something out when you don't care about code quality or maintainability. It's ok for building big projects quickly, although you often find yourself using APIs or doing things in a way that feel like second class citizens to the drag and drop way. It isn't that great for the Einsteins.
I've got 4 years experience developing in microsoft-land, and 8 years overall. How much do you have? How many conferences have you been to? The developer persona thing isn't a secret or anything, anybody who actually reads microsoft blogs would have at least heard of it. Did you bother googling?
http://www.codinghorror.com/blog/2007/11/mort-elvis-einstein-and-yo...
Now, when you look at ASP.net guidance and tutorials, what do you see? "Drag a grid to the page, drag a sql data source to the page, wire them up, profit!". Sql in the markup. Yeah.
Edited 2010-04-13 00:50 UTC
Let’s see, I’m 34. Started programming with a Ti99 4/A then Spectrum ZX when I was around 8-10 years old, a few years later started with Visual Studio 3 and the Atrocity of the MFCs. Those were my first “real MS” tools. Prior to that, Borland Turbo C++ in DOS (and some Pascal at college).
Some Assembly at college too.
I was part of the beta for .NET, that’s when I started with C# (barely touched VB, tho I did some work in VB6).
Since then, all the way up to .NET 3.51, soon 4.0.
Also participated in Objective-C projects (XCode/Cocoa), which I prefer and I’m considering on dropping all MS tools and environments.
I am a MCSE (which is useless and I couldn’t care less about it), also have a few exams for MSSE, but didn’t feel like doing that.
I don’t count honestly, I’m not a big conference guy (too much money, too little return other than a good breakfast). Since I’ve been a MS Certified Partner since 1998, I’ve been invited countless times to different events (some of which I’ve attended).
After the useless credential interchange that we just had, let me tell you that the “developer persona thing” is famous, but that doesn’t have anything to do with microsoft tools.
The Jeff Atwood text (a blog I follow since its inception possibly), doesn’t automatically make the comparison valid. Jeff is (or was) a known VB Guy and always had weird (according to his own words) vision of .NET (and VB in general).
Luckily for the rest of the world, Stack Overflow is (afaik) in C#/ASP.MVC.
Microsoft Tools are the best tools I had the opportunity to work with, and I assume they will continue to be excellent at what they do. They have awful things and sometimes you just wish they didn’t exist. But no amount of eclipse/netbeans/vi will replace that.
The “einstein” as you call it, doesn’t feel slowed down by VS. On the contrary I’d say. VS can be powerful, only the retards will believe its a simple “Visual Tool”.
If there’s something visual, I’d say Interface Builder is more “visual” with all the Drag/Drop to make connection between UI elements and code.
All in all, I want to move away from MS, too many years in it.
Haha, I thought you were calling me an idiot for the developer persona thing. If someone doesn't know about that, they obviously have very little experience in the MS world, which is why I was questioning you. This is actually a completely different conversation then I thought it was, and I'm sorry for making assumptions.
I never said it was a 'simple visual tool'. What I said it that everything seems geared towards doing the quickest/easiest way. Now a caveat on that, I'm a web guy, and my experience with .net is with building ASP apps and services, so this may just be an ASP.net thing, but like I said, the guidance, tools, and APIs are geared towards doing things the wrong way. You can work around it, but when you do that you tend to give up the things that make visual studio visual studio.
A good example is databinding. As soon as you think having sql in your datasource is a bad idea, you start giving up large amounts of functionality. You can get most of it back, but it will probably mean quite a bit of reading of sites that are not msdn, about stuff that are not covered in MS books. That is because the way things are geared is what I described before "drag a grid to a page, drag a datasource to a page, wire them up, and don't care about how it serializes out everything to a hidden field that will go over the wire on every page load"
Now you brought up the apple tools. I have only played with them a little bit, but from what I can see, they guide you down a pretty good path. If you look at something like rails or django, same deal, you actually have to work pretty hard to end up with a big ball of mud.
There is more too. WF, while pretty, is slow as a mule, and even worse to debug. Sharepoint is a nightmare to build for, and the end product is pretty terrible from a web development perspective. EF has taken years to not totally blow, and that is mostly because now you have the option to not use their tooling. MSBuild and MSTest are like slower, obsolete versions of NUnit and NAnt, which themselves are hardly revolutionary to bein with. And don't even get me started on commerce server. Probably the worst e-commerce platform I have ever worked with, where it is joined by MS CMS, which (at least a few years back when we were using it), is the worst CMS in existence.
Thats not to say there isn't brilliant stuff from MS as well, but typically, those are things that allow you to not have to use their tooling. As for studio itself, I think it leads the way with its debugger, but its editor is above average, and its additional wizards, design surfaces, and tools more often then not should be avoided if you want to have clean, maintainable code.
That's a pretty big generalization, and it is not very accurate either. It is true that people that doesn't "love" programming and sees it more as a job than a profession are doing well thanks to the tools that Microsoft (and others) provide them, the assumption that catering to more than one kind of people is impossible is bogus.
I know a lot of great programmers that love what they do and are really good at it whom, guess what, uses Visual Studio. Impossible? No. Different tools works for different people. But generalization are wrong.
It's like saying that only people using Linux are truly good at computers, because Windows is used by people that are not. Nothing in life is that simple.
Yet their visual tools (winforms, arguably the most used tech of VS) was really bad last time I checked.
Unless you’re porting a hello world or a .DLL project without win calls (obviously), mono is very limited in its cross-platformness. I remember managing to make Gentle.NET in Mac using Mono, but that was a “wow!” because you could hardly do anything else.
A properly designed program should be able to run headless, if it adheres to proper separation of concerns.
I've had very limited issues with replacing full blown WinForms or WPF frontends with Gtk#.
MonoDevelop is not perfect, but it is approaching becoming one of the best non-Windows IDEs.
I spitted all my Tea.
I've had very limited issues with replacing full blown WinForms or WPF frontends with Gtk#.
I ignore the complexity of those systems, but I am dubious that they are nothing more than a series of Winform buttons/labels and such.
MonoDevelop is not perfect, but it is approaching becoming one of the best non-Windows IDEs.
MonoDevelop is nice, but if that is “one of the best” non-Windows IDEs, I understand why the majority of .NET developers use any form of Visual Studio under Windows.
Given a properly designed application, which has been my experience, your object model has no notion of any UI toolkit.
I'm able to switch between Wpf, WinForms, and Gtk# with very little fuss because from the beginning my Views had a corresponding Adapter which implemented an INotifyPropertyChange rendition of my object model.
Gtk# has an addon library called Gtk-Databind to facilitate this.
A few things broke on Mono, but MOMA helped me track then down and I was able to work around them pretty easily.
MonoDevelop is nice, but if that is “one of the best” non-Windows IDEs, I understand why the majority of .NET developers use any form of Visual Studio under Windows.
Outside of Visual Studio, there is really no competition. Some people swear by Eclipse, I swear at Eclipse.




