First, here's the evolution of C# over the last 10 or so years:
- C# 1.0 (1998) Managed Code
First Release -- Just be happy that it works!
- C# 2.0 Generics
Similar to C++ Templates but w/ dynamic specialization, etc.
- C# 3.0 Language Integrated Query (LINQ)
Object-relational mapping (ORM)
- C# 4.0 (2009) Dynamic Programming
Dynamic Language Runtime (DLR) that runs on top of the Common Language Runtime (CLR)
Given the rise of dynamically typed languages i.e. Python, Ruby, JavaScript, PHP(also loosely typed), it's no surprise that Hejlsberg re-evaluated the static-programming-only spiel that he's been preaching for years. Dynamic Programming is actually really neat and allows for a wide range of interoperability with other languages e.g. Python & Ruby:

"Strong typing is just like the little wheels you put on the side of a child's bike. They're reassuring, but once you know how to balance the bike, they get in the way and prevent you from gaining speed."
Dynamically Typed Objects:


Dynamic typing allows C# to dispatch JavaScript, Silverlight, Python, Ruby and COM code all from within C#. This is really neat
Other Improvements
- optional params to C# 4.0, which has been in place since .NET 2.0 w/ VB.
- named parameters (we can now shuffle parameter order)
- improved COM Interoperability (Just dynamic types & optional params alone are huge time savers when dealing w/ COM now)
- Co- and Contra-variance on Interface & delegate types
No comments:
Post a Comment