Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I am specifically looking for language influences (as opposed to framework). At first glance C# seems to be an evolution of C/C++ or Java. But we know C# has the same designer as Delphi, and he even acknowledged some similarities and said "good ideas don't just go away." The one example I see of something in C# that is not in Java or C/C++ is properties. Is that it? Are there others?

share|improve this question
It's a real shame that some of them actually did. Look at how long it took the .NET folks to reimplement the dynamic capabilities that Delphi's had available in the variant type since pretty much forever... – Mason Wheeler Jul 28 '11 at 19:03
Thankfully they did not stick with the BEGIN and END... – Newtopian Jul 28 '11 at 19:57
@Newtopian: So you prefer punctuation over readable words? More of an APL kind of programmer? – Jim McKeeth Jul 28 '11 at 21:01
Turbo Pascal (ancestor of Delphi) was written by Anders Hejlsberg, chief architect of the C# language at Microsoft. Connect the dots. – Robert Harvey Jul 28 '11 at 21:29
APERSANDJim COLON yesCOMMA I much prefer punctuation over their english pronounciationEXCLAMATIONMARK because I think it makes the whole thing much more readablePOINT COLON DASH SEMICOLON – Newtopian Jul 28 '11 at 23:11

2 Answers 2

up vote 1 down vote accepted

Not that much which is visible to the programmer, but behind the scenes, quite a bit, but a lot of them were in the IDE and windows forms control design, rather than the language itself, I have been using Delphi 7 for about 10 years and C# for about 5 so I have picked up on a few:

1) The anchors property is identical to Delphi

2) The form default position

3) The object hierarchy for the controls

4) The form designer in general feels very similar - cant put my finger on it exacly.

Some things in the language itself I have noticed:

1) Certain data types, aka Currency / Decimal

Some things in the language that are very different:

1) Constructor inheritence (delphi used to inherit all constructors to base objects they didnt have to be defined again in descendant classes)

2) Delphi had the ability to downgrade the visibility of a method or property in descendant classes, but keep polymorphism intact, C# does not allow this (I miss this very much)

I have probably missed heaps of things, please add them if you think of them.

share|improve this answer
I wish language designers would recognize as distinct the outside-world interface inherited from base class, the outside-world interface of the derived class, and the interface the base class presents to the derived class. If various classes will have overlapping sets of abilities, it's much easier to wrap a common base class or interface which exposes all those abilities along with member to say which ones are actually usable, than to wrap a variety of classes which expose different combinations of those abilities; there's no reason, though, why derived classes should have to... – supercat Jan 19 at 0:05
...expose--as members of their own type (as opposed to the base type)--members which will not actually be usable with their own type. If a base-class contract says that any derived class whose CanWoozle property returns true must provide a usable Woozle() implementation, but a particular derived class always returns false for CanWoozle and has a legitimately-unusable Woozle implementation, there's no reason the derived class should have to expose its Woozle member. – supercat Jan 19 at 0:12

Anders was with Borland until Delphi 3 - he was the original architect of Delphi as well as Turbo Pascal. If you load Delphi 1, bring up the about box and type AND you get a picture of Anders that winks at you.

When he left Borland for MS he initially did J++ which "upset" Sun a little bit. Then he created C#. The dots you should join go from Borland Object Pascal -> Java/J++ -> C#

C# is Microsoft's attempt to create a better Java. As an old Delphi coder I'd accept that they probably succeeded.

share|improve this answer
I disagree that C# is an attempt to "make a better Java". Though there are Java experts on the C# design team, we very rarely make explicit comparisons to Java when designing language features. – Eric Lippert Aug 17 '11 at 23:07

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.