Linked by David Adams on Wed 1st Oct 2008 14:32 UTC
General Development Microsoft's leader of C# development, writer of the Turbo Pascal system, and lead architect on the Delphi language, Anders Hejlsberg, reveals all there is to know on the history, inspiration, uses and future direction of one of computer programming's most widely used languages - C#. Hejlsberg also offers some insight into the upcoming version of C# (C#4) and the new language F#, as well as what lies ahead in the world of functional programming.
Thread beginning with comment 332080
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: C#
by segedunum on Wed 1st Oct 2008 18:53 UTC in reply to "RE[2]: C#"
segedunum
Member since:
2005-07-06

C# is not a systems programming language, it is mainly a business programming language.

There isn't even a great deal of that going on. Most of the business code that has been written on desktops over the years has been mainly C++ and Visual Basic, and there is simply zero business case for anyone to rewrite code just so they can run .Net and program in C# and get applications that are functionally equivalent.

Anybody who has moved to something new over the years has moved to web based applications, mainly because they don't need to faff about with the client and all the costs and administrative pain that entails. MSDN magazine comes up with ever more creative ways of pulling in dependencies that will blow your foot off once you try and deploy it to users. At least web applications have had some return on investment.

It doesn't make any sense whatsoever to program core parts of Windows in C#.

Then why should anyone else use it?

Reply Parent Bookmark Score: 3

RE[4]: C#
by Bending Unit on Wed 1st Oct 2008 19:26 in reply to "RE[3]: C#"
Bending Unit Member since:
2005-07-06

...there is simply zero business case for anyone to rewrite code just so they can run .Net and program in C# and get applications that are functionally equivalent.

Who is claiming that cloning your existing programs with C# is a good idea? You now have .NET and C# as an superior alternative to C++ and VB, simply use it if you want.

Anybody who has moved to something new over the years has moved to web based applications, mainly because they don't need to faff about with the client and all the costs and administrative pain that entails.

Such broad claims will always prove false. Anyway, web applications may very well mean ASP.NET and C#.

"It doesn't make any sense whatsoever to program core parts of Windows in C#.

Then why should anyone else use it?
"
What's the deal if not someone else is not using C# to program core parts of Windows?

If you just don't like this programming language or the company behind it, just say so. Less noise.

Reply Parent Bookmark Score: 5

RE[5]: C#
by Clinton on Thu 2nd Oct 2008 04:32 in reply to "RE[4]: C#"
Clinton Member since:
2005-07-05

Anyway, web applications may very well mean ASP.NET and C#.

I certainly hope not. In my opinion, using ASP.NET & C# for web sites is only slightly more elegant than creating web sites in FrontPage.

Reply Parent Bookmark Score: 4

RE[5]: C#
by segedunum on Thu 2nd Oct 2008 12:43 in reply to "RE[4]: C#"
segedunum Member since:
2005-07-06

Who is claiming that cloning your existing programs with C# is a good idea?

Errr, Microsoft. I take it you haven't read any editions of MSDN magazine or don't know how Microsoft is selling .Net? The whole Winforms -> Avalon/WPF stuff is an absolute classic example. Oh, just re-write your code in this technology.

You now have .NET and C# as an superior alternative to C++ and VB, simply use it if you want.

Unfortunately, there is a great deal of existing code around. There's not an awful lot of new stuff being written, and it's just a pity that the upgrade path, particularly for VB -> VB.Net is non-existent. People want to take their existing code and upgrade it into something new with no rewrites.

The statement you've written there means nothing.

Such broad claims will always prove false. Anyway, web applications may very well mean ASP.NET and C#.

Unfortunately, it's true. .Net adoption just simply isn't that fantastic due to vast amounts of legacy code, and the fact that it is a moving target (Winform, WPF etc. etc.), and there's really no reason to use ASP.Net. They're just competing with everyone else out there doing web application frameworks, and they're not doing anything on the client that is helping their customers or users from a backward compatibility point of view.

What's the deal if not someone else is not using C# to program core parts of Windows?

Because it doesn't inspire confidence. Microsoft are telling everyone to use .Net when their internal usage and their usage for their own applications is non-existent.

Really, I didn't think that concept needed explaining.

If you just don't like this programming language or the company behind it, just say so. Less noise.

Translation: Blah, blah, blah, you're being anti-Microsoft, wah, wah.

If you don't understand this, I'd advise reading Joel Spolsky's pretty spot on piece:

http://www.joelonsoftware.com/articles/APIWar.html

Reply Parent Bookmark Score: 2

RE[4]: C#
by StaubSaugerNZ on Wed 1st Oct 2008 19:38 in reply to "RE[3]: C#"
StaubSaugerNZ Member since:
2007-07-13

"C# is not a systems programming language, it is mainly a business programming language.

There isn't even a great deal of that going on. Most of the business code that has been written on desktops over the years has been mainly C++ and Visual Basic, and there is simply zero business case for anyone to rewrite code just so they can run .Net and program in C# and get applications that are functionally equivalent.
"

Also gotta love the marketer's summary
of one of computer programming's most widely used languages

Well, kind-of, but quite a small proportion of the development market actually (a smidgen over 4%).

If we're gonna be talking about averages here, Java is the thing that is used the most, about five(!) times more on average than C#.
Source:
http://www.tiobe.com/index.php/content/paperinfo/tpci/

Java is mostly used for the back end of webapps, but there are large number of Swing apps out in business-land (although there are negligible shrink-wrapped comsumer-level apps).

