Fog Creek Software
Discussion Board




Does C# owe its success to Java or VB ?

Obviously, its "cool and sexy" factor comes from using curly braces and semi-colons, but does it owe its success to a language runtime, memory management and a intuitive forms designer ?

At the very least, would you say C# is a mixture of the best of Java and the best of VB ?

Kentasy
Sunday, January 25, 2004

I do not mean this in any kind of negative way towards Java, nor do I want to start a language war debate.

I just haven't heard many people talk about C# borrowing a lot from VB or it being a "souped up VB clone".

Kentasy
Sunday, January 25, 2004

Specify "success"

123
Sunday, January 25, 2004

Umm... I don't think C# owes *anything* to VB.  It's primary architect was Anders Hejlsberg who sold Turbo Pascal to Borland and then evolved it into Delphi.  You can certainly see a lot of Java's influence, and I rather think we'd never have seen a C# if Microsoft didn't have to answer the massive programmer productivity advantage of Java over C and C++.  Of course it also goes beyond Java and Delphi in some ways, so I tend to wonder if the upcoming Java features are not frantic attempts to bolt on C# features that would have been obvious requirements in the mid-90s to any language designer with large-scale application programming experience and should have been in Java 1, not Java 6.

veal
Sunday, January 25, 2004


Sure, the things missing from Java are "obvious" now, just like the "obvious" productivity enhancements that are missing from C++. Remember that the people who designed Java had to come up with all the ideas (many of which were borrowed, but some which were not), make sure they panned out, and then implement. I would argue that C# took more from Java than Java took from C++/Smalltalk/etc. However, the CLR is a different story altogether - *that* is an amazing piece of work.

And when all is said and done, yes, C# is a better language than Java or VB. I mean... come on.

  
Sunday, January 25, 2004

The forms designer is part of Visual Studio and nothing to do with C# per se.

"However, the CLR is a different story altogether - *that* is an amazing piece of work."

Over and above the JVM?

John Topley (www.johntopley.com)
Sunday, January 25, 2004

I'd say it owes its success to Java only because most of its lessons were learned from that.

Steve
Sunday, January 25, 2004

Who says C# is successful?


Sunday, January 25, 2004

"And when all is said and done, yes, C# is a better language than Java"

As an incremental improvement on mature Java, it almost has to be (leaving aside the current size and scope of the libraries available).  The question is whether or not Java 1.5 will catch up, seeing as they're taking from C# all the best enhancements.

Bottom line is that we're all better off.

Justin Johnson
Sunday, January 25, 2004

Have you ever looked at automobiles on the road and wondered in amazement how of dozens of manufacturers, with hundreds of products, there really are just a couple of basic auto designs that everyone copies?

Anonymizer
Sunday, January 25, 2004

Did the JVM evole from the idea of the VB runtime ?

Did the forms designer originate in VB, then get added to the entire suite of Visual Studio ? (In the beginning of Visual studio, it was simply a collection of VB, VC, InterDev etc)

In any case, yes we are much better off with all the advancements and borrowing from other languages.

I hope the next advancements in Java blow us all away, and then  the next versions of Visual Studio blow us all away...

Kentasy
Sunday, January 25, 2004

It's not entirely fair to separate the "Visual Studio" features from the pure language features.  Visual Basic relied on a tight coupling between the IDE and the application code itself, in particular with a RAD, forms designer approach for GUI applications.

This seems to have had a strong influence on C# (and VB.Net.)  Although you can theoretically code a rich C# GUI app using Notepad, it wouldn't be a fun experience.  Sure, the Forms Designer might really just be a neat productivity enhancement of the IDE instead of a true language feature, but it in practice it seems fairly integral to the language.

Robert Jacobson
Sunday, January 25, 2004

"Over and above the JVM?"

Yes. I find the CLR to be much more consistent and more fleshed out than the Java Runtime Libraries.

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, January 25, 2004

Blank, I did *not* say that Java's main deficiencies are obvious in *retrospect*.  They were *immediately* obvious the day Java emerged "in the mid-90s to any language designer with large-scale application programming experience".

(Incidentally, I'd be interested to hear which specific ideas in Java were not borrowed, because off the top of my head I can't think a single one.)

Missing some things, say a good gui library, is not a big deal in a version 1.  At OOPSLA '98, Guy Steele gave an interesting  talk "Growing a Language", but he unfortunately missed a crucial point: missing some things is far worse than missing others.  For instance if version 1 had parameterized types, "generics", much of J2EE would be different.  As it is, getting them in the sixth major update 7 years later, because of backwards compatibiliy concerns we'll probably *never* have a really clean and fully coherent set of core libraries in Java.

But Java, problematic as it is, composed entirely (I think) of borrowed ideas, made one fantastically important contribution to the programming world.  Java lured serious programmers away from C en masse.  I never expected that to happen.  That's opened a door for the really superb languages I think will see emerge over the next decade.

veal
Sunday, January 25, 2004

