3 ms·
I’m in the static camp myself, but there are dynamic language JIT runtimes that meet or exceed the performance of many static languages.
by kobeya 9y ago
I’m in the static camp myself, but there are dynamic language JIT runtimes that meet or exceed the performance of many static languages.
- eloff 9y agoIn special cases. It's not nearly as reliable. There are a lot of ways to get poor performance out of such JIT compilers, and writing performant code for them is a bit of a black art that varies from version to version. Just read a little about the "fun" people have had with V8 over the years.
- fulafel 9y agoIncluding the Java runtime - the JVM is basically dynamic.
- eloff 9y agoJava is a static language. While there are dynamic languages on the JVM like Jython, JRuby, Groovy, they don't get anywhere near the performance of the static languages.
- dozzie 9y agoOh, sure it's statically typed language with all things being constantly cast to and from Object. (Have you ever used collections? Have you ever heard of "type erasure" term?)
- eloff 9y agoThat it doesn't have reified generics like C# does not make it a dynamic language. Go doesn't have generics at all, but it's still a static language.
- hepta 9y agoThere is code that doesn't `constantly cast ti and from Object`, most code won't need to, anyway. Generic information is kept during type-checking and then is discarded, this can be considered an optimization. There are some warts that appear because of erasure, but I believe you're wrong in implying that most developers care (most java developers, maybe scala peole have more issues because of erasure).