Stuart Williams discusses the merits of dynamic languages, definitions, stereotypes, myths, suggesting when and how to introduce such a language in production.
Stuart Williams develops software at Investors Group in Winnipeg. His work passions are automation and efficiency, which he justifies with reducing costs and errors. Proof is his use of the Dvorak keyboard layout. His experience teaching software development spans industry, university, conferences, and high school age.
Welcome to 1999
Re: Welcome to the enterprise
On the off-shoring Fortune 500 projects I take part on, I would always advise against dynamic languages.
Usually they have teams of 60+ developers, many of each just out of university to keep costs down and very seldom write unit tests. When they do, it is as if they did not, because when reviewing them, they actually don't test anything.
I doubt any of those developers would be able to produce proper running code in dynamic languages.
Java is not a good example of static languages
Also, if one plans on comparing dynamic and static languages in the future, please have a better static language to compare than Java.
Everything in slide number 30 is possible without any effort on any modern static language (Scala, Haskell, Ocaml, F#, C#, Kotlin, ...).
Please inform yourself properly before doing comparisons between static and dynamic languages.
Welcome to functional languages
Where "functional" simply means: Functions are first class.
Saying that Dictionaries from key to function or functions returning functions is a specificum of dynamic languages is a terrible ignorance about Haskell. Well, and Scala, Ceylon, Kotlin btw.
Beside that, this part of his talk is going to outdate very quickly once Java 8 gets lambdas.
I don't say that this makes Java a Functional language, it only shows that this kind of expressivity he mentions has nothing to do with static vs. dynamic!
Re: Welcome to functional languages
Re: Welcome to 1999
Many decision makers in the industry do still think dynamic languages are risky - so I named it. I wasn't preaching to the choir, which I gather you're in.
Your critique of my use of Java as indicative of modern static languages is bang-on. My recent expertise is limited to Java and Python, and my critiques of Java don't apply across the board to many other static languages, not even to older ones like C or C++! That's a helpful correction, thanks!