Wednesday, 30 April 2014

In depth: Back to BASICs: the king of computer code at 50

In depth: Back to BASICs: the king of computer code at 50

The History of BASIC


Back in 1964, computers were enormous, expensive, and hidden away in air-conditioned rooms. And that was just fine, because they were also horribly complex: only scientists, mathematicians and highly trained technicians had any idea how to use them.


But then John Kemeny and Thomas Kurtz, two professors at Dartmouth College, New Hampshire, realised that it didn't have to be this way. That being able to write software could have real value for all kinds of people, if only there was a way to do it.


So they designed a new programming language, BASIC (Beginners All-purpose Symbolic Instruction Code), with general users in mind. It was small, simple, interactive and easy for just about anyone to learn.


Their students worked on the project, guided by Kemeny and Kurtz. It all went well, and the first ever BASIC language program was successfully executed at Dartmouth College on May 1st, 1964.


BASIC 50


That could have been it. BASIC might have stayed at Dartmouth, become outdated, shelved and forgotten.


But instead, it would go on to become the most widespread and popular programming language in the world.


The Early Days


Kemeny and Kurtz were years ahead of their time in realising the value of bringing programming to the masses.


Their really smart move came next, though, when they just gave it away.


Computer manufacturers were already looking for ways to make their systems more usable, and bundling BASIC proved a quick, easy and cheap way to do it. Top manufacturers like Hewlett-Packard, DEC and Data General were soon offering BASIC.


This early success soon began to snowball. More computers with BASIC meant more programmers becoming familiar with the language, driving demand for more computers to support BASIC.


PDP


Even better, there was increased use of these computers by students. A whole generation was beginning to realise that programming wasn't just work: it could be fun. Most famously, Bill Gates, whose computing life began when he devised a BASIC program to play noughts and crosses.


The hardware was still primitive, of course. In particular, users interacted with BASIC via teletypes, rather than screens. Everything had to be printed out, and this had some unexpected results. Check a 1964 BASIC manual for the maximum program length, for instance, and you'd be told "about two feet of teletype paper filled with BASIC statements is about it".


This technology wasn't very accessible, either. BASIC had quickly become popular, but was still only available on expensive mini and mainframe computers, so if you weren't a student - or employed by a big business - you would probably never even know it existed.


But then, in 1974, the Intel 8080 arrived. While earlier hobbyist CPUs were best described as "feeble", the 8080 was a real leap forward, around ten times faster than its predecessors, and enough to power a genuinely useful home computer.


Basic 50


Finally, this all came together in the Altair 8800. This early computer was powerful, for its time. It had all kinds of hardware options. And it came with an Altair BASIC interpreter, developed by Bill Gates, Paul Allen and Monte Davidoff of Microsoft. The world was about to change.


BASIC everywhere


Home computers were soon selling in huge numbers. There would be many different models and variations, but there was one very common feature: almost all of them had BASIC as the programming language of choice.


The TRS-80 (Tandy/Radio Shack, Z-80 CPU) arrived in 1977, with its own custom BASIC in a ROM.


Commodore used Microsoft-sourced BASIC in the Pet, the Commodore 64, even the early Amigas.


Then there was the Amstrad CPC, the Acorn Atom, various Atari models, the Oric, and everything Sinclair ever produced (ZX80, ZX81, ZX Spectrum, Sinclair QL). Even Apple joined in with its own Applesoft BASIC, supplied by Microsoft and included with the Apple II computers.


BASIC began to be used in schools everywhere. Computers like the Research Machines 380Z and BBC Micro meant that students could start learning a few programming basics, without any need for access to some massive mainframe. And the emphasis on education made it much easier to persuade their parents to buy a computer for home use (even if was mostly used to play Frogger, Football Manager and Space Invaders).


BASIC 50


BASIC's popularity soared. Early computer magazines would publish tips, tutorials, even the source code to entire programs. Later they would have cassette tapes attached to the front with even more freebies.


But the real tipping point came in 1981, with the release of the IBM PC. It came with BASIC both on ROM (BASICA) and disk (GW_BASIC). Massively popular, it lead to MS-DOS becoming the standard operating system for businesses (and many home users) just about everywhere. And with Microsoft including a version of BASIC with DOS, and Windows, right up to Windows Me, the language would be accessible to everyone for the next 20 years.


Standards? What standards?


