
Steve Klabnik Quits Job to Work on Hackety Hack - dmix
http://blog.steveklabnik.com/the-hardest-decision-ive-ever-made
======
brianlash
"Quits Job" is really misleading. Steve didn't work for Cisco or Apple. He was
the technical side of a 2-man team which became the doll of AlphaLab and
earned the respect (and money) of one of Pittsburgh's most admired angels.

Most of HN will see the net win for Hackety Hack, and that's fair enough, but
I'm sorry he won't be on the front lines of CloudFab's campaign to disrupt
rapid prototyping. I loved the wild-eyed way he talked about upending the
industry, and he and cofounder Nick Pinkston formed exactly the mad-scientist-
meets-cunning-business-guy pair you could see pulling it off. So while I know
this move had to happen and I support his decision, I also think another
(admittedly very different) cause will suffer for its loss of an important
contributor/activist.

------
kab
Hackety Hack is a perfect example of what's wrong with the Ruby community.
Yes, I know Hackety was created by _why, and everyone here loves _why, and the
goal of teaching children to program is undeniably laudable, but that doesn't
change the fact that this is not the right way to go about it.

The Ruby community is both ahistorical and insular. Most Ruby programmers came
to Ruby from Java, PHP or some other mainstream language and have an
uninformed opinion about Ruby's merit as a language and its place in the wider
world of programming languages. The proof of this is their tendency to
excessively tout features that Ruby borrowed from Lisp, Smalltalk and Perl,
often with an implication that these features are unique or somehow special to
Ruby when they have sometimes existed in other languages for decades (e.g.,
blocks, metaprogramming or flexible, TIMTOWTDI syntax) and often in a better
form. (Compare Smalltalk's blocks, which are always real objects, to Ruby's,
which need to be converted into Procs if you wish to treat them like objects).

The main issue I have with Hackety Hack is the existence of a mature,
Smalltalk-based alternative named Squeak. Smalltalk is a much, much simpler
language than Ruby and has a history of being used to tech children
programming dating back to the 1970s. Squeak also has Scratch, EToys and
Morphic. What exactly does Ruby bring to the table, other than nicer looking
websites, bigger egos and curly braces? Would it kill Rubyists to learn a
little bit about the languages that influenced Ruby and other non-mainstream
or academic languages, to at see what they might be missing out on?

~~~
steveklabnik
I can't say much about the broader Ruby community, but I personally am really
interested in languages, and have made it a point to be as much of a polyglot
as possible.

While I understand what you're trying to say, here's my perspective: even
though many parts of Ruby have come from other languages, it's about the
tradeoffs that were made. Blocks are actually a great example: what matz did
was realize that often, you're only passing one anonymous function to another,
and so he added special syntax to make it nicer. Procs aren't some conversion
tool to upgrade blocks, Procs are the general case, and blocks are just a
special one. That said, I can't remember the last time I actually needed to
type Proc.new. With that said, you may disagree, but you can see where I'm
getting at. Just because something did it _first_ doesn't mean they did it
best. But that really comes down to taste, right?

> The main issue I have with Hackety Hack is the existence of a mature,
> Smalltalk-based alternative named Squeak.

The main issue I have with Squeak is that it's Smalltalk. ;) Smalltalk is a
fine language, but I can't get into the whole image thing. I really have
nothing new to add to this; my arguments are old and tired.

> What exactly does Ruby bring to the table, other than nicer looking
> websites, bigger egos and curly braces?

While we're on this whole "educate others about language features" kick,
Rubyists almost never use curly braces. One-line blocks are the only time. ;)

> Squeak also has Scratch, EToys and Morphic.

What Ruby brings to the table is being an actual programming language, rather
than a bunch of blocks you put together. I don't mean to demean Scratch, it's
done a lot of good, and is a great project in its own way. However, I don't
think that 'teaching programming' is a zero-sum, winner take all market.
Hackety and Scratch can coexist just fine.

~~~
kab
"Blocks are actually a great example: what matz did was realize that often,
you're only passing one anonymous function to another, and so he added special
syntax to make it nicer."

This argument, that you almost never need to pass in more than one block to a
method, is true, only because Ruby doesn't as elegantly support the
alternative. If it did, then you'd probably have plenty of multiblock methods
like do:separatedBy: as you do in Smalltalk.

