News for hackers. Stuff that matters.
Re:BASIC at 50 by astral303 on Monday April 07, 2014 @04:25PM (#7549227)
When I was little, back in post-Soviet Russia (circa early 1990's), the prevailing progression of a developer was "learn BASIC, learn Pascal, then learn C". And, if you were extra badass, you'd learn assembly. BASIC was the first step, simple and easily accessible on most computers of the day (ZX Spectrum, MSX, Atari, GWBasic/QBasic on MS-DOS).

Best of all, being an interpreted language meant that you often had the source available to tinker with--"open source" of sorts. I remember tweaking GORILLA.BAS when I was 12, altering colors, inserting extra screens and text and silly stuff like that.

I think there's a whole generation that grew up on BASIC. I wonder what today's generation growing up on?

Re:BASIC at 50 by vivin on Monday April 07, 2014 @05:05PM (#7549481)
> "learn BASIC, learn Pascal, then learn C"

So much of this! I remember the older kids talking about Pascal (they were using TurboPascal at the time) and to me it was some mystical, highly-advanced form of magic, a sort of "more complex" BASIC. However, I never actually learned Pascal or used it, because I jumped directly from BASIC to C (actually ended up doing both for a while). The reason I even found out about C, was because I asked my computer teacher in junior high how people made games, and she told me that it was a language called C. So that summer I got myself an ANSI C book and started teaching myself C.

It was very difficult at first but I slowly got the hang of it. By junior year of high school we were doing C++, and having done C it was really easy for me to switch to C++.

Re:BASIC at 50 by cleversoap on Monday April 07, 2014 @10:01PM (#7550996)
> how people made games

In my experience this is the common question amongst everybody (myself included) that started programming young. Some adult somewhere (how sad that I don't remember) took me seriously enough and gave me some books so I started writing in C, BASIC, and assembly and I was too stupid to realise that it was supposed to be too hard for a 9 year old.

Today (as in literally this moment in time) I am still writing C for games.

Re:BASIC at 50 by zem on Monday April 07, 2014 @10:19PM (#7551068)
i taught myself c by prototyping programs in qbasic and then translating them as straightforwardly as possible. qbasic also had an absolutely brilliant integrated help system; that's one of the things i've always admired microsoft for.
Re:BASIC at 50 by NKCSS on Tuesday April 08, 2014 @08:25AM (#7552894)
For me it was QBASIC -> VB6 -> VB.NET, a path that a lot of people I know took as well.
Re:BASIC at 50 by peapicker on Monday April 07, 2014 @08:51PM (#7550727)
I actually had Fortran-77 between Pascal and C. C, compared to Pascal, was like taking off the handcuffs.
Re:BASIC at 50 by muyuu on Monday April 07, 2014 @06:45PM (#7550163)
I started in the mid-late 80s at 4-5 years old, first BASIC and then straight to assembly. I think my first full game in assembly (which was pretty simple) I made it at around 9 years of age. 6502 assembly is very easy, you just really needed a good book, or a patient parent, and you were sent. The machine was grokkable.

To be fair this approach has many merits with the computers of the time. My main machines were a Commodore 64 (8-bit) and then the Amiga (16 bit models that were very popular by 1988~1991, although the later Amigas are 32-bit). Lots of people followed this progression.

At the time many of us saw programming as a more advanced, "cooler" activity than just playing. It was admired in the nerdy circles that you came up with some clever routine in assembly that did something seemingly impossible for the machine.

I think the form of BASIC that came with the Commodore 128 is ideal for kids to learn. It even came with an asm monitor runnable directly from the BASIC prompt.

If I have kids I think I will teach them this way, it's so effective.

Re:BASIC at 50 by Jtsummers on Monday April 07, 2014 @04:50PM (#7549384)
When I worked with high schoolers I liked to introduce them to python. The documentation, IMO, is clearly written and easily understood by programming novices. It's got OO, imperative and (limited) functional paradigms available. Graphics are fairly straightforward, for example the built in turtle graphics library. With IDLE it has a good, free, crossplatform IDE that's simple enough to not overwhelm new programmers, but provides every feature you really need. The REPL lets new programmers quickly explore different parts of the language and their programs. And for sticking with primarily imperative code (here I mean that the programmer isn't designing new objects, though they may be making use of existing ones), the syntax is ludicrously straightforward once they get past the mandatory whitespace and spaces versus tabs.
Re:BASIC at 50 by gamegoblin on Monday April 07, 2014 @06:02PM (#7549891)
I am 21, and when I was 12 I started coding with TI-BASIC, which is a (terrible, terrible) flavor of BASIC that comes on most TI graphing calculators. Most kids still have these calculators, so I imagine there are several learning on it.
Re:BASIC at 50 by vanderZwan on Tuesday April 08, 2014 @05:25AM (#7552303)
OTOH, thanks to those graphical calculators a number of those kids will jump straight to Z80 assembly to unlock the true power of their hardware. I still think this is one of the best programming tutorials I've ever read, since it managed to make assembly look easy:

http://www.ticalc.org/archives/files/fileinfo/268/26877.html

I had no trouble understanding pointers when I had a go at learning C++ later (although I'm sure the experience has left a number of other bad coding habits).

Re:BASIC at 50 by gamegoblin on Tuesday April 08, 2014 @10:55AM (#7553769)
Indeed. A friend of mine, calc84maniac (Brendan Fletcher) even made an on-calc assembler so you didn't need a computer to write assembly.

The folks over at http://cemetech.net/ are working on a new version of that tutorial you linked, IIRC.

Re:BASIC at 50 by analog31 on Monday April 07, 2014 @10:57PM (#7551201)
Do you think a graphing calculator is worth bothering with at all? I'm too old to have used one in school. The cynical side of me thinks that they only exist because they have a captive audience of school kids who are required to buy them.
Re:BASIC at 50 by sirsar on Monday April 07, 2014 @11:18PM (#7551248)
I have found that the TI-83 series handles numbers remarkably better than many programming languages and even software packages. The built-in functions are diverse, composable, and very powerful, yet simultaneously simple to use. When I want to answer e.g., a statistics question, it's a huge time saver to plug it into the graphing calculator rather than anything else. I often prefer it even to WolframAlpha. In that respect it's well worth the $100 or so it cost.
Re:BASIC at 50 by cmang on Monday April 07, 2014 @04:41PM (#7549327)
> I wonder what today's generation growing up on?

Immediately HTML+Javascript comes to mind, as a language interpreter that every kid's computer comes with.

I would guess that is the top "first language" for kids today, with things like C#, Python, Ruby, PHP and Java somewhere in 2nd place (as popular server side and classoom languages).

Re:BASIC at 50 by munificent on Monday April 07, 2014 @05:11PM (#7549524)
JavaScript is the BASIC of today.

Which means, by extension, many of today's JavaScript frameworks are the VisualBASIC of this generation: frameworks that let you use a "child's" language for grown-up work. The reactions to using JavaScript for real applications exactly parallels what people thought about VB when it came out.

Re:BASIC at 50 by JetSpiegel on Monday April 07, 2014 @07:29PM (#7550392)
This mirrors my experience.

Javascript is so basic (pun intended), it's not even considered a real language. Someone who tweaks Wordpress templates wouldn't consider himself a programmer.

Re:BASIC at 50 by wiremine on Monday April 07, 2014 @04:31PM (#7549262)
> I wonder what today's generation growing up on?

Take here to ask the same question.

What hooked me on BASIC was the graphic capabilities. It was relatively easy to create dumb little graphic programs: circles that changed colors and grew, etc.

Re:BASIC at 50 by anigbrowl on Monday April 07, 2014 @06:00PM (#7549865)
Unless you ended up using a Commodore 64 or one of its ancestors which was completely sprite-oriented and thus not much good for canvas-type programming. I've often thought my life might have been different if I had asked my parents to get me a Sinclair spectrum instead of relying on the fact that our school had Commodore computers to push them towards a Vic-20.
Re:BASIC at 50 by pvg on Monday April 07, 2014 @10:37PM (#7551130)
Sprites? Luxury! We went to bed hungry dreaming of a linear framebuffer while seven angry pixels fought viciously over a single colour bit, keeping us awake. On an Apple ][, that is.
Re:BASIC at 50 by fit2rule on Tuesday April 08, 2014 @03:47AM (#7551984)
>> I wonder what today's generation growing up on?

My kids are growing up on the same old 8-bit machines that I grew up on. After all: those old 8-bit machines still work just fine for the task of learning to write code.

Any reason not to still use old 8-bit machines to learn programming? I can't think of a single one.

Re:BASIC at 50 by DanBC on Tuesday April 08, 2014 @06:51AM (#7552564)
There was even a BASIC tailored for the Herculese graphics card (720x348 1 bit per pixel) which I used for simple fractals and other graphics noodling.
Re:BASIC at 50 by k-mcgrady on Monday April 07, 2014 @04:59PM (#7549446)
>> "I think there's a whole generation that grew up on BASIC. I wonder what today's generation growing up on?"

About 6 years ago when I was in high school we were using...Pascal! During that time I actually did some work experience with Borland (creators of Turbo Pascal) and they found it hilarious we were still using it.

Re:BASIC at 50 by voltagex_ on Monday April 07, 2014 @11:22PM (#7551265)
VB6 and Pascal chiming in here, too. I think I dropped that course after a while - I was doing it via distance education because my school didn't offer any programming classes. This was some time around 2008-9.
Re:BASIC at 50 by vivin on Monday April 07, 2014 @05:39PM (#7549723)
Ahh Borland! We used to use Borland C++ in high school (back in the late 90's).
Re:BASIC at 50 by aufreak3 on Monday April 07, 2014 @08:42PM (#7550694)
It was BASIC and assembly initially, on the zx spectrum (at a friend's). A gentleman introduced me to BASIC and showed me a loop with an "I = I + 1" which made me argue with him about how that cannot be true :) .... and then I suffered the permanent imperative head damage before waking up many years later.

Though the beginnig was with a blow to the head, I did enjoy the immediacy of BASIC.

(Edit: I had to change the variable to caps)

Re:BASIC at 50 by t__r on Tuesday April 08, 2014 @03:52AM (#7552012)
I too started with Basic. First steps on the Acorn Electron, then got an MSX and finally switched to a PC and used Q(uick)Basic. My ambitions ran ahead of my capabilities. Being fascinated by operating systems (I vividly remember tinkering with OS/2, Windows 95 Beta, DesqView/X, Linux 1.1.18) I wanted to write one on my own. The main aim was to have that magical thing called multitasking. I wrote a "kernel" in QBasic. Upon starting a new "process" it would:

- read in the text file of the new process, which was a specially programmed QBasic program that included predefined hooks to facilitate preemptive multitasking and that was capable of saving and loading its state (i.e. values of all variables).

- merge this text file with the text files of all other running processes, including the "kernel", and saving the new "system image" to disk.

- call the "save state" of all running processes

- exit from QBasic by running a batch file that would restart QBasic with the new system image, which would initiate by calling the "load state" of all processes.

It kind of worked :-) Such a pity I lost that code...

Re:BASIC at 50 by mathattack on Tuesday April 08, 2014 @03:15PM (#7555340)
Same, though lots of us wanted to skip Pascal and C. :-)

It's a strange language to celebrate in retrospect in that it lacks the street cred of both academics and hard core engineers. To your point, in a sense it's like remembering your first bike.

Of course the first mechanic of that first bike made his way to the Dartmouth presidency.

Re:BASIC at 50 by protomyth on Monday April 07, 2014 @05:04PM (#7549476)
> I wonder what today's generation growing up on?

Pretty much every 8-bit came with a BASIC[1]. I would imagine a lot of kids today don't program anything since it is much less accessible.

1) had to buy the cartridge for the Atari 8-bits

Re:BASIC at 50 by watmough on Monday April 07, 2014 @05:36PM (#7549700)
Yeah, similar experience here, but when every web browser (to some approximation) includes Javascript, you can hardly say that programming is inaccessible.

In most every possible way (except possibly writing files), Javascript simply wipes the floor with Basic.

Re:BASIC at 50 by anigbrowl on Monday April 07, 2014 @06:20PM (#7549992)
It's highly available but not accessible, ie immediately graspable by a new user. For example, most tutorials take the view that before you can write any JS you first have to know (or learn about) creating a basic web page. Of course, this is quite often what people want to do, but on the other hand they might be better off using node.js or some other hosted interpreter like http://math.chapman.edu/~jipsen/js/

I think there's a lot of value in letting people approach programming through doing very simple stuff such as automating calculations. Of course a potential downside to that, which was a big problem for Basic, is that this can get in the way of learning about program structure early on and encourages spaghetti code.

Re:BASIC at 50 by protomyth on Monday April 07, 2014 @06:25PM (#7550028)
Except the cost, no replacements for those cheap 8-bits such as the ZX-81, Vic 20, or Atari 400. Computer programming is less accessible than in the late 70's and early 80's.
Re:BASIC at 50 by morganherlocker on Monday April 07, 2014 @08:40PM (#7550689)
Codeacademy seems to be the way most of my friends are getting into programming. Since you code in a sort of virtual browser, there is almost zero barrier to entry. I have seen only one person go from this to real professional programming (out of ~20), so I do not know if it really is more accessible in the ways that count, but it has been an interesting trend anyway.
Re:BASIC at 50 by cmang on Tuesday April 08, 2014 @12:00AM (#7551360)
Android tablets? They are cheaper than the 8-bit micros of the 70s and 80s, outselling everything, and come with Javascript. The only problem is they don't usually come with much of a proper keyboard + text editor for editing code. So, a kid still has to take some initiative to get a bit of software before being able to actually code something. (Kind of lame, I hope that changes - it was nice being a kid when computers were programmable out of the box without requiring anything extra. Then again, we didn't have the internet back then, so getting new stuff into the computer wasn't as simple.)
Re:BASIC at 50 by DerekL on Tuesday April 08, 2014 @01:11AM (#7551526)
You know what's also cheaper than an 8-bit in the 80s? Full computers today. The cheapest Windows machines, desktop or laptop, are about $300–400, from Dell, for example. In 1984, a Commodore 64 was about $200, or $450 if you include one disk drive. But with inflation, that's $451 and $1016 respectively in today's dollars.

But you could get a ZX81 for only $25, which is $56 in today's dollars. But that's about the price of a Raspberry Pi.

Re:BASIC at 50 by protomyth on Tuesday April 08, 2014 @09:07AM (#7553102)
I don't buy the inflation argument because low income parent aren't going to spend the $400 where $100 was doable. Plus, we've spent decades telling everyone computers get cheaper every year which is bull.

I could get a ZX81 and Atari 400 in retail stores, the average non-tech parent has no hope of ordering a Raspberry Pi.

Re:BASIC at 50 by GFischer on Tuesday April 08, 2014 @09:12AM (#7553129)
"we've spent decades telling everyone computers get cheaper every year which is bull."

What? The above post just discredited that. Remember, you have to factor in inflation and equivalent purchasing power.

The fact about ordering a Raspberry Pi is more about distribution than price.

If you want to look at ZX81 equivalents, you have extremely cheap Android-powered devices. In my country (3rd world) you can get an awful Android tablet for U$ 50 (your ZX81 equivalent). Not to mention EVERY school-age child in my country owns a computer (because we bought into OLPC).

I agree that it's harder to learn programming on a tablet than on a ZX81 (which cheated by not including a display).

If you count a computer with no displa as an equivalent, you can buy a refurbished tower with no monitor for U$ 50 (and they are sold in stores here).

Re:BASIC at 50 by protomyth on Tuesday April 08, 2014 @09:55AM (#7553401)
"Remember, you have to factor in inflation and equivalent purchasing power."

When people talk about computers getting cheaper, particularly the car comparison that Bill Gates made, they don't factor in either. Low income families in 80s could come up with $100 easier than they can come up with $600 now. Non-techincal parent don't buy their kids refurbished and have no hope of getting a Raspberry Pi in a condition that their kids can learn to program on. OLPC is a government partnership program that has not been generally available in the US except as a 2 for 1.

Re:BASIC at 50 by notarockstar on Monday April 07, 2014 @05:00PM (#7549447)
Scratch.