Danny Wahlquist Wordpress Blog

July 15, 2013

Why mobile web apps are slow | Sealed Abstract

Filed under: Software — dannywahlquist @ 7:47 am

This is a really long article

So here’s what you should remember:

Javascript is too slow for mobile app use in 2013 (e.g., for photo editing etc.).

It’s slower than native code by about 5

It’s comparable to IE8

It’s slower than x86 C/C++ by about 50

It’s slower than server-side Java/Ruby/Python/C# by a factor of about 10 if your program fits in 35MB, and it degrades exponentially from there

The most viable path for it to get faster is by pushing the hardware to desktop-level performance.  This might be viable long-term, but it’s looking like a pretty long wait.

The language itself doesn’t seem to be getting faster these days, and people who are working on it are saying that with the current language and APIs, it will never be as fast as native code

Garbage collection is exponentially bad in a memory-constrained environment.  It is way, way worse than it is in desktop-class or server-class environments.

Every competent mobile developer, whether they use a GCed environment or not, spends a great deal of time thinking about the memory performance of the target device

JavaScript, as it currently exists, is fundamentally opposed to even allowing developers to think about the memory performance of the target device

If they did change their minds and allowed developers to think about memory, experience suggests this is a technically hard problem.

asm.js show some promise, but even if they win you will be using C/C++ or similar “backwards” language as a frontend, rather than something dynamic like JavaScript

via Why mobile web apps are slow | Sealed Abstract.

May 4, 2013

Java.next: Common ground in Groovy, Scala, and Clojure, Part 2

Filed under: Software — dannywahlquist @ 11:55 am

Interesting to see how far we have come since 1996!

The Java legacy will be the platform, not the language. More than 200 languages run on the JVM, each bringing interesting new capabilities beyond those of the Java language.

via Java.next: Common ground in Groovy, Scala, and Clojure, Part 2.

Blog at WordPress.com.