State of the Onion

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

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

···

--
M. Edward (Ed) Borasky
ruby-perspectives.blogspot.com

"A mathematician is a machine for turning coffee into theorems." --
Alfréd Rényi via Paul Erdős

M. Edward (Ed) Borasky wrote:

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

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

Larry Wall will cure cancer!!

"For power users of this open source language, such extensibility could mean that they will be able to augment the language with instructions, syntax, expressions, operators and other features to meet their own needs. An office of the National Cancer Institute, for instance, could extend Perl to include features that could aid in medical research."

Like they couldn't have just gone with "an automobile tire distributor could extend Perl to include features that could aid in distributing tires"...

And - just think! - O'Reilly will let anyone into their little clich, if they exhibit sufficient delusions of godhood.

Now excuse me while I get back to extending Ruby in application-specific ways...

···

--
   Phlip
   http://www.oreillynet.com/ruby/blog/2008/02/assert2.html

http://www.gcn.com/online/vol1_no1/46724-1.html
Just thought you'd like to know. :wink:

So Larry Wall has reinvented Lisp without Lisp's minimalist elegance?
Dylan did it first, but at least it had the decency to call itself a
Lisp dialect.

Greenspun was proven right. Again.

···

On Tue, 2008-08-05 at 11:05 +0900, M. Edward (Ed) Borasky wrote:

Any sufficiently complicated C or Fortran program contains an ad hoc,
informally-specified, bug-ridden, slow implementation of half of
Common Lisp.

--
Michael T. Richter <ttmrichter@gmail.com> (GoogleTalk:
ttmrichter@gmail.com)
When debugging, novices insert corrective code; experts remove defective
code. (Richard Pattis)

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

···

On Mon, Aug 4, 2008 at 10:05 PM, M. Edward (Ed) Borasky <znmeb@cesmail.net> wrote:

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

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

--
Avdi

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

M. Edward (Ed) Borasky wrote:

> http://www.gcn.com/online/vol1_no1/46724-1.html
>
> Just thought you'd like to know. :wink:

Larry Wall will cure cancer!!

"For power users of this open source language, such extensibility could mean
that they will be able to augment the language with instructions, syntax,
expressions, operators and other features to meet their own needs. An office of
the National Cancer Institute, for instance, could extend Perl to include
features that could aid in medical research."

Like they couldn't have just gone with "an automobile tire distributor could
extend Perl to include features that could aid in distributing tires"...

And - just think! - O'Reilly will let anyone into their little clich, if they
exhibit sufficient delusions of godhood.

My sediments exactly. "Version 6 of the Perl will be the first truly
extensible programming language, promised Perl creator Larry Wall". Uh
huh ... it won't be the first Turing complete language, it won't be the
first macro-rewriting language, it won't be the first language with
features to exploit concurrency, or vectorization, etc. And it won't be
Perl, either. :slight_smile:

Now excuse me while I get back to extending Ruby in application-specific ways...

Well ... OK ... just don't expect Larry Wall to care. :wink:

···

On Tue, 2008-08-05 at 11:43 +0900, Phlip wrote:

--
M. Edward (Ed) Borasky
ruby-perspectives.blogspot.com

"A mathematician is a machine for turning coffee into theorems." --
Alfréd Rényi via Paul Erdős

ways...

Ruby is, indeed, the best way to do that now. And Perl6 has been coming for,
what, eight years? I'm not holding my breath...

That said, if I understand this, it would involve actual changes to the
parser. Can't really do that in Ruby -- or at least, not without recompiling
Ruby.

Has anyone actually done the equivalent of Acme::Lingua::Pirate::Perl for
Ruby? If so, how much work was it? How hackish was it?

···

On Monday 04 August 2008 21:43:35 Phlip wrote:

Now excuse me while I get back to extending Ruby in application-specific

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)

martin

···

On Mon, Aug 4, 2008 at 8:48 PM, Michael T. Richter <ttmrichter@gmail.com> wrote:

On Tue, 2008-08-05 at 11:05 +0900, M. Edward (Ed) Borasky wrote:

http://www.gcn.com/online/vol1_no1/46724-1.html
Just thought you'd like to know. :wink:

So Larry Wall has reinvented Lisp without Lisp's minimalist elegance?
Dylan did it first, but at least it had the decency to call itself a
Lisp dialect.

Greenspun was proven right. Again.

http://code.stonecode.org/pruby/

Enjoy :slight_smile:

-geg

···

On Mon, Aug 4, 2008 at 11:03 PM, David Masover <ninja@slaphack.com> wrote:

Has anyone actually done the equivalent of Acme::Lingua::Pirate::Perl for
Ruby? If so, how much work was it? How hackish was it?

David Masover wrote:

···

On Monday 04 August 2008 21:43:35 Phlip wrote:

Now excuse me while I get back to extending Ruby in application-specific

ways...

Ruby is, indeed, the best way to do that now. And Perl6 has been coming for, what, eight years? I'm not holding my breath...

That said, if I understand this, it would involve actual changes to the parser. Can't really do that in Ruby -- or at least, not without recompiling Ruby.

Can you say "Job Security" boys and girls?

Yes, I thought you could.

Dan

David Masover wrote:

Has anyone actually done the equivalent of Acme::Lingua::Pirate::Perl for Ruby? If so, how much work was it? How hackish was it?

I'm not familiar with Acme::..., but the right answer for Ruby
is to use a composable grammar for its compiler (such as, but
not necessarily, the ones emitted by Treetop), and then to
simply support the "grammar" block ala Treetop where you can
define new syntax rules. Any time a new grammar rule fires,
the syntax may include as much or as little of the general
Ruby syntax as the rules decide to call. When a grammar rule
replaces a built-in one, it's able to use "super" to call the
original rule, as in Treetop... If you can also associate a
grammar rule as thej top rule of a filetype extension for a
file loaded from require (the way my Polyglot gem does), you
can require files in any language for which you have a grammar.

This is an amazingly powerful concept... someone will do it
sooner or later.

Clifford Heath.

I don't understand this hostility to perl6, which (discounting its
current lack of completion) looks like a very exciting language.

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.

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.

How much more accessible than, say, a Scheme hygienic macro do you want?
Seriously, writing macros in the Lisps is trivial. (Writing them in
Dylan was a bit of a pain in the ass because of the impedance mismatch
between the Lisp-like macro architecture and the Algol-like language
syntax, but even there it was still accessible.) Are you using a
different definition for "accessible" than I am here?

···

On Tue, 2008-08-05 at 15:17 +0900, Martin DeMello wrote:

--
Michael T. Richter <ttmrichter@gmail.com> (GoogleTalk:
ttmrichter@gmail.com)
Never, ever, ever let systems-level engineers do human interaction
design unless they have displayed a proven secondary talent in that
area. Their opinion of what represents good human-computer interaction
tends to be a bit off-track. (Bruce Tognazzini)

David Masover wrote:

Phlip wrote:

Now excuse me while I get back to extending Ruby in application-specific

ways...

Ruby is, indeed, the best way to do that now. And Perl6 has been coming for, what, eight years? I'm not holding my breath...

That said, if I understand this, it would involve actual changes to the parser. Can't really do that in Ruby -- or at least, not without recompiling Ruby.

Has anyone actually done the equivalent of Acme::Lingua::Pirate::Perl for Ruby? If so, how much work was it? How hackish was it?

The joke: Flaming O'Reilly for letting anyone into the clich...

...then following up with my sig, with a link to _my_ membership in the O'Reilly frat...

...describing a module I wrote in Ruby that gets inside the parser and extends it:

   O'Reilly Media - Technology and Business Training

No, I don't expect O'Reilly to go out and build conferences to revolve around me. Maybe if I filled my source up with gratuitously self-serving Tolkien quotes...

···

--
   Phlip

Martin DeMello wrote:

I don't understand this hostility to perl6, which (discounting its
current lack of completion) looks like a very exciting language.

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 never know what the Home or End keys will do next
  - the backspace key is called "Delete"
  - I can't find the on-off button in the dark
  - I must use a mouse to get out of many bogus situations
  - then I must click twice on a window to use it
  - a program's menu bar can be on a different screen from the main window
  - Alt-Tab can show but can't raise minimized applications
  - only Graphic-Backtick can rotate between windows within one application
  - Graphic-Backtick rotates by pushing the current window to the bottom
  - the desktop wallpaper changes if we reorder the screens
  - we get a horrific lockup if we turn one monitor vertical
  - not all dialogs dismiss with Escape
  - the mouse pretends to not have 3 buttons
  - the middle button wears out easily!

