Users expect apps to be amazing, yet most developers are locked into programming models that prevent them from building apps that make users say “wow!” An amazing app is rich and interactive, and able to scale to handle the high volumes of data that users demand. Derek Henninger, vice president of engineering at Typesafe, outlines five ways developers can break the cycle of mundane, lackluster, and sometimes downright horrible apps.
Click through for five tips for building amazing apps, as identified by Derek Henninger, vice president of engineering at Typesafe.
In traditional Web applications, every click or interaction causes a page refresh; this is not an effective way for the user to move through an application. The single page architecture is shifting the paradigm and allowing users to build more fluid and interactive applications.
Most Java applications look terrible because the application architecture does not allow UI developers to collaborate effectively with server-side developers. By exposing services and creating a clear separation between the client-side HTML and the backend services, developers can create much richer Java applications.
Most developers build their applications on top of low-level concurrency models like threads. Using high-level concurrency models like Akka’s Actors enables developers to build high-volume systems that can scale as needed.
Historically, Web apps are only updated when the user refreshes or moves to a new page. The problem is that while the user is on the page, the data could have changed on the server, thus the user is often seeing outdated information. JVM-based apps can solve this issue using real-time push, which updates the data in real time. In the case of apps like Google Docs, this means instant collaboration.
Stateless Web applications have become really important for building fault-tolerant and scalable systems. This allows Web requests to be transparently load balanced across a number of servers. Without any state contained in those servers, the Web tier becomes elastic and can easily deal with failures.