All the languages I’ve known

Every once in a while, a meme appears on Twitter asking people to name all the computer languages they know, in the order they learned them. This is a twist on that, with additional information on why.

1. BASIC

I first learned BASIC on an Apple ][+, circa 1980, by reading the reference manuals that came with the computer. I was in 8th grade at the time, and the computer was housed in a former photography darkroom, in an Earth Science teacher’s classroom. That teacher’s wife was also a teacher, of Kindergarten. I created a flash card program for her students to learn their letters and numbers.

I went on to program in BASIC on other computers, notably the Commodore VIC-20, and, later, the IBM PC.

2. Pascal

In the mid-80s, I wanted to learn a more sophisticated language, and chose Pascal. Specifically, Borland’s Turbo Pascal. I went on to use that knowledge to work as a programmer for a company making software for the energy sector, while I was a student in college.

3. Modulo-2

Very similar to Pascal, Modulo-2 was used as a instructional language in early Computer and Information Science (CIS) classes at the college I attended (THE Ohio State University). I’ve never used it outside of academia.

4. dBase

To quote Wikipedia:
“dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day.”
I was working for a large hamburger restaurant chain (think “sliders”), in their corporate HQ, investigating the feasibility of replacing their third-party Point Of Sale (POS) equipment with custom, in-house software.

5. x86 Assembly

Initially on the IBM PC (8088 processor), then the IBM PC/AT (80286 processor), and on to all the successors. I initially learned this language for fun, but later had an opportunity to use it commercially in helping port custom industrial control software (for concrete plants) from a proprietary 8008-based system, to a standard 80286-based system.

6. C

Again, seeking to up-level my skills, I learned C, first via Borland’s Turbo C, and later from the original K&R book. I used this commercially at several companies, including CompuServe, in the early 90s.

7. C++

Wanting to get into Object-Oriented Programming (OOP), C++ was a natural progression. When I was learning it, it was common to find mistakes in the few books that were available. I used it commercially with the Zinc Application Framework in the early 90s.

8. 68000 Assembly

This was learned for some of the courses in my CIS degree, for programming the original Apple Macintosh. Never used it outside of academia.

9. Ada

Also part of my CIS studies, for a class on Object-Oriented Programming. Although popular in the military, I never used it again.

10. Lisp

Also part of my CIS studies, but I don’t remember the class. Likely something involving queuing theory. Haven’t used it since.

11. COBOL

Also part of my CIS studies, and a required class. I supposed it was revolutionary in the 60s & 70s, but in the late 80s it was cumbersome and tired.

12. SQL

Some would argue that this doesn’t qualify as a computer language. I can see both sides of that argument. But, it’s a language easily dismissed for its apparent simplicity, and it’s much deeper than that. Initially learned as part of my CIS studies, I’ve used it extensively over the years of my career.

13. Perl

Swiss Army Chainsaw is an apt description of this language. Much like JavaScript, it can be used for good, but so often is not.

14. Java

Another object-oriented language that I learned as part of an employer bootcamp, but never really used much beyond that.

15. Pig

While at AOL, I was on a team analyzing the performance of all of AOL’s websites. The data was housed in a large Hadoop cluster, and the query-language of choice was Pig, developed at Yahoo! (along with Hadoop).
In an odd twist of fate, I happened to be on the Yahoo! campus for a Pig meetup the day the core team that founded Horton Works quit their jobs at Yahoo! to do so.

16. R

As my career pivoted from software engineering to data analytics in the mid-2000s, the most influential move was learning R. A language built from the ground-up for statistics and data analysis. Then, the work from Hadley Wickham on ggplot and dplyr, and what eventually became the tidyverse, shepherded by RStudio (now Posit), created a data analysis ecosystem without rival.

17. JavaScript

I learned this out of necessity, and only the parts I needed. I was developing an animated visualization of people moving through a conference space when I was at TED, and was able to adapt some existing open-source JavaScript code.

Is localStorage The New Browser Cache?

One of the features of HTML 5 is called localStorage.

localStorage was originally intended to overcome many of the limitations of cookies for storing context information on a user’s computer. But, like everything else on the Web, folks are starting to use it in new and interesting ways.

In a recent article, Steve Souders discusses his discovery that Bing and Google mobile sites are using localStorage instead of object caching, to store JS, CSS, and even images.

One of the problems folks developing mobile Web sites have discovered is that mobile browser caches are very small, so objects get aged out of the cache quickly, diminishing caching benefits. The resulting additional object traffic can be especially painful on the typically higher latency, lower bandwidth mobile networks.

It seems that localStorage is becoming the ‘new caching’ in the mobile world. But will it also make an appearance on the desktop?

By default, each origin receives 5 MB of space on the user’s computer. It’s easy to see the attraction of having a dedicated 5 MB of storage, instead of dealing with a shared cache, and various browser cache management mechanisms.

Is this the panacea that it seems? Some folks are citing performance issues with some browsers due to the synchronization needed to access localStorage.

Nevertheless, it’s a very interesting alternative (or compliment?) to object caching. And time will tell if it has legs.

Velocity 2010 – The non-technical bits

Velocity, THE Web Performance and Operations Conference, was a runaway success again this year. It was sold out with 1,200 attendees – making it larger than the previous two years, combined.

As usual, the technical talks were outstanding. But I found some of the non-technical talks of particular interest.

So many of the challenges we face (performance-related, or otherwise) often have roots in cultural or organizational issues rather than technical issues. Several presentations explored this, and offered suggestions. These were my favorites:

Creating Cultural Change by John Rauser (Amazon), Video

– Excerpts from Choose your own adventure by Adam Jacob (OpsCode), Video 1, Video 2

Moving Fast by Bobby Johnson (Facebook), Video

You can watch them all in less than an hour. Go get some popcorn…

This Just In … Speed Still Matters

At last year’s Velocity Conference, many folks shared evidence of the impact of page speed on Web site usage.

Since then, others have provided even more evidence. Like Every Millisecond Counts and Making Facebook 2x Faster, from the engineers at Facebook. And Proof that speeding up websites improves online business, from the guys at Strangeloop Networks and Watching Websites.

More recently, the folks at Mozilla shared interesting results on the impact of page load speed and conversion rates in a series of posts (part I and part II).

Oh, and the groundbreaking news that Google will now include page speed as a factor in search ranking. 😉

Continue reading

How To Measure Web Site Performance

Stoyan Stefanov came up with the idea of a Performance Advent Calendar, and is posting an article each day on Web performance. I have the honor of contributing this guest post, repeated below.

-Eric

When trying to quantify the performance of a Web site, we most commonly mean the response time. The two most common methods of gathering response time data are from Field Metrics and Synthetic Measurement.

Continue reading

Even Faster Web Sites

If you’ve spent any time making Web sites faster, you’ve undoubtedly come across the work of Steve Souders. In addition to working at Google, speaking about Web performance across the world, and teaching a class at Stanford, he finds time to write books!

Steve’s first book, High Performance Web Sites, was one of the first of its kind to assemble and codify the best-practices for improving Web site front-end performance. His latest book, Even Faster Web Sites, picks up where the first left off, and dives even deeper into performance optimization techniques.

Continue reading