Computerworld is undertaking a series of investigations into the most widely-used programming languages. Previously we have spoken to Alfred v. Aho of AWK fame, S. Tucker Taft on the Ada 1995 and 2005 revisions, Microsoft about its server-side script engine ASP, Chet Ramey about his experiences maintaining Bash, Bjarne Stroustrup of C++ fame, and Charles H. Moore about the design and development of Forth.
We’ve also had a chat with the irreverent Don Woods about the development and uses of INTERCAL, as well as Stephen C. Johnson on YACC, Luca Cardelli on Modula-3, Walter Bright on D, Brendan Eich on JavaScript, Guido van Rossum on Python and Prof. Roberto Ierusalimschy on Lua. We most recently spoke to Simon Peyton-Jones on the development of Haskell.
In this interview Microsoft's leader of C# development, Anders Hejlsberg, took some time to tell Computerworld about the development of C#, his thoughts on future programming trends, and his experiences putting out fires. Hejlsberg is also responsible for writing the Turbo Pascal system, and was the lead architect on the team that developed Delphi.
(Please note that due to popular demand we are no longer following alphabetical order for this series. If you wish to submit any suggestions for programming languages or language authors you would like to see covered, please email naomi@computerworld.com.au.)
What were the fundamental flaws in other languages that you believe drove the development of Common Language Runtime (CLR), and in turn, C#?
I wouldn’t say that our primary motivation for CLR was fundamental flaws in other languages. But we certainly had some key goals in mind. Primarily, we wanted to build a unified and modern development platform for multiple programming languages and application models.
To put this aim in context, we need to look back to the inception of .NET, which was in the late nineties or early 2000s. At that time, Microsoft’s primary developer offerings were fairly fragmented. For native code we had C++ with MFC, and ATL and so forth. And then for rapid application development we had Visual Basic, and for web development we had IIS and ASP.
Each language was its own little silo with different solutions to all of the different programming problems. You couldn’t transfer your skills and your application model implicitly became your choice of programming language. We really wanted to unify these separate entities to better leverage our efforts.
We also wanted to introduce modern concepts, such as object orientation, type safety, garbage collection and structured exception handling directly into the platform. At the time, the underlying infrastructure we were running on was COM, which is a very low level programming model that requires you to deal with the registry and reference counting and HRESULTs and all that stuff.
These factors were, at the time, the motivators for .NET. There was also a competitive angle with Sun and Java etc.
Now, to move on to C#, in a nutshell our aim was to create a first class modern language on this platform that would appeal to the curly braces crowd: the C++ programmers of the world at the time, and competitively, the Java programmers.
There were several elements that we considered key design goals, like support for the next level up from object oriented programming, to component based programming where properties and metadata attributes were all first class in the language. Also, a unified and extensible type system, which sort of gets into value types and boxing etc. Versioning was a big thing; making sure we designed the language so that it would version well, so that whenever we added new features to the language we would not break code in older applications. These were all values that were important to us.
Of course, at the end of the day, productivity has always been a driver for me in all of the projects I’ve worked on. It’s about making programmers more productive.
References
- The A-Z of Programming Languages: AWK
- The A-Z of Programming Languages: Ada
- The A-Z of Programming Languages: ASP
- The A-Z of Programming Languages: BASH/Bourne-Again Shell
- The A-Z of Programming Languages: C++
- The A-Z of Programming Languages: Forth
- The A-Z of Programming Languages: INTERCAL
- The A-Z of Programming Languages: YACC
- The A-Z of Programming Languages: Modula-3
- The A-Z of Programming Languages: D
- The A-Z of Programming Languages: JavaScript
- The A-Z of Programming Languages: Python
- The A-Z of Programming Languages: Lua
- The A-Z of Programming Languages: Haskell
- Anders Hejlsberg
- Turbo Pascal
- Delphi
- Worldwide Telescope
Latest on ASP & .Net
- Microsoft, Novell eye Moonlight beta, system management
- Microsoft files suit to defend Visual Studio users
- Microsoft releases new API for Windows Live Search
- Cloud computing will see devs soar to new heights
- Telstra revamps Windows Mobile, eyes cloud UC
- Microsoft advances embedded apps
- Microsoft starts new developer portal
- Microsoft ships Silverlight 2.0
- Microsoft woos developers under the Silverlight
- The A-Z of Programming Languages: C#
Development Essentials
- Top 10 wicked cool algorithms
- Facebook app verification fee draws criticism
- Microsoft's openness stressed
- Yahoo's developer platform to launch this week
- Microsoft starts new developer portal
- Google API allows creating apps that can track laptops
- PHP, JavaScript, Ruby, Perl, Python, and Tcl Today: The State of the Scripting Universe
- Analyst: In-house app development fraught with waste
- Is unit testing doomed?
- Open source still the best way to develop software
TechWorld Jobs (beta)
Recent Jobs
Whitepapers
- Still Sneaking In: The Threats Your Security Tools Aren't Telling You About
- Delivering the Power of Choice with Microsoft Dynamics CRM
- Mimosa™ NearPoint™ for Microsoft® Exchange Server: Email Archiving 101
- Discover the advantages of an open architecture multi-vendor network solution
- Understanding Email Marketing: A Guide for SMBs
TechWorld Blogs
-

TalkingTech
The view from the top of IT with TechWorld Editor Rodney Gedda
-

Entrenched
Cooking up better code, IDG's developers reveal some of their secrets
-

Broadband Voice
Darren Pauli digs in from the front line of Australia's broadband battleground
Recent blog posts
- An open storage stack? I like the sound of that
- The mobile clone wars: fighting for a better phone experience
- Stopping the "Clean Feed"
- Identifying web platforms
- Clean Feed ‘not technically possible’
- No Clean Feed - well duh!
- Conroy's content cops still on the cards
- Will open source ruin the economy? Please help
- Linux kernel 2.6.27 is out!
- Falling off the ob_start stack
Recent comments
- Hello this is Brianna
2 hours 57 min ago - Turn any PC into a media center
16 hours 49 min ago - How About the Correct Title?
1 day 8 hours ago - who are you kidding?
1 day 13 hours ago - Seriously, how much did they pay for this advertisement
3 days 3 hours ago - SF Bay Area - free Seminar on Enterprise Cloud Computing
3 days 7 hours ago - video conferening but not telepresence...
3 days 14 hours ago - SAMSUNG OLED 40" TECHNOLOGY
3 days 22 hours ago - What was the question again, oh well this was prepared earlier
6 days 5 hours ago - Worldwide broadband prices continue to drop which means ? in AU
6 days 6 hours ago - Not a Problem Here in Australia and New Zealand
1 week 1 day ago - Clear the air
1 week 2 days ago - Tabbed browsing, Quick Find,
1 week 4 days ago - Microsoft details plans for new social bookmarking tool
1 week 6 days ago - There is a 3rd party tool
2 weeks 23 hours ago - Demise of Windows
2 weeks 1 day ago - new OS
2 weeks 1 day ago - Re: Favicon
2 weeks 2 days ago - Multi Camera Kino
2 weeks 2 days ago - Favicon
2 weeks 3 days ago



