This episode features industry luminary, Anders Hejlsberg. Before coming to Microsoft in 1996 he was well noted for his work as the principal engineer of Turbo Pascal and the chief architect of the Delphi product line. At Microsoft he was architect for the
Visual J++ development system and the Windows Foundation Classes (WFC). Promoted to Distinguished Engineer in 2000, Anders is the chief designer of the C# programming language and a key participant in the development of Microsoft’s .NET framework. In this
show, Anders is joined by a surprise guest.

This episode of “Behind the Code” is hosted by Barbara Fox – former senior security architect of cryptography and digital rights management for Microsoft.

Awesome show. I find myself smiling through out the show. One question I like to ask Anders is -- how did he manage to avoid something that'd claimed so many other MS engineers -- Starting a sentence with "so." Conscious decision?

What captured my attention is when Anders spoke about elegance, taste and
simplicity in writing software. I can not count how many times applying simplicity to problem, instead making wild ideas that compound complexity have paid off in long run.
Taste, for me at least is being able to evaluate various approaches, and selecting one that is most elegant and cleanest. Unfortunely I see the opposite in code written by others, who suffer the consequences of their clumsy (kludgy) actions.

Also chief copier of the Java language? No, that's my java zealot impression coming out. He's taken a lot of the nice features of pascal and thrown them into c#, and it always annoys me when Java heads claim c# is a copy of Java, especially as .NET
is language independent (didn't think of doing that, did you Sun)

Since this looks like an attempt at more professional setting it seems fair to note few obvious things such as: What is going on with the varying black/blue backgrounds and the "BEHIND THE CODE" text where visibility of the "code" part is bad. (look at 14:43)

Also the large table looks pretty horrible - is it for holding a paper with the questions?

Awesome show. I find myself smiling through out the show. One question I like to ask Anders is -- how did he manage to avoid something that'd claimed so many other MS engineers -- Starting a sentence with "so." Conscious decision?

Probably because he knew what he was talking about. No need to make stuff up on the spot...

...so, his favorite language feature is that the data model simplifies to the point where "everything is an object".

My favorite data structure is also a queue, but blocking and bounded. I just posted a Bounded Queue and a Pipe based on the Q. The bounded queue internally uses a LinkedList<T>. The linked list has a small perf disadvantage on adds because it needs to
wrap the T in a LinkedListNode. However, adds and removes are constant time and the queue always only contains Count items and never needs to grow or shrink by using Array.Copy as default Queue does. Also this queue is double-ended so you can add remove from
either end. That gives you a form of priority queue for free also. Check it out in the Sandbox for the project. The Pipe shows using it like a NetworkStream for an authentication.

I still contend that we can do better than the current set of data structures out there. The concept of a linked list is inherently flawed no matter where you stick the pointers. Again, as I've said before, I'll post a prototype of what I have in mind within
the next few weeks.

Side note: Why do these types of videos (much like an informercial) always have to cut to shots of the audience nodding their heads? It's so cheesy.

He is Bruce Lee of Western world.
As Bruce Lee had stolen (?) skills from Judo, Boxing, Wrestling, and Fencing, etc. and made simple, fast, powerful martial art JitKun-Do, Mr. Hejlsberg has made things clearer for us. He is the star of this geeky world.

Did you guys see the data structure diagram which Mr. Hejlsberg drew in this show? (two thumbs up!)

"I still contend that we can do better than the current set of data structures out there. The concept of a linked list is inherently flawed no matter where you stick the pointers. "

How so?

It's a long story...but I will post something about this soon. I'm quite busy right now with other things, but that should change soon. It will take me several days to assemble a post about this topic, and to put together a prototype/demo. It will be written
up in C++.

The very short version is this: the linked list (single or double) is somewhat primitive in its design. It does not have to be this way. It is rather odd that the only means of traversing between nodes is via connected pointers. That forces a user to traverse
a list, node by node, and when the list is long enough, that is time consuming. So, I'm going to build a hybrid between an array (or vector) and a linked list.

And then show you how to flip that into a completely different data structure in real time without moving any data around. The question is not whether it can be done, but how fast I can get it to work.

Then, when I'm done with that, I'll put up a "data structure" builder/designer in the Sandbox.

Edit: Tenative "early" thoughts here (subject to great changes in the weeks ahead).

This divide certainly exists but is easily shrinkable. .NET 2005 makes huge steps. In VS2003 you must create the code to invoke a stored procedure, whereas in vsnet2005 you can drag a stored proc into a dataset and it autogenerates the code.

The next step is autogenerated stored procs which is something that is easily doable using SQL MO, previously DMO. By simply declaring an event schema you can autogenerate the sql table structures to hold the data, as well as the stored procs as well as the
c# data layer.

A key idea is the marriage of object orientation with relational databases and this can be done very very very easily. Without it we are stuck doing what we do today. I've already got this one worked out. Let's discuss at Mix06!

And let's play some ping pong. Just so we get the urban legend story straight, I remember reading that the signing bonus of $1.5 million was doubled over the phone contigent upon resignation within 24 hours. True or false?

I did a little Googling and Anders did have a bit to say about XAML as part of his response to the question, "Of all the programming languages you've seen, does any appear to be a complete abomination?" (the last question on
this page)

His response (bold emphasis is mine):

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#.

I'd still love to hear his thoughts on Windows Workflow Foundation in particular...

Really interesting video, anyway I do not know why do those people on the show "behind of the code"treat hime like being more famos than Bill Gates however this men is genius one, but his work as far as i know is not as famous as Bill's work is ?. Althought
this is my judgmen about the video I can't cut out that Anderson I hardly belive that In that time He did a great job building up TURBO PASCAP and so on,but for the moment the product that Bill is building up are incratible, those products are very adecuate
for the market.

Many programmers certainly have fond memories of the yellow
and blue IDE, where drop down menus were made of characters.

I am curious of how the C# team will face the challenge of
a growing language. Someone in the assistance mentionned
the creeping of functionnal programming inside C#. For example,
LISP initially designed to be very simple and homogeneous,
has then evolved into a 1200 pages standard. And this standard,
besides being "functional-oriented", had imperative constructs,
and object oriented constructs. C++ starting from its low-level
origins also has grown into a thousand pages standard.
The C# team actually did a great job at designing a homogeneous
language, but the idea of providing one path for one problem
will have a hard time living through the growth of the language.
As eventually there always comes a situation where the programmer
needs freedom, the choice might be between spawning new simple
languages, or keeping on growing. So far the number of available
languages, only for MS gives a clue of the extent of the problem.
(And this is not a negative comment).
Back in the early 80's the DOD realized they had tens of programming
languages being used internally, so they decided to come up
with a unification aka ADA. But that did not remove the need for
various types of languages. In the 60's AI was supposed to be
implemented before the end of the century. And declarative programming
has been a promise since the 40's.
I think the advances with XML are really great, but as someone wrote in
another post, it might be a good idea to have a declarative layer,
and an imperative/object oriented layer.
So hurry slowly toward fully declarative languages.

Also there is much greatness in .net. Although C# and .net are tightly
coupled, programming for .net provides a very homogeneous set of
programming experiences for all the supported languages. This
factorization favors improvements across a variety of languages,
each with its own flavor, but iteratively improving each others.
Looks like a powerful leverage for evolution...
(And still providing lots of freedom for specific classes of problems)

This eco-system oriented growth of the languages is IMHO something
where Java definitely fell short... Well I mean the initial idea,
as there is a J#.net

I recognised Gregor Noriskin at the end with the great question about declarative/functional features creeping into C# and OOP just becoming a "feature" rather than the be-all and end-all. This is a fascinating time i.e. there is a lot of cross-pollination
happening in the language space right now.

If I'm honest though I don't like the format of these shows. Don't get me wrong; the content is first rate but I found the interviewer very irritating and the set/audience is not necessary at all.

>> If I'm honest though I don't like the format of these shows. Don't get me wrong; the content is first rate but I found the interviewer very irritating and the set/audience is not necessary at all.
----------------------------------------------------
No offense Barbara. I think you'd be very attractive w/ a bit of hair & some makeup. This ain't a dig; hope I'm not canned!

Thanks for the link Lexis; Tho it was also viewable from Dr. Dobb's, curious why the video was pulled from Channel 9.

Remove this comment

Remove this thread

Comments Closed

Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation,
please create a new thread in our Forums, or
Contact Us and let us know.