Re: Why [did you choose] C# ?
cjard,
Good post.
Quote:
who do actually think that VB.NET is the next evolution of VB6 for example..
Alas this seriously perpetuates some really bad programming habits.
For those of us who habve been around awhile, and remember "C" programmers who were writing "C++" programs that had no object orientation even though they might have had classes, the transition to managed code and the .Net framework is as big (or IMHO a bigger) transition in the mind set thought processes.
When I do professional training for developers on .Net, I will typically make C++ programmers learn the techniques using VB.Net, and VB6.0 programmers learn the techniques using C#. This breaks the mindset of "well I used to do it this way..."
Once the concepts are understood, learning how to apply them in the syntax of any of the managed languages is a much smaller effort.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by TheCPUWizard
Alas this seriously perpetuates some really bad programming habits.
Once the concepts are understood, learning how to apply them in the syntax of any of the managed languages is a much smaller effort.
Amen.. I just wish the manager of every IT department thought like that. Here (i'm sure it's no different to there) we have a "Well, we got 4 guys who know a bit of VBA, plus cjard who knows everything, so we'll use VB.NET because cjard might fall under a bus and we at least have a hope of understanding the code" mentality.
So far I've been called on to explain just about every feature of code that isnt present in VB6/A (threads, delegates, remoting, parameterized queries [and they WERE available back then]) and they still turn their nose up at the code and go back to writing
"SELECT * FROM table WHERE col =" & var & "..."
I never really thought about it, but I went from java -> some c++ -> vb6 -> c# (and then realised that all .NET languages are the same, so I conceded to the VB.NET demands) so i had to shed quite a few concepts along the way.. (THanks, VB6.. the rest have been "real" languages, thankfully)
I've given up trying to realise the same change in the others; at the end of the day I'm a contractor and I can do as I like.. they are managed employees, subject to the ignorance of the manager (not usually the most technical people)
Re: Why [did you choose] C# ?
Which just confirms what has been being said by most of us all along. :D
Re: Why [did you choose] C# ?
Quote:
Originally Posted by TheCPUWizard
Which just confirms what has been being said by most of us all along.
I'm not so sure about that. The discussion here has been largely technical and the Visual C++ team statement isn't about the technical merits of the languages. It's a political statement. It's about in which direction the Microsoft money will flow.
I still prefer C++/CLI and nobody has put forward strongly convincing arguments that C# is a better language. What I have come to realize though is that the decision isn't that dramatic because the .NET languages can be quite easily mixed.
Thanks everybody for this discussion. I know I can be a nuisance and I appologize for any inconvenience. :p
/Ulrika
Re: Why [did you choose] C# ?
I have to be very careful when discussing my thoughts on public MSFT statements, since I was previously an MSFT employee, and was party to many of the internal and confidential discussions....
That being said. Take a quick look at "why" the team may have made those statements.
1) In our discussions here, we could not come up with a compelling reason for using C++/CLI as a primary tool for developing business applications [which account for the vast majority of professional software development]
2) Many people are "comfortable" with either C# or even VB.NET. They can accomplish what they need, and do not have to faqce choices [e.g. Should I use Stack Semantics in C++/CLI]. Scott Meyers' said it best "Dont give users of your code multiple ways of accomplishing the same task. They will waste countless hours deciding which to use, when it really doesn't matter most of the time."
3) In any company, resources are limited (to at least some degree). Expending an effort on something that is not going to increase sales enough for the return on investment is simply bad business.
So [IMHO] rather than saying it is a "political statement". I would rather say it is a sound business decision based on both the underlying technical requirements of the available languages, and addressing the desires of the customer community.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by TheCPUWizard
So [IMHO] rather than saying it is a "political statement". I would rather say it is a sound business decision based on both the underlying technical requirements of the available languages, and addressing the desires of the customer community.
I agree. And okay "political" may not have been the right word but it is a communication of Microsoft's strategy (however they reached it).
I also agree that C# like Java are "safe" languages in the sense that they minimize the programmer's opportunities to "shoot themselves in the foot". Both Java and then C# came about as a reaction to the complexity of C++.
After the success of C# and after the failure of Managed C++ it's no big surprise really that C++/CLI has found it hard to establish itself as a strong alternative to C#.
Still, regardless of the above good properties of C# (programmer safety and popularity), it may not be the qualities I'm personally looking for in a language. I like the relative complexity of C++/CLI in relation to C#. I'm not that interested in that other programmers (possibly uneducated and unexperienced) find C# easier than C++/CLI.
In short I can take some pain if it gives some gain and that requires that C++/CLI offers some tangible benefits over C#. I will have to ponder this now with the information I have.
Re: Why [did you choose] C# ?
Quote:
Originally Posted by _uj
After the success of C# and after the failure of Managed C++ it's no big surprise really that C++/CLI has found it hard to establish itself as a strong alternative to C#.
I'm not sure Microsoft saw it as a competition either.. Look at it in purely monetary terms:
Microsoft want $$$, and that means taking some small amount of $ off a lot of people (developers)
Pander to the C++ technical gurus, and also support the internally developed company products that lean heavily on C++.. Invent C++/CLI
Pander to the "uneducated" programmers out there who are clearly too stupid(or jsut dont care) to understand the Really Hard Stuff in C++ -> invent C#
I reckon that both teams, within MS, have reasonably recouped the $ they spent on R&D the language.. MS took sensible business decisions, gave us a choice, we took our personal choices and gave MS $ because they pandered to us, everyone won.
They didnt bother with minor (Ruby...), old (COBOL...) or otherwise crappy (FoxPro...) syntaxes, and the brilliance being that the community will generate those syntaxes for free (for love, not $$)
Quote:
Still, regardless of the above good properties of C# (programmer safety and popularity), it may not be the qualities I'm personally looking for in a language.
That's the great thing about choice; buy a sports car and deactivate the traction control, airbags, anti-lock brakes etc..
Just a curio; howcome you never complained this loudly about Java? According to your posts, it's even more retarded than C# - did you always hate it?
Quote:
I like the relative complexity of C++/CLI in relation to C#. I'm not that interested in that other programmers (possibly uneducated and unexperienced) find C# easier than C++/CLI.
So, there's an element of snobbery here? If you could do the job in either C# or C++, you'd choose C++ because it's more "elite" and your programming peers are less likely to be "uneducated/inexperienced"?
For some, that may be as good a reason as any, but if that's your take, its a bit unfair to say that C# pros in this thread havent presented any good reasons in favour of C# (IMHO, of course)