First Language Learned

What was the first programming language you learned? How do you believe that this has affected you? (Brain Damage)

Add your anecdote and update the tally, please. REMEMBER: THIS ONLY A SURVEY! Be honest. Don't hedge by saying,

"My first Real Programming Language was..." If you typed it in, keyed it in, punched it in, toggled it in, you programmed in it.

Tally so far:

Algol60 :2 APL [AplLanguage]: 3 Assembly [AssemblyLanguage]: 4 BASIC [BasicLanguage]: 90 Binary (well, coding in Hex): 1 Calculator: 2 C [CeeLanguage]: 3 C++ [CeePlusPlus]: 3 COBOL: 1 FORTRAN [FortranLanguage]: 11 HyperTalk: 1 Hypo: 1 IITRAN [IitranLanguage]: 1 Java [JavaLanguage]: 2 JavaScript: 3 LISP [LispLanguage]: 4 Logo [LogoLanguage]: 9 Pascal [PascalLanguage]: 4 Perl [PerlLanguage]: 1 PHP [PHP: Hypertext Preprocessor]: 1 PILOT [PilotLanguage]: 1 Python [PythonLanguage]: 3 (I imagine there will be more...) Roo: 1 SinclairZxEightyOne Basic: 1 SmallTalk: 1 Snobol: 1 SOAP: 1 Turtle [TurtleLanguage]: 2


[1] calculator > 8080 assembly (in hex) > Pilot > BASIC > FORTRAN > PDP-11 Assembly > DG Nova Assembly > Algol > Pascal > Apple ][ Basic > 6502 Assembly > 80x86 Assembly > C > AWK > HyperCard > C++ > 6811 Assembly > PIC xx Assembly > PICK BASIC > SQL > VB > Javascript > Perl > TCL > Python > Ruby > XSLT > sh > PHP [1] calculator > BASIC > AnalogComputer > FORTRAN > Algol > z80 assembly > Forth > CPL > TurboPascal > VMS DCL > C > sh > awk > perl > html > lex > ... [1] BASIC > DHTML (HTML/CSS/JavaScript) > PHP > C++ [1] BASIC > HTML & CSS > PHP > Javascript > C > Python [1] BASIC > (HTML/JavaScript) > Java > C [1] BASIC > VB > HTML & CSS > Javascript > sh > PHP [1] BASIC > HTML > VB > sh > Perl > PHP > Java [1] BASIC > Pascal > Perl > Java [1] BASIC > Pascal > C > C++ > Java > ... (various 'scripting' languages) [1] BASIC > JavaScript > CSharp > Smalltalk > Scheme [2] BASIC > Assembly > C > ... [1] BASIC > Assembly > Logo > Pascal > Lisp > C > C++ > Java > Perl [1] BASIC > Assembly > (Pascal & C concurrently) > C++ > Forth > REXX > Smalltalk > Oberon-2 > J > Haskell > (Lisp-family & Java concurrently) > (more that I've since forgotten about) > Java [1] BASIC > C/C++ > sh > Assembly > Java > C# > VB .NET [1] BASIC > C > ... > Lisp > ... [1] BASIC > C > Logo > Lisp > ... > Java > ... [1] BASIC > C > FORTRAN > Perl > Python > Smalltalk > Java [1] BASIC > FORTRAN > Assembly > AM2901 microcode > PL/I > COBOL > RPG > C > *nix shell > C++ > Tcl/Tk > VHDL > Perl [1] BASIC > Pascal > C > Assembly > C++ > Java > Python [1] BASIC > Pascal > C > Assembly > Objective-C/C++/Smalltalk > Visual Basic > Perl/C > JavaScript > Java [1] BASIC > Pascal/Assembly > C/ARexx > Fortran77 > Perl/Awk/Bash > PHP > C++/Java > Haskell > Objective-C > Smalltalk [3] BASIC > Assembly > Pascal/Modula II > C > ... [1] BASIC > Assembly > ... > C++ > Java > Tcl > Python > Haskell [1] BASIC > VbClassic > VB .NET [ ] BASIC > Java > C > C++ > Assembly [ ] BASIC > HyperCard/SuperCard (1994) > HTML/PerlLanguage/CommonGatewayInterface (1995) > JavaScript/PHP (1996) > RealBasic/AppleScript (1998) > C/C++ > JavaLanguage > PythonLanguage (2003) > BooLanguage/CsharpLanguage (2004) (I'm finally back to something that is as good as HyperCard) [1] BASIC > HyperCard > Pascal (for HyperCard external functions) > C++ (since Apple moved away from Pascal) > ... > Python [1] BASIC > LOGO > C > Perl > C++ > Scheme [1] C++ > C > Shell Scripting > PHP > Java > Ruby > Perl [1] C++ > PHP > Shell Scripting > C > Objective-C > Lua > AVR Assembly > JavaScript > CoffeeScript > Java > Ruby > [Python] [ ] Pascal > [1] Snobol and Pascal > LISP, C and Algol68 > COBOL > FORTRAN > ... > IoLanguage [ ] Logo > BASIC > Assembly > Pascal > Ada > LPC > Inform > VBA > Python [1] Logo > BASIC > C, Excel, VbClassic > Java, C++ > ... [1] Fortran > Algol > BASIC > Pascal > C > ... [1] Fortran > BASIC > C > Lisp > ... [1] Fortran > IBM 1620 Asm > Lisp > Symbal > AED > COBOL ... [1] Java > Lisp > Python > C > Everything else [1] LOGO > BASIC > Perl > Bits of PHP/ASP/other crud > Python > XSLT... although everything after Perl feels like backsliding. [1] LOGO > BASIC > Pascal > C > C++ > Java > Perl > PHP [1] LOGO > BASIC > Pascal > C > C++ > Java > Perl > PHP > Ruby [1] JavaScript > Pascal > C > Java > Bash [ ] Java > Python > C/C++ > Assembly [1] MS Batch > JavaScript (though more as "Dynamic Web pages woo!"; I was 7) > Python > sh/bash/zsh > CommonLisp > Java > Prolog > Scheme >... (hopefully Haskell or Ruby next) [1] BASIC > C > AppleScript > JavaScript > PerlLanguage > PhpLanguage > RealBasic > ObjectiveCee > PythonLanguage > EmacsLisp [ ] TI83 language > C++ > CommonLisp > Javascript > LabView > R (in the middle of learning R) [ ] (Q)BASIC > VbClassic > C > InformLanguage > Perl > PHP > JavaScript > Python > Java > Ruby > (Scala and Scheme) [1] Algol60 (some Fortran and Lisp) > [CORAL-66, Z80-assembler] > Pascal > [C, 68000-assembler] > C++ > [Perl, Python, Scheme]


My first was BASIC, nothing unusual. I'd say that mainly it's affected me in all the ways predicted in Basic Considered Harmful. -- Daniel Knapp


BASIC on the Apple II, which predisposed me in a lot of ways:

(1) I have no patience for compilers (which is why I love the Smalltalk Language and Visual Age for Java)

(2) Reflection is no problem to me. (Heck, you had to use Poke And Peek to do anything on those boxes! I was shocked to learn that people wrote code that was not self-modifying.)


I always find discussions like [those on Why We Hate Lisp] interesting because I was one of the abnormal few whose first language was Lisp. I actually find it quite hard to deal with C for solving most problems, even so-called trivial ones, although I'll use C where I find it fits best (inside Unix, and when writing a small tool with a focused purpose, or when writing a small library with a focused purpose, and only for a certain domain of problems that I can Win Big by using C and leveraging Unix). I hate C for general systems stuff. Who else comes from "non-standard" programming backgrounds (a friend of mine recently confided to me that his first language was APL, and he's definitely warped like myself, only different)? -- Dan Moniz

