Welcome!

Related Topics: .NET

.NET: Article

.NET Archives: Getting Reacquainted with the Father of C#

Derek Ferguson, Editor-in-Chief of .NET Developer's Journal, Talks to Hejlsberg In a Major Interview

.NETDJ: Are there any other features out there that might be added to C# in the post-2.0 timeframe? Anything you can tell us?

AH: Well, I mentioned a little bit about the space we want to explore more, which is the tighter integration between programming languages and databases. We are now including nullable types, which will allow you to talk to your databases a little bit more effectively. There are many other things I'd like to look at, like the mismatch between relational types and language objects, and the lack of query and set objects in C#. You can query in the database - but once the data comes down, you can't further subquery without going back to the database.

The other thing inhibiting proper integration between data and languages is the general lack of type checking in the present generation of database APIs. The compiler won't know anything about whether or not the data in your database will work with your code until runtime. This is certainly a direction that we are keenly interested in exploring and we already have some good ideas.

.NETDJ: When last we spoke, you said that generics and other new language features for C# might not make it into the Compact Framework. Correct me if I'm wrong, but they actually all made it in, didn't they?

AH: I do believe that they have, but you might want to check. All of the other features are just language features, so they are - by definition - in the code.

.NETDJ: What originally drew you to Pascal? Are there any implementations of Pascal for .NET of which you are aware?

AH: I wanted to write an ALGOL compiler because I liked ALGOL, but my partner said there was a new thing called Pascal, so we should go and check it out. It is a simpler language both to teach and to implement, so we went with that!

As far as Pascal for .NET, Delphi is backwards-compatible all the way back to Turbo Pascal, and it can create .NET code quite nicely! Delphi is what Turbo Pascal became. In fact, the 16-bit Delphi was the actual Turbo Pascal code base!

.NETDJ: How did you originally get involved in computer technology?

AH: I started originally doing computers in High School, and that's where I learned ALGOL as my first programming language. When I started at the technical university in Denmark in 1979, they had this event for all the freshmen where we'd go away to a kind of camp with the seniors. So, there I was playing cards with a senior and he lost a bunch of money, so I had to get to know him. It turned out that he was interested in starting a company to sell kit computers.

We wound up founding a company to sell Z-80-based computer kits and I wrote a bunch of different software for this thing. One of the things I wrote after writing assemblers and games and such was what essentially amounted to Turbo Pascal. It was a little 12k Pascal compiler that was burnt into ROM. Ironically, we were recommending that folks yank out the Microsoft ROM for BASIC that came with the kit and put in our Pascal ROM instead!

.NETDJ: Did that company become Borland, then?

AH: No. My Pascal implementation grew and grew and eventually became a full implementation, and got moved to CP/M. We hooked up with the guys who founded Borland, because they were also based in Denmark (though they incorporated in the United States) and they were writing their software using a different implementation of Pascal. We told them about our software and why it was better and they said "Hey, why don't we do a joint venture where we will do the marketing and you do the development?"

This turned out to be a very good thing! I remember that, at that time, software development tools were generally about $500 a copy. So when they said "why don't we sell it for $50," we thoughts they were nuts!

It was, however, a great success. Pascal wound up being the only thing that I did at Borland, which soon moved their headquarters to the United States. It quickly became tedious to commute across the Atlantic, so I moved to the U.S. in 1987.

.NETDJ: Last time we spoke, I asked you for your favorite programming language and you said you didn't have one. So, this time I will ask you - of all the programming languages you've seen -- does any appear to you to just be a complete abomination? (My personal choice would be anything of the TCL/LISP family, for example).

AH: It's hard to say. I don't know. Batch files and the programming that is going on in those definitely need some help! Another language that is difficult to learn, but very powerful, is XSLT.

I see lots of little languages go by in various projects and I tend to stress internally at Microsoft that we all need to get on the .NET Framework so that we all share the same power of the API, regardless of our language choices.

One of the trends I think is interesting is the integration that is happening with programming models like ASP and XAML, which are mixtures of declarative and programming code that give you an amalgam of two different programming disciplines.

What I'm shooting for with the next generation of Microsoft platforms is to use XML for declarative tasks and C# for programming tasks. I'm less of a believer in using XML to "new up" objects in C#.

(continued on page 4)

More Stories By Derek Ferguson

