Hacker Newsnew | past | comments | ask | show | jobs | submit | donatj's commentslogin

There's a comic of this that circulated a number of years ago that I thoroughly enjoyed.

https://imgur.com/gallery/last-question-9KWrH


Ah:

    Content Not Available
    Content not available in your region.
    Learn more about Imgur access in the United Kingdom


This is not an alternative source for the comic, it's a whole different comic. Cool!

Thank you ...

I like the article overall but the continually repeated 'Language X didn't have that until <YEAR>' is very grating after the first ten or so.

I also wish there were concrete code examples. Show me what you are talking about rather than just telling me how great it is. Put some side by side comparisons!


You could do the same in reverse as well. Many of the features listed in the first paragraph existed before in other languages, though probably not all of them in a single language. In fact, I believe the design process (sensibly) favored best practices of existing languages rather than completely new and unproven mechanisms.

So there was considerable borrowing from PASCAL, CLU, MODULA(-2), CSP. It's possible that the elaborate system for specifying machine representations of numbers was truly novel, but I'm not sure how much of a success that was.


Ada has borrowed nothing from Modula.

There are features common to Ada and Modula, but those have been taken by both languages from Xerox Mesa.

The first version of Modula was designed with the explicit goal of making a simple small language that provided a part of the features of Xerox Mesa (including modules), after Wirth had spent a sabbatical year at Xerox.

Nowadays Modula and its descendants are better known than Mesa, because Wirth and others have written some good books about it and because Modula-2 was briefly widely available for some microcomputers. Many decades ago, I had a pair of UVPROM memories (i.e. for a 16-bit data bus) that contained a Modula-2 compiler for Motorola MC68000 CPUs, so I could use a computer with such a CPU for programming in Modula-2 in the same manner how many early PCs could be used with their built-in BASIC interpreter. However, after switching to an IBM PC/AT compatible PC, I have not used the language again.

However, Xerox Mesa was a much superior language and its importance in the history of programming languages is much greater than that of Modula and its derivatives.

Ada has taken a few features from Pascal, but while those features were first implemented in Pascal, they had been proposed much earlier by others, e.g. the enumerated types of Pascal and Ada had been first proposed by Hoare in 1965.

When CLU is mentioned, usually Alphard must also be mentioned, as those were 2 quasi-simultaneous projects at different universities that had the purpose of developing programming languages with abstract data types. Many features have appeared first in one of those languages and then they have been introduced in the other after a short delay. Among the features of modern programming languages that come from CLU and Alphard are for-each loops and iterators.


Mesa was my first language that I used out of Collage for the seven years that I worked on the Xerox Star document editor. The job where I learned more in 6 months than I did in 4 years of collage or my entire working career afterwords.

It was by far the best language that I used for my entire working career where I had to endure such languages as PL/1 (and PL/S), C, C++, Java, JavaScript and PHP. While Java as a lang was not too bad it still paled in features and usability compared to MESA and it too was influenced by MESA.

But as was true at Xerox was it was the complete network that was revolutionary at the time in the early 80’s. The fact that I could source debug any machine remotely on the corporate would wide network of over 5000 machine and that the source code would be automatically done loaded to my machine (mean I could easily debug from any nearby random machine) was just something I could never “easily’ do elsewhere.

MESA was missing a few things (which CEDAR solved and used generally within only Xerox PARC partially because at the time it really only ran on Dorado class machine) such as Garbage collection and in the case of Star it would have been much better if the language supported OOP. For Star we had had a system called Traits to support objects but it had some serious issues IMHO (which would be fodder for a separate post.)

When talking about Mesa you also need to talk about Tajo, its development environment built onto- of the OS Pilot (Star also used Pilot.) But systems also supported a mouse and a large bitmapped monitor and had overlapping windows (although most of Star have automatic non overlapping windows that was a UI usability decision.)

There is also more because the network was very important. Print severs, file servers, mail servers, cloudless store for all of Star’s user files/desktop. All this in the very early 80’s was unheard of elsewhere. It’s very similarly to what Steve Jobs missed when he saw Smalltalk where he only really saw a new UI and missed much more that was demoed.

It was a magic place to work at the time, I had left in the very late 80s for Apple and it was a huge step backwards at the time (but did amazing stuff with their limited tools but made working not fun.)


I’m always shocked at the huge number of good ideas that Xerox managed to commercially squander.

Any good reads on Mesa for the interested?

The most useful information is preserved at:

https://bitsavers.org/pdf/xerox/mesa/

