ACMCrossroads / Xrds12-3 / Introduction

Introduction

Article Glyph

by Jerry Guo

The development of programming languages has exploded in the last two decades. Crossroads has kept up with the times from our second issue, "Programming Languages," in Winter 1994 to "Object Oriented Programming" in 1998 and "Windows Programming" in 2000. But the genesis of programming can be traced back to more than a century before the .NET initiative or open source.

Ada Lovelace is known to many as the first programmer. She began working for Charles Babbage on his Analytical Engine in the mid 1800s. Lovelace wrote programs comparable to modern assembly language designed for calculating Bernoulli solutions. Almost a century passed before electrical and sophisticated computers appeared, used to power the United State´s war efforts.

It was around this time that the first supercomputers appeared and with the advent of the Information Age, the world´s first computer bug: an actual moth caught in a logic relay. Admiral Grace Hopper is often erroneously attributed for the discovery and term. Yet it was a technician who found the bug and recorded it in log book now displayed at the Smithsonian – but Hopper says she still loves to tell the story. Ironically, although women have been responsible for many milestones in programming, the field is now overwhelmingly dominated by men.

We begin this issue by looking into the future of programming through an exclusive interview with Paul Graham, a Harvard educated leader in the field and co-founder of Viaweb. He discusses out-sourcing, tackling technical problems, and developing a new Lisp dialect called Arc (a personal project). He also answers practical questions about entrepreneurship and job hunting in the current industry.

Next, Kevin Henry gives "A Crash Overview of Groovy," a language that combines the convenience of scripting with the functionality of Java. In "Stratego: A Programming Language for Program Manipulation," Karl Kalleberg examines the bigger picture of program transformation and how it is intimately tied to programming languages. Alexandre Borhi, Valentin David, and Akim Demaille goes on to give an example of the power of modern program transformation in "C-Transformers: A Framework to Write C Program Transformations". Finally, from the online exclusive from the last issue, Umer Farooq reminds us of the context and innate humanness of programming languages in "Eureka! Past, present, and future of creativity research in HCI."

Upcoming issues include Software Engineering, Bioinformatics, and Computer Gaming. As always, please email us (crossroads@acm.org) to submit articles, volunteer for the editorial board, give us feedback, or just chat about technology. For our upcoming 13th year of producing the most popular journal run by students in the country, we are planning major expansions, such as improving our online presence (www.acm.org/crossroads) and adding more user-friendly and timely content.

Biography

Jerry Guo (ji.guo@yale.edu) is an undergraduate student at Yale University. His main research interests are in bioinformatics and artificial intelligence. He is currently a staff reporter for the Yale Daily News and a rower on heavyweight crew. In his meager spare time, he enjoys sleeping, gaming on his XPS2, and mountain biking. He has served as Editor-in-Chief of Crossroads since August 2005 and been on the editorial board since 2003.

Copyright 2004, The Association for Computing Machinery, Inc.