No Next Item No Next Conference Can't Favor Can't Forget Item List Conference Home Entrance    Help
View Responses


Grex Systems Item 68: Programming Histories.
Entered by cross on Fri Jan 26 04:15:20 UTC 2007:

What is your evolution as a programmer?  What languages did you learn, and
in what order (if you remember)?  What systems did you learn, and again, in
what order?

49 responses total.



#1 of 49 by keesan on Fri Jan 26 04:42:58 2007:

Fortran 4 in 1968, forgot it all.   Does anyone still use it?


#2 of 49 by cross on Fri Jan 26 04:56:40 2007:

People definitely still use FORTRAN, though FORTRAN IV is a pretty old
dialect.


#3 of 49 by cross on Fri Jan 26 04:59:49 2007:

Here's my response from M-Net: (Note that when I say, ``this item is nearly
20 years old...'' I'm referring to the item on M-Net.)

This item is now 20 years old.  I honestly can't remember the order I learned
languages in; I suppose it went something like this:

Logo (in grade school)
Basic (on the Macintosh, but not seriously, and I honestly don't remember any)
C++
C
FORTRAN 77
Pascal
Perl
sh/ksh/csh (all at roughly the same time)
awk
Tcl (and Tk and expect)
Macro-32 (Under VAX/VMS)
VMS DCL (Command procedures, baby! $DECK is your friend!)

Yes!  I really `learned' C++ before C!  No, I'm not kidding!  And yes!
I really learned FORTRAN before Pascal!  That was so I could convert bits
of a monopulse radar simulation originally written in FORTRAN IV into
C!

Then it gets fuzzy.  In no particular order:

Scheme and LISP 
Prolog
Python
Java
Ruby
SQL
SML
Ada-95
MC68k assembler
SPARC assembler
Smalltalk

All of these to lesser or greater extents.  Ruby and Python and Java well.
SML okay.  SQL well.  Prolog and Ada not so well.  At some point I picked up
a bit of C# and many ``little languages'' (would someone consider regular
expressions a ``language''?  How about troff and TeX?  Sed?).  Many of these
've forgotten; I surprised myself by successfully writing a Pascal program
the other night.  I surprised myself by successfully writing a FORTRAN
program a few months ago.  Maybe it's time to finally dust off the Alpha and
install VMS on it and get it into colo....


#4 of 49 by daemon9 on Fri Jan 26 05:13:26 2007:

FORTRAN 77
BASIC on the TI85 graphic Calculators
DCL
PLC
C++ (I then proceed to forget it all)
C
Perl


#5 of 49 by cross on Fri Jan 26 08:12:34 2007:

How did people learn Perl?  I think my first exposure was the Perl 4.036 man
page....


#6 of 49 by twenex on Fri Jan 26 10:33:08 2007:

DCL. Yuck.


#7 of 49 by nharmon on Fri Jan 26 13:24:12 2007:

BASIC on a Commodore VIC-20
C++
C
Rexx
PHP
SQL
Perl
VB

I also learned C++ before C, and the reason for this was my first
programming class was an Intro to Programming class at the college and
it used C++.

As for Perl, I learned by trying to figure out some of the perl code
that a previous employee had implemented. I'd have to say it was pretty
obscure and hard to follow.


#8 of 49 by cross on Fri Jan 26 16:45:20 2007:

Oh, Rexx!  I forgot about that.  I did some rexx programming under VM/CMS on
an IBM 3090.  Those were the days....


#9 of 49 by tod on Fri Jan 26 17:42:39 2007:

REXX was also popular with OS/2 and Amiga users.


#10 of 49 by cross on Fri Jan 26 18:20:27 2007:

OS/2 I knew about, the Amiga I did not....


#11 of 49 by maus on Fri Jan 26 19:01:05 2007:

Basic/BASICA/GWBasic (Just having fun in our PC clone, used in
highschool to write codes to approximate numerical integration to pass
Calculus, pissed off the instructor by using bad programming practices
and stupid variable names (I always used the name of the principle as an
accumulator, and the variable cheese as an iteration variable))
Bourne Shell (taught myself with tutorials, and more in Jr College)
Korn Shell (taught myself with tutorials, and more in Jr College)
AWK (learned in Jr college)
Matlab (first year EE)
C (second year EE)
JAVA (switched from EE to Information Systems)
Tcl + TK (self taught for a project at work, and needed a really easy
way to do a scripted language that offered a motif-like gui; project was
no-go after a couple of weeks because the director of ops and I got into
a pissing fight and he obviously outranks me)
Javascript (self taught, then needed to use it for web development
class) C# (web dev class)


#12 of 49 by albaugh on Fri Jan 26 19:33:53 2007:

If I think hard here is the order:

BASIC
FORTRAN
Algolw (U-M)
First assembler (U-M)
COBOL
HAPL  (U-M, "Hardware" APL, what a trip :-)
LISP (U-M)
Pascal
html / JavaScript
awk
perl

I know enough of C and Java/jsp to be dangerous, a copy/paster/tweaker.


#13 of 49 by keesan on Fri Jan 26 19:36:18 2007:

html is a programming language?


#14 of 49 by nharmon on Fri Jan 26 19:56:40 2007:

heh, I never used Rexx on anything but Windows NT.


#15 of 49 by albaugh on Fri Jan 26 20:19:57 2007:

"flat" html without JavaScript or css etc. is probably nothing more than
"formatting markup tags".  But these days, except for the most basic web
pages, there is at least *some* kind of JavaScript or "programming language
type stuff" included.


#16 of 49 by keesan on Fri Jan 26 20:26:52 2007:

What is PHP?  CGI?


#17 of 49 by cross on Fri Jan 26 20:36:45 2007:

(I almost typed, ``rexpond'' to fronttalk for this!)

REXX on the mainframe was something else.  What it was, I'm not sure; I
didn't particularly care for it.  But I was intrigued by some aspects of the
environment: in particular, it was a *really* powerful scripting system that
let you integrate disparate parts of the system.  For instance, you could
address the text editor (XEDIT) and use it to drive user interfaces that
were frontends to REXX scripts.  Similarly with other applications (like
mail).  I thought that was pretty cool; you still can't easily do that under
Unix (and probably, you never will be able to).  But the language itself was
sort of goofy, I thought.  And the mainframe was Not where I wanted to spend
all my time: too constricting.

At one point, though, it did inspire me enough that I wanted to see a
general purpose `text editor filesystem' for Plan 9 that could be scripted
from the shell, or used by a front-end like sam or acme.  The response was
that that was essentially what acme was, but the difference is that acme is
married to the user interface, whereas in the mainframe world, XEDIT was
not.  But that would make interacting with *files* a lot more convenient
than using `here' documents and shell expansion (as opposed to text streams,
which are still undeniably useful).

Here's a REXX story: When I was a sysadmin at an academic department at Penn
State, we used to charge for computer time, disk usage, and printing on our
centralized servers.  Yeah, clearly these were the Bad Old Days(TM).  Now
days?  Yeah, right.  It'd be cheaper over six months to buy a PC and install
Linux on it and do it yourself.  Anyway, four generations of sysadmins
before me, the department set up the account system: they would use the
standard Unix tools to do accounting; quot, sa, ac, pac, etc.  Then some
homegrown software written in Perl that would suck in all the data, merge it
together, and generate reports that we could send to research groups
informing them of how much they owed the systems group.  The guy who got
hired before my immediate predecessor, however, had a mainframe background
and access to the campus VM system (by then an ES/9000: the 3090 had been
retired).  He didn't want to mess with the Perl stuff, so instead he
reimplemented it in REXX on the mainframe.  He'd run scripts to dump the
accounting information into plain text files, which he would then FTP to the
mainframe where he'd login and run his REXX programs (they had a sort of
nice, mainframish menu interface and everything).  He'd do a run, print off
the reports on the nearest mainframe line printer, and put them in people's
mailboxes.  Weird, but it worked.

The next guy who came in didn't do accounting at all; he was in way over his
head, and quite confused.  He just couldn't figure out how to get it all to
work.  A real nice guy, but not a knowledable professional.

By the time I came in, accounting hadn't been run in three years.  I managed
to contact the author of the REXX stuff (he had since moved to a different
organization within the university, so was still around), and got a copy of
his code.  The Perl code was, by then, hopelessly out of date.  I didn't
have access to the mainframe, though, so I downloaded a REXX interpreter for
Unix and got it running on our Sun's.  I modified the CMS specific parts of
his programs to run under Unix, and managed to start accounting back up.
The first time we generated reports, we realized that computing was owed
somewhere around US$11,000 in back usage charges.  Needless to say, people
weren't too thrilled to get these bills in their mailboxes, and shortly
thereafter, we decided to stop charging for usage and instead making the
computing budget be part of the department's overhead costs.


#18 of 49 by rcurl on Fri Jan 26 20:37:19 2007:

Datatron (assembly language on punched tape)
Ferranti (ditto)
IBM 1401 (I think - don't recall the language)
Fortran 77
Basic/GWBasic
Excel 8^}


#19 of 49 by cross on Fri Jan 26 20:41:15 2007:

Regarding #16; I think we have a web item, and there is certainly a web
conference.  Those questions would really be more appropriate there.


#20 of 49 by albaugh on Fri Jan 26 23:20:28 2007:

I can't even remember what cgi stands for, and I'm too lazy to look it up.
cgi is not a programming language - it's the back-end (web server resident)
software whose job it is to "field" web page form submissions, process it,
and (usually) display a "result" web page.  cgi was / is always written in
perl.


#21 of 49 by cross on Fri Jan 26 23:24:53 2007:

(CGI stands for `Common Gateway Interface' and is a method for getting
interactive behavior out of web pages.  CGI programs can be written in
a variety of languages.  The web item, item #34, would be the place to
discuss it, however.)