Strictly speaking, my first language was BASIC, which I tinkered with on a Tandy 1000TX when I was around 12. I didn't manage to get infected by the programming bug, so I never got farther than tinkering around with tiny programs. My first real programming experience was taking CS 61A, the introductory programming course at Cal Berkeley, which covers the first four chapters of Structure And Interpretation Of Computer Programs. So unlike many other students, who had been corrupted by Pascal or C++ in high school AP computer science, I had to the opportunity to be blinded by the light of Lisp. Common Lisp is still my Language Of Choice, although I do most of my day-to-day programming in Java. -- Joseph Dale


Dartmouth Basic on a PDP/11, then BASIC on CP/M, then Apple Soft Basic (the last Microsoft product I really liked), some 6502 machine code (couldn't afford an assembler, so I had to type things like "60 ED FD"), a little Logo (which we all hated, because you had to declare your variables before using them!), then (believe it or not) Forth, in the form of Paul Lutus's Gra Forth.

Gra Forth was a beautiful language: easy to understand (once you got the hang of Reverse Polish Notation), easy to write structured code in, and yet very close to the machine: words would get compiled down, as I recall, and the code would be put on the stack; the word itself would simply be a JSR to the entry point for the compiled code.

Less than a year later, the academics got hold of me, and I learned to love Pascal (which I used commercially as late as 1995). Halfway through college, I learned C from K&R's book and a helpful 16-year-old named Explorer Bob (he'd programmed TinyMUD).

But the languages that really shaped me in the beginning were BASIC and Forth. -- George Paci


