It's Time To Revive Hypercard
HughPickens.com writes HyperCard, an application program and programming tool released for the Apple Macintosh in 1987, represented the 'computing for the people' philosophy that enabled users to go past the pre-built software that came on their machines, and to program and build software of their own. "Mac users could use Hypercard to build their own mini-programs to balance their taxes, manage sports statistics, make music – all kinds of individualized software that would be useful (or fun) for individual users." Now Jer Thorp writes that the end of HyperCard left a huge gap that desperately needs to be filled – a space for an easy to use, intuitive tool that will once again let average computer users make their own tools. According to Throp, this type of plain-language programming makes sense, particularly in an application that was designed specifically for non-programmers. "I find the largest concern for learners to be not with the conceptual hurdles involved in writing a program, but with obscure and confusing syntax requirements. I would love to be able to teach HyperTalk to my students, as a smooth on-road to more complex languages like JavaScript, Java or C++." By putting the tools of creation into the hands of the broader userbase, we would allow for the creation of ultra-specific personalized apps that, aside from a few exceptions, don't exist today."
HyperTalk wasn't just easy, it was also fairly powerful. Complex object structures could be built to handle complicated tasks, and the base language could be expanded by a variety of available external commands and functions (XCMDs and XFCNs, respectively), which were precursors to the modern plug-in. But ultimately, HyperCard would disappear from Mac computers by the mid-nineties, eclipsed by web browsers and other applications which it had itself inspired. The last copy of HyperCard was sold by Apple in 2004. "One thing that's changed in the intervening decades is that the hobbyist has largely gone by the wayside. Now you're either a user or a full-fledged developer, and the gulf is wider than ever," writes Peter Cohen. "There's really nothing like it today, and I think the Mac is lesser for it."
HyperTalk wasn't just easy, it was also fairly powerful. Complex object structures could be built to handle complicated tasks, and the base language could be expanded by a variety of available external commands and functions (XCMDs and XFCNs, respectively), which were precursors to the modern plug-in. But ultimately, HyperCard would disappear from Mac computers by the mid-nineties, eclipsed by web browsers and other applications which it had itself inspired. The last copy of HyperCard was sold by Apple in 2004. "One thing that's changed in the intervening decades is that the hobbyist has largely gone by the wayside. Now you're either a user or a full-fledged developer, and the gulf is wider than ever," writes Peter Cohen. "There's really nothing like it today, and I think the Mac is lesser for it."
The majority of us did not have money to spare for Macs. I have no doubt that they were the best personal computers around. I used them.
For less expensive computers, there was the BASIC interpreter. Not as WYSIWYG or simple and Beginners need to think when coding, even at that level. It also had the advantage of being close to a standard untill MS teurned it into QBasic then dumped it.
BASIC is what we need again but standardised and improved a lot.
I'll see your Constitution and raise you a Queen.
LiveCode is free, supports Mac, Windows, Linux, iOS, and Android. Best of all, it speaks HyperTalk, plus has more flexibility HyperTalk didn't.
I've moved on from wanting HyperCard, to using LiveCode.
I learned on HyperCard, so I know your pain. I still use HyperCard daily at work.
However, many years ago I discovered Runtime Revolution, a commercial product that is effectively what HyperCard should have been. Recently it's been released freely as LiveCode. Check it out. Runs on anything you'd want it to (Mac, Linux, Windows, etc.).
I learned to program with both BASIC and HyperCard, depending on which machine I was on at the time, back when I was younger. I think it's a great idea. I built simple "database" simulations, using nothing more than the free stuff that came with it, and it helped to mold my initial approach to programming. I even created a testing program we used at my high school for a couple of my teachers that was ran over a network. It was fun AND useful.
. Define sqrt(x) as something really evil like (x / rand()), and bury it deep. Watch your coworkers go nuts.
APL is quite domain-specific. The guys I mentioned are basically working on metalanguages, in order to allow them to describe application domains as succinctly as possible. By way of example, APL could be one specific instance of a result of applying their methods to one specific domain, whereas they're focused on providing the tools for you to do that for an arbitrary domain you're confronted with. In fact, this is their second most recent published paper.
Ezekiel 23:20
So we shouldn't have easy-to-use tools for people to LEARN how to program? Or for people (including kids) who never thought about programming, but took interest in it only after writing some software using an easy-to-use tool?
I started using HyperCard in 1990, in grade 9 after-school computer class. I loved it. I've been writing code ever since.
Get off your high-and-mighty "professionals are the only ones who can do things" box. Just because you might have a degree, doesn't mean you know your face from your ass when it comes to code compared to some there people who don't. Just sayin'.
I'm intrigued by the idea of LiveCode, but are you serious about its built-in language being called "Grundle"?
I can't go to my boss and suggest the use of LiveCode if it has a name like that. For anyone who doesn't know, grundle refers to the area between a man's anus and scrotum.
The Coq Proof Assistant project has a similar problem. This software would be seriously useful at work, but we can't be sitting in meetings with passersby hearing us saying what they hear as cock (as in a long, thick, throbbing penis) for hours on end. We also can't go to customers and say stuff that they'd hear like, "Don't worry, our cock has verified it."
I've used these sorts of things extensively before. They all fail for the same reason.
Programmers often assume that the hard part of programing is the obscure syntax of languages, because to them when learning a new language, that's what's hard. And while yes, the syntax is difficult at first, the novice does get it eventually. The real problem with the novice is often the counter-intuitive logic often presented in programming.
For example, take the typical problem of "If they chose Yes, I don't want the program to do X. But if they don't, I do what them to do X"
The novice often has a hard time even articulating that condition in the English language, much less a programming one. How would simplifying the syntax make it any easier?
The solution to a programmer is simple: If "yes" then X
and the novice asks in alarm "Greater than or less than?!!? WHAT?"
So then you have your "easy" programming language that's similar to English. That's great, how do you articulate that previous statement in that language now? It's not any easier. On top of that, because you've dumbed down the language to make it more user friendly, you've likely also taken away a lot of its power. The archaic syntax of languages is often for a very good reason. And when that user does start to get somewhere, they'll end up in a forum asking how to do it, and the programmers will flat out tell them the logic at which point they'll find out that they can't apply that logic because of the simplified syntax.
If you're just starting out, I'd recommend this: http://www.autohotkey.com/
The syntax is about as user friendly as you'll ever get.
You can write the applications in notepad
You don't even have to compile them if you don't want to.
It can do just about anything any major language can.
Well this might not be for Mac users, Microsoft Project Siena might be a useful option for people on the Windows platform. http://www.microsoft.com/en-us...
Obviously, you've never had to hire CS graduates.
I can't tell you how many of these bozos who've learned in a "formal" setting can barely manage a coherent if/then statement, much less successfully complete even a small in-house application.
Granted, most of the self-taught crowd is weak on specialized algorithms and data structures. On the good side, self motivated autodidacts rarely have trouble picking this up, when necessary. CS grads seem to need a professor, hand-holding and a cookie in order to learn anything new.
Please do not read this sig. Thank you.
We already have a pretty nice 3rd party product called SuperCard which is very compatible with Hypercard. At $279 its not getting much traction. Apple should buy this product and ship it free with every Mac.
It's fairly trivial to learn a language at a decent level. We have a lot of languages that abstract away all the "hard" stuff like OS interaction and memory management. Take Java. Take C#. There is literally an object for EVERYTHING you could possibly ponder doing. You dump some values into that blackbox, it does its magic and presto, result.
The hard part of creating software is designing it. And no environment can take that part out of your hands. There is simply no way some piece of software could magically read your mind and produce it.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
I programmed Hypercard a lot in middle/high school in the mid 80s. I got to college and was taking an AI course using Lisp, and was working on a reinforcement learning assignment. I had a bug in my program I couldn't track down. The smartest guy in the class sat next to me and he couldn't figure out the bug. Neither of the two TAs for the class could figure out the bug. I rewrote it from scratch and still had the bug. At one point I said "If I was working in Hypercard, I know how I could solve this." The smartest guy in the class said "That's crazy." The TA who was helping me out said "When you're ready to talk seriously about this I'll come back and help you." I went home that night a wrote it in Hypercard and it worked. Slow as all hell (it took 24 hours for one test run), but it worked. It was easy to make nice graphics of the mouse and the maze the assignment was about, which went into the final report. I got 110/A+ on the assignment.
I've never balanced taxes. Is this a new thing?
Oh, you mean balance checkbooks and pay taxes. There's much better software to do that these days.
And there are much better ways to teach programming. For a very long time there has been a movement to bring programming to the masses, as if, somehow, everyone would be able to write beautiful, intricate code to solve their most complex problems. Most people can barely match their clothing (note to the reading-impaired: that was hyperbole); why should we expect them to be able to write code?
Writing programs requires clear, linear thought. It requires thinking in terms of structures and systems. The push in the greater population has been toward valuing non-linear thought (although that baffles me), so there's a big mismatch to overcome. Yes, there are plenty of graphical programming languages that reduce the need for precise syntax, but they only REDUCE it, not eliminate it, and they still require procedural thinking which, ultimately, presents an insurmountable difficulty for many people.
Not everyone can or should be a programmer: Not everyone is a writer, Not everyone is a photographer, Not everyone is a painter. Sure, everyone should be given basic skills in writing, and perhaps in drawing or painting as a child, and so perhaps everyone should be given basic skills in programming, but beyond that, why? Not everyone is able to understand calculus; why should we automatically expect that everyone should be able to write Java, Python, or whathaveyou?
Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
This is nonsense. I learned a little programming back in chemistry undergrad when they decided to use x-ray diffraction calculations to teach us some FORTRAN. I've been programming here and there since. Some of it has even been useful. I wrote a number of HyperCards back in the day and really liked the environment. It was quick and easy to put together a nice little program for specific tasks. There was a low barrier to entry and it was easy to make useful things that you could never find an IT whiz to do for you.
Here's the problem. It's a lot easier and more likely to happen that a chemist learns a little programming to get a job done than to try to teach chemistry to a programmer and get his management to approve him spending the time. If a project ever gets escalated to where "real' programmers are needed, the scientists can, at least, have realistic expectations and do a better job explaining the problem. I've helped with the design of data models, which greatly lowered a project's complexity, because I knew a lot more about how the data was used.
I have a good knowledge of my limitations. I now have a pretty good knowledge of yours except that I don't know who you are.
Professionals with years or even decades of experience have enough trouble writing secure software.
And just where do these "professionals" who can't write secure software get these years or decades of experience??
It's even worse when they use "beginner-friendly" languages like PHP, Ruby (with Ruby on Rails), and JavaScript. These languages are totally shit, and end up promoting buggy, insecure code.
I don't know PHP or Ruby, but javascript is in no way "beginner-friendly". I'd been coding in BASIC, assembly, xBase (various dialects), NOMAD, and a couple I can't remember (I'm getting old) for well over a decade when I needed javascript.
Javascript is crap. Often useful and necessary crap, but still crap.
When these amateurs try to write code in any sort of a business or professional setting, it usually ends up being the IT department or professional software developers who get to maintain the crap code in the end.
It's true that someone who thinks he knows what he's doing but doesn't can really screw a project up, an idiot I worked with who thought he knew dBase almost cost us a ten million dollar Federal grant by removing some columns in some tables in an application I wrote. I was able to make it work anyway.
Asimov got it right in Foundation; those who know little and are aware of their ignorance aren't dangerous, it's those who think they know but don't that are.
But I was mostly self-taught, only taking classes after I'd been programming for years, and few of the classes taught me anything I hadn't already learned from reading hundreds of books on the subject and practicing.
And we can't forget how these half-assed amateurs often start "contributing to" (a.k.a. destroying) open source projects. Thanks to them, we have disasters like GNOME 3, where instead of trying to make efficient, effective software, they just ended up trying to make a shitty, half-assed copy of their warped understanding of OS X.
It's not that they're shitty programmers, it's that they're shitty designers, and the professionals at Microsoft are no better; Windows 8, anyone? And whose code is the least secure? Yep, your fellow professionals at Microsoft with their warped "understanding" of UI, just like the GNOME devs.
We shouldn't promote the idea of them getting involved with software development. We should discourage it!
No, we should develop easier to use tools. The languages and compilers you professionals are writing suck donkey ass.
Free Martian Whores!
These don't count as simple tools for users to build mini programs? RD
LiveCode is great in many ways, and I really appreciate that it is now a free download, but it lacks one feature that really made a difference to people who were learning HyperCard. In Livecode, every object is its own layer. In HyperCard, there was a simple, useful distinction between the background layer and the card (foreground) layer. People quickly grasped how to make a picture or button show up on every card or just one. Now, if you google "livecode background layers," you're likely to get instructions to add a background to a single card. I hate to say it, but I don't think that LiveCode, even free, can build the same kind of community that HyperCard has...simply because of this choice. It's not a trivial difference.
-Gareth
It has been revived and it has a free / open source version: http://livecode.com/
Far better than the original.
LiveCode. http://livecode.com/
LOL. It's hilarious how college educated "programmers" always get so defensive when this topic comes up. See how that works?
As always, the tech community collectively forgets about a software product type that existed on the Atari ST before it did on the Mac platform. Zoomracks predates Hypercard and it was patented. The author settled later with Apple over it and then the tech community obviously forgot about it.