#22 of 49 by naftee on Sat Jan 27 05:34:09 2007:

i started puttering around with HTML back in grade 9.  but that doesn't really
count.

i started with GW BASIC back on an old tandy computer.

somewhere in high school i started teaching myself Pascal, but quickly moved
on to C.  That's the language I learned all throughout grade 10.   Javascript
caught my attention back in Grade 9, because you could do cool stuff with web
pages.

the next language i learned was Java, because it was part of our university
programming class.  i couldn't understand why the engineers were doing stuff
in C, and we were stuck with UML and finally java.  i would help some of the
engineers on my rez floor with their C programs.  my one buddy was confused
as to why i taught myself C back in high school.  i guess he didn't know about
those guys who stay home on friday night programming instead of going out
drinking and hitting on babes.


#23 of 49 by twenex on Sat Jan 27 18:43:38 2007:

Re: #11. ARexx (the Amiga dialect of REXX) was really cool. Though I never
actualy used it myself, Commodore shipped it by default with the OS, and
extended it so that it became a complete general-purpose scripting language
with Amiga extensions. Pretty soon every Amiga program worth its salt had an
"ARexx port" that programmers could use to combine GUI programs in much the
same way Unix cli users write pipes, coming up with new and inventive ways
to use those programs.

The Amiga was somethign else.