My first language was BASIC on a Commodore Pet (at the tender age of 5 or so). While not much older, I also learnt LOGO. The first language I actually sat down and studied, though, was Pascal (the Mac Pascal editor was my first exposure to a syntax-aware editor, and still one of the better ones I've seen). -- Robert Watkins.


My first language was IITRAN, a simple PL/I-like language for students. See "The IITRAN Programming Language", R. Dewar et al, CACM 12(10):569-575 (Oct 1969). My second was FORTRAN, a step down. My third was Snobol4, an awesome three steps up. I learned all of these on my own in one year (1967) without the trauma of late nights and slow turn-around experienced by those taking computer classes. -- Ward Cunningham


Hmm. Basic Language first, originally on the Commodore Pet, later on the Commodore Vic Twenty and Commodore Sixty Four. Then Logo Language, also on the 64. My first language in school was BASIC again, this time on a Trash Eighty. Somewhere around this time, I was learning 6502 Assembly Language. Pascal Language (Turbo Pascal), 68K assembly, and C in college. Later Sas Language (during my dark days at Big Blue), and now a mix of C and C++. (Not in the same programs, of course. ;-) One of these days I'll take up Java. -- Mike Smith


Quite possibly. I learnt Sinclair Zx Eighty One Basic Language, Bbc Basic, Logo Language, Amstrad Cpc Basic Language, Z80 Assembly Language (hand-assembled on paper) and 6502 Assembly Language all while at Junior School, then Turbo Pascal and 8086 Assembly Language st Secondary School (with a first attempt at learning Cee Language and Cee Plus Plus), and then Cee Language and Cee Plus Plus (properly) at university. I have since learnt other languages, including Java Language, Visual Basic and Lisp Language. All my programming skills are self-taught from books and websites, although I often made use of the computers and compilers at school/university. I think that early exposure to Assembly Language is really quite useful, since it shows you how computers really work. -- Anthony Williams

[Sinclair Zx Eighty One Basic Language was also the first language in which I did any heavy-duty programming (such as it was), though I had formerly played with TRS-80 BASIC. Then I learned hand-assembled Z-80 machine code, and did a bit of hybrid stuff (BASIC & machine code together). I did a little Z-80 assembly, too, as well as a ZX-81 hardware interface project, before getting a Commodore Vic Twenty, and then a Commodore Sixty Four. So I used CBM BASIC and 6502 assembly. I had to learn Pascal Language for Comp-Sci in High School. Going from free-form BASIC to structured Pascal was refreshing and freeing, as I could finally do some of the things I always wanted but never had the means to. At my first full-time software job, between stretching Lotus 1-2-3 macros and dBASE III scripts to their limits, I learned Cee Language - on the first Unix box I ever had access to - as well as a little shell programming. Unfortunately, I didn't get much of a chance to use it, but by that time, it was Just Another Programming Language. I went to school to learn EE -- they forced me to learn Fortran Language - and on my first co-op migrated to Embedded Systems work using C and 6800 assembly. Somewhere in there I picked up a little Forth Language and Post Script, though I never did any serious hacking with either. Learning Object Oriented principles was as freeing as learning Structured Programming. And so I learned Cee Plus Plus, Perl Language, Java Language, and so forth. -- Tim King]



My first was 8080 assembler, followed by Pascal, BASIC, FORTH and C. This was 1977-1981. In school I took FORTRAN and punched my assignments because for some reason there was never a line at the card reader :-) -- David Brantley


BASIC - on a teletype. It corrupted my mind. And to think I could have learned PL/I first; it could have saved me. ;-> -- Jeff Grigg


When I was a teenager, I saw guys programming in BASIC, but they didn't get any chicks. I waited until I was 20 and started programming in C. I was able to marry in seven years.


I was 9 years old when I first learned programming with Apple ][ BASIC. After a year, I learned 6502 Machine and Assembly language. And then I moved to C and Turbo Pascal, where I had a great difficulty changing my programming style into Structured Programming. As I became freshman in university, I studied OOP such as C++ and Java, where I had difficulty as well, moving into another paradigm. Anyway, despite of BASIC being my first language, I wasn't, hopefully, mentally mutilated beyond hope of regeneration(as Ew Dijkstra said in Quotes On Program Development) after all.

Thinking about the best language to learn first, IMHO, it would be nice if the language and the environment has some sort of interaction as in Interactive Interpreted languages - such as Python Language, Ruby Language, Smalltalk Language, and so on. Lexically and syntactically neat and clean with consistency is very important in order to form a good mind frame and good habit, I suppose. In this vein, I don't think hybrid programming language is a good choice if he/she were to learn more languages in the future.


My first language was Atari BASIC. It had a lot of nice features like automatic syntax-checking and built-in graphics commands. If one were so inclined, one could write an entire graphical program without one POKE, though it wouldn't have any sprites. I seemed to take to structured programming a little better, probably because I was weaned off the GOTO/GOSUB/FOR-NEXT tar pit by Turbo BASIC, which had all the control structures one needed: WHILE/WEND, REPEAT/UNTIL, and even multi-line IF/THEN/ELSE, and named procedures. It had some advanced commands to provide other ways to alter memory than singular POKEs and PEEKs, often eliminating the need for in-line machine language routines that did the same thing in more inefficient and obfuscated ways. It was also three times faster than Atari BASIC, and almost completely backwards-compatible. There was even a compiler to make programs even faster. It gave me a greater appreciation for C when I finally learned it. -- Nick Bensema


I started with Spectrum Basic when I was about 7 or 8 but I was saved by C64 Basic. It was such a horrible and crude language that learning 6502 Assembler was the only sane course of action. Imagine a language with line numbers which forced you to use goto because you didn't have subroutines or functions. Then make it really, really slow. Then provide no abstraction of the underlying hardware so that doing anything with sound or graphics involved setting bits in registers on chips. You haven't lived till you've written Basic programs with a memory map by your side. After that kind of beginning everything else looks good by comparison. -- Adewale Oshineye

Obligatory link to Commodore Basic provided here. It did have subroutines and functions, but in some ways it's worse than described above. -- Nick Bensema

This is going to sound like a Monty Python sketch but when I first learned to program we used to envy people who had 128k of ram and floppy disk drives.


Started with 8080 & Z80 assembly. This was a "near miss" - I almost started with BASIC. One of my most enlightening moments was the day I examined the assembler and C output in Code View together and realized, "oh, is that all they're doing!" Truly liberating: I realized there is no magic in the abstractions of higher level languages - it all comes down to assembly. The shrouds of mystery became gossamer.

Assembly gave me the grounding in "Good Tight Code" and what's really going on in the box; Forth Language opened the vistas of abstraction and iterative incremental coding with factoring and discrete component modelling, and C introduced me to structure and modularity. I was able to combine the lessons of Forth and C in creating 10 very successful years of Fox Pro development. Depending on the task of the moment, I can use any of these languages as Pseudo Code.

If a programmer really wants a solid foundation, there is no substitute for assembly. In terms of simple productivity, I've never matched Fox Pro. If I had it to do over, I'd have spent more time with Forth. -- Garry Hamilton


I 'borrowed' Oh Pascal from a college roommate. -- Sean Oleary


Good ol' GFA-Basic on the Good ol' Atari 1040ST. Fast, compilable, structured, excellent support for all things low level (no peek or poke for me :), and a surprisingly well translated manual (from German)... come to think of it, I rather miss that language. -- William Underwood


I think I can up the strangeness ante somewhat. I was tempted to write qbasic, as that is what I first truly programmed in. But it wouldn't do the fact justice, that I told my teacher I knew how to program BASIC, without ever touching qbasic before in my life, and proved so by finishing all her tests successfully in the first session. The truth is that several years earlier, before I ever thought of programming a friend of my father's, who was an engineer introduced me to visual basic 1.0. I did my first VB without a single line of code. It was a slide show of images simply advancing on the press of a "next" button. I never grokked programming at the time and didn't do anything else either. But it let me jump right into qbasic, pretending I was master programmer extraordinaire. Then soon the switch of Pascal (not without writing a qbasic game that the whole school played in breaks for top scores). And I'm still at it (Delphi now). The truth is, I did object-oriented programming from the beginning; it seemed natural, even though my teacher had no clue about it. OK, my programs were 70% assembly, but that was graphics stuff. Today I write in my own languages, the compilers and interpreters still written in basically Pascal. I can't see what's wrong with it ;)


I was first exposed to APL on punchcards but can't claim any real proficiency at it. Commodore BASIC followed along with 6502 (actually 6510) and 68000 Assembly Language. Then a long time passed. When I came back at it I became passable with javascript and learned enough Perl to realize that Perl sucks. :) Peter Hansen introduced me to Python which is my Language Of Choice now. -- Andy Pierce


FORTRAN on Hollerith Punch Cards. In high school, we had a card punch machine in the corner of the class room and our teacher would carry our decks of cards to the university to run twice a week. A couple of days after submitting our jobs, we would get pages of white and green striped computer paper back reporting either success or cryptic error codes that referred to equally cryptic 4 or 5 word explanations. Still, it was pretty cool when a job finally ran. -- Wayne Mack

A punch machine? You were lucky, we had to use a heavy pencil on mark-sense cards. But at least we got ours back the next day from the other high school that actually had the computer. We got one "field trip" there during the term where we got to use their punch machine and uninterrupted access to see what it was like to get your program run in what seemed like real time! -- Mark Tilley


