API Design

Vol. 5 No. 4 – May-June 2007

API Design


API Design Matters

Why changing APIs might become a criminal offense.
After more than 25 years as a software engineer, I still find myself underestimating the time it will take to complete a particular programming task. Sometimes, the resulting schedule slip is caused by my own shortcomings: as I dig into a problem, I simply discover that it is a lot harder than I initially thought, so the problem takes longer to solvesuch is life as a programmer. Just as often I know exactly what I want to achieve and how to achieve it, but it still takes far longer than anticipated. When that happens, it is usually because I am struggling with an API that seems to do its level best to throw rocks in my path and make my life difficult. What I find telling is that, after 25 years of progress in software engineering, this still happens. Worse, recent APIs implemented in modern programming languages make the same mistakes as their two-decade-old counterparts written in C. There seems to be something elusive about API design that, despite many years of progress, we have yet to master.

by Michi Henning

The Seven Deadly Sins of Linux Security

Avoid these common security risks like the devil.

by Bob Toxen

Toward a Commodity Enterprise Middleware

Can AMQP enable a new era in messaging middleware?
AMQP (Advanced Message Queuing Protocol) was born out of my own experience and frustrations in developing front- and back-office processing systems at investment banks. It seemed to me that we were living in integration Groundhog Day - the same problems of connecting systems together would crop up with depressing regularity. Each time the same discussions about which products to use would happen, and each time the architecture of some system would be curtailed to allow for the fact that the chosen middleware was reassuringly expensive.

by John O'Hara

Managing Collaboration

Jeff Johnstone of TechExcel explains why there is a need for a new approach to application lifecycle management that better reflects the business requirements and challenges facing development teams.

Getting Bigger Reach Through Speech

Mark Ericson, vice president of product strategy for BlueNote Networks argues that in order to take advantage of new voice technologies you have to have a plan for integrating that capability directly into the applications that drive your existing business processes.

The Yin and Yang of Software Development

The C/C++ Solution Manager at Parasoft explains how infrastructure elements allow development teams to increase productivity without restricting creativity.


A Conversation with Michael Stonebraker and Margo Seltzer

Over the past 30 years Michael Stonebraker has left an indelible mark on the database technology world.

SOA Testing

As developers move to build applications that span service-oriented architectures, many of them underestimate the testing challenges associated with building and maintaining applications that can comprise hundreds of different Web services. Developers need a robust set of testing tools and a systematic approach to testing to prevent errors from being introduced or, worse yet, propagated throughout the system. Wayne Ariola, vice president of corporate development for Parasoft, in a conversation with Queuecast host Mike Vizard, highlights some of the more common miscues associated with SOA and discusses best practices for building SOA applications.

Google Talk

Although Google remains relatively mum about its ambitions in the area of speech recognition, Mike Cohen, head of the company's efforts in this area and a co-founder of Nuance Communications, says that speech recognition will increasingly play a bigger role in all Web-based applications going forward. But for developers to be successful in this space, they will need to get in touch with their inner persons more than ever if they hope to create applications that ordinary people will actually use.



Errors, deceptions, and abmiguity
Three years ago, to the very tick, my first Curmudgeon column appeared in ACM Queue to the rapturous, one-handed claps of the silent majority. Since then my essays have alternated intermittently with those of other grumpy contributors. With this issue (muffled drumroll), I'm proud to announce a Gore-like climate change in the regime that will redefine the shallow roots of ACJ (agile computer journalism, of which more anon). The astute ACM Queue Management (yes, there is such - you really must read the opening pages of this magazine!) has offered me the chance to go solo. For the next few Queues, at least, I am crowned King Curmudgeon, the Idi Amin of Moaners, nay, Supreme General Secretary of the Complaining Party! "I am Sir Oracle, and when I ope my lips, let no dog bark!" Or rather, under the new dispensation, I command you to bark back via curmudgeon@acmqueue.com with your own pet peeves or counter-moans, which I promise to print if printable (subject to as light an editing as the Law dictates).

by Stan Kelly-Bootle

Kode Vicious

KV the Loudmouth

What requirement is being satisfied by having Unclear build a P2P file-sharing system? Based upon the answer, it may be more effective, and perhaps even more secure, to use an existing open source project or purchase commercial software to address the business need.

by George V. Neville-Neil


Embracing Wired Networks

Most people I know run wireless networks in their homes. Not me. I hardwired my home and leave the Wi-Fi turned off. My feeling is to do it once, do it right, and then forget about it. I want a low-cost network infrastructure with guaranteed availability, bandwidth, and security. If these attributes are important to you, Wi-Fi alone is probably not going to cut it.

by Mache Creeger

Corba: Gone but (Hopefully) Not Forgotten

There is no magic and the lessons of the past apply just as well today.

by Terry Coatta