> Discounting the thing that engenders the most hostility, you're still left
> with claims like "the first language to do <foo>" despite the list of almost
> antique languages that do <foo> for pretty much any value of <foo> that is
> claimed. It's kind of like the hostility UNIX addicts generated when the
> clueless claimed a series of firsts for it that were ... well, not first.
> Like hierarchical file systems, which some have seriously tried to claim
> were introduced by UNIX. Or devices in the file name space.
Admitted, but it's more a fault of the language proponents than of the
language itself. I don't really have a dog in this fight; it just
saddens me to see Perl6 being dismissed for social rather than
technical reasons.
Things are frequently dismissed for social over technical reasons.
Lisp, for example, is something I dismissed not for technical reasons (I
think the language is seriously one of the best ever made) but for
social reasons. I find the community around Lisp to be one of the least
approachable and least friendly I've ever encountered. This is also one
of the reasons I switched from the Python world to the Ruby world. The
Python community was getting pretty damned hostile toward the end of my
stay there (and not toward me, but rather toward the absolutely vital
new blood that's needed for any community to stay alive) while the Ruby
community was, at the time, the friendliest I'd seen in years. (This is
changing slowly, but for now it's still more than adequately friendly.)
This sounds irrational, but bear with me a moment. No technology is so
good that it can be instantly comprehended and put to its best use.
There's always a learning curve associated with a piece of technology.
You need a community of users that mutually help and that are willing to
help the newly-arrived for that technology to be useful when you're the
new arrival. Further, if you're the old-timer, you need those new
arrivals to keep the blood fresh and the ideas hopping. You need the
naive, stupid questions that tear at the very foundations of what you
believe so that somewhere, sometime, a new cool idea pops forth.
Stagnant, inbred communities (like Lisp's when I looked at it last) lead
to stagnant, inflexible and increasingly irrelevant languages (like
Lisp, last I looked). Vibrant, welcoming communities (like Ruby's, for
the most part) lead to vibrant, hopping languages (like Ruby, for the
most part). Purely social forces trump technical superiority (and make
no mistake: I think Lisp is technically far superior to Ruby!).
Now addressing the topic of Perl6, the social problem of its proponents
claiming firsts that aren't leads me to some... suspicions. Suspicions
that these people implementing this
latest-greatest-language-to-end-all-languages haven't actually, you
know, kept up on what other languages do. Like the fact that Lisp had
features for making DSLs that most languages even today (and yes, I
include Ruby here!) still can't match. Despite Lisp having been around
since the '50s. What's happening here is that the technical chops of
the people advocating the language are now suspect. Have they seen the
other languages (note the plural!) that have permitted extensions? Have
they investigated how those worked? Do they understand the weaknesses
and the strengths of various approaches (note the plural!) to the
puzzle? When they're claiming that they're the first, it calls all of
that into doubt.
I'm going to adopt a "wait and see" approach to Perl6, mostly, but so
far... I'm not convinced.
Yes - I'm talking about a macro system, grammar engine or whatever
that helps you get over the impedance mismatch between the language's
base syntax and your embedded dsl's syntax. Writing macros in lisp is
trivial as long as your macros have a superficial syntactic
resemblance to lisp code. It looks like Perl 6 will go beyond that.
So it will be like Dylan's? One of the canonical examples of a DSL in
Dylan was a scheduling macro that allowed you to write what looked very
much like a textual schedule that was actually code. The macro was a
bit hairy, but no moreso than your average Perl program (and, amazingly,
looked an awful lot less like executable line noise than a normal Perl
program does).
···
On Tue, 2008-08-05 at 15:52 +0900, Martin DeMello wrote:
--
Michael T. Richter <ttmrichter@gmail.com> (GoogleTalk:
ttmrichter@gmail.com)
I'm not schooled in the science of human factors, but I suspect surprise
is not an element of a robust user interface. (Chip Rosenthal)