Live data from Hacker News

The original ABC language, Python's predecessor (1991)

github.com

41–50 of 51 posts

Re: The original ABC language, Python's predecessor (1991)

#41
post #36

Earlier quoted context omitted.

Reminds me if tabloid language, were the translation would be : DISCOVER HOW TO words WITH document

DISCOVER THE SHOCKING TRUTH ABOUT HOW TO hello WITH name: PRINT "hello " + name

I think:

    DISCOVER THE SHOCKING TRUTH ABOUT HOW TO hello WITH name:
        YOU WON'T WANT TO MISS "hello " + name

Re: The original ABC language, Python's predecessor (1991)

#42
post #41
post #36

Earlier quoted context omitted.

DISCOVER THE SHOCKING TRUTH ABOUT HOW TO hello WITH name: PRINT "hello " + name

I think: DISCOVER THE SHOCKING TRUTH ABOUT HOW TO hello WITH name: YOU WON'T WANT TO MISS "hello " + name

I love programming in listicle:

HERE ARE THE TOP 10 fibbonacci_numbers:

YOU WON'T BELIEVE n := 6

Re: The original ABC language, Python's predecessor (1991)

#43
post #37
post #21

Earlier quoted context omitted.

C uses ^ for bitwise xor and a function for exponentiation, though.

No, C does not have an exponentiation operator! Possibly you meant "and not a function for exponentiation". I should have said "followed Fortran rather than BASIC".

I meant exactly what I said. C uses a function for exponentiation. Nothing that uses ^ for powers follows C's lead.

https://en.cppreference.com/w/c/numeric/math/pow.html

Re: The original ABC language, Python's predecessor (1991)

#44
post #43
post #37

Earlier quoted context omitted.

No, C does not have an exponentiation operator! Possibly you meant "and not a function for exponentiation". I should have said "followed Fortran rather than BASIC".

I meant exactly what I said. C uses a function for exponentiation. Nothing that uses ^ for powers follows C's lead. https://en.cppreference.com/w/c/numeric/math/pow.html

Oh, I interpreted "a function for exponentiation" as being part of a list of things C uses ^ for. It didn't even occur to me that the sentence had an alternative parsing where it was part of a list of things C uses. C does indeed use a function for exponentiation. And time flies like an arrow!

Re: The original ABC language, Python's predecessor (1991)

#45
post #2

Nice find. This looks like the best introduction to the language in the repo: https://raw.githubusercontent.com/gvanrossum/abc-unix/refs/h...

Wow 2 * 1000 without rounding errors, 40 years ago this must have been super impressive, since I find that quite a feat of today's python.

That was kind of par-for-the-course back then.

LISP had it, Smalltalk had it, Unix dc/bc had it.

Re: The original ABC language, Python's predecessor (1991)

#46
post #34
post #27

Earlier quoted context omitted.

Well, not as bad as something like public static function words(string $document): array { which some languages these days are coming up with.

While I agree, at least here every word, though is verbose, at least means something, whereas “HOW TO RETURN” carries no more meaning than “def”.

> public static function words(string $document): array {

>, though is verbose, at least means something

I disagree, it is hardly verbose. there can be further detailing of the input and return value of the function beyond a simple type. Java didn't go far enough, not by a long shot - we need hardcore painstaking, completely brutal typing. Such typing will be highly beneficial for software reliability - you're not against reliability are you?

Re: The original ABC language, Python's predecessor (1991)

#47
post #20
post #15

Earlier quoted context omitted.

> 2**1000 = 2^1000 The reason for using `**` is that `^` is widely used for bitwise exclusive-or. So commonly `2**1000 != 2^1000`!

I think Fortran used ** because EBCDIC didn't have ^ or uparrow. ABC and Python followed Fortran rather than C on this point. units(1) supports both.

BCD, actually, given that Fortran dates from the mid-1950s. EBCDIC only appeared more or less around Fortran IV, in the early 1960s. Many printers in those days had a 48-character chain/train. After upper-case letters, digits, and a few essential punctuation marks (like . and ,), you weren't left with many options. The 60-character set of PL/I was a luxury back then, let alone lower case.

Re: The original ABC language, Python's predecessor (1991)

#49
post #20

Earlier quoted context omitted.

I think Fortran used ** because EBCDIC didn't have ^ or uparrow. ABC and Python followed Fortran rather than C on this point. units(1) supports both.

BCD, actually, given that Fortran dates from the mid-1950s. EBCDIC only appeared more or less around Fortran IV, in the early 1960s. Many printers in those days had a 48-character chain/train. After upper-case letters, digits, and a few essential punctuation marks (like . and ,), you weren't left with many options. The 60-character set of PL/I was a luxury back then, let alone lower case.

Hmm, I guess you're right. Also EBCDIC does have ^ apparently, though not ↑: https://en.wikipedia.org/wiki/EBCDIC#Code_page_layout

But IBM's BCD character sets, including the 48-character ones you allude to, didn't: https://en.wikipedia.org/wiki/BCD_(character_encoding)#Examp... (though Honeywell's did)

There are a lot of decisions in Fortran that stem from the absence of useful characters. .LT., .LE., .EQ., .NE., .GT., and .GE. is another.

Re: The original ABC language, Python's predecessor (1991)

#50

I swear I remember using this. I even remember the syntax. I was able to compile it and just start writing in it. I have no idea how I know this syntax. Did early linux have this? Maybe netbsd? I actually found it. It was on simtel: https://archive.org/details/Simtel20_Sept92 I must have gotten it from there. I would routinely get any thing Walnut Creek would make. I also realized a couple years ago I could navigate…

Can you tell me about "Simtel"? I have never used a BBS but from looking at that ISO it was a collection of software downloaded from BBS' ?

FTP server, not BBS. You had to be on the Internet to access it.

https://en.wikipedia.org/wiki/Simtel

It was called SIMTEL20 for a while because it was hosted on a PDP-10 mainframe running the TOPS-20 operating system, but apparently it was hosted on a PDP-10 running ITS first:

> The archive was hosted initially on the MIT-MC PDP-10 running the Incompatible Timesharing System,[1] then TOPS-20, then FreeBSD servers

Post reply on HN