#24 of 49 by cross on Sat Jan 27 20:20:40 2007:

So it seems.  I've heard a lot about the innovative user interface concepts
pioneered on the Amiga; I suppose the roughest analogue we have to something
like that now is AppleScript on the Mac.  Still, it sounds like the Amiga
might have had a cleaner conceptual model.  It also sounds like they took the
idea of Mainframe REXX and applied it to their environment.


#25 of 49 by mcnally on Sat Jan 27 21:03:30 2007:

 If Commodore ever shipped REXX with AmigaOS it must've been after I 
 gave up on the Amiga platform.


#26 of 49 by cross on Sat Jan 27 21:14:48 2007:

There's some interesting stuff on Wikipedia about the Amiga and ARexx.


#27 of 49 by gull on Sat Jan 27 21:51:12 2007:

- DOS batch (not really a language, I guess, but close)
- BASIC (using GWBASIC on a PC clone, also on Apples, Commodores, and
TRS-80s...whatever I could get my hands on)
- 6502 machine language (I didn't own an assembler for my VIC20, so I
wrote the program in assembly language and then hand-assembled it.)
- Pascal (using MS QuickPascal, my first exposure to a compiled language)
- Bourne shell
- C++ (programming class at MTU, required for my EE major)
- C ("Teach Yourself C Programming In 21 Days," which I used mainly as a
reference to the differences between C++ and C.)
- Perl (learned from the "camel book")
- PHP

I've tinkered a bit in TCL, altering other people's code, but I'm not
fluent enough in it to write an application myself.


#28 of 49 by gull on Sat Jan 27 21:52:33 2007:

Oh yeah, I should have included National Instruments LabView in there,
right after C++.  A fun "language," but one that requires a bit of a
mental shift...


#29 of 49 by twenex on Sun Jan 28 08:57:53 2007:

I feel a bit of a twit posting here amongst all these people who learnt to
program in their sleep on a mainframe, but I'm currently muddling through sh,
bash and python, hahah.


#30 of 49 by cross on Sun Jan 28 09:16:02 2007:

That's not a problem.  I think one of the interesting things is seeing how
the technologies one starts out with have changed.  For instance, I see a lot
of people (more on M-Net, but some here, as well) who learned COBOL as one
of their first langauges.  Oh dear!  How did you guys survive that horror?


#31 of 49 by ball on Sun Jan 28 20:05:15 2007:

I forget my precise chronology, but I know that I was coding
BASIC in primary school and right up through secondary
school.  I did some Z80 machine code (pencil and paper
assembly) early in high school, starting out on my sister's
Sinclair ZX Spectrum 48K+.  The first machine I ever owned
was a ZX-81 (Timex 1000 for the yanks) with 1K RAM, b&w text
-only display and no sound.  I was programming long before I
owned my own machine though.  I've tried quite a few
programming languages since leaving primary school, but the
one I like best has to be Pascal for its consistency and
readability.

