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.
Order by: Score:
C#
by Almafeta on Wed 1st Oct 2008 16:34 UTC
Almafeta
Member since:
2007-02-22

Amusing that he calls C++ and Java programmers the "curly braces crowd."

From what he mentioned about the use of various programming languages in low-level Windows development, I have to wonder how much C# has been used in modern Windows (Vista onwards).

RE: C#
by Milo_Hoffman on Wed 1st Oct 2008 16:39 UTC in reply to "C#"
Milo_Hoffman Member since:
2005-07-06

Its been almost a DECADE SINCE Microsoft announced they were going to stop trying to pretend like they were going to use any standard version of Java, and moved to their own proprietary copy of the java concepts.


And yet..in all that time very little is actually using it in the Windows OS.

Makes you go hmmmm.

RE[2]: C#
by jayson.knight on Wed 1st Oct 2008 17:38 UTC in reply to "RE: C#"
jayson.knight Member since:
2005-07-06

And yet..in all that time very little is actually using it in the Windows OS. Makes you go hmmmm.


C# is not a systems programming language, it is mainly a business programming language. It doesn't make any sense whatsoever to program core parts of Windows in C#.

RE[3]: C#
by major86 on Wed 1st Oct 2008 18:13 UTC in reply to "RE[2]: C#"
major86 Member since:
2008-04-21

but MS does consider it being good for system-level programming (for instance Singularity Project).

RE[4]: C#
by Morph on Wed 1st Oct 2008 19:41 UTC in reply to "RE[3]: C#"
Morph Member since:
2007-08-20

Surprising not to see a mention of Singularity in the article, actually...

RE[4]: C#
by PlatformAgnostic on Wed 1st Oct 2008 22:50 UTC in reply to "RE[3]: C#"
PlatformAgnostic Member since:
2006-01-02

The language is good, but the runtime won't work for low-level Windows components for a couple of reasons (many improvements were made too late in the game for inclusion into Vista). Singularity uses a totally different runtime system that doesn't do any jitting and requires that the entire system be compiled with a single compiler. That's not exactly in line with the Windows way of doing things.

And some Windows apps are written in .NET. Media Center is a big standout that ships in the box for many editions of Vista. It's not exactly a small or crappy app.

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?

RE[4]: C#
by Bending Unit on Wed 1st Oct 2008 19:26 UTC 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.

RE[4]: C#
by StaubSaugerNZ on Wed 1st Oct 2008 19:38 UTC 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).

RE[4]: C#
by jayson.knight on Wed 1st Oct 2008 20:26 UTC 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.

RE[4]: C#
by memson on Wed 1st Oct 2008 21:32 UTC 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.

RE[3]: C#
by ebasconp on Wed 1st Oct 2008 19:57 UTC in reply to "RE[2]: C#"
ebasconp Member since:
2006-05-09

C# is not a systems programming language...


Why not?

Look at SharpOS:

http://en.wikipedia.org/wiki/SharpOS_(operating_system)

RE[2]: C#
by modmans2ndcoming on Wed 1st Oct 2008 23:14 UTC in reply to "RE: C#"
modmans2ndcoming Member since:
2005-11-09

sun uses how much java in Solaris?

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

Yer, and look at the state of the development landscape on Sun's client and workstation systems :-). Confused, disjointed and not something you feel confident developing on at all.

Edited 2008-10-02 13:09 UTC

RE[4]: C#
by modmans2ndcoming on Thu 2nd Oct 2008 15:22 UTC in reply to "RE[3]: C#"
modmans2ndcoming Member since:
2005-11-09

The lack of usage of java in the OS has nothing to do with the quality of the dev environment on their client and server systems.

This is getting away from C# but:

Java was never designed to be a multi-language run time framework that was set to be the central framework used to develop applications for the Solaris ecosystem.

.net is set to be the central framework used to develop applications for the Windows ecosystem. it is more cohesive than Java's mess of a framework and a lot more developer friendly.

RE[2]: C#
by google_ninja on Thu 2nd Oct 2008 16:03 UTC in reply to "RE: C#"
google_ninja Member since:
2006-02-05

Almost every business product MS has uses .net in some way, and almost every new product they make is done in .net. There is no real business case in re-writing most of their software from the ground up in .net for no other reason then maintainability and futureproofing, for them or for anyone else.

RE[3]: C#
by segedunum on Fri 3rd Oct 2008 12:14 UTC in reply to "RE[2]: C#"
segedunum Member since:
2005-07-06

There is no real business case in re-writing most of their software from the ground up in .net for no other reason then maintainability and futureproofing, for them or for anyone else.

