1,067 karma · joined May 30, 2008
I recommend Indy's courses for getting the map of the territory: https://www.coursera.org/instructor/indygupta
You've got to remember that the landlord's downside can be both large and happen quickly.
Many static typing arguments remind me of the Air Force's old "We'll bomb them so hard we won't have to send in ground troops." I just haven't seen it in practice, and the few studies that have looked at it empirically haven't seen a clear advantage either. If you know of such a study, please point it out!
In the end, all sorts of combinations have succeeded or failed, to the point where now when people start talking about "the right tool for the job", I add in "the right tool for the right people in the right environment for the right job..."
So, in the following, I'm not ranting at you, but I am saying I see lots of arguments for types that jump to QED without nearly enough evidence, with the "everybody knows" kinda explanation. And you happen to have put a handy list right in front of me when I had time to respond.
> ... difficulties with refactoring, runtime errors, needing lots of test coverage and not scaling well to large teams and codebases.
I was really impressed with Scala when learning or toy projects, but every time I saw it in production it was pretty horrid. Small, technical refactoring was taken care of by the IDE, but large scale refactoring takes the same amount of thought as before, but now there's 10x as much code to understand first.
There were less runtime errors, but not much less, and I saw a lot of code that didn't error, but didn't get done what it needed to.
When it comes to scaling to large teams, I saw lots of "The compiler says it's ok, and the tests pass, so commit!" where the code didn't make sense! The old thing about write code for programmers to understand first, and the machine to understand second...
Outside of certain specific situations, I just haven't seen the benefits outweigh the increased code weight and slower time to market.
It's about inspecting and verifying minimums at runtime.
I'm curious if we're going to see a big new synergy between Kubernetes (represent everything as data) and Clojure (great with data).
http://blog.cognitect.com/blog/2017/6/19/improving-on-types-...
The link has worthwhile content, and was entertaining. Thanks!
It's weird to me when people claim clojure is dying, yet the ecosystem is evolving rapidly and people are making money with it. It's not a model that's easy to starve, it's too lightweight to collapse under it's own load, and there's no way to kill it, so how is it dying?
Mindshare ebbs and flows, but being THE programming language was never clojure's goal.
Give that, there's going to be lots of debate where to draw the line, and that's ok. But arguing that there can't ever be a line is the kind of thing which gets people into untenable positions.