4 ms·
I should've been better with the tone. My view still holds. I know programmers who've written large swaths of Haskell and OCaml, who however reach for the emin
by jasim 8y ago
I should've been better with the tone. My view still holds.
I know programmers who've written large swaths of Haskell and OCaml, who however reach for the eminently dynamic Racket for its metaprogramming. They know the relative strengths of each paradigm better than most of us and have fine judgement. However junior programmers (<10 years) who haven't spent the effort required to learn other paradigms and are religious about whatever language they chose to learn as an accident of history are missing out tremendously.
Most of the static vs dynamic type research has always been about C++ based static types (which combines Simula-67's object system with Pascal's types - more history here: https://twitter.com/jasim_ab/status/991948718508130304 https://twitter.com/jasim_ab/status/991948718508130304) contrasted first against LISP and later with languages like Python, Ruby, and Javascript. Statically typed FP is totally different, and there are papers on either side of the bias to point to. I will recommend the Elm Language as a good starting point for anyone interested in seeing what Typed FP truly can be.
- seanmcdirmid 8y agoMost of the research in static types occurs in the FP community. Even most of the research about OO static types is not about C++, heck, you won’t find much research on C++’s type system at all. Java would dominate from the late 90s, before that it’s a box, but I’m sure there is much more research on even BETA (a language most people have never heard of) than C++. C++ has and always will be a pariah in the research community.
- jasim 8y agoHey Sean, thanks for chiming in. Do you think C++ isn't liked in academia because of any bias against languages that are more practical than formal, or anything in the language's nature itself?
- seanmcdirmid 8y agoC++ is just super hard in its design: it can’t be parsed easily, so for a long time custom compilers were impossible. It’s support for generics was based on was basically macro expansion, it’s multiple inheritance scheme was poorly thought out. It was just painful to do anything with it as a user of the language or an implementer. OOP people were never much of a formal crowd, and they had plenty of niche languages to base their research around (smalltalk, CLOS, Eiffel, BETA, ...). And when Java came along, acedemics breathed a sigh of relief: finally they could work on a “practical” language that wasn’t totally insane. And everyone else who really didn’t need to be using C++ in the first place has similar ideas.
- jasim 8y agoGot it, thanks!