Then why can't Microsoft's customers take a classic VB project, or a VC++ 5 or 6 application, open it up in Visual Studio 2008 and get it to compile and run in a .Net environment with very little, if any, code changes? Why is Microsoft asking their customers to do something that they themselves admit is a waste of time and money and is not backwards compatible?

RE[4]: C#
by google_ninja on Fri 3rd Oct 2008 12:47 UTC in reply to "RE[3]: C#"
google_ninja Member since:
2006-02-05

I don't think anyone is asking people to do that. MS released a new version of the WTL awhile back that had vista bits that only got into .net natively a few weeks ago when 3.5SP1 came out. There is still a large amount of legacy VB/C++ apps out there, and a large community of people around them. .Net is for new development. I wouldn't doubt you if you said you saw some marketing schlock that said otherwise, but nobody with any sense would take that seriously, even microsoft itself.

RE: C#
by Shannara on Wed 1st Oct 2008 20:37 UTC in reply to "C#"
Shannara Member since:
2005-07-06

The Alaskan state government for one ;) Some federal government branches for another.

Poorly choosen name?
by Milo_Hoffman on Wed 1st Oct 2008 16:36 UTC
Milo_Hoffman
Member since:
2005-07-06

C# seems like such a poorly chosen name.

Microsoft should have just called it what it REALLY IS, having failed to corrupt the Java marketplace with proprietary extensions and strategic omissions in their horrible J++ product, Microsoft has simply created a copy of Java, threw in some features borrowed from Delphi, and came out with a new name and a familiar marketing approach.


It would seem like something along the lines of: "Microsoft Cafe", "Microsoft Brew", "Ground Rounds", "Strange Brew", "We have a java too neeiner neeiner", etc.

Edited 2008-10-01 16:42 UTC

RE: Poorly choosen name?
by ebasconp on Wed 1st Oct 2008 20:54 UTC in reply to "Poorly choosen name?"
ebasconp Member since:
2006-05-09

I disagree with you.

I am not a Microsoft fan and I am actually a Java developer, but I consider C# a good evolution over Java, improving in several aspects, from small to larger ones:

1. Though I do not like the idea of "properties", they improve the developer productivity and the program readibility.

2. Primitive types autoboxing is far better than the Java's, you can create a List<int> in C#, but in Java you must to create a List<Integer> using the wrapper class.

3. The type erasure is a big mistake on the generics implementation on Java. C# implements generics support from the CLR and that's nice.

4. The C interoperability mechanism in C# [PInvoke] is better than Java, it is easier to use and you do not need to create a wrapper DLL around the C functions you must to use.

5. Support for enumerated types and custom properties [annotations] is built from C# 1.0; in Java they added such feature since Java 5 due to hardly competition with .NET.

And about the name... is just great!! C is the language, C is the musical note; C++ is an "increment" to C... and C# is a semitone upper to C... really nice.

Do not read me wrong, I am not a C# advocate, and I like Java, but we cannot speculate saying Java is better for the simple fact of being.

RE[2]: Poorly choosen name?
by Clinton on Thu 2nd Oct 2008 04:40 UTC in reply to "RE: Poorly choosen name?"
Clinton Member since:
2005-07-05

Of course there were improvements over Java. Microsoft could look at Java, copy it, and make improvements where necessary. It wasn't like they came up with the improvement by themselves either. There was a lot of talk at the time of things Java could have done better and many of those things made it into C#. I don't mean to say that C# is worthless (I don't particularly like it or Java, but I think both have some value), but it isn't anywhere near the greatest advance in software development.

I worked with many of the very early versions of C# prior to its first release, it was embarrassing how exactly like Java C# was. I remember the first time I reviewed some preliminary documentation for C# thinking to myself, "Wow Microsoft, you changed 'main' to 'Main'. Way to make it your own..."

I like the parent poster's names for Microsoft Java, but I always thought Microsoft should have called it "Me2".

RE: Poorly choosen name?
by memson on Wed 1st Oct 2008 21:16 UTC in reply to "Poorly choosen name?"
memson Member since:
2006-01-01

C# seems like such a poorly chosen name.


Well it's not so bad.

Microsoft should have just called it what it REALLY IS, having failed to corrupt the Java marketplace with proprietary extensions and strategic omissions in their horrible J++ product, Microsoft has simply created a copy of Java, threw in some features borrowed from Delphi, and came out with a new name and a familiar marketing approach.


C# is more like C++ than Java. It's C++ with a managed VM and ideas culled from Delphi. C# shares a lot less common syntax with Java than it does with C++ really. It just implements a lot of the borrowed Delphi ideas in more of a C++/Java fashion.