One reason for this disparity is developers asking themselves why they would use C# to get mostly equivalent functionality but limit themselves to only one server O/S? (Mono doesn't have all the newest stuff, but it is good project). Sure there are a few nice language tidbits in C# but they don't outweigh platform- and vendor-dependence, and in fact these extra language features don't constitute the bulk of most development code (they might affect a few percent of your codebase at most).

Reply Parent Bookmark Score: 4

RE[4]: C#
by jayson.knight on Wed 1st Oct 2008 20:26 in reply to "RE[3]: C#"
jayson.knight Member since:
2005-07-06

There isn't even a great deal of that going on. Most of the business code that has been written on desktops over the years has been mainly C++ and Visual Basic, and there is simply zero business case for anyone to rewrite code just so they can run .Net and program in C# and get applications that are functionally equivalent.


Funny how I have managed to stay employed for the past 7 years writing nothing but C# code in IT. Along with the hundreds of developers I've worked with. Along with the hundreds of developers they have worked with. Ad nauseam. No one is rewriting anything, but do you not think that IT departments are constantly writing new applications? And guess what they are doing it in...either .Net or Java. Your comment is just way off base.

Reply Parent Bookmark Score: 4

RE[5]: C#
by segedunum on Thu 2nd Oct 2008 12:56 in reply to "RE[4]: C#"
segedunum Member since:
2005-07-06

Funny how I have managed to stay employed for the past 7 years writing nothing but C# code in IT.

It's good when you can make money off writing new stuff, and then rewriting it again when a .Net change occurs or when something like Winforms gets dropped and you have to look at something completely new in WPF. Unfortunately, organisations that aren't that stupid to pay you money to do that simply don't go for that sort of thing. You're in a minority of people who can jack off on new technology, sadly.

Enjoy it while it lasts ;-).

Along with the hundreds of developers I've worked with. Along with the hundreds of developers they have worked with.

Yer. Hundreds.

No one is rewriting anything, but do you not think that IT departments are constantly writing new applications?

Very, very, very few new applications are rewritten versus what is already there, and those that exist are not going to be amended and tested so they run and interact with .Net apps. It's a waste of time, effort and money, and now that we have virtualisation we can make legacy applications run for pretty much as long as we want. I know where people are spending most of their money these days ;-).

And guess what they are doing it in...either .Net or Java. Your comment is just way off base.

No. They're doing it by maintaining existing Java code, and they're adding new features via C++, classic VB and COM, because that's what they're existing stuff is in.

The basic thing is this. Until you can open a C++ or a COM based application, or especially a classic VB based one, in the latest version of Visual Studio and not have to throw away a good portion of your code to get it to work or bung on compatibility layers, .Net is essentially useless for all the people who have invested in Microsoft's development tools and environments over the past fifteen years. Joel Spolsky describes this better than I can:

http://www.joelonsoftware.com/articles/APIWar.html

Reply Parent Bookmark Score: 2

RE[4]: C#
by memson on Wed 1st Oct 2008 21:32 in reply to "RE[3]: C#"
memson Member since:
2006-01-01

There isn't even a great deal of that going on. Most of the business code that has been written on desktops over the years has been mainly C++ and Visual Basic, and there is simply zero business case for anyone to rewrite code just so they can run .Net and program in C# and get applications that are functionally equivalent.


Sorry, but you are completely wrong. I've worked for a number of major companies where their entire in-house system was written from scratch in .Net languages. A lot was written in VB.Net, which is an absolutely different ball game to traditional VB6, but most is written in C#. I know of very little business software written in VC++ since the advent of .Net, but then maybe you travel in different circles.

I have also seen a lot of software written in managed code that is sold to other parties, be it ASP.NET or desktop apps. In fact, i *work* on a product that is sold to third parties and is extensively written in C# and VB.NET. There's no native code what so ever.

Reply Parent Bookmark Score: 4

RE[5]: C#
by segedunum on Thu 2nd Oct 2008 13:07 in reply to "RE[4]: C#"
segedunum Member since:
2005-07-06

Sorry, but you are completely wrong. I've worked for a number of major companies where their entire in-house system was written from scratch in .Net languages.

Sorry, but you need to get out more. If you don't understand what has gone on, read this:

http://www.joelonsoftware.com/articles/APIWar.html

Joel explains it better than I.

A lot was written in VB.Net, which is an absolutely different ball game to traditional VB6

Very little is written in VB.Net these days. All the existing VB code has been lost which means that new code is less likely to be written on top, and why use VB.Net when you can use a proper .Net language like C#?

Where have you been? The controversy of VB.Net amongst existing VB developers has gone on for years. The fact is, Microsoft doesn't have a RAD environment for .Net.

I know of very little business software written in VC++ since the advent of .Net, but then maybe you travel in different circles. I have also seen a lot of software written in managed code that is sold to other parties, be it ASP.NET or desktop apps.

That might be your experience, but I'm afraid that code running within a .Net environment makes up a very, very, very small proportion of all the code running on Windows today.

You might see some new stuff written with it, but you're not going to see an existing VB application opened in Visual Studio 2008, compiled to run in a .Net environment and maintained from then on in Visual Studio 2008. That's the crux of the matter.


In fact, i *work* on a product that is sold to third parties....

I'm not particularly interested in what you work on, because I'm afraid you're in a minority. You see few shrink wrapped products being developed with .Net, because most of them depend on existing code, and if you're selling development components to companies I think it's a fairly good bet that they're accessing your .Net components from COM.

is extensively written in C# and VB.NET. There's no native code what so ever.

I cannot think of a single reason why one would code in C# and VB.Net, other than to give the impression that VB.Net actually has a purpose ;-).

Reply Parent Bookmark Score: 2