• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Informal poll
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Informal poll


  • Subject: Re: Informal poll
  • From: has <email@hidden>
  • Date: Wed, 18 Jun 2014 15:06:52 +0100

Emmanuel LEVY wrote:

> I find this a very reasonable wish and I would like to second it. It's a pity we have to write tenths of lines - or use libraries or osaxen - because the core AppleScript is so poor.

I strongly disagree. Libraries are a *good thing*. A small core language with minimal built-in features and as few special syntactic forms as possible is a *very good thing*. The core should contain only those concepts and features which newcomers _must_ learn in order to start using it. Everything else should be pushed out to libraries which the user can search and explore as/when they require additional behaviors. Even supposedly "primitive" features like flow control should not be in the core language or require special syntax or semantics; that's just ignorance or sloppiness on the part of the language's designers.

Seymour Papert figured out over forty years ago how to design a programming language accessible to just about anyone. Basically, this is what it takes to learn Logo:

1. This is a word.
2. This is how you run a word.
3. This is how you add your own words.

Logo was simple enough that 8 year-olds could learn it, yet deep enough for teaching undergraduates Computer Science. (Logo's basically Lisp minus the parentheses.) It had some design flaws (commands weren't explicitly terminated, e.g. by a full stop, and variables were scoped dynamically, not statically), but nothing that couldn't be fixed. Its biggest problem as a general scripting platform was its total lack of library support, which left Logo users at a dead-end once they outgrew the bundled libraries (Turtle graphics, and not much else).

Mostly though, Logo failed in its main goal of reshaping education because Papert spent too much time teaching it to teachers and kids (who loved it) and not enough explaining its motives and proving its effectiveness to education's real decision makers, i.e. those at the top who ultimately dictate what goes into school syllabi and what does not. By failing to get his message across to those people, Papert unfortunately allowed the Algol/C/Pascal camp to win the day, even though their product was far more knotty, complicated, confusing, and plain unfriendly, simply because "that's just the way things are done". (Oy vey, can I relate...:/)

This was especially tragic because Logo was never about teaching kids "how to program", it was about teaching them structured thinking and analytical problem solving skills; i.e. learning how to learn. Logo was simply a good platform for kids to learn, explore, and use these skills; and that they came out of it knowing how to program as well was just an added bonus.

Had Papert not messed up on the logistical side, it might well be that AppleScript (via Hypertalk) would have descended from Logo, not Pascal, and things might be very different as a result. But as it is today, it's a knotty, complicated, confusing, and ultimately painful-to-use language, just like every other Algol descendent. While the English-like syntax makes it look friendly and approachable to newcomers, it turns out to be a nasty old bait-n-switch: the non-essential complexity of Pascal, the opacity of Smalltalk messaging, its well-meant obfuscation of fundamental differences between native vs remote objects and commands, and the giant unpredictable slurry of random keyword soup poured on top. All with the best of hopes and intentions, mind, but even William Cook admits in hindsight that as an experiment in end-user language design it was not a success.


> More built-in power might help our language look more modern and seduce more users.

Two things: 1. AppleScript is not, and likely can never be, "more modern"; it's archaic in both design and implementation, and any attempts to improve it at a fundamental level will almost certainly run afoul of its equally fundamental defects. 2. Seducing more users is hardly being fair to them, given the amount of pain AppleScript inflicts in return for its pleasures. The right thing to do would be to legacy the AppleScript language (which is already most of the way through its lifetime), along with Dashboard (which is completely moribund), and Automator (which isn't much better), and create a new end-user language to supersede all three.

(I can say more about how I think such a language should look and work if anyone's interested, but Thunderbird just ate my previous draft and I need to get on with my own documentation anyway, so it'll have to be another day.)

Regards,

has
--
"A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away." -- Antoine de Saint-Exupery

_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users

This email sent to email@hidden


  • Follow-Ups:
    • Re: Informal poll
      • From: 2551phil <email@hidden>
  • Prev by Date: Re: Informal poll
  • Next by Date: Re: Informal poll
  • Previous by thread: Re: Informal poll
  • Next by thread: Re: Informal poll
  • Index(es):
    • Date
    • Thread