Live data from Hacker News

Why Hypercard Had to Die

loper-os.org

101–110 of 142 posts

Re: Why Hypercard Had to Die

#101
Hypercard was very interesting to me, enough so that I bought my first programming book, Danny Goodman's The Complete Hypercard Handbook. I loved tinkering about with Hypercard on my very first computer, a Powerbook 100 that I bought new in 1992.

I was sad when Apple decided to only include Hypercard Player with new Macs, which I also think ultimately helped contribute to its death. People liked Hypercard but not enough to pay money for it. By the time Steve killed it, it was a lumbering zombie of its former self.

Re: Why Hypercard Had to Die

#102
post #41
post #16

This doesn't seem to be anything special about Hypercard. Hypercard was the BASIC of the Macintosh in that it served the same niche. It certainly was not BASIC, but the idea was the same, a little language and environment that fit into the machine's environment that allowed novices (and then highly practiced novices :-)) to create stuff on the machine for other people to use. It was killed for the same reason BASIC,…

I wished Hypercard was the BASIC of Macintosh. However, when I tried to build something with it (a manager for the offline game Car Wars), I quickly ran into some trivial obstacle, and was told that I'd have to write a C extension. (iirc, it was the lack of a random number generator.) Enough of that. Hypercard was mostly useful as a sort of personal wiki or address card book; I used it quite a bit as a notepad with h…

It's funny you mention a personal wiki. I think the first thing I used Hypercard for was to create a catalog of my comic book collection.

(All of the work that went into it was lost due to an accident, which taught me a hard lesson about the need for backups.)

Re: Why Hypercard Had to Die

#103

Earlier quoted context omitted.

It also illustrates some of HyperCard's strengths. I can't think of any other development environment in which "make a calculator" would be a suitable project for the end of the first week of a programming class. Visual Basic 3? What we have instead are mysterious black boxes, and I hate that. But, I'm on the end-user support side of things. Here, let me give you some examples of stuff we've dealt with in our little…

> Do you really have time and motivation to become expert enough in all the things you deal with that you could fix any problem if only it was more explorable? Well, that's our job. And, I specifically gave examples of unexpected behavior, in the sense that these were things that shouldn't ordinarily be behaving this way. The examples I gave were of cases where it definitely would help to have better troubleshooting…

> Programmers don't make software that crashes for fun, you know.

I didn't say otherwise. Not sure why you brought this up.

You implied that this would motivate programmers to make software which doesn't crash, as if software which doesn't crash is pretty much a choice they could make but aren't making. I'm saying programmers are already trying to make software which doesn't crash and it's just not that easy - If a user seeing an error message isn't helping, how will the motivation of a user seeing a debugger change things?

I guess I still don't understand why "crash to debugger" would be worse than current behavior.

It would be worse in terms of user experience; I'm sceptical that it would help a tenth as much as it is implied it would help - crashes being so deep, so numerous, so subtle, and so often due to some interplay between "working" systems.

So, wait for a debugger to load, then close it again, would be the default action. And that would be annoying.

Re: Why Hypercard Had to Die

#104

Earlier quoted context omitted.

> Do you really have time and motivation to become expert enough in all the things you deal with that you could fix any problem if only it was more explorable? Well, that's our job. And, I specifically gave examples of unexpected behavior, in the sense that these were things that shouldn't ordinarily be behaving this way. The examples I gave were of cases where it definitely would help to have better troubleshooting…

> Programmers don't make software that crashes for fun, you know. I didn't say otherwise. Not sure why you brought this up. You implied that this would motivate programmers to make software which doesn't crash, as if software which doesn't crash is pretty much a choice they could make but aren't making. I'm saying programmers are already trying to make software which doesn't crash and it's just not that easy - If a u…

No, I said crash less. I completely avoid any debates about "perfect" software, they're pointless.