Derek Ferguson, founding editor and editor-in-chief of .Net Developer's Journal, is a noted technology expert and former Microsoft MVP.

Comments (7) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
isodoor 10/26/09 03:54:00 AM EDT

Professor Linda Shapiro is a great women with the following honors:
1. Pattern Recognition Society Best Paper, 1984
2. Pattern Recognition Society Honorable Mention, 1985
3. Pattern Recognition Society Honorable Mention, 1987
4. Pattern Recognition Society Best Paper, 1989
5. Pattern Recognition Society Best Paper, 1995
6. Fellow of the IEEE, 1996
7. Fellow of the IAPR, 2000
I like this site ;)
Good post thanks for sharing.

Peter Frost 01/28/08 06:21:14 AM EST

So it was the flaws in most major programming languages (e.g. C++, Java, Smalltalk, even Delphi) that drove the fundamentals of the CLR, which, in turn, drove the design of the C# programming language itself? Interesting...

David Totzke 03/14/05 12:27:22 PM EST

The mothers of C# invention wrote:

"Or you might actually look beyond the blinders and see that VB is Basic mutated beyond recognition. And Basic was the worlds only programming language for those who couldn't program. "

Thank god for that. Now all of the people who couldn't program won't be able to inflict their garbage on the world.

"The father of C#! Like calling the guys in Malasia and China running the illegal CD and DVD duplication operations the fathers of multi-media. "

Well, at least they're not bitter. Somebody get the mothers some Thorazine please.

Sheesh,
dave

The Mothers of C# Invention 03/12/05 09:59:57 PM EST

>I think there is a healthy cross-pollination that occurs
>between all the programming languages. While you might see C#
>pioneer in one direction and VB pioneer another, ultimately
>there is a lot of crossing over of ideas over time.
>Certainly, anything we do on the C# team we let the VB folks
>participate in and vice versa.

Or you might actually look beyond the blinders and see that VB is Basic mutated beyond recognition. And Basic was the worlds only programming language for those who couldn't program.

Or if you took the blinders off, you might see that C# is Java with Microsoft curb feelers.

J++ + MFC ??? What a joke! Microsoft never saw a standard they couldn't improve upon!

The father of C#! Like calling the guys in Malasia and China running the illegal CD and DVD duplication operations the fathers of multi-media.

Doug Ferguson 03/11/05 03:45:29 PM EST

What should the language/framework add in the future?

Managed Threading would be a great addition. Currently managed memory stops the wild pointer problems that we see in unmanaged C/C++. The GC manages the memory.

However, when programming with threads, it is so easy to make a mistake. What is worse is that you will not know that you have made a mistake until some random collision blows up your program.

Managed Threading would check for thread safety in addition to type safety.

With all the announcements about dual core processors, multi-threading issues will be more important than ever.

dotnetRajesh 02/18/05 09:31:57 AM EST

Fantastic interview.Thanks.

Mukul Gandhi 02/11/05 11:41:32 PM EST

Its indeed inspiring to read interview of Mr. Anders Hejlsberg.

I have heard that Microsoft has decided not to implement latest version of XSLT language(XSLT 2.0) and XPath (XPath 2.0) in the .NET Framework. But Microsoft wishes to implement XQuery 1.0 in .NET, but only after it becomes a W3C recommendation.

In this interview, Mr. Anders Hejlsberg has said.. "Another language that is difficult to learn, but very powerful, is XSLT". It therefore seems, XSLT is an important language for Microsoft!

I wish Microsoft implements XSLT 2.0, XPath 2.0 and XQuery 1.0 in .NET Framework(and other relevant products).

Also it seems, Microsoft has decided not to release next version of their freeware MSXML software(i.e. after MSXML4, which I think is MSXML5). MSXML5 is shipping only with MS Office 2003. I wish Microsoft release its latest MSXML5 software(or later versions like MSXML6..) as freeware just like MSXML4. And, latest MSXML (6 and beyond), should support XSLT 2.0 and XPath 2.0!

I have heard, that Microsoft is of the view, that they implement W3C specs only after they become recommendations(and not in draft form).. I do agree with this view.. But, if Microsoft starts work now(it might have already started!), to implement XSLT 2.0/XPath 2.0 in .NET and MSXML, the product would be delivered on time!

Regards,
Mukul