State of the Onion

> 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)

David Masover wrote:

···

On Monday 04 August 2008 22:25:35 Daniel Berger wrote:

Can you say "Job Security" boys and girls?

Ruby is already flexible enough to cause that problem -- or have that benefit, depending on your point of view.

Except that there's no parser alteration required. Tell me, how do you plan to deploy and maintain applications with altered parsers in the long term?

Dan

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.

I will quote "Peopleware" by Tom DeMarco and Timothy Lister here:

"The major problems of our work are not so much technological as
sociological in nature."

They claim this is true almost for all the failed projects.

Regards,
Rimantas

···

--
http://rimantas.com/

- I never know what the Home or End keys will do next

If they are using the normal Cocoa bindings they go to the beginning and end of the document respectively. It's not Apple's fault if application authors go out of there way to change that.

How often do you actually need to do that, compared to the beginnings and ends of lines.

Then, in single-line edit fields, Home and End do nothing.

- then I must click twice on a window to use it

I have no idea what this means, but it's definitely not universally true.

Yet it's still after I must take my hand off the keyboard because a keystroke has taken me to a place where another one can't take me out. Then, the single click may or may not activate the target window, and the second one may or may not send a click event into it.

- Alt-Tab can show but can't raise minimized applications

Those are not applications, they are windows. You are assuming the application model used on another platform is the same one used on a Mac. You are wrong.

So what? They are little colored things that represent big colored things. Some pop up, and some do not, when they are in the same list. "Principle of least surprise" applies, and claiming I somehow don't understand how awesome Macs are is just /Argumentum ad Verecundiam/.

···

--
   Phlip

Dave Thomas wrote:

At this point I have no doubt that some new language doo-dad will come along in the next year and result in further changes to Perl 6.

And this is different to Ruby 1.9 in what way... :^)

Hence why we've held off implementing Ruby 1.9 features in JRuby thusfar. :slight_smile: If it congeals at some point, we'll be right on top of it.

- Charlie

···

On Aug 5, 2008, at 3:10 PM, Charles Oliver Nutter wrote:

The grammar will be part of the source tree. camlp4
(http://pauillac.inria.fr/camlp4/\) solves this problem already.

martin

···

On Tue, Aug 5, 2008 at 6:25 AM, Daniel Berger <djberg96@gmail.com> wrote:

Except that there's no parser alteration required. Tell me, how do you plan
to deploy and maintain applications with altered parsers in the long term?

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.

Here's how to diss it for technical reasons.

Perl _was_ a pivotal language. Unix, GNU, and Linux would not be where they are without it - not least because of the amount of string surgery their configuration files need.

However, there's a difference between adding new features to a system and patching up flaws in its original design. In astronomy, the latter technique is called "adding epicycles".

If you plot the relative course of planets around the Earth - the way they appear to move over time against the backdrop of stars - you will occasionally notice Mars moving retrograde.

This is because you should be plotting Mars's absolute motion around the Sun. To plot it around the Earth, you must "add an epicycle" to Mars's presumed path - an extra loop it occasionally takes. Then, because of elliptical orbits, the more accurately you plot Mars's motion, the more small epicycles you must add. That's why "adding epicycles" means adding patches and compromises to maintain a bad design.

Sometimes adding new language features is a form of heliocentrism. For example, C++ had no duck typing, so Bjarne Stroustrup added it by inventing an entirely new notation - templates. Then the C++ authors added lots of extra hacks - such as Koenig Lookup - to make templates usable. And now that we suspect duck typing works better with _less_ static typing, C++ is stuck in a rut.

Note: Ruby will be too, someday, when we learn what a better language could look like. However, until then, we can do things with Ruby that Perl cannot yet do. Larry Wall's effort to defeat the mighty Perl 5 is an attempt to leap ahead of younger languages, by subsuming all their improved syntaxes in one swell foop. It might work, but Perl literature will still resemble line noise...

···

--
   Phlip

would you mind taking this off-list? i happen to agree with a lot of your points, but it is light years off-topic.

cheers.

a @ http://codeforpeople.com/

···

On Aug 5, 2008, at 12:28 PM, Phlip wrote:

- I never know what the Home or End keys will do next

If they are using the normal Cocoa bindings they go to the beginning and end of the document respectively. It's not Apple's fault if application authors go out of there way to change that.

How often do you actually need to do that, compared to the beginnings and ends of lines.

Then, in single-line edit fields, Home and End do nothing.

- then I must click twice on a window to use it

I have no idea what this means, but it's definitely not universally true.

Yet it's still after I must take my hand off the keyboard because a keystroke has taken me to a place where another one can't take me out. Then, the single click may or may not activate the target window, and the second one may or may not send a click event into it.

- Alt-Tab can show but can't raise minimized applications

Those are not applications, they are windows. You are assuming the application model used on another platform is the same one used on a Mac. You are wrong.

So what? They are little colored things that represent big colored things. Some pop up, and some do not, when they are in the same list. "Principle of least surprise" applies, and claiming I somehow don't understand how awesome Macs are is just /Argumentum ad Verecundiam/.

--
Phlip

--
we can deny everything, except that we have the possibility of being better. simply reflect on that.
h.h. the 14th dalai lama

Mac's have keyboard shortcuts for that that work in all applications. They are apple-left/right arrow.

The important point here is that it's clear you are passing judgement on a platform you have not bothered to learn about.

Let's end this off topic discussion here now please.

James Edward Gray II

···

On Aug 5, 2008, at 1:28 PM, Phlip wrote:

- I never know what the Home or End keys will do next

If they are using the normal Cocoa bindings they go to the beginning and end of the document respectively. It's not Apple's fault if application authors go out of there way to change that.

How often do you actually need to do that, compared to the beginnings and ends of lines.

I must be missing something.

1. There is, for example, operator overloading elsewhere. We can
descend from classes and extend them. We can even rewrite the source
code. What is truly new and usable here?

2. If everyone extends a language in their own ways then won't people
new to the project not only have to learn the extensions but the unique
way that they are implemented? Won't that lead to programming chaos?
After all, "use [this] version of perl to run this macro version of that
method and assign it to this keystroke" It is like encrypting the code,
possibly several layers deep. Aren't we trying to keep things readable?

···

--
Posted via http://www.ruby-forum.com/.

Yet it's still after I must take my hand off the keyboard because a keystroke has taken me to a place where another one can't take me out. Then, the single click may or may not activate the target window, and the second one may or may not send a click event into it.

Click-through is a sticky UI problem. It's inconsistent, yes. Theoretically you're supposed to activate the target window and perform what you clicked on with one click *unless* what you've clicked on is a destructive action (going by the theory that you may have missed and you didn't mean to hit that action).

And Perl6 is to a large extent a clean-slate design, which makes all
the deferents :slight_smile:

m.

···

On Tue, Aug 5, 2008 at 7:08 AM, Phlip <phlip2005@gmail.com> wrote:

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.

Here's how to diss it for technical reasons.

Perl _was_ a pivotal language. Unix, GNU, and Linux would not be where they
are without it - not least because of the amount of string surgery their
configuration files need.

However, there's a difference between adding new features to a system and
patching up flaws in its original design. In astronomy, the latter technique
is called "adding epicycles".

How often do you actually need to do that, compared to the beginnings and ends of lines.

Mac's have keyboard shortcuts for that that work in all applications. They are apple-left/right arrow.

The important point here is that it's clear you are passing judgement on a platform you have not bothered to learn about.

Let's end this off topic discussion here now please.

Sorry, I can't resist, but I've had a Mac on my desk for the
past five years. Every platform has its warts. Having to
hold a modifier key to perform such a common cursor movement
is something I think is arguably. . . . suboptimal. :smiley:

Home/End are the first keys I rebind in any Mac editor that
will let me.

An analogue on Windows is the desktop context menu for
creating a new folder. It's buried in a submenu. The keyboard
shortcut is also lengthy, Alt-F-W-F.

I'm not sure longtime use of these platforms has done much
to change my initial "wow, that's dumb" reactions to these
misfeatures. :slight_smile:

Regards,

Bill

···

From: "James Gray" <james@grayproductions.net>

On Aug 5, 2008, at 1:28 PM, Phlip wrote:

Ptolemy would be proud :wink:

T.

···

On Aug 5, 10:08 am, Phlip <phlip2...@gmail.com> wrote:

However, there's a difference between adding new features to a system and
patching up flaws in its original design. In astronomy, the latter technique is
called "adding epicycles".

If you plot the relative course of planets around the Earth - the way they
appear to move over time against the backdrop of stars - you will occasionally
notice Mars moving retrograde.

This is because you should be plotting Mars's absolute motion around the Sun. To
plot it around the Earth, you must "add an epicycle" to Mars's presumed path -
an extra loop it occasionally takes. Then, because of elliptical orbits, the
more accurately you plot Mars's motion, the more small epicycles you must add.
That's why "adding epicycles" means adding patches and compromises to maintain a
bad design.

Bill Kelly wrote:

Sorry, I can't resist, but I've had a Mac on my desk for the
past five years. Every platform has its warts. Having to
hold a modifier key to perform such a common cursor movement
is something I think is arguably. . . . suboptimal. :smiley:

Mm. First the Apple ][ insisted on adding spaces between BASIC words. Cute, except when I ran out of precious room, for things BASIC could only do on one line. Then the first Macintosh - the grey cube - locked up on me while playing golf. Then, eventually, I've spent 18 months so far using TextMate (for >cough< RoR). But other than that, I guess I'm just not qualified to comment on everyone's precious defenseless platform.

Home/End are the first keys I rebind in any Mac editor that
will let me.

You idiot! Don't you know that typing complete key-claws, such as Command-Right and Command-Left, for such common actions is _good_ for your /flexor digitalis longus/ muscles?!

You get that Popeye look, for tattooing anchors on...

···

--
   Phlip

You idiot! Don't you know that typing complete key-claws, such as
Command-Right
and Command-Left, for such common actions is _good_ for your /flexor
digitalis
longus/ muscles?!

You get that Popeye look, for tattooing anchors on...

Ah, the forbidden fruit of off-topic. I will partake.

From what I've seen, you can almost always use the Emacs-inspired Ctrl+a
and Ctrl+e in OS X to go to the beginning or end of lines. This is even
better than Home and End, which are way off in BFE, forcing you to take
your hands off the home row. If you're reaching for Home/End, may as
well reach for the mouse, imo.

···

--
Posted via http://www.ruby-forum.com/\.