Re: Informal poll
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