Live data from Hacker News

BASIC turns 60

arstechnica.com

121–130 of 144 posts

Re: BASIC turns 60

#121

An interesting aspect of this is why there wasn't a BASIC on the Mac early on (save for an text-based version offering from Microsoft which barely allowed writing to the screen): https://www.folklore.org/MacBasic.html

Microsoft didn't understand GUIs yet. Amiga BASIC was also written by Microsoft and the GUI support is also limited. Apple didn't create a BASIC for the Mac because was into Pascal and had used it for the Lisa OS and apps. Much of the Lisa code was reused in the Mac OS.

I guess you didn't read the link?

>Donn was making good progress and looked to be on track to ship in early 1985; we were excited to show the world what Basic should really look like on the Macintosh.

>He knew that Donn's Basic was way ahead of Microsoft's, so, as a condition for agreeing to renew Applesoft, he demanded that Apple abandon MacBasic, buying it from Apple for the price of $1, and then burying it.

I bought Microsoft's BASIC for the Mac, and it was a waste of money, and I'd've much rather had Apple's based on my reading of the books which were published about it despite it not having been released save as a beta:

https://apple.fandom.com/wiki/MacBASIC#Books

Re: BASIC turns 60

#122

Earlier quoted context omitted.

Microsoft didn't understand GUIs yet. Amiga BASIC was also written by Microsoft and the GUI support is also limited. Apple didn't create a BASIC for the Mac because was into Pascal and had used it for the Lisa OS and apps. Much of the Lisa code was reused in the Mac OS.

I guess you didn't read the link? >Donn was making good progress and looked to be on track to ship in early 1985; we were excited to show the world what Basic should really look like on the Macintosh. >He knew that Donn's Basic was way ahead of Microsoft's, so, as a condition for agreeing to renew Applesoft, he demanded that Apple abandon MacBasic, buying it from Apple for the price of $1, and then burying it. I boug…

I read every article on that website a number of years ago but I forgot that story since.

Re: BASIC turns 60

#123

Earlier quoted context omitted.

In the late 1980's I rewrote a very large pension actuarial forecasting system, written in Fortran, to Basic. I'm very not sure, so I'm guessing that the system had several hundred thousand LOC. The idea was to stop spending a fortune on mainframe time and run pensions valuations on a microcomputer. The Fortran system, running on a mainframe, might take 60s to run a valuation. The same valuation would take a full day…

I am curious how do you write software that takes a day to run. Today I can write line by line, and because computers are so fast, even "long" tasks complete/crash fast enough for me to iterate. I assume you had test cases but I still want to know.

Do you mean how do you write something that takes that long at all? By having data that takes that long to process.

If you mean the actual accomplishment of it in general:

1. Get a subset of data that lets you create a representative set of test cases. You can validate your code in minutes, not hours or days. Then you run it on the full thing once you've seen that the 5-minute job works as expected.

2. Sacrifice a goat, pray to hopefully the right god, and hope it wasn't their son from a goat mother that you sacrificed.

3. Spend a lot more time thinking before doing.

4. Read a lot.

(1) works if you can run the task on your own system or have access to a system to run it on. This is the best option, or some variation on it.

(2) is unfortunately what happens a lot, they usually sacrifice the wrong goat and end up cursed instead of blessed.

(3) and (4) are the next best option after (1), and should be done alongside (1) anyways. The system I'm on now is legacy and being upgraded. The test bed is available to me maybe 1 hour a week right now because everyone needs it and everything is urgent, apparently. I spent a lot of time reading the code, the documentation, and thinking about how to structure my solution to a problem our users have. My first pass validated the solution concept and took 3 days or so of thinking hard about the problem and 5 minutes of coding. The second pass is more robust (error handling) that took several more days of reading and thinking to identify what error cases could even occur, and two hours of coding.

