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.
Discovering security problems early in the development cycle is only the first step toward creating more secure and reliable applications, says Parasoft's Wayne Ariola in an interview with Artima. For developers to work effectively in a security-conscious environment, addressing security-related coding issues must be integrated in developers' daily workflow.
by Martin Odersky, Lex Spoon, and Bill Venners, May 6, 2008
In this article, which is based on Chapter 1 of the book,
Programming in Scala, you'll get an overview of the Scala language and insights into its design.
Re-using developer knowledge is an important concern for many enterprises. In this interview with Artima, CodeGear's Jeff Anders talks about Application Factories, a feature of the new JBuilder 2008 IDE that facilitates knowledge sharing among developers.
Rich clients are more than just about user interfaces, argues Adobe's James Ward in this JavaOne 2008 interview with Artima. Rich clients are about architecture, and are also about collaboration between developers and designers.
In Artima's initial interview from JavaOne 2008, Patrick Curran, Chair of the Java Community Process, shares his vision for the JCP, and discusses how artisans and engineers differ in their approach to building software and in their attitude toward standards. He also explains how the JCP adapts to the reality of open-source development, and explains the relationship between software design and the standards creation process.
In this interview with Artima, Terence Parr, creator of the StringTemplate template engine as well as the ANTLR parser generator, talks about the importance of separating business logic and presentation.
by Howard E. Hinnant, Bjarne Stroustrup, and Bronek Kozicki, March 10, 2008
Rvalue references is a small technical extension to the C++ language. Rvalue references allow programmers to avoid logically unnecessary copying and to provide perfect forwarding functions. They are primarily meant to aid in the design of higher performance and more robust libraries.
Computers make life easier because they're so fast, right? Well, yes and no. Do you write efficient code? The author reveals some disconcerting inefficiencies lurking in commonly used software and development practices.
In this interview with Artima, Shannon Hickey, spec lead for the Beans Binding API, JSR 295, discusses the challenges of Java data binding, and how the JSR 295 API simplifies that task.
In this interview with Artima, Bill Shannon and Roberto Chinnici, spec leads for JSR 316, Java Platform, Enterprise Edition 6, discuss the key design considerations for the upcoming version of the enterprise Java specification.
The author discusses how the use of generic programming in C++ can lead to conflicts with object-oriented design principles. He demonstrates how a technique known as type erasure can often be used to resolve these conflicts. An in-depth example is presented:
any_iterator, a type-safe, heterogeneous C++ iterator.
The need to write efficient and high-performance programs in C++ make it desirable to be able to manipulate bits and groups of bits easily, efficiently, and safely. C++ provides out-of-the-box tools to accomplish the first two goals with its bitwise operations, but it does so at the expense of the third objective, safety. This article presents a solution to the problem of constraining bit operations to allow only safe and legitimate ones, and turn all invalid bit manipulations into compile-time errors. Best of all, the syntax of bit operations remains unchanged, and the code working with bits does not need to be modified, except possibly to fix errors that had as yet remained undetected.
Have your cake and eat it, too, with STL extensions. In this chapter extract from his latest book, Matthew Wilson shows you how to take full advantage of the STL Iterator abstraction, without sacrificing block-transfer efficiency of Scatter/Gather I/O memory.
Object factories provide a useful abstraction for object construction. A special problem with object factories must be considered, however, when subscribing template classes with object factories. This article presents an overview of the "subscription problem" along with several solutions.