"With that said, you may disagree, but you can see where I'm getting at. Just
because something did it _first_ doesn't mean they did it best."

So Smalltalk's blocks, which are versatile enough to be the basis for the
language's control structures, are inferior to the block, proc, lambda
trifecta of Ruby? Are you seriously telling me that you wouldn't prefer Ruby
just have procs (real objects) with the block syntactic sugar and maybe also
lamdbas, for their different return behavior?

"Smalltalk is a fine language, but I can't get into the whole image thing."

I used to feel the same way, but that was because I didn't understand the
image. To me it was some digital blob with code and program state in it; I was
always scared of breaking it or losing code. Then I learned how to actually
use it, thanks to Squeak/Pharo by Example. Now I wouldn't have it any other
way.

"While we're on this whole "educate others about language features" kick,
Rubyists almost never use curly braces. One-line blocks are the only time. ;)"

Ruby is a curly brace language even if Rubyists opt not to use them;
syntactically it belongs to the C family of languages, which are the "curly
brace" languages.

~~~
steveklabnik
We're just going to have to agree to disagree over preferences here. Enjoy
Smalltalk, it's great.

------
edw519
Steve, like many here, is one of those people who seems to be good at whatever
he tries. So he finds himself caught between the worlds of science and
humanities. No big surprise in a kingdom of hackers and painters.

Having met Steve both here and IRL, I have little doubt he'll be successful.

Best wishes, Steve, and keep us posted. I'm sure many of us here in similar
situations are looking forward to learning something from your journey.

------
lsb
I have a double-major in Computer Science and Latin, and the
history/rhetoric/linguistics that you learn from studying humanities is mind-
opening. (Paul Graham compared Latin and Lisp in this way.)

And if you manage to do a literary analysis with NTLK or something, combining
the two, your professors will realize that that's pretty cool.

------
angrycoder
Godspeed. Get out there and teach some kids how to care about something other
than Call of Grand Theft Warcraft.

------
daimyoyo
I love HN. I am learning Python right now but trudging through phonebooks of
manuals isn't exactly the most fun I've ever had. This looks like a completely
different approach and I never would have known about it if not for HN. Thanks
to YC for this fantastic resource.

~~~
steveklabnik
Thanks daimyoyo. If you're learning Python, have you checked out Zed Shaw's
<http://learnpythonthehardway.org/> ? It's a solid resource for people with no
prior programming experience.

That said... please feel free to get a hold of me with any thoughts,
criticisms, problems, or praise with Hackety. There's a reason it's not 1.0
yet, and feedback is the only way I can make it better.

------
zbanks
Good luck!

This is a momentous leap, but Hackety Hack is an amazing project, and totally
worth it.

~~~
steveklabnik
Thanks. I think so too. There's a lot of things I want to do with it... but
one foot in front of the other!

------
compay
"Do what you love and the money will follow" -my Mom

Best of luck Steve. Props to you for living the life _you_ want to lead. Now
that's a great way to inspire children in and of itself.

~~~
steveklabnik
Thanks. Your mom isn't my mom, is she? ;) Sounds familiar.

------
andreyf
Sweet! Steve: will we see a major rewrite of Hackety Hack now that you have
all day to think about it?

~~~
steveklabnik
First of all, I don't quite have all day: I'm still doing some other stuff to
make rent. But more of the day. :)

As for a re-write, Hackety (for the most part) is actually in a really good
place. It's already undergone one huge reorganization in the last few months,
I don't see it as being time for another yet. Most of the work it needs now is
polish.

That said, there is something that's undergoing a total re-write, and has been
taking up more of my time: Shoes. Shoes is part of Hackety, as far as I'm
concerned, and so I've been putting a lot of effort into it as well. But if
you haven't heard about that... you will soon. Lots of good things coming
there, and making Shoes better makes Hackety better by association.

~~~
andreyf
Sounds awesome. Looking forward to the upgrades.

[If you're planning on a web-based version of shoes and want feedback, I'd
love to help however I can. My e-mail is in my profile.]

------
galway
so weird that hackety continues without _why, considering it is such an
obvious outpouring of _why's brain.

~~~
steveklabnik
I think it's his most important work. I really identify with the Little
Coder's Predicament: I was that exact kid, playing around with BASIC when I
was 7, making little games. I wouldn't be here if it wasn't for that.