Having said all that, C# is actually a pleasant and productive language. It isn't crippled as Java is with its obsession with try/catch and odd MVC based GUI nonsense. C# lets you do all that if you *want* to, not because you **have** to.

Then again, my personal pref, YMMV.

RE[2]: Poorly choosen name?
by ebasconp on Wed 1st Oct 2008 23:05 UTC in reply to "RE: Poorly choosen name?"
ebasconp Member since:
2006-05-09

... It isn't crippled as Java is with its obsession with try/catch and odd MVC based GUI nonsense...


Actually I think Swing is the best designed UI toolkit ever!

RE[3]: Poorly choosen name?
by Chicken Blood on Thu 2nd Oct 2008 04:17 UTC in reply to "RE[2]: Poorly choosen name?"
Chicken Blood Member since:
2005-12-21

"... It isn't crippled as Java is with its obsession with try/catch and odd MVC based GUI nonsense...


Actually I think Swing is the best designed UI toolkit ever!
"

I guess it's the only one you've used then.

RE[4]: Poorly choosen name?
by ebasconp on Thu 2nd Oct 2008 14:44 UTC in reply to "RE[3]: Poorly choosen name?"
ebasconp Member since:
2006-05-09

No, I worked with several UI frameworks including System.Windows.Forms, Qt and GTK+, and in my humble opinion, the way Swing was modelled is pretty good and far better than their competition.

Ah! I worked also with MFC, and it really sucks!

Edited 2008-10-02 14:45 UTC

RE[3]: Poorly choosen name?
by Clinton on Thu 2nd Oct 2008 04:44 UTC in reply to "RE[2]: Poorly choosen name?"
Clinton Member since:
2005-07-05

Nah... Swing sucks compared to Qt or wxWindows, I think. I always thought OWL was a pretty good library too; back in the day anyway.

RE[4]: Poorly choosen name?
by StaubSaugerNZ on Thu 2nd Oct 2008 06:42 UTC in reply to "RE[3]: Poorly choosen name?"
StaubSaugerNZ Member since:
2007-07-13

Nah... Swing sucks compared to Qt or wxWindows, I think. I always thought OWL was a pretty good library too; back in the day anyway.


Umm, how can you say Swing sucks when Swing is closer to the design spirit of OWL than almost any other toolkit out there. OWL rocked compared to MFC, unfortunately Microsoft delayed licensing Win32 to Borland which destroyed Borland's chances of competing - nothing new here, that's always the way MS rolls (and we're seeing glimpses of it from Apple as well).

Qt and wxWindows are hideous in that that use preprocessor cruft to get stuff done, so I can't see how they could possibly be superior from a design point of view. Especially now that Java2D (and Swing as a consequence) is completely hardware accelerated with pixel shaders (and no change required to the source- or byte-code of any application!).

Incidentally, C# was originally a project called "Cool" and came directlyu from Microsoft's Java implementation, though they don't want to mention it since they lost a court battle with Sun over use of the term Java.


4. The C interoperability mechanism in C# [PInvoke] is better than Java, it is easier to use and you do not need to create a wrapper DLL around the C functions you must to use.

It might be the case for clients, but in my experience writing native DLLS to be wrapped I've found C++ -> C# far more fraught with pitfalls (pinning nonsense and all the non-standard C++ macros required) than the equivalent JNI (Java Native Interface) -> Java coding (which initially looks daunting but is actually very straightforward and relatively simple).

I won't start on about wrapping .so/.jnilib since MS C# can't do it but Java can (important with the 20% computer sales that Apple are surging to).

Edited 2008-10-02 06:44 UTC

RE: Poorly choosen name?
by PlatformAgnostic on Wed 1st Oct 2008 21:31 UTC in reply to "Poorly choosen name?"
PlatformAgnostic Member since:
2006-01-02

I wasn't aware that Java has anything like LINQ.

As Anders noted: C# 3.0 is the first version in which that group is trying to push the state of the art forward. This matches well with Joel On Software's 10 year rule or the usual Microsoft Version 3 rule.

RE: Poorly choosen name?
by modmans2ndcoming on Thu 2nd Oct 2008 15:24 UTC in reply to "Poorly choosen name?"
modmans2ndcoming Member since:
2005-11-09

Sorry, but C# is much more than that. It is a very well thought out language that fixes problems that Java had and makes it a lot easier to deal with common design issues.

RE: Poorly choosen name?
by google_ninja on Fri 3rd Oct 2008 12:50 UTC in reply to "Poorly choosen name?"
google_ninja Member since:
2006-02-05

Politics aside, J++ was not a horrible product. Those extensions were sorely needed advances that couldn't happen in the glacial JCP, it was the best IDE for years, and it was faster.

You could say the same thing to sun, why call it java when the differences with C++ are more stylistic and omissions then anything else?

And C# borrows features from all over, python features being far more notable then those brought over from Delphi.

RE[2]: Poorly choosen name?
by fretinator on Fri 3rd Oct 2008 14:28 UTC in reply to "RE: Poorly choosen name?"
fretinator Member since:
2005-07-06

Politics aside, J++ was not a horrible product.

I beg to differ. I remember when Visual J++ came out. One of the "highlights" of J++ was the WFC - the Windows Foundation Classes. Basically, WFC was an MFC for Java. It allowed J++ developers to develop Windows-only applications in an MFC fashion. As an MFC developer, I thought that was amazingly foolish. If I wanted to develop MFC applications, I was going to use MFC, not some wierd Java/MFC kludge. And if I was a java developer, there was no way I was going to give up the platform-neutral appeal of java to start creating Windows-only apps. To me, it looked like a total dead end - and I was right. Visual J++ started down a bad road, that fortunately dead-ended very quickly.

Sorry to say...
by Kochise on Wed 1st Oct 2008 17:57 UTC
Kochise
Member since:
2006-03-03

"I definitely think that there is a space for functional programming today, and F# is unique in being the first industrial strength functional programming language with an industrial strength tooling language behind it, and an industrial strength platform underneath it."

Have this guy ever heard of... Erlang ? Hard to make more "industrial strength functional programming language with an industrial strength tooling language behind it"... I bet Joe Armstrong at Ericson would love this quote ;)