In high school (1976) I wrote a short program in APL. My first programming course in college (1977) used a combination of LISP and PL/1; the next year I took a structured programming course taught using Algol. When I bought my first PC, I used Pascal (1985). Maybe this weird start is the reason I have always been more interested in the programming process, rather than the language. -- Stan Silver


Basic on a PDP 11/34 at my high school. I suspect it was harmful in the traditional manner. But I do not code for food nowadays. Ken Megill


Basic on a friend's Atari 800XL. I was further subjected in school and it took me a good 5 years before I could get out of that state via perl and then through to Ada95, C, Scheme and greener pastures. Not being a programmer and finding myself to be a natural SysVNazi, I became a system administrator.


My first language was GW-BASIC on an 8088 PC. For reference, I was born in 1976. -- Brent Newhall


I first wrote code when I was 6 in Basic, but I mostly just copied the text out of magazines. I didn't really know what they meant, though I could fix typos.

The first actual language I understood was Hyper Card, and that was when I was ~12. -- anon Did You Post This

This one mirrors my experience pretty well actually. Except I had classroom instruction in Commodore Basic - and later Turing and even a bit of C. While I did some pretty amazing things with Hyper Card and Hyper Talk (with some help from Res Edit), I didn't really learn what I think of as "real programming" until university. -- Karl Knechtel


Atari Pilot (with turtle graphics). It's one of the few languages I used that I can't remember one whit of. -- Randy Brown

10 T: Hello, world!


American English, but from the context of the page I see that it should really be named First Programming Language Learned. That was Microsoft's Extended Color Basic on the TRS-80 Color Computer. Mmmm, upper case. -- Eric Hodges


The first programming language I learned was Auto Lisp. Never learned BASIC; too young I suppose. -- Kyle Wakefield


My first one (when I was about 12) was a kind of 4 bit mnemonic assembly language, that was featured by an electronic experimentation kit. you could put some resistors, leds etc. on lego-like pieces together, connect them with each other and with the 4 in- and outputs of the 4-bit microprocessor component, program it and have some fun. - Said 'language' was entered with a hex-number-pad and a display consisting of six 7-segment leds.

But that was of course just the beginning, I moved on to basic, C, ..., *; today I cannot count the languages (or rather language concepts) learnt or read of (among them quite few advanced ones).


I honestly can't remember if it was FORTRAN IV on an IBM 1130, or BASIC on a PDP-8E in the mid-70s. I spent a few years floundering around in those languages (although I *did* give a talk about expressing clarity and intent in code using BASIC for my examples in 1981!). Luckily before I could turn completely to the "Dark Side", I was introduced to Pascal, and soon after (around 1983) a Pascal dialect with "Units" so I could at least practice rudimentary information-hiding.


I worked as a web content editor at a floundering Internet startup in 2000 when they told me I needed to learn to develop web applications if I wanted to have a job. They used Perl Language, so I dove in and taught myself. Most of my time is now spent in Java Language, but I very much enjoy Ruby Language and still have a special place in my heart for Perl Language. -- Dave Hoover


Like several others here, I learned BASIC on the Commodore Sixty Four, but I didn't really learn how to program until we started using the Comal Language. It was available for the 64 on both cartridge and disk (I didn't realize it until much later, but I also learned Logo at this time too, since the Commodore Comal version had a built-in Logo implementation). Then I learned Pascal on the Commodore Pet, followed by C on the Commodore Sixty Four. These were my first languages. -- Bill Caputo


I no longer remember the order in which I learned my first programming languages. I'm fairly sure that, in some order, they were: BASIC (on a Commodore Pet), FORTRAN IV (learned from a big thick manual; I never actually used it), and some variety of Lisp. I'm 32 years old. I'm not sure what effect my early programming language learning had on me; I can hardly go back and try learning a different set and seeing what changes... -- Gareth Mc Caughan


