|
|
|
|
|
by vinceguidry
3908 days ago
|
|
I'm not wondering, I've been around the block long enough to know how the upvote / downvote convention works. I'm actually surprised I'm not being downvoted more. Dynamic typing adds an entire layer of depth to the things you can do with tooling, over and on top of what you can do with reflection. If I don't know what's going on in a web app, I can load it up in a developer console, get right to where it's going wrong, and start inspecting everything I can see, even looking up the source code of the methods, whether in my app or in the framework, right in the REPL. You mention LINQ, that makes C# dev bearable by cutting down on the syntax you need to do basic functional programming. I wouldn't call it "enormously productive". |
|
And LINQ isn't an isolated example. There's an asynchronous solution for asynchronous programming built in the language (async/await since C# 5.0).
There's reactive programming - RxJava is most popular these days, and most major languages have their RX thing now, but it was in the .NET world where Reactive Extensions saw the daylight for the first time.
Or MVVM (10 years later, Google began introducing it to Android, though it's not production-ready yet).