Friday, January 17, 2014

Three Things

I wrote my first program using punch cards when I was in high school.

In college, I wrote most of my programs on dumb terminals connected to mainframes and minicomputers. By the time I graduated I owned my first computer, a Commodore 64. 

I first sent an email and surfed the web while I was working at NASA, my first job out of college.

At home, I had a separate phone line so that I could dial in for an internet connection and receive phone calls at the same time. When I got a high speed internet connection, my computers were set up in the study because that's where the line entered the house.

How far we have come to things that now seem mundane.

As a programmer, there were three advancements that significantly changed the way I worked.

The first was the personal computer, and not just the ones that I bought for my own use. When I started working at NASA, no one had a computer sitting on their desk. You went down to the lab and used one of the computers or terminals there. Even the actual personal computers we had were used communally.

Having your own personal computer meant that you could work whenever you wanted, not when a computer became free or the lab was open. And when portable computers became affordable you could work not only whenever you wanted but also wherever you wanted. 

The second advancement was software: Graphical User Interfaces (GUIs), Integrated Development Environments (IDEs), and Software Development Kits (SDKs). These changes were mostly incremental, but the sum of them has been significant. 

I shudder to think how difficult it would be to write an iPhone app having only one application open at a time, using a command line debugger, and having to replicate all of the functionality provided by the SDK. 

For sure, there's still a lot of software developed using makefiles and command prompts, but modern programming tools and software have made possible entirely new classes of applications. Thirty years ago touch based applications that ran on computers you held in your hand was something you saw on Star Trek, not everywhere you went. 

The third advancement is access to information. This is the one that's most amazing to me and would be the hardest to give up. 

When I first started programming, if you were fixing a bug in your code or designing an algorithm, you figured it out on your own, got help from a coworker, or searched through documentation. Today, you enter a few key words or phrases into a search engine, and have nearly instantaneous access to world wide content relating to your query.

If you’re a programmer and take the awesomeness of internet for granted, try going without it for a few months. 

On second thought, whether you program or not, if you aren't amazed by how much information we receive through technology that interconnects us, try shutting off your cell phone, cable, and WiFi for a few months.

No comments:

Post a Comment