8 ms·
Hypercard remains extraordinary. It anticipated the web, but have a taste of its scripting language: if the number of chars in field "Customer Code" is not
by ridiculous_fish 6y ago
Hypercard remains extraordinary. It anticipated the web, but have a taste of its scripting language:
if the number of chars in field "Customer Code" is not 7 then
ask "Please type in the 7-letter customer code"
put it into field "Customer Code"
end if
This is a real language! 'ask' pops up a modal dialog. 'it' is a special identifier meaning "the last result", like Perl's context variables.
But what is most lovely about this language is that it focused on users. As a user you could drag out a button, then double click and write some Hypertalk scripting. It was part of a vision where computing would empower amateurs to become desktop publishers or artists or programmers or...
The web captured that magic for a time, when it was about HTML with light JS. But the modern web has advanced beyond the amateur.
- saagarjha 6y agoSee, what I don't really understand is how people wrote Hypercard when AppleScript is so universally reviled. Was there anything different about how they worked?
- FriendlyNormie 6y agoThey don’t really compare. AppleScript was completely incomprehensible to me as a child, yet I was able to master HyperCard/HyperScript and create relatively complex games.
- kalleboo 6y agoI was a user of both HyperTalk and AppleScript as a kid and I vividly remember how HyperTalk was easy and AppleScript was hell. I think the hardest thing about AppleScript was the strict typing system. Dealing with files and paths was nigh-impossible. AppleScript also had the unenviable task of wrangling this typed data between different applications each with their own dictionary.
- protomyth 6y agoAppleScript really suffered if the dictionary provided by the app was ill thought out.
- deleted 6y ago[deleted]
- shrimpx 6y agoWhat sucks about these languages is complex sentences that look like loose English but are actually formal syntax. “.length” is so much easier to understand and remember as a formal sentence than “the number of chars in”.
- msla 6y agoIt would be a good language for a very active IDE which constantly showed you how the sentence-so-far had been parsed, so you wouldn't need to guess as much about the grammar. SQL could definitely use something like that, too.
- Wowfunhappy 6y ago> It would be a good language for a very active IDE which constantly showed you how the sentence-so-far had been parsed. I love this idea. Combined with a language like Hypertalk, a new user could foreseeable just figure out the syntax without looking it up.
- bantunes 6y agoMaybe for you. The goal of Hypercard was to empower people that don't really think '.length' is easier.
- cocktailpeanuts 6y agoThis is a common misunderstanding coming from people whose first language is English. There is a wider world where they prefer ".length" over some english sentence. Even the ".length" is difficult for them but it's still less grammar to learn.
- Wowfunhappy 6y agopre-OS X versions of Applescript (which was largely based on Hypertalk) actually allowed you to use Spanish/French etc in addition to English. Was taken out in OS X apparently.
- 6y ago
- gitgud 6y agoUsing verbose English grammar to describe software, might be easy to learn and look nice, but it's a severely restricted by it's intended use-cases. It's a similar problem to visual programming and AI based programming (GPT-3), where you're fundamentally describing a very implicit program. In some use-cases this is fine, but in many situations it can be difficult, unpredictable or even impossible to describe the program using implicit language.
- DavidSJ 6y agoThe HyperTalk language is well-documented. It has a clearly-defined syntax like any other programming language. It just happens to look more natural than most, but it's not an unpredictable guessing game like Wolfram Alpha.
- ramblerman 6y agoBut isn’t that the point. It’s a well documented programming language. You just have to remember longer commands, which while cute at first gets tiring quickly, even for novices
- DavidSJ 6y agoIt’s arguably easier to remember, the way a speaker of a Romance language can more easily pick up other Romance languages. And it’s also easier to read if you’re not an expert on the language. I think something like this has its place. I found it very empowering as an 8 year old kid.
- TheOtherHobbes 6y agoIt's an accessible scripting language designed for non-technical users. Which is obvious. What's less obvious is that a good accessible scripting language for non-technical users renders plenty of inaccessible programming redundant. So in the bigger picture it's much less tiring than the alternative we have today, which locks users out of all but the most trivial and useless DIY web publishing. Hypercard could easily have become the foundation for a different vision of the web. If it had, the current shitpile of competing frameworks, languages, levels of concern, and so on would have been hugely lessened.
- coldcode 6y agoWhat people who weren't there don't understand is this was the 80's, long before any alternatives were even a vague thought, before the web existed, when programmers had only a few choices and none of them were something ordinary people could use (other than Basic which had no real UI). I used Hypercard to design UI (back before UI was a specialist thing) and it was magical. It's easy to criticize it today but that's like complaining about how terrible computers were in the 1940's. It's not just the language, it's the whole package that was amazing for its time. Ever use a website builder today? Most of them suck terribly for anything complex, yet follow almost the same paradigm as Hypercard did 3 decades ago when there was Hypercard and basically nothing else to base its concepts on.
- jacquesm 6y agoI wouldn't criticize it at all, but I would rather appreciate the power of being able to get so much functionality with such little input from the person writing the stack. It is amazing and the web is in many ways several giant steps back from that.
- JKCalhoun 6y agoOr the early web was more like that. People throwing up "hobbyist" web pages. "Here is shit I am into ... and here's a rocket made from a 5 gallon water bottle and liquid nitrogen."
- jacquesm 6y agoThe modern web hasn't really advanced beyond the amateur, but the quality of the underlying tools and languages (css, javascript) is absolutely horrible. If this crap had had to compete with anything else in the marketplace it would have never flown. It is so bug prone and user unfriendly that it is hard to describe. We will also likely never get rid of it. Just a few samples: https://javascriptwtf.com/ https://javascriptwtf.com/ As for CSS, if the goal was to create a pixel perfect way to lay out webpages it may have succeeded, but the whole idea of an information web where rendering was supposed to be the problem of the consumer went out the window.
- folkhack 6y agoI understand that type can get weird in a loosely typed language but, personally, I find modern ECMA/Typescript to be lovely languages to work with. CSS also got a huge bump for me when everyone started consistently supporting flexbox. But hey - it's super easy to hate on web languages/markup/stylesheets while linking to JS quirks so here we are.
- cxr 6y ago> If this crap had had to compete with anything else in the marketplace it would have never flown. It competes every day. The morass of terrible tooling is explained by the reason that so many other nice-to-have resolutions to common problems don't materialize: even though things suck, improving them is a problem for someone else to solve. Anyone who complains about the state of things (or doesn't) and then proceeds to do things the broken way is contributing to the problem. The JS example is overstated. People who are slinging code around with a nary a care for what types the objects have deserve everything they get; if you end up in a situation where x can be either a string or a number or a list and you're somehow freely making comparisons between them, then the problem is on your end, and it's way further up the pipeline than where the equality comparison token appears. FWIW, HyperTalk wouldn't have fared any better[1]: > Data types usually did not need to be specified by the programmer; conversion happened transparently in the background between strings and numbers. Note that this is not a defense of mainstream professional web development. I probably abhor it more than you do. But the problems need to be connected to their source and not misattributed to a popular punching bag just because it's easy to score points that way. 1. https://en.wikipedia.org/wiki/HyperTalk https://en.wikipedia.org/wiki/HyperTalk
- Daub 6y ago> Hypercard remains extraordinary. It anticipated the web... In some ways it directly inspired it. I believe that the pointing hand cursor made its first appearance in HyperCard.
- egypturnash 6y agoFlash, for all its flaws, had the same magic for a while. It, too, advanced beyond it - later versions were much more verbose to program in, and pushed code further away from the things it manipulated, in the name of making it easier for Serious Programmers to write Big Serious Tools.
- api 6y agoI really miss the thoughtfulness of human-computer interfaces of the 1980s and 1990s. Serious amounts of thought and in many cases actual research was put into designing computer interfaces to maximize productivity and (get this) minimize distraction. The idea back then was that a computer existed to augment human intelligence, not to trap you in a dopamine loop Skinner box to maximize "engagement." In fact, the phrase "augmented human intelligence" was present in the actual name of the SRI research program that originally developed early GUIs, hypertext, and the mouse among other things. GUIs are an area where I think computing has gone very significantly downhill. Modern interfaces are superficially prettier than those old GUIs, but the majority of this superficial aesthetic improvement can be attributed not to UI improvement but to technological advancement. It's much easier to make things pretty when you have high-DPI 24-bit or 32-bit true color displays and absolutely massive (by old time standards) amounts of computer power and RAM to draw on them. The flat panel revolution also contributed a lot. Has anyone around here actually tried to use a CRT monitor recently? It's astounding that we ever used those things. Even a bad LCD is much better than the very best CRTs ever made. If you ignore the superficial eye candy, many if not most modern GUIs are objectively worse on almost every metric. They're inconsistent, disorganized, unintuitive, and often distracting. Sometimes distraction is the actual objective, such as with mobile apps trying to dominate your attention to "go viral" or anything touching social media. Every app invents its own UI metaphors and design, increasing cognitive load, and apps frequently change their UIs needlessly and force their users to re-learn everything. These last two things were explicit no-nos in old school guides to UI best practices. The goal was to decrease cognitive load and maximize productivity, not create an employment program for designers and coders. The developer experience behind modern UIs is even worse than the user experience. Many of those old systems offered WYSIWYG GUI development environments that were a breeze to use and delivered fast maintainable low-bloat (you couldn't get away with bloat back then!) applications. Design your UI and then double-click on its elements and it would jump right to the code. Amazing! We've ditched this in favor of the modern bloated web clusterfuck, XML-based eyesores like XAML, or manually coding UIs in programming languages element by element. The amount of work required to build a UI has multiplied, but the value delivered has stayed the same or actually decreased. Some of this would be forgivable if we got something for it, but we're still stuck in the paradigm of "code everything for every platform" vs "bloated ugly cross-platform GUI toolkits" (the latter includes Electron). Other areas of programming have advanced, but GUIs are a neglected ghetto in spite of the fact that UIs are absolutely fundamental to the use of computers. It's hideous. If we'd kept the principles of thoughtful UI design while advancing the underlying technology we would have computers that are all a dream to both program and to use.
- dang 6y agoWhat catches my eye is the it in put it into field "Customer Code" What is it bound to? This reminds me of anaphoric macros in Lisp. (If you don't know what that means, it's just a fancy name for automatically binding the variable "it" to some expression, which makes for lighter code in simple situations. Usually these are combined with some other operation like a boolean test, so they save you two lines of code instead of one. Some people hate them, but let's not go there.)
- 082349872349872 6y agoDan Gackli, are you really a blithering unstrung archead or, more likely, a paid shill of the nefarious Anaphoric League? I KNOW I'LL BE DOWNVOTED FOR THIS but discussion of pronomial syntactic sugar is unNILable proof HN has turned into /r/lisp. (as penance for the above: I was once told the Reed College student handbook contained a sentence saying the trouble with psychedelics is that one will be tempted to contemplate grand questions such as "what is love?" or "are there a finite or infinite number of gods?" when one is in a mental state completely unable to adequately address petty questions such as "what is toothpaste?" or "where is my left foot?")
- JKCalhoun 6y agoYeah, Hypercard represented peak Apple in my opinion. Using a computers was still "fun" in a way I can't articulate. Perhaps it reflects more myself at the time — not yet jaded....