3 ms·
How can one effectively argue against an entirely subjective judgment of difficulty in terms of dealing with a type system? Anecdotally, I find that leveraging
by ankhmoop 18y ago
How can one effectively argue against an entirely subjective judgment of difficulty in terms of dealing with a type system?
Anecdotally, I find that leveraging functional language programming features coupled with type inference and polymorphism leads to considerable productivity gains as code correctness can be ensured through judicious use of types -- without requiring extensive testing or programmer effort -- while excess verbosity can be eliminated through the use of FP features such as type-safe anonymous functions, currying, etc.
- ansin 18y agoHow do you deal with excess verbosity in C#? I know this is a separate argument from the monkey patching issue but for me the conciseness and elegance of the Ruby syntax versus C# is the primary reason to choose Ruby.
- ankhmoop 18y agoHopefully a user of C# will chime in -- I've spent very little time with it, and only recently evaluated C#'s extension mechanism for the purpose of comparing it against other language's implementations. That said, elegant and concise syntax does not require eschewing an internally consistent, fully specified type system -- the two are not incompatible, as demonstrated (subjectively) -- by many existing FP languages. I argue that elegance/conciseness requires either FP language features and advanced type system, or abandonment of rigorous typing.
- SamReidHughes_ 18y agoWhich version of C# are you thinking of? In C# 3, the verbosity level is much less than in C# 2, where it's slightly less than C# 1. I don't see where Ruby syntax is particularly more concise than C# 3's. Well, let me clarify "particularly". I don't find myself feeling like I'm suffering under C#'s syntax, relative to Haskell's. It has about the same amount of syntactic overhead: writing types for method parameters, and when defining data structures. Occasionally I have to explicitly write a type parameter to a function.
- ansin 18y ago"I don't see where Ruby syntax is particularly more concise than C# 3's." 1.upto(10).each{|x| print x} I'm curious - how would you print 1 through 10 in C# 3 by comparison?