My computer geek colleagues are boasting about their humble beginnings by sharing lists of their first seven programming languages. You can find these under the hashtag #FirstSevenLanguages.
COBOL
PL/1
SAS
IFPS
APL
370 Assembler
C
SQL
Lisp#FirstSevenLanguages— Paul Kent (@hornpolish) August 16, 2016
From what I've seen of these lists, the programming languages that appear are very much a function of age -- not the age of the language, but of the person sharing the list. It's also a function of industry. For people of a certain age who first worked at a bank, COBOL appears early on the list. Did you work in the defense industry? Ada is probably on your list.
Of course, the SAS programming language features prominently among my colleagues. I have argued that listing SAS is a bit of a cheat, since SAS actually comprises several different programming languages: DATA step, SQL, DS2, SAS macro, IML, GTL, SCL, and more. SAS also contains hooks into other languages like Lua and Groovy. Some SAS analytical procedures are programming languages in their own right, like PROC OPTMODEL.
I have several friends who have built their entire careers on SAS programming. There is little risk of boredom, as the SAS language evolves with each release and is used in virtually every industry. It's like a huge mansion of a programming language -- we all have our favorite rooms where we spend most of our time, but there are always new additions to discover and explore.
I've said that I don't identify myself as a programmer, even though programming is an activity that occupies lots of my time. Here's my #FirstSevenLanguages list. It's not exactly in chronological order, and like other folks I'm cheating by grouping some languages together into eras.
- Extended basic on the TI99/4A (high school, in my parent's basement)
- Turbo Pascal and Turbo C and Assembly (school and internships)
- REXX and Perl (two different jobs, but used both to automate tedious tasks)
- C++ (our first versions of SAS Enterprise Guide)
- Java (various projects)
- C# and .NET (SAS Enterprise Guide since the mid 2000s)
- SAS - (first learned in a SAS education class in 1993, and still learning it)
Unlike some of my more distinguished colleagues, there are no "punch cards" languages on my list. Nostalgia is sometimes fun, but I don't believe anyone who says that the era of punch cards, 16K RAM, and 8-inch floppy disks was "the good old days." Instead, I prefer to look forward to my #NextSevenLanguages. In my current role with SAS Support Communities, I get to dabble in JavaScript, FreeMarker, and Python. But I use SAS every day and for so many tasks, it remains high on my list of languages to learn!
26 Comments
Chris,
Oh this is a really fun blog post!
My first seven programming languages were:
Algol
Fortran
PL/1
COBOL
JCL
Business Basic
SAS
In addition to the above, I speak very tortured high school French:-)
----MMMMIIIIKKKKEEEE
From Business Basic to SAS -- what a leap! And we're happy with where you landed!
Here are mine:
Algol 60
Pascal (on punch cards and Turbo Pascal)
SPSS
SAS
VBA (HTA, WSH)
XSLT
Java (still a junior)
Oh, and somewhere intermixed was Stata, VMS/DCL, Kixtart and PHP.
My first seven languages
Fortran II and IV
Programma 101 assembler
PL/1
RPN (Reverse Polish Notation for HP45)
ML/1
Algol W and 68
LISP
DEC/VAX Assembler
and later
APL
SAS
I'd consider you a programmer Chris and a very creative one too! (Friday Breakfast Goodie post!!!)
My #FirstSevenLanguages
Logo (loved programming the Turtle when I was eight)
Pascal (in high school)
Cobol
C and C++
VBA and web technologies/scripting
Java
SAS
Not sure exactly about #NextSevenLanguages ... I'd like to learn foreign languages to talk to friends in their native language.
Fortran
General Purpose Simulation System (GPSS)
Pascal
PDP 11/45 Assember & machine language
Basic HP 2000 & later Commodore 64
COBOL
JCL
IBM 370 Assembler
TSO Clist & Rexx
Sadly the first 7 only covers college undergrad and a concurrent part time jobs from 1974-1978. So much more during grad school and real life work, both obscure and common.
This is fun! Mine are:
* Pascal
* PL/C
* SQL (dBase II/III)
* C
* Perl
* Korn Shell (really, most of the Unix Shell languages)
* Smalltalk
I think Perl is still my favorite! (And I didn't include SAS, since it's a world of its own.)
Thanks Randy! I was beneficiary of your ksh skills back in my early days at SAS in Pubs. Remember when departments each had their own IT staff, and we all had Unix terminals on our desks?
Basic (on an Enterprise 128, then C64, then IBM PC)
C
Matlab
Python
SAS
And that is it. I skipped the Pascal craze, jumped straight into C.
I would have dabbled in other languages, but the first ones I did any serious projects with are:
Fortran
Pascal
PL/1
SAS
360/370 Assembler
C
SQL
#FirstSevenLanguages
Now I mostly work in Java which isn't even in the first 7.
Basic
Fortran
Assembler
PL/1
JCL
COBOL
SAS
A trip down memory lane! I agree, the odds on which languages are here mostly are based on age, though other variables also probably play a part.
Basic (Commodore 64 built in version), 10th grade (1982)
Logo (summer course) (1983)
Pascal (High school class) 12th grade (1984)
6502 assembler (self taught on the same Commodore 64) (1984)
C (summer course before starting college) (1985)
Scheme (college SICP class) sophomore year (1986)
Now it gets tricky... I think the next language was the RISC assembler class, but was it different enough from the previous assembler to count? Same thing with C*Linda, was it sufficiently different from C to count, or just a new addition/version? The next definitely new language I learned was Prolog, first year of graduate school (1990).
So many languages and still learning/using new ones, but here are my first 7:
Basic (on trash80's and cassette tapes - came right after punch cards)
Fortran
Pascal
C
SAS
ksh (korn shell)
Java
I see your first 7 programming languages and raise you your first web based languages/scripting:
HTML
htmlsql
jsp (JavaServer Pages)
php (originally Personal Home Page, but now Hypertext Preprocessor)
asp (Active Server Pages)
and of course still learning new ones as needed/required
I'm sure I'm showing my age, but my first ones were:
Fortran
IBM 360 Assembler
Cobol
Lisp
APL
SNOBOL4
Simscript II
My first seven languages were:
TI-BASIC
Java
C++
MATLAB
HTML/CSS
python
C
My next seven languages might be:
SPSS and/or STATA
Lisp (I've played around a little with Scheme)
Lua
COBOL, perhaps
Forth?
Julia?
Go
...though who knows what new languages will pop up in the future?
BASIC
PL1
FORTRAN
COBOL
Assembly
VAX/VMS
C
Wires (on IBM EAM equipment that used plugboards)
Assembly
Jovial
Basic
Visual Basic
JavaScript
C
Had to dredge the memory banks for this one!
6502 Machine Code (via hex keypad!)
Forth
Z80 Assembler (porting 6502 Forth as a school project)
BBC Basic
Turbo Pascal
C
SAS
Pascal
PL/1
370 Assembly Language
Fortran
Basic
WYLBUR scripting language
REXX scripting language
no particular order
Hmm. Memory problems here.
FORTRAN IV
DARE-P
Commodore BASIC
SPSS
Pascal
Minitab
Genstat
Lots of others including SAS came much later.
DARE-P? Had to look that one up. "Any variable starting with I, J, K, L, M, or N are automatically assumed to be of type INTEGER." Pretty much the opposite of those dynamic typed languages that the kids are using these days.
It does dig into the (fading) memory banks....
FORTRAN
Autocoder
Easycoder (2 flavors of assembly language for mini-computers)
PL/1
COBOL
SAS 76, and every version since then.
BASS (Does anyone else remember that freeware version of SAS based on SAS 72?)
Z80 Assembly
I managed to just dabble in BASIC and Logo.
Wow, the BASS system is a throwback. Before my time at SAS...
"Easycoder" is a bit of an oxymoron, I'd guess.
Hmm, fun! I'm a bit boring ...
Basic/QBasic (mostly modifying the gorilla game to make it more interesting!)
Pascal
c/c++ (I went from c to c++ very quickly so I list them together)
HTML
SQL
Excel VBA
SAS
Sorry to be late to the party, as usual!
I just manage to slip SAS in there...
Fortran
APL
COBOL
DEC 10 Assembler
S/370 Assembler
PL/I
SAS
#FirstSevenLanguages
And what's this about SAS macros? No such thing when I started with SAS. We all thought they were quite something when they appeared!
BASIC
COBOL
Culprit
1022
Pascal
Focus
SAS