Kochise

RE: Sorry to say...
by Kroc on Wed 1st Oct 2008 18:53 UTC in reply to "Sorry to say..."
Kroc Member since:
2005-11-10

Marketing men and PR people have only heard of products that existed from today onwards. The only history is their product's history ;)

RE[2]: Sorry to say...
by Morph on Wed 1st Oct 2008 19:43 UTC in reply to "RE: Sorry to say..."
Morph Member since:
2007-08-20

The author of three programming languages is hardly a mere 'marketing man' ;)

RE[2]: Sorry to say...
by ebasconp on Wed 1st Oct 2008 21:03 UTC in reply to "RE: Sorry to say..."
ebasconp Member since:
2006-05-09

Marketing men and PR people have only heard of products that existed from today onwards. The only history is their product's history ;)


Did you create a compiler for Pascal and call it TurboPascal?

Did you create J++ [no politics, please] or C#?

Were you the main architect of Delphi early versions?

Anders Hejlsberg is a very respectful guy, and if you read the article, you can see the personal quality he has... He is a personality, but he is happy "because Microsoft confided in him and gave him the opportunity"...

RE[2]: Sorry to say...
by Kochise on Thu 2nd Oct 2008 07:23 UTC in reply to "RE: Sorry to say..."
Kochise Member since:
2006-03-03

Anders Hejlsberg is a wise guy, at least I bet so. Yet I find 'strange' that he 'missed' a concurrent language (to say the least about Erlang) that exists for 20 years now !

Would F# be able to run a complex engine such like the Ericsson AXD301 ATM switch with industrial real-time performance, fault tolerancy, hot code swaping like Erlang currently does ? After all, Anders states that F# is the "first industrial strength functional programming language"...

Kochise

RE[2]: Sorry to say...
by Soulbender on Thu 2nd Oct 2008 12:03 UTC in reply to "RE: Sorry to say..."
Soulbender Member since:
2005-08-18

Except he is neither.

Apparently he likes mono
by sukru on Wed 1st Oct 2008 19:53 UTC
sukru
Member since:
2006-11-19

When asked for his opinion on standards, Hejlsberg replied:

Mono has done so, and I think Mono is a fantastic thing. I don't know [if] you'™re familiar with Mono, but it's an implementation of the C# standard and the CLI standard (which is effectively the .NET standard) on Linux, built as an open source project. And they're doing great work and we talk to them a lot and I think it's a super thing.


It's nice the hear support for mono from inside Microsoft.

Edited 2008-10-01 19:56 UTC

Comment by sanders
by sanders on Thu 2nd Oct 2008 11:48 UTC
sanders
Member since:
2005-08-09

I liked the tone of the article. Anders seems like a nice guy. It almost made me feel sorry for my diatribe against C# ( http://www.curly-brace.com/favorite.html )...

