
Unholy: _why's Ruby to Python compiler - DanielRibeiro
https://github.com/whymirror/unholy
======
moron4hire
_why was infinitely pragmatic. He serves as a constant, near daily inspiration
to me, just because he programmed because he wanted to, because he loved it,
not because it was his career.

~~~
irfn
_why is indeed an inspiration to all of us. i always make sure that i point
out "Poignant Guide to Ruby" and other _why's brilliance to ruby newbies.

------
rbanffy
In his comments, he says Ruby and Python programmers "battle" a lot. I love
and use Python a lot and have a small dislike for Ruby's very irregular
syntax, but nothing worth fighting for.

But don't get me started on Java... ;-)

~~~
chc
I don't know how long you've been doing Python and Ruby, but when Why wrote
that, the relationship between Rubyists and Pythonistas was pretty chilly.

As I saw it: There was this feeling that, after years of being dismissed as a
mere scripting language, it was Python's time to shine — but then Ruby came
along and (pushed along by Rails) was about to steal Python's thunder, and
they were so similar that people thought there was only room for one such
language in the New World Order. So Pythonistas began acting pretty rude
toward the upstart Rubyists, and the Rubyists got this idea that Python was an
evil, enemy technology.

~~~
extension
There is a stark ideological contrast between the Ruby and Python communities
with regard to code _uniformity_. Pythonistas believe there should be only one
obvious way to do things. Rubyists, on the other hand, are more accepting of
personal style in code, probably having gleaned some of the individualism from
Perl culture.

~~~
ig1
I disagree, Rubyist barely exist, Ruby is primarily driven by Rails, and if
anything is more opposite to the Perl TMTOWTDI concept it's "The Rails Way".
You can follow the Rails design or you can experience a lot of pain trying to
do it any other way.

~~~
halostatue
That is…not how most Rubyists view things, and not how most of the Ruby code
out there works.

Yes, Rails brought convention-over-configuration to the forefront of Ruby
programming, but it wasn't the first library to do so…and it's had a lot of
external influences as well. Remember that Rails3 is essentially Merb2, and
that's heavily influenced by Rack as the backing mechanisms for networking.

Just in the Web arena, Rails is the big player, but Sinatra matters, as does
Padrino. Ruby is still closer to Perl's TMTOWTDI than Python's "preferably
one".

[Edited to fix typing errors from the iPad.]

~~~
kunley
I agree Rails is not the Ruby opus magnum and the easiest way to get convinced
about it is to read ruby-talk list for a couple of months.

OTOH the Python's "one way" is also not the point and is easily misunderstood.

I recently jumped into myriads of Python low-level webserver libs and engines
- like say Sinatra. I had to investigate them thoroughly to decide what to use
for our startup. There are dozens of them and each encourages some other style
of programming. There wouldn't be so much of them if people went into "one way
of doing things" church.

~~~
halostatue
You're right: it's a preference for "one obvious way", not saying that there's
"only one way". My error for saying this the way that I did.

Ruby also has a bit of the "obvious way" (convention over configuration)
stuff, but it's not as front-and-center as, say, the Zen of Python (where the
obvious way stuff comes from, IIRC).

There's more in common than not in common between the two languages. I still
prefer Ruby because it works the way my brain does (or, more accurately, there
are choices made in Python design that do not work the way my brain does).

------
phiggy
If you like this, check out RubyPython[1], a project recently started by Aman
Gupta, one of Github's new hires.

1: <https://github.com/tmm1/rubypython>

~~~
halostatue
This claim is incorrect: Aman Gupta did not create RubyPython, nor does he
claim to (and Aman's repo linked above even shows that his repo is a fork of
my repo).

Aman has provided some comments, discussion, and code back to RubyPython over
the last few days. I know this because I've been chatting with him and pulling
his modifications back into the main GitHub repo[1] (which happens to be mine)
and pushing them back into the canonical repo on Bitbucket[2] (which is the
original creator's repo).

RubyPython was created in 2008 by Zach Raines, rewritten to use FFI in late
2010. Steeve Morin forked it as Rupy (apparently with Zach's blessing as Zach
pointed me to it when I posted a bug fix to Zach's code) earlier this year. I
got involved shortly after Steeve's fork. After some discussion, we (Steeve,
Zach, and I) unforked Rupy back into RubyPython and opened the project a bit
wider. I'm currently working on a new release (0.5) that should be out later
this week that unifies the two repositories and includes some fixes and
enhancements by Aman.

We're using Schacon's wonderful hg-git[3] for navigating between git and hg.

[1] <https://github.com/halostatue/rubypython> [2]
<https://bitbucket.org/raineszm/rubypython/> [3] <https://hg-git.github.com/>

------
SlyShy
Sadly, this can't handle C extensions in either language, making it unable to
port a lot of major libraries. Fun to play around with, though.

------
keyle
Is there any reason as to why this resurfaces from 2008? No pun intended.

~~~
bootload
_"... any reason as to why this resurfaces from 2008? ..."_

A practical reason: Ruby doesn't have the depth of Python libraries, get more
done in less time.[0] A theoretical reason: reading through the docs you find
that _'decompyle'_ is based on _'spark'_ (John Aycock's generic small
languages compiler), learning new things about languages & compilers is good.
A philosophical reason: studying _whys' code is like finding some lost Greek
classic from the library of Alexandria. Worthy of reading, just to see how a
hacker works this problem, thus making it timeless.

[0] At the time the code was written.

------
Montagist
why the lucky stiff was like the BucketHead
(<http://en.wikipedia.org/wiki/Buckethead>) or Daft Punk of programming. I
like that - besides the mysterious persona thing - he also reserved the right
to follow any tangent; He's a musician as well and made an album for one of
his programming books if i'm not mistaken.

If/when I release my programming mixtape - in which i'll spite hot fire about
unit testing and my gripes with MVC - he'll definitely get a spot in the liner
notes. haha :)