Operating systems: Acorn DFS, ADFS & NFS, CP/M-80, CP/M-86
Concurrent CP/M-86 (four users running up to four apps each
with pre-emptive multitasking and optionally windowing and
graphics on an 80186.  No wonder MS Windows didn't impress
me!) PC-DOS, MS-DOS, various unices, VAX/VMS, Oberon etc.


#32 of 49 by kingjon on Sun Jan 28 22:57:06 2007:

GWBasic, in elementary school, on someone else's computer which
        hooked up to a TV.
Microsoft QBasic, in elementary school
Around the same time, Microsoft DOS batch file scripting
Microsoft Visual Basic (6), in middle school
Minor Bash scripting, in early high school IIRC
C and C++, in high school
Fits and starts of assembly (under Linux), this past year
Java, last semester
Javascript, this Interim (i.e. January)

I don't know where in this chronology I learned HTML, but since I consider it
to be strictly speaking not a programming language (and client-side scripting a
perversion of hypertext) I won't guess.



#33 of 49 by remmers on Mon Jan 29 16:16:32 2007:

My programming language chronology:

Burroughs 205 (aka "Datatron") machine language, circa 1960.  Yes, you 
read that right - machine language.  This was my first exposure to 
programming, as part of a summer job as machine operator for this vaccum 
tube monster.  I think there were was an experimental assembler and HLL 
compiler, both developed in-house (the latter by Alan Perlis), but not 
many people used them.

Fortran II (1962).  I took a summer short course because I was 
interested, but didn't actually use Fortran until years later.

Basic, late 1960s and early 1970s.  This was the original Dartmouth 
Basic with the absurd restrictions on variable names.

Fortran IV, early 1970s.  I learned it because the math department I was 
teaching in was starting to get into computer science as well, and I was 
assigned to teach the beginning programming course.  The hardware was an 
IBM 1130, input was via punched cards.

Via teaching I became seriously interested in computer science, taught 
more courses and learned more languages.  Also, my school had acquired a 
DEC-10 timesharing system with easy access via terminals and a decent 
collections of languages for the time.  So in the 1970s I learned:

TOPS-10 assembly language - taught it, and also the Ford Motor Company 
paid me pretty good money for writing software in it.

Algol-60 - my introduction to "structured programming".

Snobol - a cool string-processing language, popular with linguists

Lisp

Pascal - which my department adopted as its primary teaching language, 
so I spent a *lot* of time in the Pascal environment.

Simula-67 - the first OOP language, and a real eye-opener for me, 
especially after reading Dahl and Hoare's paper "Hierarchical Program 
Structures", which lays out the object-oriented paradigm very clearly 
and succinctly.  This was a great language with an excellent TOPS-10 
implementation.  It's ideas survived even if the language itself didn't.

Exposure and access to Unix in the early 1980s led to:

C
Awk
Sh

And then in the 1990s:

C++
Java
Perl

I've done a fair amount of CGI (Common Gateway Interface) programming in 
Perl, C, and Unix shell, and some PHP programming as well, but beyond 
that haven't done much with the languages like Ruby, Python, and 
JavaScript that people use for web-centric programming nowadays.  I view 
this as a deficiency that I need to remedy.


#34 of 49 by cross on Tue Jan 30 04:46:03 2007:

Interesting, though I would say that languages like Ruby and Python are
appicable to far more than web-centric programming, and indeed, often are.


#35 of 49 by remmers on Tue Jan 30 13:19:03 2007:

I'm sure that's true, but my motivation for learning them at this point 
would be to program for the web.


#36 of 49 by cross on Tue Jan 30 15:42:09 2007:

Fair enough.


#37 of 49 by albaugh on Wed Jan 31 20:39:37 2007:

Yeah, I somehow forgot about all the really arcane & complex MS-DOS batch file
"sripting" I used to [have to] do.

I can't remember now if for the number theory course I took at U-M,
if I used Fortran or Pascal...

Fortran - "what for"?  ;-)

I see that no one has admitted to knowing/using RPG yet...  ;-)


#38 of 49 by mcnally on Thu Feb 1 01:55:24 2007:

re #37:  I believe that would be WATFOR, not "what for..  :-\


#39 of 49 by maus on Thu Feb 1 17:27:36 2007:

I had an instructor in Jr College who was actively encouraging me to
learn AS/400 and RPG, swearing it was more relevant and useful than
UNIX+C+Java. I politely nodded. I should take her for a tour of the
multiphase datacenter that has over 10k UNIX/Linux/BSD servers and only
1 AS/400 (and we do not ever touch the AS/400 -- we simply provide power
and 10 Mbits to the outside world).


Last 10 Responses and Response Form.
No Next Item No Next Conference Can't Favor Can't Forget Item List Conference Home Entrance    Help

- Backtalk version 1.3.30 - Copyright 1996-2006, Jan Wolter and Steve Weiss