Yeah, if I could run it locally I probably could have finished it all in those first 3 days (honestly my 5 minutes of coding was figured out by the end of day 1, but I wasn't certain since I was new to the codebase). But when that's not an option, you spend more time thinking about the problem you're solving and the problems your solution will generate so you solve it before you run it in the first place.

Re: BASIC turns 60

#124

Earlier quoted context omitted.

I don’t understand why it isn’t taught to kids instead of scratch. Visual coding is my nemesis. I just disagree with it in principle. It makes even the simplest things complicated and virtually impossible to debug. BASIC was the first computer language I learned. It’s so basic I just taught it to myself from the help section when I was 12, without any exceptional ability on my part.

For kids who grew up with smartphones and other visual devices it's extremely hard to build something "sexy" in the first few weeks with basic. You need some visual thing for the appeal.

I think aiming for visual appeal is a dead end or at least a false dawn.

Instead aiming for that Frankenstein moment of excitement ‘holy shit this thing is kinda alive!’ Is where you want to get to.

I introduced a friend’s kid to basic the other day. She’s about 9 and was already getting the idea of an input, making some decisions and writing an output. Even with that just being text she was excited, and was already having her own ideas what to do next.

Re: BASIC turns 60

#125

Earlier quoted context omitted.

I don’t understand why it isn’t taught to kids instead of scratch. Visual coding is my nemesis. I just disagree with it in principle. It makes even the simplest things complicated and virtually impossible to debug. BASIC was the first computer language I learned. It’s so basic I just taught it to myself from the help section when I was 12, without any exceptional ability on my part.

> don’t understand why it isn’t taught to kids instead of scratch. Because there is no such thing as a syntax error in scratch. 10 year olds are not great at typing, spelling, or paying attention to the small details. Scratch rules out a whole class of bugs and allows the kids to jump right into solving the interesting problems.

I think we’re making things much too easy. Kids like challenges. my 6 year old can spell plenty of words. A 9 year old can definitely memorise PRINT, GOTO, INPUT and SLEEP.

Re: BASIC turns 60

#126
post #2

I distinctly remember being taught BASIC in school in the 1980s and quickly thinking “this is awfully basic” and not wanting much to do with it. Now I don’t know if my childhood evaluation was correct but I do wonder: Were there many complex programs written in BASIC? Or was it largely a teaching tool?

I wrote a document management system in VBA for Word for a law firm I worked for in the late 1990s. Created a unique filename for new documents, stored and retrieved, maintained an index of titles, etc. We replaced it a year later with a much better system, but it was a valuable stopgap for something we desperately needed.

Re: BASIC turns 60

#128

Earlier quoted context omitted.

> don’t understand why it isn’t taught to kids instead of scratch. Because there is no such thing as a syntax error in scratch. 10 year olds are not great at typing, spelling, or paying attention to the small details. Scratch rules out a whole class of bugs and allows the kids to jump right into solving the interesting problems.

I think we’re making things much too easy. Kids like challenges. my 6 year old can spell plenty of words. A 9 year old can definitely memorise PRINT, GOTO, INPUT and SLEEP.

The problems they solve sure aren't easy. I myself found it challenging to build a robust platformer character with wall jumping and enemy collisions and things. Zac and I both had quite different solutions, and Zac did some further research on youtube for a much better solution that both of us had.

Re: BASIC turns 60

#129
post #65

Earlier quoted context omitted.

> Had some similar capabilities as COBOL without the IBM tax. COBOL never had an "IBM tax", because almost every non-IBM vendor had a COBOL compiler. If you didn't want your COBOL from IBM, you could buy it from DEC, HP, Wang, Unisys, NCR, Honeywell, Microsoft, Micro Focus, Watcom... That said, if your COBOL was running on an IBM platform, you often were using lots of IBM proprietary features (e.g. CICS) which made i…

A free copy of DEC's original COBOL compiler for the VAX can be found in the VMS 1.0 image at this site: https://www.wherry.com/gadgets/retrocomputing/vax-simh.html Modern GNU COBOL can be found at this site: https://www.gnu.org/software/gnucobol/ A great deal of the COBOL that we use relies on OS2200 DMS, originally from Univac.

> A free copy of DEC's original COBOL compiler for the VAX can be found in the VMS 1.0 image at this site:

Where? I don't see any VMS 1.0 image linked to on that page.

Instead I see instructions to join the HP OpenVMS hobbyist program, which no longer exists, in order to install OpenVMS 7.3 on an emulated MicroVAX.

There is no longer any hobbyist program offering legal access to VMS for VAX. HP's hobbyist program was terminated and replaced by VSI's, which never included VAX (and more recently they appear to have dropped Alpha and Itanium, making it x86 only). Licenses to legally run VMS for VAX are very limited (e.g. maybe buy a used MicroVAX or VAXstation which comes with a VMS license)

Re: BASIC turns 60

#130

Earlier quoted context omitted.

The BASIC version that run BBC Micro had proper functions and subroutines with local variables (I think it even had recursion, but I'm not 100% sure). AFAIK, all Microsoft BASIC (of which AppleSoft BASIC was a descendent) versions did not have the above until QBasic.

It did have recursion. >LIST 10PRINT FNFACT(6) 20END 30DEFFNFACT(N) 40IF N=1 THEN =1 ELSE =N*FNFACT(N-1) >RUN 720

Thanks for letting me know, BBC BASIC was indeed advanced for the period.
Post reply on HN