BASIC was clearly a massive success, spreading much further than creators Kemeny and Kurtz could ever have believed. But this also lead to problems, which began to undermine the whole language.


The original decision to effectively give BASIC away, for instance, was certainly a marketing masterstroke. But it also meant that the language no longer had a clear direction. Instead, a host of different companies produced their own custom versions, often very cut down due to the hardware limitations of the time. Some were very poor, and if you wrote a program for one BASIC, there was no guarantee it would run on another.


Expectations were changing, too. Early BASIC games were horribly limited; "Star Trek" was played in text mode, with stars represented by a *, Klingon ships with +K+ and star bases with <*>. But people accepted this because they only had a teletype to work with, and in those early they were amazed the program worked at all.


Star Trek BASIC


Fast-forward 10-15 years and it was very different. Computer games now had graphics (if blocky), sounds and music. There was no chance that the average person could produce anything to compete. And so people became more interested in finding and using third-party software than writing entire programs themselves.


BASIC wasn't always popular in the academic and professional world, either. Edsger W. Dijkstra, Professor of Computer Science at University of Virginia famously wrote: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.


But while this was a little harsh - to put it mildly - even Kemeny and Kurtz weren't happy with the situation. They felt that the some of the cut-down interpreted versions had strayed far from their original vision. In 1983 they decided to fight back by founding their own company, True BASIC, to show the world how the language should be developed. It was a little too late, but the company is still around today.


Updating BASIC


With its attention focused on MS-DOS, Microsoft were slow to see the problems with BASIC, and that a core language devised in 1964 just wasn't up to the challenges of 80's computing.


This started to change in 1985, with the first release of QuickBASIC. The new product extended GW-BASIC with more graphics support, better structuring, and - at last - a compiler. Developers could now produce EXE files, greatly improving performance.


The real breakthrough came in 1991, though, with the first release of Visual BASIC (VB). The old text-based approach had finally disappeared, and users could instead create Windows GUIs just by dragging and dropping objects onto a "form", setting their properties, and writing code for them.


Visual BASIC


This was a revolution for most BASIC programmers. They didn't have to create their own custom GUI any more, as VB would do it for them. Extensions to the language, access to the Windows API and a range of custom add-ons and extensions made the language more powerful than ever before.


VB was a massive success, even in the professional programming world (Visual Basic experience became a genuinely marketable skill), but it still had issues. In particular, the language made it difficult to use more advanced Windows features (multi-threading, for instance), and a lack of support for object-oriented programming meant that many still didn't take it seriously.


Microsoft hadn't yet finished, however, and its final move came in 2001, with the release of Visual Basic.NET. This caused some resentment by changing many language constructs, dropping others entirely, and overall becoming much more difficult to learn. But a new object-oriented approach and easy access to .NET libraries meant that Visual Basic was finally competitive with other languages, and it's still available today as a part of Microsoft's Visual Studio.


Where next?


BASIC had an amazing influence in its early years, and played a key part in bringing easy, affordable home computing to the masses.


It couldn't maintain that level of success, of course, and that's really no surprise. The problem that BASIC was designed to solve - the need to bring simpler programming tools to the masses - just doesn't exist any more.


Small BASIC


This isn't the end of the story, though. BASIC is still a great language for developing all kinds of software. Malwarebytes Anti-Malware, HiJackThis, PDFCreator, photo editor PhotoDemon and business CRM Vtiger are all popular and very capable programs - but they were all created in VB6. It may be 16 years old, but it's still influential, even today.


You're just a beginner Microsoft has tried to recapture the original spirit of the language with Small Basic. Aimed at children, it's very simple - with only 14 keywords - yet can still be used to, say, build a Tetris game, or download and display an up-to-date weather map.


If you're nostalgic for some early flavour of BASIC, there's a good chance it's available somewhere. There are multiple BBC BASIC versions, a GW-BASIC emulator, an extended Sinclair BASIC, a 64-bit QBasic, the QuickBASIC-like FreeBASIC, even a TinyBASIC for the Raspberry Pi.


Or, if you need something more professional, the free Visual Studio Express provides all the tools you need to build everything from a simple desktop program to a shiny new Windows Store App for Windows 8.1.


BASIC has had more than its share of criticism. But even after 50 years it's still here, with something to offer everyone - and it's not going away any time soon.
















No comments:

Post a Comment