Segedunum
by jayson.knight on Fri 3rd Oct 2008 16:34 UTC
jayson.knight
Member since:
2005-07-06

You sir, are nothing but a misinformed troll. Virtually everything you've mentioned in your last few posts is just flat out wrong. It would take me an hour just to correct all the factual inaccuracies you're giving. I honestly don't know where you are getting your information from, but I'm inclined to think you're just making it up.

FACT: COM is dead in IT. Legacy components exist, but the majority of companies have long since moved on to newer technologies. COM is ANCIENT history. Components have indeed either been rewritten, or have been wrapped. I'd like to know where you get the notion that deploying COM interop is anywhere even close the nightmare that was COM deployment? You deploy the interop assemblies, and you're basically done. All of the COM registration information is embedded in the manifests themselves. You simply deploy the assemblies and are done with it. I've done this literally hundreds of times, and so long as the COM components followed MS guidelines, there have been no major issues.

FACT: People DO want interop, for all of the reasons that you yourself have mentioned. Had .Net been released without interop, that would have been the nail in the coffin right there. MS has always bent over backwards to provide backwards compatibility, and interop is no different. No one wants to 'open their code in a new version of Visual Studio and compile it'...perhaps you've never heard of black box development? There is no reason to even mess with older code if it was written correctly to begin with.

If you think that only 2% of IT departments and companies out there are maintaining existing code and the rest are writing shiny new .Net code then you are away with the fairies sweetheart.


You misquoted me again. The correct quote should be that only 2% of IT departments are maintaining existing COM components. As for suggesting that I work for a living, are you kidding me? I've got a decade in the software industry, and 8 of those years have been 95% .Net development (and 2 of those actually working for Microsoft). I have written and deployed more production code than you've probably even read as is oh so evident by your complete lack of knowledge of how IT really works.

Did you actually talk with him [Joel Spolsky] about what he wrote?


Yes. Several times. I've never outright asked him for permission to directly quote him, but maybe I will.

Not sure what that's a reply to, but if you're saying VB.Net actually has a purpose versus C# then you are misguided. They both have exactly the same language features and compile to exactly the same IL.


You're wrong again. They do not compile down to the same IL. In many cases, the IL is actually quite different. VB has plenty of different features that lend itself to more RAD style development. The two languages have diverged quite a bit over the years actually.

Since you don't know anything about classical VB, or indeed any legacy applications that aren't your problem, VB was a RAD environment that was designed to be object-oriented in nature but didn't have a lot of the object-oriented features that made rapid development difficult.


Seriously? Classic (not classical) VB was never designed to be OO. It didn't support inheritance for crying out loud, which is the core tenet of OOP. It was an event driven language largely built to provide a simplified model for programming against COM. And that's it.

Then why can't Microsoft's customers take a classic VB project, or a VC++ 5 or 6 application, open it up in Visual Studio 2008 and get it to compile and run in a .Net environment with very little, if any, code changes?


You're asking the wrong question. The real question is, why would they want to? MS has gone through great pains to ensure that this very scenario never has to happen. And it rarely does, so long as the legacy component adheres to MS guidelines.

There is nothing I hate more than people who state factually incorrect information as if it is fact. Perhaps most people around here can't see through your bullshit, but anyone with any real world IT experience can smell it from a mile away.

RE: Segedunum
by Kebabbert on Sat 4th Oct 2008 09:57 UTC in reply to "Segedunum"
Kebabbert Member since:
2007-07-27

What is it with this guy Segedunum? He is so negative to everything. Why not being positive sometimes?

RE: Segedunum
by sanders on Mon 6th Oct 2008 09:35 UTC in reply to "Segedunum"
sanders Member since:
2005-08-09

Another fact is that a lot of software-producing companies have their main focus somewhere else. For instance, they are delivering software to operate a piece of hardware, or they have algorithms for analyzing certain data which are packed up in some nice GUI app.

These are usually not the kind of companies who write stories in .NET magazine, or post on OSNews. Each time they grudgingly send their software team on a course to learn about the latest tricks in "software deployment" or "advanced .NET interop" only to find out that this info is outdated less than a year later, that's a major PITA.

Keep in mind that where you may think "this technology is already half a year old - I can't imagine there's anyone left _not_ using it", there are companies who make stuff which is supposed to last for 15 years or so. If they jump on everything which is "hip" now, you can bet that they can't find anyone remembering how to fix it ten years from now.

COM is far from dead in those areas.

I am not the only one pissed off at MS complicating things "for my own good". Recently I tried installing a simple COM DLL on a new machine. To my utter surprise, a simple regsvr32 didn't work anymore. Google for "manifest hell" for more information.