State of the Onion

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…

On Tue, Aug 5, 2008 at 7:08 AM, Phlip [email protected] 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”.

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

m.

On Mon, Aug 4, 2008 at 10:05 PM, M. Edward (Ed) Borasky
[email protected] wrote:

http://www.gcn.com/online/vol1_no1/46724-1.html

Just thought you’d like to know. :wink:

I came to Ruby from Perl (and other languages; but I started out using
Ruby primarily for the things I would previously have done in Perl).
There was nothing genuinely “new” in Ruby that you couldn’t do in
Perl, but Ruby got a lot of the little things right in a way that hit
a sweet spot. I have a lot of respect for Larry Wall and the other
mad scientists behind Perl 6. Just as many features in Perl 6 have
been openly inspired by Ruby, I look forward to fresh ideas and
approaches that Perl 6 will bring whenever it is finally released.
I’ve always liked that the Ruby and Perl communities seemed (for the
most part) kind of friendly and symbiotic in their shared value of
TMTOWTDI. I hope that spirit continues and that we don’t become the
“old guard”.


Avdi

Home: http://avdi.org
Developer Blog: Avdi Grimm, Code Cleric
Twitter: http://twitter.com/avdi
Journal: http://avdi.livejournal.com

On Aug 5, 2008, at 3:18 AM, Phlip wrote:

Maybe a parallel here is Steve Job’s ability to indoctrinate huge
crowds of technocrats into his cult. When I am forced to use a Mac…

I wanted to stay out of this, but you are just spreading too much FUD
for me to let it go…

  • 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.

  • 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.

  • 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.

James Edward G. II

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

  • then I must click twice on a window to use it
    the application model used on another platform is the same one

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/

  • 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/.

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?

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

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.

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 G. II

Martin DeMello wrote:

Greenspun was proven right. Again.

I don’t understand this hostility to perl6, which (discounting its
current lack of completion) looks like a very exciting language. Sure,
lisp lets you have arbitrary reader macros, but it looks like perl6
will make syntactic extension a lot more accessible than any of the
lisp dialects I’ve seen. Also, while lisp can be twisted into
arbitrary syntaxes, it goes against the grain of the language and the
culture. I’d like to see it done right (camlp4 and nemerle are two
interesting experiments in that direction, but perl6 promises to be
better than either of them)

I’m excited about Perl 6 in the same way I’m excited about Duke Nukem
Forever. What annoys me about Perl 6 is that it’s something different
every month, which I believe has contributed to its long delay. 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. It’s trying to be
the everylanguage.

  • Charlie

On Aug 5, 2008, at 3:10 PM, Charles Oliver N. 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… :^)

Dave T. wrote:

On Aug 5, 2008, at 3:10 PM, Charles Oliver N. 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

From: “James G.” [email protected]

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

On Aug 5, 10:08 am, Phlip [email protected] wrote:

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.

Ptolemy would be proud :wink:

T.

Bill K. 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…

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.