Three Twitter developers, Steve Jenson, Alex Payne, and Robey Pointer, talk with Bill Venners about their use of Scala in production at Twitter.
by Trygve Reenskaug and James O. Coplien, March 20, 2009
Object-oriented programming was supposed to unify the perspectives of the programmer and the end user in computer code: a boon both to usability and program comprehension. While objects capture structure well, they fail to capture system action. DCI is a vision to capture the end user cognitive model of roles and interactions between them.
In this interview, Ian Robertson, co-maintainer of the Jamon text template engine, discusses why he feels static typing is useful in a template engine.
Learning a new programming language sometimes influences how you code in other languages, too. In this essay, Bill Venners shares how learning Scala influenced his programming style.
Functions often depend on particular behavioral characteristics (“features”) of code they invoke. For example, thread-safe code must invoke only thread-safe code if it is to remain thread-safe, and exception-safe code must invoke only exception-safe code. This paper describes a technique that enables the specification of arbitrary combinations of user-defined code features on a per-function basis and that detects violations of feature constraints during compilation. The technique applies to member functions (both nonvirtual and virtual), non-member functions, and function templates; operators are excluded.
Dmitry Jemerov is a lead developer on JetBrains' IntelliJ IDEA. In this wide-ranging interview with Artima, Jemerov discusses the main focus areas for the upcoming IntelliJ 8 release, as well as his views on IntelliJ's support for Flex and Scala.
Although physical RAM is inexpensive, allocating large amounts of memory to a JVM instance is not generally a good idea, says Azul Systems' CTO Gil Tene in this interview with Artima. Tene shows how recent research in garbage collection and JVM implementation helps overcome the JVM's memory barrier, resulting in new types of applications.
In this interview from JavaOne 2008, Coverity chief scientist Andy Chou discusses why traditional unit tests don't often help in uncovering concurrency-related errors, and why a combination of static and dynamic analysis yields better results when testing multithreaded code.
Ajax applications depend on asynchronous interaction between client and server. In this interview with Artima, ICEsoft's Stephen Maryka describes a potentially more transforming asynchronicity where updates are pushed to the client without the user having to request those updates.
While the Java VM shields most developers from having to think about the memory-management aspects their Java objects, the VM does not completely manage other types of resources automatically, says Gwyn Fisher, CTO of Klocwork in this interview with Artima. Great Java developers learn to understand exactly what the JVM does, and does not do, for their objects.
Detecting concurrency-related bugs and performance bottlenecks is hard, especially on clusters consisting of a large number of nodes. In an interview with Artima, Terracotta co-founder and CTO Ari Zilka explains the importance of visualization in cluster-based applications, and introduces Terracotta's open-source cluster visualizer tool.
Object-oriented databases complement relational databases in important ways, says Anat Gafni, VP of Engineering at db4objects, the company behind the open-source object database db4o. In this interview with Artima, Gafni explains how OO databases support agile development, and how they co-exist with relational databases in an enterprise.
Software-as-service (SaaS) has started to permeate the field of software development tools as well, says Atlassian's Jeffrey Walker in this interview with Artima. Walker describes important characteristics of hosted developer tools, and highlights the need for such tools to integrate well with locally-installed tools, such as IDEs.
A programming language is as much about a set of design principles as it is about syntax and code structure. In this brief interview Martin Odersky, creator of the Scala language, talks about design tendencies that Scala encourages, especially in comparison with Java. He also discusses Scala's approach to concurrency.