Haven't seen this one yet... I taught myself to program (around 1990, age 10) in TI-BASIC on a Texas Instruments TI-40 console that plugged into our TV and used solid-state cartridges for software. Unfortunately it had no hard drive, and I never bothered with the system for hooking up a cassette recorder to save data, so power-off was the end of my code. I wrote a fairly large Adventure-type game, among smaller projects, all written out in pencil on notebook paper and typed in afresh each coding session. Nobody ever told me about subroutines, so I didn't use them (I don't even know if TI-BASIC had them) - it was all a mess of GOTOs. I suppose there's no worse way to learn programming concepts: at least it taught me to type fast, and to be economical with lines of code (not necessarily a good lesson). Soon graduated to a Zenith PC (MS-DOS 3.1) and was lost in the wonders of QBasic and Nibbles-hacking (4-player Turbo Nibbles with blinking and shifting walls!!). Since learned Cee Language, Cee Plus Plus, Perl Language and Php Language (the only language I've been paid to write in, sadly). Played around a bit uninspiredly with Java Language and Scheme Language, but Python Language seems to be a good fit. -- Carl Meyer


FORTRAN, 1401 Assembler - don't worry, I've kept current. -- Robert Field


My first language was QBX - Quick Basic eXtended, for Dos 3. I think BASIC is really quite a decent first language.


BASIC on a PDP, via a teletype. But this was a high school course of little consequence. In college, PL/C (the "student" version of IBM's PL/I), alongside assembly language on the same mainframe, followed very rapidly by PDP assembly, Pascal, and LISP. The first language I did programming-for-hire in was FORTRAN, then Scheme and VAX Pascal. I didn't learn C until relatively late, and replaced it as quickly as was feasible with C++. -- Dan Muller


Applesoft BASIC, then Commodore BASIC, then 6502 machine language on each. I can't call it assembly, because I didn't have an assembler - all I had was a 6502 opcode list and a memory map/syscall list for each machine. Next step was C; my initial reaction was "How in the world can you program this without knowing the addresses to which it gets compiled?". But I got better. -- Tim Lesher


QBasic and Visual Basic. I never got over it; I simply cannot stand languages that insist on bracketing the conditional in if statements or end lines with semicolons (not that, say, Haskell is bad with its optional semicolons if you have two statements on the one line, just that Java, C etc. are bad with the you-end-a-thingy-with-a-semicolonitis). -- Tristan Mc Leay.


My first language real programming language was FORTRAN on a 9/36-bit UNIVAC 1180 mainframe. A few years before, in 1970, we used an Olivetti Programma 1000 at school. But this machine was little more than a 5-register calculator programmable in a kind of assembler (a 8-digit display, 60 pound weight at the bargain price of about 8.000 $). -- Helmut Leitner


I also learned on an Olivetti Programma in highschool around 1974-5. IIRC, it was called a Programma 101. Its display was a paper tape, just like a cash register. Programs could be stored on some sort of magnetic card. I remember writing a program to calculate Prime Numbers; it ran all weekend until the numbers got too large. Later I learned BASIC on a Sinclair ZX-80, followed by TI Basic, Coleco Adam Basic and Amiga Basic. -- John Webber


BASIC (old style with 10,20,30, goto, gosub...) on a Sinclair Zx Eighty hooked up to a B&W television monitor which jiggled every time you pressed a key. Wonderful design for the time: white was about 8 inches square, 2 inches thick at the top that tapered to a thin blue or black touch sensitive keyboard, looked like a spaceship. This was back in the late 70s and it was small compared to a modern laptop. Was a lot of fun. I was in high school but joined a university computer club in their electronics dept they had radio shack and South West Technical Product PCs (green screen - before the days of apple and IBM PCs I think Apple's Lisa was just coming out) rows of BYTE magazines had hours of fun playing tic-tac-toe, star trek, d-ship all of which had the BASIC code to fool around with. Even tried writing our own version of Pac-Man and Space Invaders on the radio Shacks when those games came out on Atari and the Arcades.


HP 110 programmable calculator. (see also: Programmable Calculators)

Concise expression of solution was essential. Also, since the only output was numbers, I learned that symbolic representation was the basis of EVERYTHING. -- Bob Bockholt


It would also be interesting to know the last language ever programmed in? ;-) -- Rob Kamp

Lisp, of course. Those who master Lisp transcend into a higher state of being.


Technically, I was taught Basic as a kid on my Victor computer, but I never wrote anything of my own volition with it. I followed exercises, never saw the usefulness. The first time I saw a cut-n-paste Java Script make something happen on a browser, I knew I had to learn it. I followed a few tutorials, but otherwise taught myself Java Script. It was all down hill from there. My boss wanted me to learn Perl. I learned it. Job change. My boss wanted me to learn VBScript. I learned it. Continue for a couple more jobs and many more languages and here I am. -- Lara Kramer


PILOT up there is ATARI PILOT; I don't remember it being like what's at the Retrocomputing Museum, but it has been years ago. It did have turtle graphics, I remember. -- Randy Brown

PILOT-III: Programmed Inquiry, Learning or Teaching. pilot.sourceforge.net


My earliest programming memory: using Logo Language at the age of 9 or so in primary school on a Research Machines Nimbus (would have been around '89). After that came Basic Language on Bbc Micro machines in my secondary school from 11-12, and then Visual Basic when I was about 13 for a little while, a break, then again as part of an A-Level I was taking (16-18). Didn't like it at all. Started dabbling with Perl Language (naive CGI scripts) at 20 or so. Started liking programming again. Fiddled around on and off with it as part of being a professional webmonkey for the next couple of years. Got hired to do it professionally at 23. Learnt more in the next 6 months than all my previous time with it put together. Still hacking Perl now, and loving it. Never did get around to learning a "proper" language, though. -- Earle Martin


BASIC (I was born in 77). When I was 6-7, I typed BASIC programs into my sister's TI-99/4A. Even though my understanding was limited, I suspect it primed me for logical thinking. When I was 11 I got a TI of my own and obsessively read the manual cover to cover and so TI Basic was my first language.

I graduated to an HP-86 PC which had a beautiful procedural BASIC, floppy drives, a printer, and eventually, a huge 0.96 megabyte hard drive. The HP had a faux-vector graphics library which forced me to learn trig and geometry.

I needed more power to make a Mario Brothers clone, so I started getting up at 4:30 in the morning to program GWBasic on the family's 8086 PC before school.

When I was 13, I discovered the book Oh Pascal and that was my first "true" programming language. I think I might have had trouble with this jump if it were not for three things: 1) I had learned assembly on the HP, so pointers seemed logical to me. 2) I had already learned structured programming from HP BASIC. and 3) Borland Turbo Pascal had an IDE that just made it easy. Editing, Compiling, Debugging, and online help all in one package. For many years I thought Pascal the perfect language and C/c++ ugly.

OO programming did not come easily to me. Borland Turbo Pascal had OO features, but I figured you had to be stupid to use something like that when procedural programming was more logical. I mostly made games with TP, and after about five years my programs started to become so complex and had menu-driven GUI's that I evolved into using OO techniques by accident without using the OO language syntax.

Though I used C++, I was 22 or so before I was fully able to grok OO programming. VB and Java helped with this.


My daughter, born in 96, is now 7. I wonder what her First Time Language will be? She plays Hangman on my 24-year-old TI-99/4A, and Dungeon Siege on her own Pentium III PC.

I can't imagine a small child learning Java or C#, it should be an interactive interpreted language. I'm tempted to show her how to use Macromedia Director, but it's far too complicated and too many things can not work. Logo is just not interesting. I'm most tempted to show her how to type in simple programs to the TI. -- Michael Mc Henry


When I was still too young to be let on a computer, I learned Turtle(LOGO) on the Big Trak - www.stuffwelove.co.uk -- Layne Thomas

Basic. And what's worse, VAX Basic. Somewhat bizarrely, my second language was Turbo Prolog. My dad's firm was all spooked about the Japanese Fifth Generation stuff so they gave him a free compiler. After hacking at that and the VAX at my high school for a few years, I picked up some just plain goddamn bizarre programming habits.


Atari Basic, followed by 6502 assembly language. -- Kris Johnson


Spectrum Basic on a 48k ZX Spectrum as an eight year old. And then picked it up again quite a few years later with Quick Basic bundled with DOS 5. -- Thomas David Baker


Does editing an executable with a hex editor count as using a programming language? Only if you modified the machine code, and didn't just edit strings.


English. I remember it was quite fun learning to program the parental units (not to mention my kid sister). 10 say "twuck"; 20 say "truck"; 30 get some Trix (sugar cereal); 40 goto 20; 50 rem or were they programming me?

Seriously, I think it was some Basic variant on my grade school's teletype machine when I was 11. The next year, a friend of my parents' came to live with us, bringing his Dr. Dobbs ("Running Light without Over Byte") collection and his IMSAI, upon which I learned more Basic, 8080 assembly, and Lisp. (He was the kind of guy who wrote his own Lisp from scratch, and hacked the Game Of Life with video display in TTL.) I was learning Applesoft Basic, 6502 assembly, and Pascal at school at roughly the same time. Later, when I had my own PC-XT, I wrote my first useful programs in Turbo Pascal. As today, most of the real effort of programming was learning the damn libraries and system calls rather than the language itself. I encountered C on the Unix mainframes at college, and it's been all downhill from there. -- Ian Osgood

Who was this Lisp-from-scratch Life-in-TTL guy?

Gail Marshall. He went on to found an industrial frame grabber company, ImageNation (which provided my first contract programming job, making TIFF libraries for it and researching the emerging JPEG standard.) He was a Real Computer Hobbyist. He also wrote his own graphics libraries and hacked an Olivetti daisy-wheel typewriter into a printer! -- Ian Osgood


So there I was with a 5" floppy, trying to make this so called game work by typing the file name in at the prompt. It didn't. After a few phone conversations, I opened the executable in a hex editor, switched some numbers here and there and voila. My next language was Logo/Turtle, Basic, Assembly, QBasic, C, C++, Java, Ruby, Small Talk and then Self. With a few side trips into Perl/Python, Scheme/Lisp, ML, and others of that sort (college made me do it... Go figure).


Definitely Basic since GWBasic and QBasic were free and readily accessible on my DOS 3.3. Helped me learned some really simple concepts about programming.


Well, we started with MS QBasic at school, but we had some kind of interpreter programme before, called Roo. In it you had to program a kangaroo to draw a picture with its tail. Worse than aforementioned Turtle/Logo. Had only Jump, Walk, Turn (left) and If See Border, While Not See Border.


SOAP stands for the (IBM 650) Symbolic Optimizing Assmbler Program. I used it in 1959. The 650 stored data on a rotating magnetic drum, containing 2000 words (40 bands of 50 words each, I think)! While you were executing an instruction, the drum was turning, so every instruction had an extra field containing the address of its successor instruction. If the successor was too close (turnwise) to the one you were executing, you missed a revolution, and your program would be really slow; too far, and the instruction unit had to wait for the drum to come around! That's why you needed an optimizing assembler! It also meant it was impossible to backtrack to find a problem! Bell Labs built a neat interpreter for this machine called BLIS, and I have had a soft spot for interpreters ever since! -- Paul Morrison


Like so many other people, I started with BASIC. I was five years old at the time, and my dad was going back to college to get a degree in information systems. We had an Apple IIgs at home (I can still remember, to this day, what the store looked like that we purchased it from, despite having only been 4 at the time), and I was watching dad, and I wanted to do what he was doing. So he pulled out a 5.25" floppy, formatted it, copied on PRODOS and BASIC.SYSTEM, and gave me the manuals. I twiddled with Pascal some (got started with that the same way -- asked my dad. It was TML Pascal, and I never did figure out how to use its much-touted graphics capabilities) but I never really learned enough to make use of the language. Lack of GOTO confused me at the time. QBasic on a 386 following that, then Visual Basic 2.0 on a 486 following that, upgrading to 3 and 6 in later years. Somewhere in there I learned some 6502/6510 assembler. C++ in high school, mIRC scripting (hey, that's some powerful stuff), TI-BASIC and Z80 assembler (for a TI-86) on my own after that, and last year I added Scheme to my list of languages. While we're sharing anecdotes, I've got a couple. I had to take a BASIC course in high school as a prerequisite to the C++ class. (They let me skip the Intro to BASIC class, but Structured Programming in BASIC was still required.) I went in knowing more about BASIC than my teacher did. She had to pull out the language reference to look up some of the keywords I used. (Tell me, just WHAT is wrong with using DEFSTR?) And then, well, let's just say that technically I don't know Java. I've never studied it. AP exams got me out of taking Intro to Programming in college, and they taught Java in that class. Yet when I took Graphical User Interfaces, our assignments were in Java -- and I got them turned in. It's amazing what you can fake with the right knowledge of C++, eh? -- Coda Highland

Oh yeah, one more anecdote while I'm thinking about it. I booted up my old Apple IIgs a few years ago. It's still in perfect condition, though some of the floppy disks have suffered from age. I caught myself writing in Applesoft BASIC using structured programming and a few aspects of object-oriented, using arrays with and constants for array indices to simulate structures. -- Coda Highland


Basic on a 4K Tandy Trash Eighty at the age of 19 (28 years ago). A buddy got a contract (our first) to do a mailing list application. The client handed us a TRS-80, a printer, some cassette tapes (!), and a couple cables. We handed him back a working mailing list generator about a week later.


Why is it written above that Basic Language is not a Real Programming Language? It may not be a good programming language, but it's a "real" language in that you can get productive work done in it.

Plus, the sheer number of Wikizens who cut their teeth on BASIC ought to disprove some of the rather nasty things that Ew Dijkstra had to say about it... Esdgar was a brilliant fellow, but one who enjoyed inflammatory rhetoric a bit too much.


My first language (I actually forgot that I learned it first...) was QBASIC. This was because it was built into Win 3.1(?). Indeed, while this was my first language, I was not really interested in a computer career so much as 'it was just cool' that I could control the computer. I made a neat lil calculator. I was 12. I didn't _truly_ program again until first year university, when I learnt Java. I did included HTML/Java Script in my learning path because I learnt them for fun, but I wouldn't really count them as programming languages. -- Susan Roy


First, I learned Integer Basic and Applesoft Basic on Apple II computers by hitting Ctrl+C on computers at the computer stores, and playing with the code. Subsequently, I did more playing with Apple IIs at the local library, and learned 6502 Assembly, so I could write better graphics and sound programs. Later, on an Atari ST, 68020 Assembly, Modula II, Pascal, then C. Later, on PCs, C and C++. When I got actual jobs programming, it was desktp DBMS languages - Paradox PAL, Fox Pro, Access/VBA, then VB. Of course, occasional bash, bits of Perl, etc., along the way. Now trying to escape from VB into Java, C# and Hybrid Functional stuff ASAP.

-- Steve Jorgensen


My first language was Compass, an Assembly Language for Control Data's Cyber 3300. It ran in a 64 bit operating system called Master - "Multiple Access Shared Time Executive Routine"


First, Integer BASIC on Apple ][ computer, typing in games from magazines. Two-letter variables -- ick. The hardware could only display uppercase letters. (The first word processor I used - Apple Writer, I think - used inverse video to represent uppercase letters, normal white-on-black to represent lowercase letters). Since then, many assembly languages. Still learning more programming languages. One of these days I'll get around to Lisp.


I was started on the path with a programming class on Logo at the local science center. About fifteen years ago we got our first computer - an Apple ][gs - and I taught myself Integer BASIC. The first non-trivial program I wrote was a Logo-like interpreter because we couldn't afford to buy the program. Later on I read a book on C from the local library yet couldn't try any of the programs since we couldn't afford a C compiler or linker.

Nine years ago we purchased a PC with a modem and CD-ROM drive, and I read about C++ and Java on the internet. It was amazing to me that we could actually compile programs for free. In the last four years, I've read enough to understand some Perl, Python, Lisp, XSLT, VB, among others. But I still often think in Logo. :-p

I think that everyone should start with Logo. It teaches the concepts of command, paramaters, functions, loops, and recursion in a way almost anyone can understand. There is hardly any grammar to learn and it isn't complicated to read (unlike C or Lisp). Other courses tend to focus more on the syntax and libraries (esp. those on C++ or Java) of a language. Even BASIC is too complicated for a beginner with no experience programming, I think.

First learned BBC basic on a BBC micro at primary school (4 - 11 years old) my first computer was an Acorn Archimedes so continued with BBC basic but learnt C as well. In high school, I learnt Pascal and Vb Classic; at university, Fortran and C++. Now can add tcl, vhdl and a bit of lisp to the list as well as having relearnt c++ (as it is quite a different beast now to what it was back when I first learnt it). I don't think starting with bbc basic has particularly coloured my programming, for the simple reason that I learnt so very little when I was playing with it -- James Keogh


In (rough) order.. Basic on the Atari 600, LOGO, Apple ][ Basic. Then into "real" programming, with Visual Fox Pro(!) as the first real stuff I ever did. Perl, HTML/Java Scrip, C, C++, Python. A few other languages like VB Classic, Delphi thrown in, some other web development stuff (Macromedia Cold Fusion is what I get paid for...), but Python and C++ are my current loves.


Basic on Apple 2 was the first one, in my 13th year.

Then Lisp, before Pascal, C++, Prolog and so on..

Programming Lisp during my high school was quite nerd. I can remember one time, I said to my mathematical teacher, who was a little bit into computer programming, how nice and beautiful was a lisp program. Something pure and near perfect.

The guy looked at me, like desperating for such a nerditude... -- Bernard Notarianni


I learned Logo on Commodore 64s back in the third grade. In retrospect, that was wonderful experience: It had me thinking about recursion and subfunctions starting really early on. Ten years later, in introductory CS at university, recursion came pretty naturally to me, which I attribute to that early experience.

After graduating grade school, my family bought a Compaq Portable on which we installed one of the contemporary PC versions of Logo. I don't know why, but it was never quite the same as Commodore Logo. After trying that for a while, I switched to Quick Basic 4.0, and ended up like so many others, using Turbo Pascal 6.0. Turbo Pascal was my first real introduction to things like pointers and compiled software. To this day, I miss Turbo Pascal's quick compilation speed and intelligent module system.

In college, I spent most of my time (aside from a few intro courses taught in Pascal) in C++ (Borland Cee Plus Plus 4.0), and later Common Lisp and Tcl/Tk with Incr Tcl. The Cee Plus Plus experience was mainly valuable in learning how to clean up the messes I made out of inheritance structures and exceptions. Once I got that down, moving to plain, ordinary, C in a professional environment was a breath of fresh air. To this day, Common Lisp, Scheme Language, and Cee Language are the languages that stuck with me and that I still use. -- Mike Schaeffer


My first language was Cee Plus Plus. I don't count my few "programs" written for the TI-85 calculator since they only consisted of single simple functions. My university used Cee Plus Plus as a first language when I was a student. At least they got away from Pascal Language. -- Will Gray


The first language I wrote code in was COBOL. I never did much in it because I was about 8/9 and the column-oriented syntax was really hard to use on windows. After that I learnt lots of languages but the first one I did useful stuff in was Squeak Smalltalk, which I had a lot of fun with (I was 10). My current language I use a lot is perl I generally find it pretty easy to pick up the basics of languages, but Functional Programming Languages really scare me and I find them really hard to grasp through online tutorials, especially as most things to do with them seem to require a degree in mathematics. Lisp I find amazingly simple though. (For the record I'm 12 now) - April 7 2005 "tombom"


Binary->Turtle->HEX->Assembly->BASIC->C++->QBASIC->C->Java->Modula3->Perl->Ruby->Python->Smalltalk->Lisp_>Scheme->ML->Self->Java->C++

(yes, I learned some languages more than once. After experiencing new languages, I became a different programmer, and had to start from scratch and re-learn the old ones from a new point of view)


The first language I ever used was Turbo Pascal, but at age 4 I didn't have the slightest clue what I was doing. That was followed by, in no particular order and thoroughly mixed with each other, Visual Basic, Turbo C++, QBASIC and Prolog.

In the last 5 years or so, I've moved on to (again, not in any kind of sequence): Java, Python (my current favorite), Haskell, Scheme, Javascript, and a tiny bit of tinkering with a few others like Ruby, Smalltalk and Scheme. I also picked up some of Common Lisp years ago from reading my parents' copies of The Little Lisper and Essential Lisp, but to this day I have never actually tried programming in it.

I also do some PHP, but I firmly refuse to classify it as a programming language (it wants to be Perl when it grows up - need I say more?)


BASIC was my first language, at the tender age of 4. I later learned Z-80 machine language (maybe 6 years old or so?), then 6502 as I progressed from the TRS-80 to the Commodore Sixty Four. Later, I upgraded to a Commodore Amiga, which used the 68000 processor, where I stuck with assembly language until I could afford a C compiler. I only switched to C, by the way, because it was "cool." I was immensely productive with plain assembly language. I, to this day, still posit that C is no more productive than plain assembly. (C++ and other OO-languages, however, are demonstrably higher level and more convenient to use.)

At the same time, I was going to Mohawk Valley Community College, taking Pascal courses. Worst. Experience. Ever. (Funny, because I love Oberon.) Pascal has had a significantly negative impact on my coding; I claim that it set me back to the stone ages of programming. BASIC was positively superior to Pascal, in my experience.

From there I moved into REXX programming (since AmigaOS 2.04 came with ARexx standard), and into other programming languages, like Lisps, Haskell, Forth, etc. (in no particular order).

As far as impact on me? BASIC had zero impact on my ability to program. When I was working for a small code-monkey shop back in Utica, NY, we had to deliver a dentistry application using VisualBASIC 3. I found myself unable to implement certain control constructs in it easily, so I resorted to implementing a simple "virtual machine", where I had an array of integer "registers" (DIM I%(15) or so), floating point "registers" (DIM F(15)), etc. I also had used arrays for lots of other tasks, and had maintained "pointers" (indices) into these arrays. The result was working code. Yes, I programmed in a virtual assembly language, implemented in BASIC. It worked, it was pretty fast, and we got paid. Good times! (Unbeknownst to me, I had inadvertently re-invented the stack-base virtual machine, as each type of array had its own "base pointer," allowing me Forth-like control constructs.)

Today, I prefer to code in Forth, which also usually lacks higher-level data structuring capabilities out of the box. While I enjoy its structured programming capabilities, I still use the Column Major database approach towards representing collections of objects that I search through often, and arrays of Row Major structures for things which are not searched through frequently.

I've found that periodically resizing arrays is not that expensive in terms of runtime as well, especially if you grow your array by an amount that is a function of what is already in use (e.g., Fibonacci growth), and of how often it grows (the longer it's been since it grew, the less likely you'll be adding mega quantities of data to the structure, so you can cut back on the growth rate).

See the Cap Array algorithm/pattern for a way to grow in chunks. This way heap isn't fragmented and memory isn't allocated continually

"Pascal has had a significantly negative impact on my coding; I claim that it set me back to the stone ages of programming. BASIC was positively superior to Pascal, in my experience."

Having looked back on both my own old line-numbered BASIC and Turbo Pascal programs, I find this hard to fathom. Could you expand on this? -- Ian Osgood


Fortran Language was the first programming language I learned. IBM 360 Assembly Language (BAL) was the first language I used.



After exposure to 'text formatting' by using someone else's code and my pencil-marked data cards (he was doing 'picture'; I was creating statistic summaries for a weekly recreational sports league of which I was the scorekeeper), and an open high school period after dropping a required course by an instructor I often butted heads with, I headed for the high school introductory Data Processing course, which taught a wonderfully simple ML called Hypo; when I find a concrete reference, I'll add a Hypo Language page. Not an Assembler of any sort, 'twas all in opcodes and operands. Gave me the right frame of mind to handle everything else that's been tossed my way in the subsequent 32 years....even BASIC!


The first language I "used" was C, for a programming course at school. But considering that I learned nothing and dropped out of the class, I don't believe that counts. You can call me a Lisp acolyte.


To be quite honest it was so long ago I am not entirely sure. I remember being taken to visit a computer in Brighton and writing a program on a form, I think it was Algol. That would be before 1965 when I went to university. There I wrote programs in Fortran II for the IBM 1620. That would be in 1967. Paper tape. When I started work in 1969 we used punch cards to submit programs in Fortran. We also had an early interactive system with Basic. -- John Fletcher


In 1981-82, I learned a little bit of BASIC on an ancient PRIME minicomputer, typing in programs from the classic 101 Computer Games on black and white terminals in my high school. Great fun, at the time. I then didn't have a computer to use until three years later, by which time the school had a room full of (already dated) Apple IIe computers, which gave me a chance to actually understand what I'd been typing in the first time through. I didn't really become a Serious Programmer until In encountered Pascal and eventually C in college, and even then it remained more of a hobby until the 1990s. - Jay Osako


For me first was Logo Language (Object Logo, on the Mac.) I might or might not have keyed in some BASIC on a TI-99/4a before that, I'm not sure. Sometimes I would type in one of the more complicated examples from a Logo book and it wouldn't work. Only later I realized this had probably been a problem of Object Logo using Lexical Scope where most Logos used Dynamic Scope. Then Hyper Card came out, around 1988 or so, and would become my playground. I'm surprised there aren't more votes for Hyper Talk here.

Another big influence was Robo War, a game where you programmed virtual robots that would try to move around on screen and kill each other. The game used a sort of stack machine assembler, like Forth without any introspection, and as a leveling mechanism each robot only could execute a fixed number of opcodes per time step. There was an annual Robo War tournament, all entries to be included in the next release of Robo War so people could see how the winners ticked and evolve their strategy. One of my Hypercard creations was a utility to translate infix math formulas into postfix, to help me write Robocode. I think it actually was trying to be a recursive-descent parser, though I didn't know that at the time.

There was the fallow period when Hyper Card was clearly dying, but I couldn't clear the hurdles involved in learning "real programming" -- I got a Pascal IDE and a book about Mac programming but never made anything of it. I did do some Crud Screen type applications for people using File Maker Pro and Apple Script.

College led me through C, C++, Java, Lisp, MATLAB, a couple of assemblers. I didn't really grok Lisp until several years after I'd used it for an algorithms class. (This was about the time I looked back at Logo and realized that it was basically Lisp.)

Sometimes I wonder why things have to be so hard, when making Hyper Card do things was so easy when I was only 7? - Peter Meilstrup


I started with Turbo C++ in school. Shifted to Turbo Pascal from there, then Delphi, C++ Builder, and Modula-3. Now, some C# and Java for work, lots and lots of Oxygene (a modern Object Pascal derivative for .NET).


Self taught BASIC, then (Turbo) Pascal at the High school and first year University and Fortran 95 later at the University (and later many others).


See original on c2.com