DDJ, January 2006
Programming Languages



FEATURES

Dr. Dobb's Journal @ 30
Michael Swaine
DDJ's long-time editor-at-large reflects on how we got to where we are today.

The Return of Tiny Basic
Tom Pittman
Tom updates one of the first implementations of the language that launched an industry.

Thoughts on Language Design
Guy L. Steele Jr.
Guy Steele, an engineer who knows something about designing programming languages, explains why new challenges require new solutions.

Google's Summer of Code: Part II
DDJ Staff & Friends
Google's Summer of Code resulted in thousands and thousands of lines of code. Here are more of the students who participated.

Recursive Descent, Tail Recursion, & the Dreaded Double Divide
Truck Smith
What can you do when the wrong answer turns out to be right?

Transforming XML & the REXML Pull Parser
James Britt
James uses Ruby and its built-in XML pull parser for an alternative approach to XML transformations.

PHP & Preprocessed Web Pages
Betsy Gamrat
Preprocessing lets you deliver complex web pages lightning fast, and in a cost-effective manner.

Sorting in Java & C#
David Perelman-Hall
David uses reflection to sort a list of complex types using both Java and C#.

The Java Location API
David Parsons
When it comes to real estate and mobile phones, the three most important words are "location, location, location."

Sessioning with XMLHttpRequest
Dionysios G. Synodinos
Here's an XMLHttpRequest object that lets you use HTML and JavaScript to connect the presentation layer directly to XML data.

Cocoa Memory Management
Jose R.C. Cruz
Cocoa, a Mac application development framework, has a memory-management scheme that differs from Java or C++.

Automation Interfaces & .NET Applications
Scott Swigart
Scott builds interfaces for .NET executables that use automation interfaces from other applications.

The Eclipse Visual Editor
David Orme and Joe Winchester
The Eclipse Visual Editor is a subproject that provides a framework for creating Eclipse-based GUI builders.

Detecting Potential Deadlocks
Tomer Abramson
To avoid deadlocks, Tomer explains how to use tools that detect potential deadlocks each time code is executed.


EMBEDDED SYSTEMS PROGRAMMING

Single Inheritance Classes in C
Ron Kreymborg
When C++ compilers don't exist for some processors, inheritable classes in C may be the best solution.


COLUMNS

Embedded Space
Ed Nisley
Trusted computing means that you have to trust someone, somewhere. But can you?

Chaos Manor
Jerry Pournelle
From watermarks to DVR, Jerry talks about some of the tools he uses day in and day out.

Programmer's Bookshelf
Jorge Aranda and Laura MacDougall
Jorge and Laura report on Aspect-Oriented Analysis and Design and Access by Design, respectively.


FORUM

Editorial
Jonathan Erickson

Dr. Ecco's Omniheurist Corner
Dennis E. Shasha

News & Views
DDJ Staff

Pragmatic Exceptions
Benjamin Booth

Of Interest
DDJ Staff

Swaine's Flames
Michael Swaine