From: "Michael T. Richter" Date: 2008-08-05T17:23:51+09:00 Subject: Re: State of the Onion --=-SRYVtDIO/TUGeRMVk9fS Content-Type: multipart/alternative; boundary="=-KXhJJgao8onswAbk38lM" --=-KXhJJgao8onswAbk38lM Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On Tue, 2008-08-05 at 15:52 +0900, Martin DeMello wrote: > > Discounting the thing that engenders the most hostility, you're still l= eft > > with claims like "the first language to do " despite the list of a= lmost > > antique languages that do for pretty much any value of that= is > > claimed. It's kind of like the hostility UNIX addicts generated when t= he > > clueless claimed a series of firsts for it that were ... well, not firs= t. > > Like hierarchical file systems, which some have seriously tried to clai= m > > 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). --=20 Michael T. Richter (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) --=-KXhJJgao8onswAbk38lM Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable On Tue, 2008-08-05 at 15:52 +0900, Martin DeMello wrote:
> Discounting the thing that engenders the most hostility, you're still =
left
> with claims like "the first language to do <foo>" desp=
ite 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 fir=
st.
> Like hierarchical file systems, which some have seriously tried to cla=
im
> 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.&n= bsp; 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 socia= l reasons.  I find the community around Lisp to be one of the least ap= proachable and least friendly I've ever encountered.  This is also one= of the reasons I switched from the Python world to the Ruby world.  T= he 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 b= lood that's needed for any community to stay alive) while the Ruby communit= y was, at the time, the friendliest I'd seen in years.  (This is chang= ing slowly, but for now it's still more than adequately friendly.)

This sounds irrational, but bear with me a moment.  No technology is s= o 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.&nbs= p; 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 ne= w arrival.  Further, if you're the old-timer, you need those new arriv= als 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, inbr= ed communities (like Lisp's when I looked at it last) lead to stagnant, inf= lexible and increasingly irrelevant languages (like Lisp, last I looked).&n= bsp; Vibrant, welcoming communities (like Ruby's, for the most part) lead t= o vibrant, hopping languages (like Ruby, for the most part).  Purely s= ocial 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 cla= iming firsts that aren't leads me to some... suspicions.  Suspicions t= hat these people implementing this latest-greatest-language-to-end-all-lang= uages 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 <= B>even today (and yes, I include Ruby here!) still can't match.  D= espite Lisp having been around since the '50s.  What's happening here = is that the technical chops of the people advocating the language are now s= uspect.  Have they seen the other languages (note the plural!) that ha= ve permitted extensions?  Have they investigated how those worked?&nbs= p; Do they understand the weaknesses and the strengths of various approache= s (note the plural!) to the puzzle?  When they're claiming that they'r= e the first, it calls all of that into doubt.

I'm going to adopt a "wait and see" approach to Perl6, mostly, bu= t 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 mu= ch like a textual schedule that was actually code.  The macro was a bi= t hairy, but no moreso than your average Perl program (and, amazingl= y, looked an awful lot less like executable line noise than a normal Perl p= rogram does).

--
Michael T. Richter <ttmri= chter@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)
--=-KXhJJgao8onswAbk38lM-- --=-SRYVtDIO/TUGeRMVk9fS Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQBImA5cLqyWkKVQ54QRAlzQAKCEgFdbBIXLiuG7CvnaDYkgFQGxxwCcCybQ 2VxjprYZo4KBET/8knuV6VA= =HxBV -----END PGP SIGNATURE----- --=-SRYVtDIO/TUGeRMVk9fS--