Some information may also exist in other subdirectories of "pdf/xerox".

There have been many references to Mesa in the research articles and the books published towards the end of the seventies and during the eighties, but those are hard to find today, as most of them may have not been digitized. Even if they were digitized, it is hard to search through them to find the relevant documents, because you would not know from the title whether Mesa is also discussed along with other programming languages.

In general, bitsavers.org is probably the most useful Internet resource about old computing hardware and software, because no secondary literature matches the original manuals of the computer vendors, which in the distant past had an excellent quality, unlike today.

Ada provides many features of Mesa, but not all of them and I regret that some Mesa features are missing from the languages that are popular today.

The loops with double exits of Python (i.e. with "else") have been inspired by Mesa, but they provide only a small subset of the features available in Mesa loops.


https://softwarepreservation.computerhistory.org/mesa/

Mesa had DEFINITIONS modules, exceptions, subranges, and threads.


This is not a writeup of "Ada is better than everything else". The author is explaining how Ada achieved safety/reliability goals that your favorite language independently evolved much later on. That is why they kept bringing up year-of-arrival for comparison.

Examples would be a nice bonus but I think the author eschewed such because they weren't interested in writing a tutorial. They had a very specific point to make and stuck to it, resulting in a very informative but concise article that reads well because of its highly disciplined authorship.


I agree. There are quite a few places where they author claims that Ada had a concept first and some language got the same concept later, but the two concepts are different enough that examples would help to show where they are similar.

Especially if we assume that most readers are not Ada experts and that enough languages are mentioned that most people don't know the details of all of them.


I imagine an ada dev would find the pattern grating over the decades, so it reads like an expression of that experience.

Yep. And sometimes it's hype over the weirdest things... a good example "dependency injection".

    Generic
      Type Index   is (<>);                                      -- Any discrete type.
      Type Element is limited private;                           -- Any non-discriminated type.
      Type Vector  is array(index range <>) of element;          -- An array-type of Element, indexed by Index.
      with Function "="(Left, Right: Element) return Boolean <>; -- Equal, defaulted.
      with Function "<"(Left, Right: Element) return Boolean <>; -- Less-than, defaulted.
    Function Generic_Sort( X : Vector ) return Vector;
Now when we instantiate we can inject '>' in place of the '<', reversing the direction of the sort:

    Function Sort is new Generic_Sort( Index => Integer, Element => Integer, Vector => Integer_Array, "<" => ">");

I prompted Claude for some demo code to appreciate the language and it did a good job. Definitely some pretty neat stuff in there that exposed some unrealized FOMO. Of course I knew of Ada for decades, but I never got into it.

When I got my Switch years ago my reaction to the UI was basically "This is it?" It felt like an un-styled working prototype. My thought was "Nintendo rushed this thing out the door to stay in business, surely they'll add some character over time" as they had done with the 3DS (the 3DS started out good but got better).

Nope? I'm still waiting. The only real big change they made was the introduction of their terrible virtual cartridge licensing system.

I genuinely hate the Switch home screen. I would rather be booted into the "More Games" UI instead of this dumb horizontal scroll of a handful of most recent games and then having to scroll over to pick "more games". If you want to be minimal, at least make it easy to pick the game I want. I've got a 65" TV, give me the grid, not 4 titles at a time!

Most of all, BRING BACK THE FUN. Colors, music, silly interactions. Sure, add the option to turn it off, because a vocal minority hate that stuff, but how many of us have the Wii store music burnt into our brains?


I'm so disapointed in the switch, had it day one and i'm still waiting for all the fun features of the 3ds...

Spotpass and the mini games were fun, the stickers and theming were fun It sure was gimmicky and sprinkle with some utx, but we truly lost something with the switch


They even put in an entire themes menu, with space as if you were going to have more themes you could download at some point, similar to the 3DS. 6 years later it's still just "Basic White" or "Basic Black".

I am reminded of how the CD burning app Disco for Mac would actually smoke while your disc was burning. Standard looking Window but with semitransparent smoke billowing out the top. If I recall, Steve Jobs showed it off on stage and loved it.

I can almost almost understand the logic behind not backing up OneDrive/Dropbox. I think it's bad logic but I can understand where it's coming from.

Not backing up .git folders however is completely unacceptable.

I have hundreds of small projects where I use git track of history locally with no remote at all. The intention is never to push it anywhere. I don't like to say these sorts of things, and I don't say it lightly when I say someone should be fired over this decision.


The examples chosen are particularly interesting to me.

In particular Microsoft Word 2000 was panned at the time for not following native conventions. Its inputs, buttons, and File/Edit menus actually do not match the underlying OS.

Do developers who came from Photoshop or Fireworks days actually like Figma? Maybe it's just down to how our designers are using it but I find pawing around a giant 2 dimensional document awkward as hell versus just opening a well named PSD in a folder.


I mean, looking at it in 2026 Word 2000 looks _amazing_. How far my standards have fallen.

And yeah, I've met a lot of people who love Figma. I hate it so much, personally, getting around and finding what I need in it is so much pain.


For fun, I recently rebuilt a little text adventure some friends and I had built in the early 2000s. Originally written in QBasic, I translated it line by line in Go, and set it up as a little SSH server.

For posterity, I didn't want to change anything about the actual game itself but knew beforehand that the commands were difficult to figure out organically. To try and help modern players, I added an introductory heading when you start playing informing the player that this was a text adventure game and that "help" would give them a basic list of commands.

Watching people attempt to play it in the logs, it became painfully obvious no one read the heading, at all. Almost no one ever typed "help". They'd just type tens of invalid commands, get frustrated and quit.


I wonder how different the outcome would be if the idiom used was not help but "instructions", as in, what portion of users did not want to admit they needed assistance?

I'm not refuting the fact that people seldom read, but this seems like an interesting additional vector to explore.


> They'd just type tens of invalid commands, get frustrated and quit.

Is that like the "players" who send HTTP requests to my mail server?


I assume you can use a physical keyboard on an iPhone like I can on Android via USB? Presumably you could buy a wired Czech keyboard to access the device?

Twice I have had the touchscreen fail on Android devices and been able to get what I needed off them using a USB mouse.


For the same reason, plugging in an external keyboard is also a no-go since freshly updated iPhones are placed in what's known as a Before First Unlock state, which prevents wired accessories from working until the passcode is entered.

Makes sense why he didn't do this.


You can, after you unlock it.

I was guessing this - need to unlock to use USB devices.

sigh.


The antidote to methanol is just ethanol.

If you find yourself drinking something untrustworthy you can at least cure yourself with a chaser of an equivalent amount of everclear.

https://en.wikipedia.org/wiki/Methanol_toxicity#Treatment


The way you're saying it is deeply irresponsible. The way to deal with methanol poisoning is not "just ethanol", and you cannot "cure yourself" by drinking everclear.

If you ever find out you have been drinking methanol by all means do drink safe spirits if you have immediate access to them (after throwing up what you can if you're still in time), but get medical help now. Ethanol will not cure you from methanol poisoning, it will only help reduce and delay the damage somewhat while you're waiting for an ambulance or making your way to a hospital to get proper treatment.


Worth noting that even in clinical settings, ethanol has largely been replaced by fomepizole (Antizol) as the preferred antidote. It's more predictable, easier to dose, and doesn't come with the side effect of making a critically ill patient drunk. Ethanol is the field expedient, not the standard of care.

You're not going to get any sort of concerning level of methanol though from home distilling unless you're collecting and drinking just the heads. You'd have to be trying, and even then it would be difficult. It's basically impossible.

Any amount of methanol you're getting from home distilling is going to be easily and safely canceled with alcohol.

https://youtube.com/shorts/opyKKx4rRUs?si=BE_yb1_V0SEkccbq

My family has been home brewing for decades. There's never been an issue.


Exactly. I'm unsure why the myth that EtOH is a 'satisfactory' antidote for MeOH poisoning persists but unfortunately it does—even here on HN.

I echoed the dangers of MeOH poisoning (in drink substitution, etc.) in my two posts and I've been downvoted several times without reason given.

Such misunderstandings are why I'm an advocate for strong regulations that ensure commonly-available MeOH is always denatured.


"…EtOH is a 'satisfactory' antidote for MeOH poisoning…"

More info in link in my later reply to pessimizer.


While the treatment for methanol poisoning indeed includes ethanol, I don’t think your dosage suggestion is right. Your body would still have to process all the methanol, the job of the ethanol is just to slow down the reaction. If you suspect methanol poisoning you need the hospital, they will administer the ethanol intravenously and I think do dialysis to remove the methanol and the formic acid it metabolizes to (this is one of the toxins in ant venom)

https://doi.org/10.1053/j.ajkd.2016.02.058


you are saving lives, friend.

The number of offer emails I have gotten for my Chrome extension is wild, and I've only got a little over 100 installs. I'm honestly surprised this is not more common.

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

Search: