Interesting .NET read

I didn’t know the Turbo Pascal guy is also the C# guy. He talks abou the C-omega language a bit;

Cω is an interesting although IMHO somewhat bloaded research language. It’s a combination of other research languages (Polyphonic C# and X# aka Xen) so that the guys at Microsoft Research only have to maintain one (although larger) code base.

The idea to solve the impedance mismatch between objects and relational tables (aka OR mappers) by adding relational concepts to the programming language is IMHO long overdue. As is adding streams to mainstream languages. I’m not so sure about iIntegrating XML into the language, but that’s mainly because I’m not the biggest fan of XML and still dreaming about old and better Lisp and Smalltalk times :wink:

BTW, anybody already browsing at MSR should also check out Spec#. It’s an interesting language that tries to improve robustness. Probably much more important than adding more features to a language’s syntax. People should have learned nowadays that the better approach would be to make a language truely extendable (as Lisp and Smalltalk were).

However, because this a Java forum, rather cool Java-based and Java-related research languages are Scala and Nice. Both are functional OO languages, providing better type system than Java but still being compatible to the Java class library. Both have of course polymorphic (aka generic) type systems with other bells and whistles you otherwise get only from true functional language like ML or Haskell. Scala has local type inference so that you don’t have to write down redundant type definition over and over (as Java forces you which is IMHO really painful especially with generics). As you might know, polymorphic type systems help to fight ClassCastExceptions. Nice also successfully fights NullPointerExceptions, something no language should have. AFAIK, Spec# does the same. And Nice gets extra coolness points for providing dynamic multimethods, something you can get really used to (Nice is influenced by Dylan, I think, which in turn simplified the the concept from CLOS which generalized a concept of Flavors (both being Lisp object systems). The guy who brought us the syntax nightmare called AspectJ was one of the guys who worked on CLOS by the way. All that ideas were already part of CommonLisp nowever the names didn’t exist: aspects, cross cutting concerns and point cuts.

However, the perhaps hottest language at the moment is probably Fortress, designed by a team lead by Guy Steele, the guy who invented Scheme, wrote the CommonLisp standard and edited the Java language spec. He also knows that languages must be extendable so Fortress is extendable. And it’s based on traits instead of classes, an interesting concept borrowed from Self, a Sun research language based on Smalltalk that had to die when Java came to life 1995.

Stefan

You are not alone dude. You are not alone.

Some people claim the advantage of OO over languages like Lisp. The point is OO is just a programming pattern like many others that can be built on lisp, just like generics and other mumbo-jumbo. They don’t have to release a new incompatible version of Lisp in order to add half-assed generics.

Another claim is that Lisp in slow when in fact, because of the simplicity of the language, there are lisp compilers that can produce faster code than C++ compilers.

Unfortunatly if people want to do anything they have to stick to what is the language of choice. The fact that Sun is a big name helps backup Java and the costs to get someone to learn how to program in Java is much less than getting someone programming in Lisp. Not to mention that Lisp syntax is obnoxious (some people haven’t realised yet that a pleasant language syntax counts in productivity). Besides software houses don’t wan’t programmers to work with languages that are too powerful, they prefer to have some control in the code that their emplyes create.

Microsoft is also a big name and the have the view to create something that pleases the market. So you bet that Microsoft solution is something to be feared because in acepting a software there are other things that count as much or even more than the quality of a programming language.