| ▲ | breadwinner 6 days ago |
| I don't see any credit being given to Digital Equipment Corporation (DEC) upon whose work this is based [1] [2] [3]. The quotes below only talk about OS source code, but they found language interpreter source code as well, see register story. > "So, for a few years that is where I spent my time. I'd skip out on athletics and go down to this computer center. We were moving ahead very rapidly: BASIC, FORTRAN, LISP, PDP-10 machine language, digging out the operating system listings from the trash and studying those. Really not just banging away to find bugs like monkeys[laughs], but actually studying the code to see what was wrong." [4] > "While his parents were concerned with his slipping grades, there was no slowing him down. He and Bill would go “dumpster diving” in C-Cubed’s garbage to find discarded printouts with source code for the machine’s operating system" [1] https://en.wikipedia.org/wiki/BASIC-PLUS#Comparison_to_MS_BA... [2] https://everybasic.info/doku.php/basics/decbasic#influence_f... [4] https://americanhistory.si.edu/comphist/gates.htm [3] https://www.theregister.com/2000/06/29/bill_gates_roots/ [5] https://paulallen.com/Futurist/Microsoft.aspx |
|
| ▲ | ndiddy 6 days ago | parent | next [-] |
| The Microsoft BASIC language is similar to DEC BASIC, but the actual implementation is completely different. For example, DEC BASIC compiles the BASIC source code into bytecode as it's entered for faster execution, while Microsoft BASIC is a pure interpreter that simply interprets the source code tokens at runtime. You have to remember how different the memory-constrained 8-bit microcomputers were from a PDP-11. Even if Gates looked at the DEC BASIC source code, there wasn't much there that he could have used. |
|
| ▲ | bbanyc 6 days ago | parent | prev | next [-] |
| The most significant contribution that DEC BASIC made was the REPL-like "immediate mode" that lets you execute individual statements without having to RUN the whole program. It was copied by both Microsoft and almost every other BASIC implementation since. Being able to fiddle around with "PRINT 2+2" is so fundamental to the BASIC experience that it surprised me to learn that Kemeny & Kurtz didn't come up with it, DEC did. (It came from DEC's earlier language FOCAL, which had an "English-like" syntax and doesn't resemble BASIC in any other way, and probably ultimately from LISP.) |
| |
|
| ▲ | reaperducer 6 days ago | parent | prev | next [-] |
| digging out the operating system listings from the trash and studying those. A lot of us did the same thing in that era. It's surprising how much information can be learned from what others think is useless. Thank you SUNY New Paltz and the IBM submarine facility (no idea what it was called) for not securing your Dumpsters. It's how I learned computing before it was taught in schools. |
| |
| ▲ | breadwinner 6 days ago | parent [-] | | Back in those days, software was just an accessory to hardware, not something that was valuable and could be sold by itself. So they would not have thought to secure their dumpsters. Bill Gates played a significant role in jumpstarting the commercial software industry, especially with his "An Open Letter to Hobbyists" in 1976, which urged people to pay for software. | | |
|
|
| ▲ | LocalH 6 days ago | parent | prev | next [-] |
| A piece of software closely matching the interface of a different piece of software doesn't automatically make the former based on the latter, except in an abstract sense (in which almost all ideas are derivative in some ways, because everything builds on the shoulders of giants). What is this, the CP/M vs MS-DOS argument again? I'm not Gates' biggest fan in terms of his ruthless business acumen, but claims of plagiarism, however slight, need a bit of hard evidence to be anything more than a smear. |
| |
| ▲ | breadwinner 6 days ago | parent [-] | | If you look at the source code of a program, learn how it works, and then you make your own program with the same functionality, is your program "based on" the original, or is it independent work? | | |
| ▲ | LocalH 5 days ago | parent [-] | | If you make a program that uses the same syscall setup as another, but the code is different and not copied, is it "based on" the original, or independent work? |
|
|
|
| ▲ | dboreham 6 days ago | parent | prev | next [-] |
| > upon whose work this is based Erum, none of your references show this (or come remotely close). MS did base NT on DEC work, and settled a court case as a result. Perhaps you're thinking of that story? BASIC the language pre-dates the DEC implementation (it came from Dartmouth College), and nobody would reasonably think that seeing the code for a high level language BASIC interpreter implementation for Machine A, then writing an assembler implementation for Machine B means you "based it on their work". |
| |
| ▲ | monocasa 6 days ago | parent [-] | | MS BASIC is widely considered to have been based on the internal structure of DEC BASIC. | | |
| ▲ | whartung 6 days ago | parent | next [-] | | It may be widely considered, but that doesn't mean it's an accurate assertion. The internal structure of DEC BASIC PLUS is a far, far cry from what MS-BASIC (MSB) is. Outside of some shared syntax, the implementations are night and day. BASIC+ (B+) is compiled to p-code, not tokenized and then interpreted. Those are completely different runtime approaches. B+ has a raw text source that is edited and maintained by the runtime, MSB does not. After you hit ENTER on MSB, your "source code" is gone. It's converted, and not necessarily losslessly, into an internal tokenized form. That tokenized form is read and recreated into the source lines you see when you LIST the program. This scratch text file for the B+ program actually allows B+ to work in even more memory starved environments than MSB because the text is never fully loaded into RAM, so the bulk of RAM is compiled byte codes and data. You also don't have to "pay" for having extra spaces in your code, as the raw text does not impact that actual runtime size in contrast to MSB tokenized form. B+, being compiled, supported much different styles of things like loops and if statements. 10 ODDSUM=ODDSUM + A(I) IF A(I) MOD 2 = 0 FOR I = 1 TO 10
MS-BASIC can not handle that properly with it tokenizer based system.On the surface, they look similar with their interactive development environment. Internally, it was a completely different story. | |
| ▲ | leoc 6 days ago | parent | prev [-] | | Right, though there's two or three different questions here: whether DEC BASIC influenced MS BASIC, whether MS should have acknowledged that today, and whether DEC BASIC's influence on MS BASIC amounted to a copyright violation. On the last question, my guess would be that there's at least a reasonable argument that MS' use of the DEC BASIC code was transformative enough to get it off the hook, but IANAL. To the extent that it is in a grey area, honestly that's probably a good reason for MS to keep a diplomatic silence about any possible DEC influence today. | | |
| ▲ | reaperducer 6 days ago | parent [-] | | there's two or three different questions here Only if you weren't there. You won't find the answers to everything online. | | |
| ▲ | leoc 6 days ago | parent [-] | | But that doesn't mean that there aren't two or three questions, just that there there are answers to which I, and most people here, aren't privy. And, sure, that wouldn't come as a suprise. |
|
|
|
|
|
| ▲ | phkahler 6 days ago | parent | prev | next [-] |
| In that Basic 80 link (number 2) I would have expected another variant to be listed: Microsoft Basic for the Interact Home Computer which used an 8080 processor. BTW I still have my Interact in its box and the MS Basic on tape and some other stuff. Looking for a museum or appropriate place to send it. |
| |
| ▲ | wvenable 6 days ago | parent | next [-] | | I saw an ebay listing for one of these Interact computers today and spent a little time learning about it on YouTube. It's so strange to see your post on the same day about a computer I didn't know existed yesterday. | |
| ▲ | 010101010101 6 days ago | parent | prev | next [-] | | I would try to computer history museum in Mountain View - they don’t accept everything, but if they want it it’d go to a super cool spot: https://computerhistory.org/acquisitions/ | |
| ▲ | criddell 6 days ago | parent | prev [-] | | Chances are the tape is no longer readable. |
|
|
| ▲ | DonHopkins 6 days ago | parent | prev [-] |
| https://news.ycombinator.com/item?id=17998940 DonHopkins on Sept 16, 2018 | parent | prev | next [–] Speaking of weird BASIC features, does anyone know why DECSYSTEM 20's BASIC had a "LISTREVERSE" command? Yes, it actually did exactly what it sounds like! Chalk one up for DEC and BASIC. What other programming languages support that feature, huh? DECSYSTEM 20 BASIC User's Guide: LISTREVERSE command
LISTREVERSE
LISTNHREVERSE
LISTREVERSE and LISTNHREVERSE print the contents of the
user's memory area in order of descending line numbers.
LISTREVERSE precedes the output with a heading,
LISTNHREVERSE eliminates the heading.
LISTREVERSE
EQUIV 10:53 13-NOV-75
40 END
35 PRINT "THE EQUIVALENT CURRENT IS",I, " AMPERES"
25 I=E1/R
10 INPUT R
5 INPUT E1
READY
http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/D... |
| |
| ▲ | rootbear 6 days ago | parent | next [-] | | All I can think of is that it was a way to look at the end of a long program which wouldn't all fit on a display. Predating, I suppose, the 'tail' program, or whatever the DECSYSTEM 20 equivalent was. | | |
| ▲ | leoc 6 days ago | parent [-] | | I assume that it would be clearly useful if your terminal was a slow paper teleprinter. Once you got used to reading listings with the lines in reverse order, which shouldn't really be very difficult, LISTREVERSE would let you start reading from wherever you had got up to in your partly-completed listing, then cancel whenever you'd got enough context, instead of having to guess in advance how far up the program you'd want to look. You could even then print out the same range of lines again unreversed, if you wanted. |
| |
| ▲ | reaperducer 6 days ago | parent | prev [-] | | When you want to see the beginning of the program, but the terminal you're using is too laggy to send ^S in time to pause the listing? | | |
| ▲ | JdeBP 6 days ago | parent [-] | | Unlikely. LIST and LISTNH took an optional line number range. |
|
|