Hacker News new | comments | show | ask | jobs | submit login

I think language evolution will always be cyclical like this--dynamic languages sprint ahead, and the static languages eventually catch up.

The reason is that dynamic languages are so easy to build--they usually start out as hobbyist projects. Not to overly-trivial it, but these days most anyone can sit down with a compiler book and have an interpreted language up and going quickly.

So dynamic languages evolve quickly--it's easy to try new things, see if they work, see if they don't.

Static languages, on the other hand, are hard to build--you don't often see hobbyist language developers coming up with type systems in their spare time. Type systems are hard.

And the tooling for static languages is hard too--dynamic language users live in emacs/vim/Sublime, but static language users are going to want an Eclipse IDE, refactoring, etc., etc.

So, static languages evolve slower.

But once someone has put the time and effort into a static language, and has the tool chain polished, I assert that most programmers (of course not all) that sprinted ahead to the dynamic languages will find themselves tempted to wander back.

If the syntax is the same (once the static languages catch up), why wouldn't you want static typing, given that, even in dynamic language programs, 95%+ of the calls could be statically verified anyway?

(Admittedly, how you deal with the remaining 5% (reflection, macros, XML, whatever) is left an exercise to the reader.)

Great case in point: Groovy. The original creator, James Strachan, was a hobbyist, and I believe (admittedly putting words in his mouth), if not consciously, built Groovy as a dynamic language because it was easy. But now he prefers Scala, which is basically the same syntax, but with all of the extra infrastructure around typing/tooling/etc.

I prefer static languages for enterprise projects and dynamic ones for small scale ones, specially due to the differences among team members skills.

But the funny thing about IDEs is that the best ones were originally made for dynamic languages (Smalltalk and Lisp Machines) and most IDEs are still lacking when compared to what those environments allowed feature wise.

While many hackers prefer to use 70's style vim/emacs editors.

> But now [James Strachan] prefers Scala, which is basically the same syntax, but with all of the extra infrastructure around typing/tooling/etc.

James has actually moved on from Scala to helping build statically-compiled language Kotlin!

Ha! How interesting. I didn't know that; thanks for the update.

I disagree that static language users will want an IDE. I'm a static-typing advocate, but I much prefer vim over IDEs.

Then again, I design static-type systems in my spare time, so maybe I'm not the target of your comment :)

Applications are open for YC Summer 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact