Doesn't seem like a fair comparison of the language implementations, since Python is running on modern hardware, and BASIC isn't. It'd be more interesting to run a BASIC implementation from 80s on a modern CPU and compare that with Python today.
I'd be curious, also, to take an benchmark of a program written in C in 1980, and compare it to Python today. I wouldn't be surprised if the slow Python version ran faster, simply because of the faster CPU. This would completely contradict the author's point.
Yeah this article really says nothing interesting about the languages. The BASIC timings are from 48K Atari 800 system and the Python timing are from some unknown modern system. Not sure what the point is...
The point is (in case that wasn't obvious, apparently not) that the real world execution time of that program has improved more than 5 orders of magnitude (decimal ones at that).
So stuff that we'd be waiting for for a couple of days in the 80's can be done in a few seconds now. Of course that also means that we're generally much less aware of where the inefficiencies are until something really grinds to a halt but still, it's absolutely amazing to me even today that digital circuits can run at the speeds they have and that we can afford to run pretty numerically intensive stuff in interpreted languages and not bat an eye when the answer pops up in under a second.
2 MHz looked pretty good back in the day.
The computer I worked with most as a kid (besides the TRS-80 and the 'Dragon') was a BBC micro, it had an expansion bus for - no kidding - a second 6502 so you could have true parallelism. That meant you only had to wait for a day instead of two if you were taxing the machine and had something that was compute bound.
I think it's less about the implementations themselves, and more to show how little we need to worry about performance these days in comparison. Even our "slow" languages are tens of thousands times faster than anything used back in the 1980s.
In the first paragraph, the writer links to an earlier blog post[1] which brings up the point that, though there's a lot of debate about the merits of different programming languages, things are fast enough that you really don't have to worry about that. Even the slowest languages are more than fast enough for most purposes.
Guess I'll have to get my CoCo 3 back up and running so I can see how long a BASIC09 version of the sieve takes. That would be running on a (NTSC color burst frequency / 2) MHz 6809 rather than the Atari's 6502, and, unlike the usual "gutter BASICs" of the era, has integer and Boolean types; also, although you can use BASIC09 interactively, the code is compiled to an "I-code" virtual machine language to be run.
Ironically, The Fine Article from which the BASIC times are taken is one reviewing Action!, a compiler/IDE of sorts for a structured language for the Atari. It has an Action! version of the sieve, and cites a run time of 1.5 seconds, rather faster than 324 seconds the Atari BASIC version takes.
Yes, Moore's Law and all that... but there was more to computing in those days than gutter BASIC.
Basic09? Wow, that's the luxury version. The BASIC that came with the regular CoCo was simply microsoft basic ported to the 6809, nothing so nice as compilation.
6 comments
[ 3.1 ms ] story [ 31.4 ms ] threadI'd be curious, also, to take an benchmark of a program written in C in 1980, and compare it to Python today. I wouldn't be surprised if the slow Python version ran faster, simply because of the faster CPU. This would completely contradict the author's point.
So stuff that we'd be waiting for for a couple of days in the 80's can be done in a few seconds now. Of course that also means that we're generally much less aware of where the inefficiencies are until something really grinds to a halt but still, it's absolutely amazing to me even today that digital circuits can run at the speeds they have and that we can afford to run pretty numerically intensive stuff in interpreted languages and not bat an eye when the answer pops up in under a second.
2 MHz looked pretty good back in the day.
The computer I worked with most as a kid (besides the TRS-80 and the 'Dragon') was a BBC micro, it had an expansion bus for - no kidding - a second 6502 so you could have true parallelism. That meant you only had to wait for a day instead of two if you were taxing the machine and had something that was compute bound.
In the first paragraph, the writer links to an earlier blog post[1] which brings up the point that, though there's a lot of debate about the merits of different programming languages, things are fast enough that you really don't have to worry about that. Even the slowest languages are more than fast enough for most purposes.
[1] http://prog21.dadgum.com/51.html
Ironically, The Fine Article from which the BASIC times are taken is one reviewing Action!, a compiler/IDE of sorts for a structured language for the Atari. It has an Action! version of the sieve, and cites a run time of 1.5 seconds, rather faster than 324 seconds the Atari BASIC version takes.
Yes, Moore's Law and all that... but there was more to computing in those days than gutter BASIC.