4 ms·
Honestly, "statically typed language" often means C#/C++/Java. All languages which trend verbose. While Scala/Haskell/F#/etc are great at concision, they aren'
by pnathan 13y ago
Honestly, "statically typed language" often means C#/C++/Java. All languages which trend verbose.
While Scala/Haskell/F#/etc are great at concision, they aren't that common in traditional SW industrial applications.
- GyrosOfWar 13y agoModern C# and C++ both have facilities that make the languages much more concise (lambdas in combination with std::algorithm resp. LINQ, type inference and the like). Java 8 will also have some of that and I can see it becoming a much nicer language to work with because of those changes.
- pnathan 13y agoQuite correct. But historically - and worse, codebases with a Standard Style that is perhaps older - these languages trend verbose. IME, I've tried to make super concise modern C#, and it simply isn't concise compared to Haskell or even Python. YMMV, of course.
- _random_ 13y ago1. C# is not as verbose as Java and C++. Latest versions especially. 2. C# supports dynamic typing as well as static. 3. C# and F# are the easiest to mix and match within one solution.
- marcosdumay 13y ago> C# supports dynamic typing as well as static. Are you talking about automatic types? Because that's the only thing that resembles dynamic typing I ever found in C#. And it misses about all the reflection available in most dynamic types languages, thus, even if it's somehow possible to not define types, it's useless.
- danbruc 13y agoC# fully supports dynamic types [1] and has very good reflection support [2] since version one. [1] http://msdn.microsoft.com/en-us/library/dd264736.aspx http://msdn.microsoft.com/en-us/library/dd264736.aspx [2] http://msdn.microsoft.com/en-us/library/system.type.aspx http://msdn.microsoft.com/en-us/library/system.type.aspx
- _random_ 13y agoThose are 'anonymous' types. I wasn't talking about them. ExampleClass ec = new ExampleClass(); //ec.exampleMethod1(10, 4); // compiler error dynamic dynamic_ec = new ExampleClass(); dynamic_ec.exampleMethod1(10, 4); // runtime error