By bloid
via brian.genisio.org
Published: Oct 28 2008 / 04:33
I just got back from the “Future of C#” talk at PDC by Anders Hejlsberg. This was a truly inspiring talk for a geek like me. C# is evolving into a much more dynamic language. I have always been a believer of strong typing… except when I’m not… and I have been wishing for something more dynamic (such as Duck Typing). In C# 4.0, we will be seeing some significant dynamic features.



Comments
Miloskov replied ago:
Damn with that features, C# will be the more complicate(even more than C++) and bloated language. I'm not so exciting to listen to that features. If I want those features I will use a proper language for that as OCaml, Haskell or F#.
C# 4 is smelling bad. I hope VB gets more easy to use.
jkirstein replied ago:
C# is starting to look like (C++)++. All the added complexity will just make it harder and harder to write maintainable code and eventually it will collapse under its own weight.
mvonballmo replied ago:
Covariants and Contravariants
+10
cbang replied ago:
OtengiM and jkirstein, no offence but Ted Neward would only have one answer to you guys: There's always a need for people flipping burgers.
You can always stay on a 3.0 code base. Really, what is the alternative, to do like Java and wait 10 years for an Enum and 20 for closures?
Miloskov replied ago:
cbang, it means, only rocket science folks will use C# 4, do you know why C++ lost the hype because the complexity and the born or more easy to use languages but also powerful as Java and C#. I think C# 3 it is enough, if go beyond that it will get so confused for the average programmer.
Thats why my comment about VB, I hope it doesn't get all that complexity and it is more easy to use. C# 4 will be good for Computer Science folks as F# or Ocaml, C# 3 or VB or Java it is for the practical/engineer or business folks the average programmer.
cbang replied ago:
OtengiM: I understand your point. However, having to battle countless libraries, frameworks, build systems and various embedded DSL's in Java each and every day, I think the benefits of having the power in the language outweighs the drawbacks.
It allows the smart people to create the tools, concepts and abstractions for the average people. One could also argue C# is simply and finally distancing itself a little from VB (which I never understood why people would want to use in the first place).
vidalsasoon replied ago:
This is the reason some programmers burn out and become managers :) Too much to learn!
jkirstein replied ago:
Same argument the C++ people have been using for years: Ignore the features you don't like, use the ones you like. This works fine for a one-person project. But in a team environment, each person has their own favorite subset.
Ever try to read Boost code? This sort of thing is coming to the C# world.
sproketboy replied ago:
Sorry I thought I read excrement.
Kaveh Shahbazian replied ago:
I do not like the feature being so nakedly incorporated into the language. Yet I do not agree with those that oppose to growing the language. You think a feature-full language will fall the way C++ does? C++ syntax was (is) a composition of none-well-aliened features that make it so easy to write meaningless code. Just look that unsafe-unstructured-untraceable-nonedebugable-mistakeprone macro system. Was LINQ bad to your taste? A little but fine-grained, well-thought feature incorporated into the language!
And you think for example for Java if you do not know Tomcat, Straus, Log4j, Spring, Hibernate, ... well you will get a job? Technology IS already complicated and bolted (yet to remember a "Toolbox" of necessary skills as HTML, CSS, JavaScript, Ant, JUnit, Eclipse, ...)!
So have a higher-order type system will make managers from programmers as much as it is happening by now! So if it does not help those that faith is elsewhere anyway; It will help us and that's important to me!
horza replied ago:
cbang, C# is only used by Microsoft junkies and attempting to turn C# (a Java clone) into Python is hardly Excitement. It's trying to shoe-horn in something for the sake of it and will just lead to more bloat. The rest of the world is using Java for strongly typed language projects, and Python (or PHP in the web world) for dynamically typed projects. Rather than looking more like C++ as OtengiM and jkirstein suggest, it sounds like it is heading towards Perl where it tries to do everything and you have multiple ways of doing it. BrianGenisio, the reason you want less features is to enforce consistency hence improve maintainability. As jkirstein says, if just one programmer uses a feature then every single member of the team and every subsequent programmer that must maintain that code needs to be proficient in that feature. Even in the ultra-simple C there followed a decade of debate as to the best way to indent code, and whether the { should be on the same line as the function declaration or on its own on the next line. As for ksh2dzone, yes you will get a Java job without Tomcat, etc. Java is big in the mobile sector. For everything but C# a language is just that and you pick the appropriate infrastructure. Only with C# are you hogtied to one proprietary infrastructure.
Phillip.
cbang replied ago:
horza, by calling C# a Java clone you already send a clear message that you care more about software- politics and religion than actual engineering. The rest of the world is using Java but if you haven't noticed, all the latest Java frameworks are using dynamic proxies and DSL's buried in type-unsafe annotations to express "dynamic intension" the language itself can't carry. It took Java 10 years to realize the Enum would probably be a good idea, meanwhile people have been inventing all kind of workarounds in the lack of one true way. If you find that trend appealing, then I can only feel sorry for you and the next 10-20 years you have to spend understanding and maintaining legacy code.
Voters For This Link (21)
Voters Against This Link (6)