Hacker News new | comments | show | ask | jobs | submit login
I think (Algol) is richer, clearer and more expressive (than Go) (lua-users.org)
72 points by fogus on Nov 14, 2009 | hide | past | web | favorite | 20 comments

Interesting piece. Among other things, the origin of Common Lisp's infamous, love-it-or-hate-it LOOP macro is unmistakable here:

  # loop in 'for' mode
  for i from 1 to 10 do print(i) od
  # ...and in 'while' mode
  while i < 10 do print(i); i := i + 1; od
  # ...and in both!
  for i from 1 to 10 while checkWhetherCancelled() do print(i) od
  # ...just loop, no counter!
  to 10 do print("Ten times!") od
Personally, I love LOOP; it's just so damn flexible and intuitive, even if there is something a little illicit about it. But no question it's as un-Lispy as you can get. How fitting that it turns out to have been embedded Algol all along.

While I don't speak Algol-68, I find the arguments interesting and enlightening... except for this bit: "state-of-the-art in programming languages hasn't moved much in those 41 years." While this is true to some extent, as mainstream dynamically typed languages pick up features from Lisp, I'd say that Haskell has a lot of new ideas. (I haven't yet figured out if those ideas help write better software, but that's more my failing than Haskell's.)

Let me say this... there's a reason why ALGOL 68 is no longer used very much. At the time it was criticized for being horrendously complex, and there is some truth to this.

Notice that the email points out all the different things you can do with ALGOL 68 compared to Go. If we were to compare all programming languages this way, wouldn't C++ be the best language ever?

No, C++ lacks many things ... that's why I personally hate it ... the cost you pay for the feature creep is not worth it.

A good language is not a revolutionary one, indeed, but it's kind of depressing that the state of the art is the same as 30-40 years ago, and it sometimes seems that language-designers haven't learned anything.

There's nothing I hate more about a programming language than exceptions to rules. And Go has plenty of those. I understand the pragmatism, but if some people are unhappy with C++ or Java, why make the same mistakes when designing a new one?

"A good language is not a revolutionary one, indeed, but it's kind of depressing that the state of the art is the same as 30-40 years ago, and it sometimes seems that language-designers haven't learned anything."

I think it's just a sign that computer science is a maturing field. After all, I don't hear civil engineers complaining that the fundamental concepts of building a bridge haven't changed much in the last ~2000 years.

Yeah, i dont hear people blaming civil engineers because all the bridges that they build collapse spontaneously or which need to be replaced every 6 months or which work only with 5 wheel cars. 'Computer Science' is going backwards fast, and we all know it.

Backwards? Come on. Write a Parsec-based parser, build a GUI with Qt, make a web app with Rails or Clojure or whatever you like - then compare your experience to what it would have been 10 or 20 years ago.

From my POV, it's a sign that we are becoming more shallow.

re: Algol68 - try http://sourceforge.net/projects/algol68/files

The Algol68G interpreter has installers for for Windows, Fedora, Centos, RHEL, Ubuntu and Debian. And the source tarball will compile on Solaris, BSD and OSX etc.

Site also has stashed within the British DRA's (Defence Research Agency's) Algol68R compiler retooled to generate C. [as algol68toc] (DRA's compiler is actually written in Algol68!!)

Sample Algol68 source code can be found at http://rosettacode.org/wiki/Category:ALGOL_68

enjoy - N

This is silly. ALGOL did not have a garbage collector. Nor did it support threads as well as Go does. Nor did it have interfaces. I'd go on, but comparing Go to ALGOL 68 just isn't anything close to serious.

Maybe the features he highlighted are as important to some people as the features you highlight.

You mean programmers in 1968? Of course.

While the web seems to be alight with comparisons of Go to other languages (Python, Lisp, ...), what seems to make this post unique is the comparison of Go to a forty year old language in little common use today.

To me at least, this begs a question---where do the great trolls of the Internet go to brag about their exploits? I remember in the golden age of Slashdot one could read "TrollTalk" and see links to the best posts with the most comments trying to misguidedly correct the original troll, most mod points up or down, and so on. (I think it even had a scoring system and a best-of newsletter of sorts.) Where do the great trolls of today hang out and brag about their exploits?

I don't mean just the sort of mediocre trolls who might compare Go to Visual Basic or something, but the sort of highly specialised trolls who might start a fire storm by comparing it to Algol-68. Where does one look to find the Orson Welles of modern technology trolls? Has blogging killed the once fine art of trolling?

I had no idea how much of today's code carries ALGOL DNA.

Between Algol, Lisp and Prolog you've covered 95+% of all the 'DNA' in existence.

ALGOL invented most of the things you see in today's code. Loops, subroutines, and I believe dynamic allocation all came from ALGOL.

And the reality is that these things haven't really changed much. Most of the changes that modern languages bring are in the way of directives to the compiler/interpreter.

Loops, subroutines, and I believe dynamic allocation all came from ALGOL.

The initial release of Fortran had loops and subroutines. But I don't think even they invented those things.

I'm not sure about dynamic allocation.

Maybe it's just me but I personally find it funny, this was posted to the lua-users mailing list.

What's funny about it?

Perhaps because lua is obscure and aims to be innovative? I.E, pretty similar to Go.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact