If you're searching for a fountain of youth, the easiest way to get that feeling of continual rebirth is to hang around a few tech product launches. Every new rollout comes with the fresh, unabashed feeling that this has never been done before. Ever.
But it has. Apple has been bringing us "one more thing" for more than 30 years. Even the iconic commercial introducing the Macintosh is nearing 29 years old. Newness has never been so old.
[ Get paid for your IT war stories. Send your tale to firstname.lastname@example.org; if we publish it, you'll receive a $50 American Express gift cheque. | Learn how to work smarter, not harder with InfoWorld's roundup of all the tips and trends programmers need to know in the Developers' Survival Guide. Download the PDF today! | Keep up with the latest developer news with InfoWorld's Developer World newsletter. ]
Hype notwithstanding, the computer industry has already been through a number of generations. IBM has roots in tabulating companies that began about 130 years ago. That's three 40-year generations of tabulation and computing work without overlap.
In practice, new generations overlap quite a bit. The Internet is easily more than 30 years old, but it wasn't widely open to nonresearchers until about 20 years ago. During those 20 years, there have been at least three different bubbles, each with a feeling all its own.
These generations each have a distinctive flavor, often defined by a programming language or technology. They burst out with newborn fervor before settling into a comfortable middle age. They may not be on the top of the pop charts after a few years, but they're often still kicking because software never really dies. It's always running in some corner of a stack, somewhere somehow.
These new technologies often group programmers by generation. When programmers enter the job market and learn a language, they often stick with the same syntax for life -- or at least as long as they can before having to make a switch. It's not that it's hard to learn a new language; they're all pretty similar underneath. It's just that you can often make more money with the expertise you have, so the generations live on.
Here is our guide to some of the more dominant tech generations in computer history, as embodied by the programmers who gave them life. The list is far from complete, but if you've been coding for any amount of time, you will probably recognize many of these generational traits in yourself, your coworkers, and the programming community at large.
The '60s-era computers received their instructions from a stack of card with punched holes, a scheme that dates to the earliest programmable looms for weaving cloth. Some enterprise programmers talk about old software as "dusty deck," which is largely a metaphor. There was recently a story about a punch card programmer for looms in England that still use the old technology to make lace.
Language of choice: Fortran Special skill: Not dropping the deck of punch cards Social media strategy: Joining the right country club Other career choice: Advertising Clothing: Dark flannel suit Rhetorical tic: "They say there's a need for five computers, but I think doubling or tripling that estimate would be more accurate." Car: Oldsmobile Song: Ella Fitzgerald's "Mack the Knife" Favorite artifact: Wreath made of punch cards
Space Shuttle programmers
This crew just retired with the Space Shuttle. During their years, they worked with 8086 chips and kept the shuttles running by searching eBay for replacement hardware. The Space Shuttle computers may not have had much memory, but they traveled farther and faster than all of the biggest mainframes or fanciest racks.
Language of choice: Assembly code Special skill: Remembering which register is already swapped to RAM Social media strategy: Logged into Facebook once last year; has friended spouse and two neighbors Other career choice: Disco lighting designer Clothing: Leisure suits Rhetorical tic: "If we don't do it, the Russians will win." Car: Cadillac Eldorado Song: Frank Sinatra's "Fly Me to the Moon" Favorite artifact: 8086 chip
There was a time when the fastest computers were built by a relatively small company run by an enigmatic genius who spent his off-hours digging tunnels in his basement. That's a true fact about Seymour Cray, the genius who built the first generation of machines designed for big data sets and complicated mathematical analysis.
Language of choice: Cray's automatically vectorizing Fortran
Special skill: Knowing how to set up loops so that the Fortran compiler could vectorize them
Social media strategy: Going to the boss's July 4 BBQ and the company holiday party this year
Other career choice: NASA rocket scientist
Clothing: Short-sleeve white shirt with pocket protector
Rhetorical tic: "It's a classified project supported by the DoD."
Car: Nondescript sedan that blends into the NSA parking lot
Song: Wendy Carlos and Benjamin Folkman's "Switched-On Bach"
Favorite artifact: Cray sitting in the National Cryptographic Museum outside Fort Meade
The first big adopters of computers never would have succeeded without a simple mechanism for writing software that supported the core business. Cobol was the first great tool for writing what the enterprise programmers call "business logic."
Other language of choice: Fortran Special skill: Trying to keep on using self-modifying code like ALTER X TO PROCEED TO Y< Social media strategy: Sends out Christmas cards printed on paper Other career choice: Stereo designer Clothing: Tracksuit left over from an early morning mall walk Rhetorical tic: "It's cool." Car: Honda Civic Song: Gillian Hills, "Zou Bisou Bisou" Favorite artifact: Something signed by Grace Hopper
It was first invented to help Dartmouth students learn how to write endless loops, but it became the dominant language of the early personal computer generation when Bill Gates released Microsoft Basic. All of the early games and software for the PCs were written in Basic. Today it lives on as Visual Basic, a popular language for anyone using the .Net platform.
Other language of choice: Assembly code Special skill: Using GOTO without creating spaghetti code Social media strategy: Going to Studio 54 Other career choice: Fast-food restaurant developer Clothing: Bell bottoms Rhetorical tic: "It's easy." Car: Last convertible Song: Blondie, "Heart of Glass" Favorite artifact: Cassette version of Microsoft Basic
The language began as one step above assembler, but grew hand in hand with all of the variations of Unix. Today it's still used by those who love Unix and its latest dominant variant, Linux. It remains the tool of choice for those who want to program "close to the metal" and not rely on automatic mechanisms like garbage collectors.
Other language of choice: C++ Special skill: Remembering to free everything malloced Social media strategy: Posts to Usenet three times a month Other career choice: Bell telephone switch technician Clothing: Red Hat T-shirt from the early days Rhetorical tic: "Wouldn't you rather handle the memory yourself?" Car: Original Toyota Land Cruiser Song: Something by the Ramones Favorite artifact: Bell Labs coffee cup
When C programmers looked at the idea of object-oriented programming, they created C++, a baroque version that worked best when the programmer was able to keep track of all the complicated ways code could interact. It took all of the garage-grade DIY intensity and added another way for programmers to prove themselves worthy.
Other language of choice: C Special skill: Multiple inheritance Social media strategy: Friendster Other career choice: Pinball wizard Clothing: Jeans jacket with safety pins Rhetorical tic: "Java pretty much broke object-oriented programming." Car: Ford Explorer Song: The Clash's "Clash City Rockers" Favorite artifact: Borland C++ T-shirt
Objective-C programmers (first generation)
There are two groups of people who fell in love with Objective-C: the people who bought a NeXT machine and those who bought an iPhone. The first generation went on to rescue Apple in its darkest days and pull it back from the brink.
Other language of choice: Smalltalk Special skill: Using InterfaceBuilder Social media strategy: Subscribes to 42 mailing lists Other career choice: Wall Street investment banker Clothing: Hawaiian shirt Rhetorical tic: "You mean C++ doesn't do that for you?" Car: Mazda RX-7 or BMW 325 Song: Anything by Bob Dylan, Grateful Dead, Cat Stevens, or anyone else liked by Steve Jobs Favorite artifact: NeXT machine
The simple language for manipulating text files appeared around the same time as the Internet, so when people needed to fix Web servers, they turned first to Perl. If you have text in one format and need to change it -- "massage it," in Perl parlance -- it may only take 10 to 20 characters. Most of the Perl scripts may be short, but that never stopped some true believers. Slashdot, after all, was built with Perl.
Other language of choice: Unix shell scripts Special skill: Regular expressions Social media strategy: Arguing on Slashdot Other career choice: Roboticist building simulated dinosaurs for malls Clothing: Jacket and T-shirt Rhetorical tic: "It's the duct tape of the Internet." Car: Tuned Honda Civic Song: Pantera's "Cemetery Gates" Favorite artifact: First edition of O'Reilly's Perl handbook
Many PHP programmers fell into PHP by accident. They were creating HTML, and they needed a bit of dynamic logic. One tag led to another, and they found themselves creating websites and content-management systems with the code.
It was the first great serious language for the Internet, driven by the promise of running everywhere. The desktops never surrendered to the server farms, but the introductory programming classes did. Today it lives on in the hearts of Android programmers.
Other language of choice: Pascal Special skill: Creating extralong variable names in camel case so that the code is self-documenting Social media strategy: Attends local Java Users Group meeting each month; checks Java.net account for new meetings Other career choice: Y2K programmer Clothing: Java One polo shirt Rhetorical tic: "The JVM will just handle it in another thread." Car: Mazda Miata Song: Talking Heads' "Wild Wild Life" Favorite artifact: Something signed by Jim Gosling
They fell in love with Java but remained loyal to Microsoft, perhaps because the boss insisted on keeping it a Microsoft shop. The code looks similar. The idioms work the same way. It's pretty much the same as Java, but with a few nice fixes worked into the mix.
Other language of choice: .Net Special skill: Navigating the .Net documentation Social media strategy: Wondering whether Skype counts as social media Other career choice: Starbucks barista Clothing: Freebie Windows 98 tennis cap Rhetorical tic: "It's really more efficient than the JVM." Car: Toyota Prius Song: Nirvana's "Come As You Are" Favorite artifact: A Windows 8 phone
Other language of choice: HTML Special skill: Remembering to put the function between script tags Social media strategy: Going to a friend's GeoCities page Other career choice: Chain restaurant manager Rhetorical tic: "It works on IE 5.5 but not 6.0 yet." Clothing: Parachute pants Car: Ford Taurus Song: Beastie Boys' "So What'cha Want" Favorite artifact: Netscape Share Certificate
Ruby on Rails programmers
It takes all of 10 minutes to wrap a nice website around MySQL, then years to fiddle with it. The Ruby language offers a clean, low-punctuation syntax, while the Rails framework makes it easy to type the smallest files around. It's almost as if it were designed by carpal-tunnel sufferers.
Other language of choice: SQL Special skill: Getting your stack to run on JRuby Social media strategy: Writing a personal version of Facebook in 20 lines of code Other career choice: Molecular gastronomist Clothing: Plaid shirt and jeans Rhetorical tic: "You just need a few tables and you're done." Car: Minivan Song: "The Rails Song" Favorite artifact: 37 Signals T-shirt
Objective-C programmers (second generation)
The second generation of Objective-C lovers appeared during the app gold rush after Apple opened up the iPhone to apps written by outsiders. Suddenly a language slowly dying was reborn.