well, as a c++ programmer that's looking for a new language to market myself with, c# is successful in terms of number of jobs out there.  there's still more c++ and java jobs right now, but the number of c# is significant and gaining.


Sunday, January 25, 2004

I don't think .NET will be pulling many people away from Java. While it's a competitor to Java in some ways, it's not in others. People can choose Java for all-Windows development work, but I expect by and large, that's a very small piece of Java development.

The all-Windows shops are more likely to have stuck with VB and C++, and THOSE are the people who will be converting over to .NET en masse over time. Especially on the server side, where there's huge benefits to move (ASP.NET is much better than ASP), it makes little sense to wait if you're committed to all-Windows development.

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, January 25, 2004

"Does C# owe its success to Java or VB ?"

Not sure if it owes anything to VB, but I definitely see more of the Java and Delphi influence (which MS will never admit). As been stated before, Anders Hejlsberg, the lead C# architect, was the creator of Turbo Pascal and Delphi. 
IMO, C# has taken the best of Delphi and Java to the next level.  Kudos to Anders and his team for their work.  Hopefully this will cause the Java and Delphi teams to take their respective languages to the next level as well.

Smitty
Sunday, January 25, 2004

1) Why assume that the answer to this question is limited only to VB and Java?
2) Why not first ask the question "Does C# owe anything to any other languages" before asking to which languages it owes something?

Norrick
Monday, January 26, 2004

Why do I use C#?

Powerful language: The language itself is more powerful than Java. To me, Java always felt like I was getting into a very small car where my movements are constrained.

Native Windows support: I develop programs for Windows, so it's nice to be able to develop a good, usable Windows UI and to have access to COM. Frankly, I don't need cross-platform stuff - I need my programs to run and look very well on Windows.

Excellent IDE: A good IDE boosts productivity by quite a lot.

MX
Monday, January 26, 2004

Delphi.

Ian Sanders
Monday, January 26, 2004

Windows forms are very VB inspired.  These are not specific to C#, but .net in general.  You could argue that Delphi was there first, although I believe VB was released before Delphi, but then you could go right back to talking about TurboVision for DOS, but that doesn't matter.  What matters is that a lot of people built Windows applications with VB and got very used to the form-style of creating a GUI.  VB was used heavily inside of Microsoft for just this reason (often for writing installers).  In short, Microsoft took a popular element of VB and rolled it into .net.  (Don't turn around and say this is because the architect of Delphi also designed C#, because, again, Windows forms are not specifically part of the C# language; they're part of the .net libraries.)

Junkster
Monday, January 26, 2004

C# owes all of its success to Java.  No matter what MS says, C# IS Microsofts Java. 

Before Anders worked on C# he worked on the Visual J++ 6.0 team.  Most of the J++ 6.0 team at MS became the C# team.  Much of the J++ 6.0 windows api stuff (then called WFC) became the windows API stuff for C#.  The Visual J++ 6.0/interdev 6.0 ide was the ide that moved forward to host visual studio .net (not the VB or VC++ ide).

C# is the MS specific evolution of Java.

name withheld
Monday, January 26, 2004

>> However, the CLR is a different story altogether - *that* is an amazing piece of work."

> Over and above the JVM?

Both ideas are quite new and original. They are only 30 years old. Never heard of p-code?

http://www.threedee.com/jcm/psystem/ for those who want to learn some history.

Chernobog
Monday, January 26, 2004

Java itself was heavily influenced by Delphi.  Borland, a leader in compiler design at the time, was influential in the design of Java.  C# is like an evolution of Delphi with C-syntax instead of Pascal syntax.  Aside from Attributes, I can't think of any language feature in C# that is not in Delphi off the top of my head.  Not the same with Java.

The CLR definitely owes its success to Java.  VM's and pcode have been around for a while, but without the success of Java, MS never would have had the guts to deploy C# on the CLR.  They would have stuck to native-code.

If I could use C# and the MS.NET core libraries to develop apps for the JVM, I'd be in heaven.

Richard P
Monday, January 26, 2004

"If I could use C# and the MS.NET core libraries to develop apps for the JVM, I'd be in heaven."

You used to be able to... it was called Visual J++ 6.0

Sun sued, no one used it so Microsoft renamed it C# and changed it enough not to get sued again.

name withheld
Monday, January 26, 2004

Visual J++ had properties?

Richard P
Monday, January 26, 2004

VB first with forms ? Dearie me. DBase III had a windows/form metaphor and I was using that before you blokes were looking at the beads attached to your prams and thinking 'hmm, you could use those to form an elementary computing device'.

Ahh, those were the days. DBase III, edited in Sidekick. I remember the the day I discovered Clipper and I could (oh the joy) compile my DBase III code so that it ran like real software. The compile only took an hour. Ok so there was a limit to what you could do with the 200K of memory DOS left you to play with

. . . I think I just turned into my Dad.

Ian Sanders
Tuesday, January 27, 2004

*  Recent Topics

*  Fog Creek Home