Slashdot Asks: What Was Your First Programming Language? (stanforddaily.com) 633
This question was inspired by news that Stanford's computer science professor Eric Roberts will try JavaScript instead of Java in a new version of the college's introductory computer programming course. The Stanford Daily reports:
When Roberts came to Stanford in 1990, CS106A was still taught in Pascal, a programming language he described as not "clean." The department adopted the C language in 1992. When Java came out in 1995, the computer science faculty was excited to transition to the new language. Roberts wrote the textbooks, worked with other faculty members to restructure the course and assignments and introduced Java at Stanford in 2002... "Java had stabilized," Roberts said. "It was clear that many universities were going in that direction. It's 2017 now, and Java is showing its age." According to Roberts, Java was intended early on as "the language of the Internet". But now, more than a decade after the transition to Java, Javascript has taken its place as a web language.
In 2014 Python and Java were the two most commonly-taught languages at America's top universities, according to an analysis published by the Communications of the ACM. And Java still remains the most-commonly taught language in a university setting, according to a poll by the Special Interest Group on Computer Science Education. In a spreadsheet compiling the results, "Python appears 60 times, C++ 54 times, Java 84 times, and JavaScript 28 times," writes a computing professor at the Georgia Institute of Technology, adding "if Java is dying (or "showing its age"...) it's going out as the reigning champ."
I'm guessing Slashdot's readers have their own opinions about this, so share your educational experiences in the comments. What was your first programming language?
In 2014 Python and Java were the two most commonly-taught languages at America's top universities, according to an analysis published by the Communications of the ACM. And Java still remains the most-commonly taught language in a university setting, according to a poll by the Special Interest Group on Computer Science Education. In a spreadsheet compiling the results, "Python appears 60 times, C++ 54 times, Java 84 times, and JavaScript 28 times," writes a computing professor at the Georgia Institute of Technology, adding "if Java is dying (or "showing its age"...) it's going out as the reigning champ."
I'm guessing Slashdot's readers have their own opinions about this, so share your educational experiences in the comments. What was your first programming language?
Fortran (Score:4, Informative)
Re: (Score:3)
I can still write FORTRAN programs in any of the many, many, languages I use today.
Re: (Score:3)
I can still read it, too; I read a paper last year with a FORTRAN subroutine printout appended and was able to pick out the transcription errors (undoubtedly made by the secretary who typed it up) which would have prevented it from compiling
Re: (Score:2)
Re:Fortran (Score:5, Funny)
Wasn't it still called Natural Philosophy then - and taught in Latin?
Re: (Score:3, Funny)
Wasn't it still called Natural Philosophy then - and taught in Latin?
That's COBOL
Re: (Score:3)
Fortran was still needed for physics in 1990. In fact, it is still needed in many subfields of physics in 2017.
You are right that it is used still. Happily/sadly (depending on your perspective) there's a "new" version of Fortran [wikipedia.org] coming out soon called Fortran 2015 (coming out mid-2018 because it takes this long to write the first program since its release).
I never understood why c++ is not used for serious physics calculations given how much easier it is to write stuff, but there are people who are very sure that Fortran is superior to anything else. I just wish that Fortran would have a good way to print out result
Re: (Score:2)
My first one as well. I had a computer science teaching assistant ask the class what language we programmed in once. I answered, "Fortran." The whole class laughed, and she said, "No, seriously."
Re: (Score:2)
Same here, FORTRAN.
Re:Fortran (Score:4, Interesting)
I'm not quite old enough to have used FORTRAN. I grew up on BASIC and Z-80 assembly language on a TRS-80 (and a bit of HP BASIC on equipment at school), but when I went to college in 1982, they were using PL/I. The first semester was even on IBM equipment, but fortunately they got a VAX late in the semester, because I managed to screw up my JCL by trying to reformat it to be readable. I still don't know why it took DEC so long to add the UNTIL statement to their PL/I compiler.
Then I got into programming on the Macintosh, so I started using Pascal. Also, Turbo Pascal was a thing, and they were both UCSD variants. But one of the worst things to do is use Pascal and PL/I at the same time. (as in same era, not simultaneously) The function headers are syntactically backwards to each other.
I didn't even officially switch over to C until after 2000. I even have one program I use sometimes that started with code I originally wrote in college in PL/I, then ported to Pascal, then again ported to C.
Basic-Pascal-C-C++-Java- (Score:3)
Started out with Basic in 5th Grade(1990). Put one floppy in to load dos. Put the other floppy in to load Basica or GW-Basic and you are off to the races. Hard Disks? What Hard Disks?
Then Grade 7 we start with this cool new Language Pascal. Structs Cool!!
Grade 9 We start C. Pointers. ugh!!!
Grade 11-12 C++. Well we pretty much kept writing C code just used objects.
Then this cool new hot Language comes around everyone is excited about Java!!
Get to college- Computer Sci 101- Fortran. WTF? Well our professor i
Re: Fortran (Score:4, Interesting)
Re: (Score:3)
Re: (Score:2)
ZX80 Basic for me, followed by ABC80 Basic then some Forth and Assembly followed by Pascal on a MicroVAX II.
Re:Fortran (Score:5, Interesting)
Re: (Score:2)
Re: (Score:3)
Luxury. Our computer knew Fortran but it would take an extra step to use it. We were required to use assembly. Actually, I think that was a Good Thing.
Re: Fortran (Score:2)
https://www.amazon.com/Fortran-Watfor-Prentice-Hall-automatic-computation/dp/0133294331
My copy of that book looks pretty much like that picture.
Re: (Score:2)
Likewise Fortran. Then BASIC, more Fortran, various assemblers, Babbage, Pascal, C, Cobol, Ratfor, C++, Perl, Python, Ruby, JavaScript.
Today's schoolchildren all seem to start with Scratch.
Basic (Score:5, Insightful)
Re: (Score:2)
I'm sure they were talking about GOTO (JMP)
Re: (Score:3)
I assume that the parent means "built-in basic" on both machines.
CBM BASIC was MS 6502 BASIC under the hood. The C128 even included a Microsoft copyright message. There is an easter egg in basic v2 on the PET which displays "Microsoft!" on the screen. The story goes that Bill Gates had an argument with Jack Tramiel and wanted to be able to prove that it was MS basic.
See here [c64-wiki.com] and here [wikipedia.org]
According to the first link, the basic on the Apple II was called integer basic and was written by Woz. Though MS basic was av
Basic (Score:3, Informative)
Of course.
Re:Basic (Score:4, Insightful)
Re: (Score:2)
Yeah, me too. Good memories of something that in retrospect was not that great.
Re: (Score:2)
For me, the first language was also BASIC but on a ZX-81 very quickly followed by a VIC-20. It's worth noting that with both computers, the manuals that came with them were almost totally geared toward programing immediately as well. Advanced stuff,
Re: (Score:2)
To reply the thread, my vote is also for basic, specifically GW-Basic on the TRS-80 Colour Computer 2.
Can you imagine the reaction* of people if you took a 256GB microSD card and showed it to them? Told them about the speed of the thing?
* to the kids out there, you'd first have to teach people of that era what a megabyte is (maybe), then explain what a gigabyte is (most probably). You c
TI-57 (Score:2)
Rust (Score:5, Funny)
Showing my age... (Score:3)
I also picked up Pascal and C shortly thereafter. C stuck, Pascal didn't. I seem to remember learning COBOL and PL/I at some point, along with a bit of fortran.
I've learned so many languages over the years, that I've lost count. Right now I have active projects going in C, HTML5/Javascript, and Python. It's gotten to the point where another language isn't a big deal: it's more about learning libraries than the language itself.
Java ranks near the top of my list in languages I prefer not to program in if I can avoid it.
Starting teaching myself in 2007 with... (Score:2)
JavaScript, then PHP, SQL, then python, then C++
True millennial
CHIP-8 (Score:5, Interesting)
GWBasic (Score:2)
Having an interpreter appear automatically when you press ctrl-C while playing a game is pretty nice. Too bad that things are less accessible that way today.
BASIC, of course (Score:2)
Sinclair ZX Spectrum BASIC, specifically. Self-taught from the book that came with every Spectrum.
Later came Pascal (in college), then after a semester of Pascal they switched to C, skipping the basics of C to go straight into second-semester concepts. That spoiled programming for me for a long time.
These days it's XSLT, Windows cmd, Autohotkey and the occasional bit of Python in a mostly non-programming job.
Re: (Score:2)
XSLT, dear god.
Does your workplace include nets on the stairs?
Re: (Score:2)
Most of the work I do is processing XML documents. Why not use XSLT for that?
Re: (Score:2)
Basic (Score:2)
On a Sharp PC 1500A.
C and C++ (Score:2)
I would use C alone if there were a web framework for it.
Re: (Score:2)
Can you explain why?
I simply don't get why any sane person would chose C over C++
Especially considering the context, libwt ... WTF, how do you want to replace something as fine as that with pure C code? That does not make any sense at all!
SmartBASIC (Score:2)
Started learning with SmartBASIC on an Adam/Coleco. Moved up to Apple's Basic on the Apple IIGS, then Apple Assembler.
When I got a PC, I did some BASIC, then moved on to PASCAL (and took some formal PASCAL classes in high-school), then C++ in college. Learned Perl along the way. Picked up Java at my first job out of college. My second job out of college I learned ActionScript. Now days I do mostly Java and C++.
I really hope they continue to teach a typeful language. Learning things like memory manageme
10 GOTO 50 (Score:3)
30 goto 20
20 goto 40
50 goto 30
60 print "HELLO BASIC, OLD FRIEND!"
Huh. Why doesn't my program work?
In all seriousness, I started with BASIC at home and later did a bit with it in middle school. High school was Pascal based, and my university started with C. (There were many languages in between, but since the summary is focusing on schooling ...)
Logo (Score:2)
LOGO (Score:3)
Re:LOGO (Score:5, Interesting)
I really liked the logo translations. As a child it was very useful to be able to program in hebrew, when my english was developing.
Pascal (Score:4, Interesting)
When I was a kid I had exposure to Basic and LOGO and a few other things but the first real programming I actually did would have been in Pascal (Turbo Pascal 6 if I remember correctly). These days most of my coding is in C and C++.
The most obscure thing I have ever programmed in would probably be assembly language for the 65816 CPU (an enhanced 16 bit version of the famous 6502 CPU). The main claim to fame for the 65816 was as the CPU in the Apple IIGS and also the CPU in the Super Nintendo (SNES ROM hacking is where I learned 65816 ASM)
Two separate questions (Score:2)
There are two separate questions with different answers brought up here:
For me:
Comment removed (Score:3)
LOGO (Score:4, Informative)
Borland Turbo Pascal .. (Score:2)
.. of course. Such a clean and slick language, that made fumbling with the PCs-hardware very easy.
I use it till today to talk to the ISA/TTL Bus on DOS.
Does machine code count? (Score:2)
AGOL W (Score:2)
On punch cards. We had to post them from our country school to a data center in the nearest town (Invercargill) who would run them and post the output back. Turn around for bug fixes was a week.
Re: (Score:2)
Algol on 5 channel punch tape TTY on Zuse
PL/1 (Score:2)
C and C++ and sometimes Assembly (Score:2)
FOCAL-69 (Score:2)
Summer school course at Wellesley Middle School. A Teletype connection to BBN in Cambridge. I would have been 15.
In 1964 ... (Score:2)
Fortran II on an IBM 6020, puched cards; then IBM 7044 also punched cards. On microcomputers, Altair 8800, I used
8080 Assembler, Z80 Assembler, Altair Mits BASIC (by Bill Gates), then dBase II under cp/m 1.4 and 2.2. Those
were the days, noisy machines, teletypes, chain printers (scary!), and *lots* of blinking lights: incandescents too,
not LED's like later. Today I use mostly Bash Scripting with extensions for hardware manipulation.
A quick comment on BASIC. The disadvantage of Basic is sphagetti code du
Basic, on a ASR-33 Teletype. (Score:2)
Academic: FORTRAN Work: Assembly (Score:2)
Java is like something outof a zombie movie (Score:2)
It simply refuses to die.. even when it's dead.
Re: (Score:2)
It simply refuses to die.. even when it's dead.
Well, it always did have lousy garbage collection... :-)
Apple ][ (Score:2)
Apple Soft Basic, only messed around with INTEGER Basic to 'patch' some games. ... still on an Apple ][, never relly understood that types basically were completely ignored, error messsages were a pain in the ass. But I learned about the tool chain you need(ed) for 'real programming'.
6502 assembly and Sweet 16
Atztec C
Pascal, then Modula 2
Then around 1988, 'better C' (wrote some GUI stuff in C for OpenView connecting some Prolog programs to each other)
Quickly later I switched from Pascal on Macs to a subset
TCL (Score:2)
Mine was Scheme, then C (Score:2)
Should have been C or assembly. They way I was taught, which is how I think it should be taught, you start with transistors and work your way up. Logic gates, circuits, integrated circuits, assembly, compilers, high-level languages. C lets you see how the language is integrating to the hardware below it. You have registers, heap memory and a stack, interrupts, pointer arithmetic. Python et al are all just theory. C is reality. From there, you can move up to learning high-level things.
I'm not saying
Locomoive Basic (Score:2)
It came on the Amstrad CPC, and you needed to type commands like run"monty just to run your games. Magazines had type-ins and 'pokes' and so on.Back then there was nowhere to hide from the need to at least know how to type 10 print "hello"... 20 goto 10... run.
MLS - Machine Language Simulation (Score:2)
Filling out bubble cards for an IBM 1160 - ca. 1977. Program printouts came back two days later.
Teacher was a drunk the administration couldn't fire, most kids used the class to a) socialize or b) make pictures out of different letters. I remember a particularly impressive Corvette logo.
My proudest achievement was figuring out how to program multiplication/division as repeated addition/subtraction. All by myself, just using the manual.
Dartmouth Basic first. (Score:2)
Basic. Dartmouth Basic. (At school on an interactive terminal to a Prime 300 IIRC)
Fortran (At school. On punch cards fed to some IBM mainframe in the basement.)
Intel 8080 assembler (At school, IMSAI 8080 running MP/M)
Fortran (At work, PDP-11 running RSX-11M)
Macro-11 (At work, PDP-11
Pascal (At Work, in service class)
At some point I heard about C and got "The C programming Language" and started to learn that. I've used that for more projects in the ensuing 30+ years than anything else. Along the way I also le
360 machine/assembly, FORTRAN, and PL/1 (Score:2)
Changed my major to CS in 1974; my first CS class (BYU), we started with a IBM 360 pseudo-machine code (on punched cards) and then moved on to actual 360 assembly (also on punched cards). Later in the semester, we had to buy a FORTRAN text (which I still have), teach ourselves FORTRAN, and pass a proficiency test. (My professor for that class was Dr Alan Ashton, who would end up being on of the co-authors of Word Perfect. Great teacher.)
At the same time, I started working part time for a computer-assisted t
Dartmouth Basic (Score:2)
Growing up near the college, they had free accounts. My High School had a teletype & modem.
Later, my school got Commodore CBM/PET systems.
We also had a SuperPet. It had APL, Interpreted Pascal which I tried. It had Fortran, Cobol and 6809 Basic which I didn't try.
I had an Apple ][+ and did lots of Basic, some assembly and Apple Pascal with the built in Bugger. Simply recompiling would sometimes clear up errors.
In college, I learned Fortran (MS and Vax) and dabbled with Turbo Pascal. After college, C
HyperTalk (Score:2)
For a few years HyperTalk (the programming language of HyperCard) and a single reference book was my only contact with programming.
FORGO (Score:2)
...an interpreted version of Fortran for the IBM 1620. The machine had 10K BCD digits plus the deluxe 10K add-on; the interpreter took up 15K of that, so you had 5K for your program. I/O was on cards or a console typewriter.
We also had a compiler for Fortran IV.
Re: (Score:2)
BASIC and Z80 (Score:2)
What ? No APL ? (Score:2, Interesting)
Well, I must be REALLY old then. APL was the first language I learned, the most powerfull mathematical computer language in the 60's. It was decades ahead of its time. I remember, when I started getting familiar with other langauges like FORTRAN or BASIC, thinking how primitive those were compared to APL. Landed my first IT job in the 80's because of my APL skills which were very rare and in demand in the research job I was applying for.
Algol 60 (Score:2)
APL (Score:2)
Another Fortran (Score:2)
FORTRAN (Score:2)
In Order (Score:2)
Basic...in high school, circa 1973, on teletypes, with acoustic modems and paper tape.
FORTRAN... the first language I was taught in CS when I decided it was time to get out of working on hardware...around '84
Pascal... intermediate CS
C...one of my last CS classes
C++...at work in the late 90s
PHB...when I was pushed into management
BASIC (Score:2)
BASIC and more (Score:2)
BASIC on a TRS-80 MC10 [wikipedia.org]. When teaching myself how to program using the "BASIC Games for All Computers" type of books, Radio Shack actually had knowledgable employees who taught me what a function is, and how to translate DEF FN to something useful in its version of BASIC. As an elementary school kid, I had no idea that functions were a "math thing" until probably high school.
Later, BASIC on my C=128, some 8502 assembly just to speed things up, then Turbo Pascal once I got into the PC world. Later, C/C++/Obje
Wang 360 programmable calculator (Score:2)
Re: Wang 360 programmable calculator (Score:2)
6510 Assembly (Score:2)
Though I did dabble with a bit of BASIC to get the hang of things before that, but ditched it pretty quickly. I suppose my first real "language" was Turbo Pascal quite a bit later.
BASIC (Score:2)
BASIC, the some machine-level cose. First programming class was FORTRAN. Still program in C.
Showing my age (Score:2)
Earliest language (high school): BASIC, operating on a time-shared (Honeywell?) minicomputer using punch-tape program storage and a teletype for input / output.
Earliest college language: FORTRAN on a time-shared CDC Cyber. Initially wrote software using a teletype on IBM punchcards, then stood in line to pick up my output from a high-speed line printer. It was quite the thrill the first time I was able to sit down at a VDT and type / run / save my software using a video interface.
Earliest application pr
Fortran and Algol (Score:2)
Specifically, WATFIV and ALGOLW at CMU. I was exposed to Basic early on but never had any opportunity to write anything in it. A couple semesters before I got there, they were starting students out on PLAGO (a reduced PL/I for student use that attempted to do fancy error detection and correction), but they left PL/I behind for Fortran. Very shortly afterwards, I got into PDP-8 assembly.
Applesoft Basic (Score:3)
I first learned to program on an Apple ][e at school; was ecstatic when we got one at home. Technically this was after being taught Apple Logo, but I don't consider that my first language.
In Middle school I still remember learning IF PEEK(-16384)>127 THEN a key was pressed; the most important statement in moving from prompt based games to action based games. (Another good one POKE(49200) for a "click" through the speaker).
In High school I learned about Beagle Bros. and their BASIC compiler; running some of my games 10 times after... really allowing me to make something fun.
http://beagle.applearchives.co... [applearchives.com]
Eventually that gave way to Turbo Pascal, which gave way to C++.
Basic (Score:2)
Texas Instruments basic to be exact. First taught language was pascal.
Nobody else???? (Score:2)
Pascal not "clean"? (Score:5, Insightful)
WTF? Pascal is not clean? Pascal was DESIGNED to be clean. It is very clean. It has strict type checking and is extremely sensitive to syntax. It doesn't allow any hanky panky to take place with any of its variables. You can't modify any variable without its assignment operator. Variables have to be declared, or else you get a runtime error. How is that not clean? Tell me one thing Pascal (Not Turbo Pascal and other flavors, but the language as it was created) does that is not clean?
Now, don't get me wrong. Pascal was a great language to learn straight programming, but was very limiting for every-day programming. Come Turbo Pascal. I must have written dozens, if not hundreds, of TSR programs that created ISRs, from sitting in the background and capturing keyboard input to recognizing that you changed your password on a NetWare server and sync it up to other servers. I even wrote a visual Connect 4 game that you could play over the network with your buddies, when the only LAN game I was aware of was "ncsnipes". Now those are things Pascal wasn't meant for, but Turbo Pascal extended the language very successfully and created a world where there was no end to what you could develop.
English (Score:3, Interesting)
English.
Then arithmetic. Then algebra. Then geometry. Then integral/differential calculus.
Then TRS-80 Basic. Then 6502 assembly language. Then Forth.
Then Scheme. Then dBase II. Then C on Unix w/ tcsh & bash. Then Java. Etc.
Note that the question was “programming language”, not computer “programming language”.
First order logic came into play fairly early on, too, but that's not a language per se so much as a technique/methodology.
Re: Basic (Score:2)
ACK Basic on a TRS-80. Wasn't very long before that was swept away by Z80 assembly language though. I remember magazines of the day containing articles that included listings (can't remember if it was asm or hex) that I would diligently enter. And then debug. I don't think that reading hex opcodes is something that the youft still get to experience, more's the pity.
Javascript is OK. It's a bit like lisp in sheep's clothing, and that goes all the way back to the beginning.
Highschool was only more Bas
Re: (Score:2)
Hypercard then TI-BASIC.
Re: (Score:2)
It's hard to ignore it when it's embedded in the computer boot ROM
...and it is hard to compile Pascal or C when your mass storage is a 300 bps audio cassette tape recorder, and you only have 4K of RAM (which was the main fallacy of the BASIC-haters at the time, when a floppy controller and drive cost twice as much as your original computer).
Re: (Score:2)
Yeah, had a Sinclair Spectrum. BASIC comes up as the shell.
Also used BASIC on a RM-380 something at school.
Dabbled with assembler on both, didn't really get very far.
Re: (Score:2)
Pffft. *Young* people will say BASIC. Back in the day, if the computer booted while I was around, it was going to be a bad day for everyone since it was THE computer and it only rebooted when it was broken. (I exaggerate slightly, there was a Univac 1108 as well but you had to have real funny-money to get at it.)
Old people will say 7090 machine language or something like that. I'm not that old.
Re: (Score:2)
We only had FOCAL, on a PDP-8.
The binary sequence to boot the thing up was actually an octal sequence on the console switches, to get the high speed optical paper tape reader to start loading the FOCAL interpreter.
7 spaces (Score:2)
The fortran 77 compiler failed to compile your card deck for two reasons:
1) the instructions were not 7 spaces from the right margin
2) it's written in basic and this is a fortran compiler.
Re: (Score:2)
core dump