Maybe I misunderstood you. When you said, "I think that would drive anyone insane", I assumed that for some reason we were talking about a greater quantity of crashes. (Might've been the "any program ... any error" bit beforehand.)

Here, let's assume we're stuck with two options, and for both options, we'll assume that the initial rate of crashes is the same:

1. Program crashes. There is an unhelpful error message, or no error message, or it hangs. User reports the error, or doesn't, and reboots.

2. Program crashes. Debugger immediately loads. User can contact support, or not. Support may receive actually useful information about the cause of the error. User reboots.

I don't really see why the debugger scenario is worse in terms of user experience, and I'm a loud and vocal advocate for improving UX. To me, it's clear that there are strong benefits and no additional drawbacks to having a drop-to-debugger policy for broken software, because even if an end user can't do anything with it, we might be able to, and even if we can't, the end user is no worse off. You specifically say "wait for a debugger to load", but I remember MacsBug being pretty darn snappy. I can't think of a reason why it would be necessary to wait for one to load, certainly to wait any longer than you have to wait for an unhelpful error message as it is.

And, if dropping to a debugger was really a terrible, terrible thing, then yes, I think application developers would put more effort into preventing it. I don't expect software to magically become flawless, but we run into plenty of errors that appear to be caused by a programmer making an effort vs. reward tradeoff in favor of letting the bug go.

I mean, you and I both gave examples of frustrating software problems without even trying hard. There are countless others. Either these problems are an inevitable and unavoidable consequence of complex systems, as you seem to be saying, or they are examples of people putting in less effort than they could. If it's the former, we are well and truly fucked, because software is only getting more complicated, not less. If it's the latter, then I don't think it's fair to argue against efforts to make software crash less. You can't have it both ways.

Anyway, I think we're getting sidetracked, and this little discussion isn't fixing any bugs. Suffice to say, I don't think that mocking the author for daring to suggest that programs should error-drop into a debugger is a very powerful criticism. I for one would really appreciate it if they did that, so I guess I'm as nuts as he is.

Re: Why Hypercard Had to Die

#105

Earlier quoted context omitted.

Simple programming environments have a fundamental flaw: they fool you. Let's say we have a type of perforated balsa wood that you can just snap into pieces and glue in place. Making a dog house just went from hours to minutes! Hurrah! So you start telling everyone that this is the new way to construct buildings, but then as you get bigger structures, it starts to fall apart. Simple programming environments fool you…

"Simple programming environments fool you into thinking you into thinking your projects can scale, and the result is a mess." Doesn't seem to have stopped Excel in particular, and spreadsheets in general, from being wildly succesful.

If less of our finance system depended on spreadsheets and were actually well understood and observable by properly designed software, the 2008 crisis could have been averted.

Re: Why Hypercard Had to Die

#106
I had a sudden hypothesis after reading this thread last night. (No proof, mind you, just an idea.) I wonder if HyperCard's success was for the same reason as UNIX's success: a well-chosen, small set of interoperable tools that allowed the user to do far more than the sum of their parts. And, as computing and interfaces have become more complex, we've just tacked on complexity to them rather than reinventing them to adapt.

For instance, UNIX's treatment of everything as a file is a great tool, but I think there was a time where that simplified a much greater percentage of computing than it would today. Similarly, I suspect HyperCard died because the abstractions it was using had to be reimagined to stay competitive.

Spreadsheets (as mentioned elsewhere) are an example of a product that has managed to stay focused on the simple set of tools, and, when features were tacked on, they often stay out of the way instead of adding complexity to day-to-day operations. However, I'm not sure they've aged well, but I guess they are the best we have at the moment.

Re: Why Hypercard Had to Die

#107
post #39

Earlier quoted context omitted.

> Hypercard is different from systems like Director > in what isn't there: the cancerous complexity. No offense, but you're reaching for straws now. Any stack of any complexity was just as complex as the equivalent in Director. I'm not sure what you were doing in 96 or so, but I was making a living with Director after cutting my teeth with some serious SuperCard action. I wrote a precursor to AIM/ICQ for our feeble A…

I never used Director, so I can't speak to that. And, by '96, I had graduated from HyperCard into C and Pascal. But: I spent a lot of time in HyperCard, and I can assure you that the field of HyperCard complexity was not limited to just "simple back and forth stacks" or "anything truly useful beyond that". HyperCard afforded a really nice way of gradually ramping up complexity and approaching complex-on-the-outside p…

Yes, and I wrote a MIDI sequencer in Borland Delphi in about 1997 and that wasn't particularly challenging either, in fact simpler than attempting similar in SuperCard: http://www.sonicspot.com/aliendiskosystems/aliendiskosystems...

The point is, people tend to gloss and shine and wax poetic about HyperCard and it's ilk, but if it was so profoundly simple and awesome, why aren't SuperCard and related (MetaCard or Toolbook anyone?) prominent development platforms? Because that simplicity becomes complexity once you cross a certain threshold.

> Please try to keep the snark to a minimum. Thanks.

Please keep attempts at editing people's personalities at a minimum. It's how I talk, it's how I write, I make no apologies for it.

Cheers!

Re: Why Hypercard Had to Die

#108

Earlier quoted context omitted.

> Programmers don't make software that crashes for fun, you know. I didn't say otherwise. Not sure why you brought this up. You implied that this would motivate programmers to make software which doesn't crash, as if software which doesn't crash is pretty much a choice they could make but aren't making. I'm saying programmers are already trying to make software which doesn't crash and it's just not that easy - If a u…

No, I said crash less . I completely avoid any debates about "perfect" software, they're pointless. Maybe I misunderstood you. When you said, "I think that would drive anyone insane", I assumed that for some reason we were talking about a greater quantity of crashes. (Might've been the "any program ... any error" bit beforehand.) Here, let's assume we're stuck with two options, and for both options, we'll assume that…

