|
|
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.
Fortran 4 in 1968, forgot it all. Does anyone still use it?
People definitely still use FORTRAN, though FORTRAN IV is a pretty old dialect.
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....
FORTRAN 77 BASIC on the TI85 graphic Calculators DCL PLC C++ (I then proceed to forget it all) C Perl
How did people learn Perl? I think my first exposure was the Perl 4.036 man page....
DCL. Yuck.
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.
Oh, Rexx! I forgot about that. I did some rexx programming under VM/CMS on an IBM 3090. Those were the days....
REXX was also popular with OS/2 and Amiga users.
OS/2 I knew about, the Amiga I did not....
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)
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.
html is a programming language?
heh, I never used Rexx on anything but Windows NT.
"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.
What is PHP? CGI?
(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.
Datatron (assembly language on punched tape) Ferranti (ditto) IBM 1401 (I think - don't recall the language) Fortran 77 Basic/GWBasic Excel 8^}
Regarding #16; I think we have a web item, and there is certainly a web conference. Those questions would really be more appropriate there.
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.
(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.)
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.
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.
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.
If Commodore ever shipped REXX with AmigaOS it must've been after I gave up on the Amiga platform.
There's some interesting stuff on Wikipedia about the Amiga and ARexx.
- 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.
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...
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.
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?
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.
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.
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.
Interesting, though I would say that languages like Ruby and Python are appicable to far more than web-centric programming, and indeed, often are.
I'm sure that's true, but my motivation for learning them at this point would be to program for the web.
Fair enough.
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... ;-)
re #37: I believe that would be WATFOR, not "what for.. :-\
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).
|
|
- Backtalk version 1.3.30 - Copyright 1996-2006, Jan Wolter and Steve Weiss