by Thomas Guest, June 25, 2005 14 messages
C++ is a statically typed language but its type system is not bulletproof. This article reveals some all-too-common type glitches and how to fix them.
by Bill Venners, June 21, 2005 3 messages
In this interview, Erich Gamma, co-author of the landmark book, Design Patterns, talks with Bill Venners about how design patterns are problem solution pairs, how design patterns help you understand intent and tradeoffs, and how to become a better designer through practice.
by Bill Venners, June 7, 2005 Submit comment
Jini technology has a new licensing model. Sun originally released Jini technology under the Sun Community Source License (SCSL), but recently opened the licensing model and began releasing their specifications and implementations under Apache 2. In this interview, Bill Venners discusses this change with Jini team members Jim Hurley and Bob Scheifler.
by Scott Meyers, June 6, 2005 12 messages
The third edition of Scott Meyers' popular book, Effective C++, was recently published. In this excerpt from the new edition, Meyers explains why you should never call virtual functions during object construction and destruction.
by Bill Venners, June 6, 2005 17 messages
In this interview, Erich Gamma, co-author of the landmark book, Design Patterns, talks with Bill Venners about two design principles: program to an interface, not an implementation, and favor object composition over class inheritance.
by Frank Sommers, June 3, 2005 1 message
The BeanShell Scripting Language recently became a JCP JSR (274), a first step on the road to an official Java standard. In this article, Artima interviews Pat Niemeyer, BeanShell's creator and lead of the JSR's expert group, about the role of scripting languages in Java, BeanShell's dynamic programming features, how BeanShell compares with Groovy and other Java scripting efforts, and how the JCP helps or hinders language design.
by Frank Sommers, June 3, 2005 5 messages
Relational and object databases lack many data management features required by modern applications, such as versioning, rich data references, inheritence, or fine-grained security. Content repositories extend databases with such additional capabilities. The Java Content Repository API (JSR 170) defines a standard to access content repositories from Java code, and promises to greatly simplify Java database programming. This article reviews the Java Content Repository API and its open-source implementation, Apache Jackrabbit, from a developer's perspective.
by Bill Venners, May 30, 2005 13 messages
Developers are often faced with decisions about how much flexibility to design into their software. In this interview, Erich Gamma, co-author of the landmark book, Design Patterns, talks with Bill Venners about the attitude he believes developers should adopt towards flexibility and reuse.
by Bjorn Karlsson and Matthew Wilson, May 28, 2005 2 messages
In this tutorial, Bjorn and Matthew show the proper use of std::stringstream, and extol the virtues of making your classes streamable.
by Colin Gray, May 26, 2005 Submit comment
As software products become more complex, developers must invest increasing amounts of time to learn about new API and product capabilities. Traditional documentation tools were not designed to help navigate that increasingly complex landscape. This article reports on an interactive documentation navigator developed by Business Objects, S.A., for their Crystal Reports and enterprise reporting-related products. That documentation tool not only presents API components and describes how to use classes and methods of an API, but also guides a developer through the decisions of what API elements to use to accomplish a given task.
by Bill Venners, May 23, 2005 9 messages
Among developers, design patterns are a popular way to think about design, but what is the proper way to think about design patterns? In this interview, Erich Gamma, co-author of the landmark book, Design Patterns, talks with Bill Venners about the right way to think about and use design patterns.
by Frank Sommers, May 23, 2005 6 messages
A key aim of JAX-RPC 2.0 (JSR 224) is to simplify Java Web service development. Currently in early draft review stage in the JCP, an early access JAX-RPC 2.0 reference implementation is available from the Java Web services community site on This article provides a brief preview of writing a JAX-RPC 2.0-based Web service with that reference implementation, and highlights how Java annotations simplify Web service development.
by Frank Sommers, May 23, 2005 Submit comment
XML-based remote calls are a key Web services technology. The Java API for XML-based RPC (JAX-RPC) 2.0 is the second-generation XML-based RPC Java standard. Currently in early draft review in the JCP as JSR 224, JAX-RPC 2.0 promises to vastly simplify RPC-based Web service development. Part of that ease results from new JDK 1.5 features, such as annotations and the concurrency API. This article reviews key JAX-RPC 2.0 features, and highlights how taking advantage of recent additions to Java make JAX-RPC 2.0 a more flexible API.
by Bill Venners, Editor, May 23, 2005 2 messages
In this short editorial, Bill Venners explains the context and motivation behind Artima's new online magazine, Leading-Edge Java, and describes the focus and flavor of the articles it will publish.
by Frank Sommers, May 18, 2005 Submit comment
Digital broadcasting has recently emerged to bring live television to cell phones, PDAs, and other mobile devices. Such broadcasts carry not only video and audio, but also metadata, and even software applications, in a digital broadcast stream. The new JSR 272, Mobile Broadcast Service API for Handheld Terminals, aims to define a common Java API to control and access digital broadcast content from mobile devices.