# PRuby 1.0

**URL:** <https://www.ruby-forum.com/t/pruby-1-0/90810>\
**Category:** Ruby\
**Created:** [April 1, 2007, 11:53pm UTC](https://www.ruby-forum.com/t/pruby-1-0/90810 "2007-04-01T23:53:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![naething](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e47774/32.png) [@naething](https://www.ruby-forum.com/u/naething)\
**Post date:** [April 1, 2007, 11:53pm UTC](https://www.ruby-forum.com/t/pruby-1-0/90810/1 "2007-04-01T23:53:35Z")

</div>

== Background ==

Most of my life has been eaten by Ruport lately, I haven’t even had a  
chance to play around with any of the alternative implementations of  
Ruby out there!

I did some looking around and it seems like most people are interested  
in 1.8 compatibility, and performance, and fancy things like that.  
So little innovation, so little fun!

So I’m proud to announce something you’ll be sure to find convenient  
on talk like a pirate day, PRuby.

== What is it? ==

A bunch of wonderful ideas from Greg, Aaron, Paul, James, and Mike.

Why use irb when you can use iargghb?

[sandal@metta pruby]$ ./iaarghb

> > a = “pirate ship”  
> > =\> “pirate ship”  
> > a.hail(:length) if a.savvy? :length  
> > =\> 11  
> > a.hail(:lengthe) if a.savvy? :lengthe  
> > =\> nil  
> > a.hail(:ye\_stinkin\_length)  
> > =\> 11  
> > port = AARGHray.ahoy  
> > =\> []  
> > port \<\< Aye  
> > =\> [true]  
> > port \<\< Aye  
> > =\> [true, true]  
> > port \<\< Aye  
> > =\> [true, true, true]  
> > blow\_me\_down if port.empty?  
> > =\> nil  
> > port.plunder  
> > =\> []  
> > blow\_me\_down if port.empty?  
> > AarghYeSunkMeShip: Yarr! Ye Stinkin’ Lubber!!!  
> > from ./libpruby.rb:33:in `blow\_me\_down’  
> > from (irb):11  
> > from :0  
> > avast!  
> > [sandal@metta pruby]$

Ruby is supposed to be about expressiveness, and about making the  
programmer comfortable expressing their thoughts. Now, we are no  
longer shackled by Matz’s obvious oppression of the would be pirate  
Rubyist!

== Coolest Features ==

PRuby gives you the same syntactic diabetes RSpec users crave:

> > Object.ahoy.gimme\_yer\_stinkin\_object\_id  
> > =\> 23793950882680  
> > Object.ahoy.avast\_with\_yer\_cursed\_class  
> > =\> Object

With convenient aliases to help you think clearly, and not wrestle  
with Ruby’s cumbersome lubber syntax.

> > AARGHray.ahoy.me\_matey?(Array)  
> > =\> true  
> > AARGHray.ahoy.me\_matey?(String)  
> > =\> false

It even ends the eigenclass/singleton debate with the most intuitive  
naming ever.

> > Object.me\_onsies  
> > =\> #Class:Object

If you’re not already sold on PRuby, well to hell with you. We don’t  
want to hear your FUD.

== Get it ==

[http://code.stonecode.org/pruby/](http://code.stonecode.org/pruby/)

PRuby is copyrighted tree software under LotFOT (see license at the URL)  
Pirates do not believe in complex package management, so see the pkg/  
directory for zip/tarball and src/ for the actual code.

There is also a README.txt and some small examples.

---

<div class="post-metadata">

**Author:** ![naething](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e47774/32.png) [@naething](https://www.ruby-forum.com/u/naething)\
**Post date:** [April 2, 2007, 12:25am UTC](https://www.ruby-forum.com/t/pruby-1-0/90810/2 "2007-04-02T00:25:39Z")

</div>

On 4/1/07, Gregory B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

Cool stuff  
will you release a major version every April 1st?

Robert

---

<div class="post-metadata">

**Author:** ![naething](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e47774/32.png) [@naething](https://www.ruby-forum.com/u/naething)\
**Post date:** [April 2, 2007, 12:37am UTC](https://www.ruby-forum.com/t/pruby-1-0/90810/3 "2007-04-02T00:37:42Z")

</div>

Robert D. wrote:

> On 4/1/07, Gregory B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> Cool stuff  
> will you release a major version every April 1st?

I guess, the next version will be released September 19th, 2007.

–  
Phillip “CynicalRyan” Gawlowski  
[http://cynicalryan.110mb.com/](http://cynicalryan.110mb.com/)

Rule of Open-Source Programming #34:

Every successful project will eventually spawn a sub-project

---

<div class="post-metadata">

**Author:** ![naething](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/e47774/32.png) [@naething](https://www.ruby-forum.com/u/naething)\
**Post date:** [April 2, 2007, 2:48am UTC](https://www.ruby-forum.com/t/pruby-1-0/90810/4 "2007-04-02T02:48:50Z")

</div>

On 4/1/07, Phillip G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Robert D. wrote:
> 
> > On 4/1/07, Gregory B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> > 
> > Cool stuff  
> > will you release a major version every April 1st?
> 
> I guess, the next version will be released September 19th, 2007.

I will need to talk to the PRuby core team, as we have our work cut  
out for ourselves, but there is a chance you’ll see PRuby 2 by then.

Of course, that depends on the start of Yaaaarv!
