40 karma · joined May 18, 2013
On the other hand, you can also use modules as a simple namespacing mechanism (as in Haskell modules). But this does not capture the full power of the module system.
If you don't choose static typing early, you might never be able to again.
Discouraging high school graduates from going to college is just bad for society. Entrepreneurs are essential, but I would argue that the most profound advancements in STEM fields come out of universities. Those advancements tend to be in highly abstract fields (e.g. physics, math), where there is no immediate applicable benefit, but there may well be one in the future.
Students should go to universities to gain a theoretical foundation in STEM fields -- that's how we find young researchers. And those who decide that research isn't for them will nevertheless gain a strong intellectual foundation that is hard (but not impossible) to acquire otherwise.
I think that Bob's (the OP's) is merely saying that the design of languages such as Rust and Swift has been strongly influenced by developers well-versed in type theory (the foundation of programming languages) as well as software development (the point of programming languages) -- this is true for Haskell as well, as he points out, but he is just noting that these well-designed, informed languages are becoming more mainstream.
Also, Rust's type system is more complex than you might expect, involving something called linear/affine types: http://en.wikipedia.org/wiki/Substructural_type_system#Linea...
`sort xs` evaluates to a data structure which contains the original unsorted sequence.
When asked for the ith element, the datastructure uses quickselect to produce the ith smallest element, while also partially sorting the sequence.
Repeated requests for the ith element will become faster and faster, as the sequence becomes more and more sorted.
Or am I missing something?