All this won't stop conference organizers from promoting Jobs as "God's Gift to Usability"...

···

--
   Phlip

Martin DeMello wrote:

http://www.gcn.com/online/vol1_no1/46724-1.html
Just thought you'd like to know. :wink:

So Larry Wall has reinvented Lisp without Lisp's minimalist elegance?
Dylan did it first, but at least it had the decency to call itself a
Lisp dialect.

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 Mon, Aug 4, 2008 at 8:48 PM, Michael T. Richter <ttmrichter@gmail.com> wrote:

On Tue, 2008-08-05 at 11:05 +0900, M. Edward (Ed) Borasky wrote:

Oh, to be fair, this doesn't really work the way Lingua does, because
it doesn't really modify syntax. But... it does bring pirate joy to
Ruby. :wink:

···

On Mon, Aug 4, 2008 at 11:09 PM, Gregory Brown <gregory.t.brown@gmail.com> wrote:

On Mon, Aug 4, 2008 at 11:03 PM, David Masover <ninja@slaphack.com> wrote:

Has anyone actually done the equivalent of Acme::Lingua::Pirate::Perl for
Ruby? If so, how much work was it? How hackish was it?

http://code.stonecode.org/pruby/

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

There just seems to be a general consensus that DSLs can work, if used
judiciously. No one seems to have a problem with, say, Sinatra:

get '/' do
  'Hello, world!'
end

The only change here, I think, is that we can now do things like:

get /
  'Hello, world!'
end

Or, for the more Python-inclined, drop the 'end'. And that's a very basic
example -- wouldn't it be nice if, when configured to use Haml as a
templating language, we could do:

get /
  %h1.greeting
    Hello, world!

Ok, probably a bad idea to make this the default, as in this example, but you
get the idea. Markaby is a cool concept, but at the end of the day, Haml just
feels cleaner. It also makes the point for very tightly-defined DSLs with
very odd syntax -- and this happens anyway, with Haml, whether or not Ruby
makes it easy.

I do see a point for Ruby's approach, though, in that I can get reliable
editor coloring, and I can, at a glance, and without reading documentation,
have an indication of what's going on -- at which things are part of the app,
which are part of the framework, and which are part of the language.

···

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

Can you say "Job Security" boys and girls?

For what it's worth, this isn't really about Acme, it's just the best example
I could think of for Lingua, which can munge syntax (somewhat).

Acme is actually a Perl library for "fun" stuff, most of which is just silly,
but sometimes, they do sort of serve as an example of whatever they're
demonstrating. The two that I've noticed:

Acme::Lingua::Pirate::Perl -- you can write Perl in the Pirate language
Acme::POE::Knee -- ponie races written for POE, the Perl Object Environment
(similar, I'd guess, to eventmachine)

Of course, you'll find all sorts of stuff. Usually high quality,
well-documented, and mostly useless:

    use Acme::Drunk;

    my $bac = drunk(
                    gender => MALE, # or FEMALE
                    hours => 2, # since start of binge
                    body_weight => 160, # in lbs
                    alcohol_weight => 3, # oz of alcohol
                   );

   $bac >= 0.08 ? call_cab() : walk_home();

···

On Monday 04 August 2008 22:58:36 Clifford Heath wrote:

I'm not familiar with Acme::...

I don't understand this hostility to perl6, which (discounting its
current lack of completion) looks like a very exciting language.

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.

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.

How much more accessible than, say, a Scheme hygienic macro do you want?
Seriously, writing macros in the Lisps is trivial. (Writing them in Dylan
was a bit of a pain in the ass because of the impedance mismatch between the
Lisp-like macro architecture and the Algol-like language syntax, but even
there it was still accessible.) Are you using a different definition for
"accessible" than I am here?

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.

martin

···

On Mon, Aug 4, 2008 at 11:43 PM, Michael T. Richter <ttmrichter@gmail.com> wrote:

On Tue, 2008-08-05 at 15:17 +0900, Martin DeMello 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 Gray II

···

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

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

···

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