4 ms·
It's true. .NET, and C# especially, is one of the few things Microsoft really got right. Anders H is a genius -- he showed it when he did Turbo Pascal, he showe
by charlieflowers 16y ago
It's true. .NET, and C# especially, is one of the few things Microsoft really got right. Anders H is a genius -- he showed it when he did Turbo Pascal, he showed it with Delphi, and he continues to show it with every new release of C#.
Did you know that C# has: lambdas, closures, optional duck typing, first-class functions, better generics than Java, and type inference that is sometimes spooky?
Really, the only flaw I see in C# (and clearly this is my own subjective opinion) is that I now believe dynamically (duck) typed languages are so much more empowering than strongly typed ones. To me, it seems you can get so much more done, faster, and you choose where to expend your energy to get "automated correctness". But even there, C# has the new "dynamic" keyword that allows for duck typing, so it is moving in the right direction.
- charlieflowers 16y agoOh, one other flaw -- C# isn't homoiconic. But every other language but you-know-what fails that one :)
- Dn_Ab 16y agoProlog is another that passes. The Pure language - interpreted but not compiled - should count. Compile time self modification is still there though. In terms of macros for code generation, syntactic extensibility, runtime+compile time reflection and staged computation without homoiconicity; Nemerle is one on .NET. C# is one step closer with its upcoming compiler as a service. Available in mono now.
- jschrf 16y ago"Did you know that C# has: lambdas, closures, optional duck typing, first-class functions, better generics than Java, and type inference that is sometimes spooky?" I did know that, and these things heavily factor into why I default to C# for most projects these days! .NET 4 is awesome. C# is an excellent language. It has all these great things, yet doesn't feel polluted or bloated at all. I absolutely love lambdas, closures, and generics. They help write concise and clear code. Generic support in C# and F# and the CLR itself is brilliant. Writing event-driven, asynchronous IO code in .NET code is a breeze. It seems like the current programming trend around these parts is focused on "iterating fast" and having async IO. C# gives me both of these things, with the bonus of having the compiler catch most of my errors. I disagree with the general notion that duck-typed languages are more empowering or let you iterate faster than strongly typed languages. If you think that a language that is lazy (or worse, unspecific) about types lets you write code faster, I think that you have some fundamental problems with how you approach development. The whole dynamic languages = faster code production is an unsettling school of thought, in my opinion.
- charlieflowers 16y ago"If you think that a language that is lazy (or worse, unspecific) about types lets you write code faster, I think that you have some fundamental problems with how you approach development. The whole dynamic languages = faster code production is an unsettling school of thought, in my opinion." Well, that's what I used to think too. The million dollar question is ... have you tried it? I did a heavy Javascript project recently, and I was amazed at how much faster I could go from a vision of a complex solution to having that solution implemented.
- nlawalker 16y agoWriting event-driven, asynchronous IO code in .NET code is a breeze. It's about to get even breezier: http://msdn.microsoft.com/en-us/vstudio/gg316360 http://msdn.microsoft.com/en-us/vstudio/gg316360