I was only mocking the author for wanting both ubiquitous debugging as a top-7 must have conputing feature, while at the same time decrying complexity and pining for a simple system.

I agree with what you're saying, broadly.

Re: Why Hypercard Had to Die

#109

Earlier quoted context omitted.

Simple programming environments have a fundamental flaw: they fool you. Let's say we have a type of perforated balsa wood that you can just snap into pieces and glue in place. Making a dog house just went from hours to minutes! Hurrah! So you start telling everyone that this is the new way to construct buildings, but then as you get bigger structures, it starts to fall apart. Simple programming environments fool you…

And why does it need to be "deep"? It's good that it died because it doesn't "scale" to the elephantine size of software you're accustomed to?

>It's good that it died because it doesn't "scale" to the elephantine size of software you're accustomed to?

As someone who's dealt with accounting systems that have started out as Access + Excel + VB Macros, I can say yes, absolutely it is a good thing that it died because it didn't scale.

Re: Why Hypercard Had to Die

#110
HyperCard like systems are not dead. I make my living from LiveCode ( http://www.runrev.com ) which is a xTalk system that is able to build applications for Mac OS X, Windows, Linux, iOS and Android. From a single HyperCard-like environment, I can build apps for all these platforms and reuse the code.

LiveCode is very verbose and it may take a while for those that are already familiar with C-like languages but it is worth it. Software is easy to maintain and there is little space for confusion, even with few comments.

RunRev company also release a PHP-like engine, so I can create web applications that communicate with native clients on mobile and desktop all from a single language and environment, this is very powerful.

You should always use the best tool for your job. For my job, LiveCode fits perfectly. I also think that xTalk languages are a wonderful introduction to programming and people from non-technical backgrounds can learn it easily and start creating little tools to help their specific domains. Yes, anyone can learn programming in any language, it is just a matter of effort, I believe LiveCode makes this effort fun and productive.

You may read this as advertisement but this is my personal opinion. I am 31 and have been using LiveCode since I was 25 or something like that. In the meantime I got married, got my own place and am living a good life. All my work is LiveCode related. Just telling you that so you guys don't take me for "someone that toys with this cute language every once in a while but is not serious".

Even if you already have your favorite language, it is worth to check out LiveCode, just to learn what else is out there. There are beginner webinars starting next month I think...

Post reply on HN