Hacker News new | ask | show | jobs
by reikonomusha 2534 days ago
Was Pascal a failure? Lots of programs were written in it. It had killer apps. Lots of programmers learned it. It made its way into the education system.

Lisp might be viewed similarly. It’s not a fad and big companies don’t use it widely, but does that make it a failure?

Google uses Common Lisp. (They even host a style guide!) So does Rigetti Computing making quantum computers. So does/did DWave, another quantum company. There are a handful of companies that have existed between 15–30 years developing Lisp compilers (LispWorks, Franz Inc, etc). Lisp also seems to be making HN front page at least once a week.

3 comments

Pascal had two killer apps.

First, it was used for teaching, like Java today. So you had a wide base of programmers knowing it.

Second, there was Turbo Pascal which made it an extremely popular language on PC platform (also used to have significant presence on Mac, but I'm less familiar there.

Three: Delphi. Programming has never been as fun as with Delphi.
Pascal was also used to program Mac OS.
Classic MacOS, it should be noted, not the recent rebranding of OSX.
> Google uses Common Lisp

Which projects at Google use Common Lisp? I didn't even know it was an approved language.

Google acquired a large Common Lisp codebase when they bought ITA. I doubt they would have chosen Common Lisp if they had started from scratch.

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

But they also chose to not rewrite it, and double down in investing in it.
They tried to rewrite it, reportedly: https://twitter.com/fare/status/1112477563056779265?s=20
Ironically, Yahoo didn't re-write Viaweb's lisp for a decade either after they bought it. (Ironic because HN.)

But that doesn't make Yahoo a lisp company.

As a side note: Pascal was not a failure. Currently it is incarnated as Go, that has a clear succession line to Oberon, Modula-2, and Pascal.

(Free Pascal is also alive and kicking.)

Go is direct successor of a long line of alternative C evolution (Bell Labs didn't stop evolving the language or experimenting with new ones, and Go pretty much initially was a syhtax sugar for Plan9 C and its runtime and style)
Then it's a case of convergent evolution then, because coroutines were even a part of Modula-2, and the type of class / interface approach that Go sports looks very much like Oberon's.

I won't wonder if the ideas were circulating between Oberon and Plan 9 communities back in the day.

Griesemer, one of the three original Golang developers, did his dissertation on extending Oberon to, I think, massively parallel computers. Golang has a bunch of constructs that weren't in Plan 9 C; some of the syntactic sugar comes arguably from Oberon, but most of the semantics come from Newsqueak and Alef.
IIRC after Alef went "bust" due to disagreements about GC, its thread semantics got ported to C as libthread, as well as used in Limbo. Then Go kinda resurrected it but with GC?
The end of the line from Plan 9, which tends to be ignored, was Inferno, with a GC userspace implemented in Limbo.

Go at its base is a fusion of Limbo and Oberon-2.

Yeah, I should have mentioned Limbo. But it's been so long since I looked at it that I don't remember what its semantics are like.
Go uses Oberon-2 syntax for methods and unsafe is a kind of subset from SYSTEM.
In that case we could just say: "Pascal was not a failure; currently it is incarnated as C". :)