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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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 java.net. 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.
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.
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.
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.