By Martin Heller,
I have a fairly short list of personal heroes in the world of computer languages.
Rather high on the list (definitely in the top 10) is Anders Hejlsberg, who as a teenager in the early 1980s built the groundbreaking Turbo Pascal 1.0 compiler.
If Turbo Pascal doesn't ring any bells for you, you can ask any programmer over 30 about it. Or, for that matter, you can download the 1989 Turbo Pascal 5.5 from Borland, free.
What's Anders doing these days? He's at Microsoft Corp. (stock: MSFT), Redmond, Wash.
For a while, he worked on the rather nice proprietary class libraries for Microsoft's Visual J++ product; now, he's working on the C# language and the .NET architecture.
As you might expect from Anders, the C# language is innovative without breaking all your expectations and making you relearn a lot of stuff. If you know C++, you already know most of C#. If you know C++ and Java, JavaScript, or Perl, you already know pretty much all of C#, other than a few minor details.
In a nutshell, C# is a simplified, component-oriented offshoot of C++, with a few ideas added from other languages. In C#, everything really is an object: Even primitive types like "int" can be boxed into the root-object class.
In C#, there is no multiple class inheritance; instead, there is a multiple interface mechanism, like Java or, more to the point, like COM and COM+.
In C#, there is a new operator, and you'll need to use it a lot. There is no delete operator -- the language has built-in garbage collection.
Garbage collection is an idea whose time has come, if you ask me. I've wasted far too much of my life tracking down memory and resource leaks.
On the other hand, I'm still hesitant about allowing garbage collection in real-time code, so maybe I'll keep writing that in C++, or C, or assembler.
In C#, you normally don't need to write sorting or searching routines. The System.Array type, from which all arrays derive, includes built-in sorting and searching methods.
What you might need to write, however, is an "IComparable" interface for your own class, and/or an enumerator and iterator for your class.
»More from Byte.com
ISIS Papyrus America seeking Software Pre-Sales Analyst in Southlake, TX
Agilent Technologies seeking Business Manager in Bangalore, IN
Covidien seeking Principal Validation Test in Boulder, CO
T-Mobile seeking Unified Subscriber Database Engr in Bellevue, WA
20th Century Fox seeking Sr. Production Software Engineer in Los Angeles, CA
For more great jobs, career-related news, features and services, please visit our Career Center.
TechWeb's FREE e-mail newsletters deliver the news you need to come out on top.
Get definitions for more than 20,000 IT terms.
Editorial and vendor perspectives