
Why I Recommend Against Hackety Hack - AlSweigart
http://inventwithpython.com/blog/2012/12/27/why-i-recommend-against-hackety-hack/
======
steveklabnik
Hackety Hack maintainer here!

Two things:

1\. As popular as Hackety Hack is/was, I have pretty much been the sole
maintainer for the past few years. This is really, really hard. Like, "reverse
engineer a website from the app's API" hard. "Spend 6 months trying to get it
to compile" hard. "Deal with thousands of lines of uncommented C written by
someone who specifically enjoyed obscurity" hard.

2\. Technical debt due to Shoes (the GUI toolkit Hackety is built on top of,
see above comments about difficulty) has led to a few people re-writing Shoes
from scratch[1]. It is relatively active. Hackety development is on a
moratorium until that work is done.

3\. I volunteer with CodeNow[2], and we teach using Hackety to high school
kids. They generally find it to be pretty awesome.

It is no secret that Hackety is not as active as I'd like it to be. Getting
help is hard. I've asked for it a few times, and nobody (relatively speaking)
wants to, so here we are. I will help anyone help me in any way they can.

1: <https://github.com/shoes/shoes4> 2: <http://codenow.org/>

~~~
AlSweigart
Hi, I'm the author of the blog post. I have to ask, wouldn't it have just been
a lot easier to start from scratch with Shoes, but also start over with
Hackety Hack?

I'm not familiar with the implementation of Shoes, but couldn't you write a
wrapper for an existing GUI toolkit that just had a simplified API?

Or, since so much of Hackety Hack's GUI looks and acts like a web page, just
implement Hackety Hack as an offline web app, where the typed Ruby code is
just piped to the interpreter running on the box, and the results are returned
as HTML displayed in the browser? It seems like a lot of work is reinventing
basic things (text editor, GUI toolkits, etc.)

~~~
wakaflaka
Sounds like you got it figured out. Why don't you take care of it for him?

~~~
roopeshv
coz he's writing many more books related to programming for beginners, unlike
you who's just got snarkiness and nothing else going for him/her

------
evolve2k
My son was 8 when I got him into HacketyHack, he loved it and made many little
desktop apps using HH and it's shoes interface. His favorite apps where ones
where the user was asked questions and things happened depending on what the
user said. He loved showing friends and relatives.

HH had been abandoned since before _why disappeared. I have to acknowledge
Steve and his happy band for recovering the project and getting it to a
version 1.0

I don't know the full back story but shoes on which HH is based had many
issues as a code base, also HH was originally designed so it would run on
PC/Mac/Linux. As a cross platform desktop software the project is in need of
more badass devs who are not afraid to do local Dev work on different os's.

My son has learnt a lot of code since he stared with HH and we found he then
easily transitioned to Sublime plus shoes but if there were some more HH
modules (and greater windows stability), I know even today he'd be keen to
jump on there.

~~~
steveklabnik
Glad to hear it. Thanks. :) I've heard of a few 7 or 8 year olds going through
it, I'm glad I managed to make it accessible for them too (even with a little
help, I'm sure.)

------
sadlyNess
Almost every item of 'suckery' listed is something that can be fixed or
rather, finished. And it's OS.

~~~
steveklabnik
This is true, and I'd be willing to help anyone that wants to help me do it.

~~~
jetti
I'm not sure what kind of help you need but am sending you an email offering
my services (if I can even provide any).

~~~
steveklabnik
Thanks, I just sent you one back.

------
ryguytilidie
Spent last year learning to code. I had the same problem with Hackity Hack, it
really didn't teach me anything. It was a huge handholding operation.

I did Team Treehouse last month and it was infinitely better. This is no
criticism of Steve, who is clearly working hard, but just a realistic view of
what tools you should consider if you want to learn to program.

~~~
steveklabnik
Thanks! I actually consider 'a huge handholding operation' to be a big
compliment: that's the point of a tool like this. You obviously didn't need
handholding, but many do: they're my market. I'm glad Treehouse was able to
help you. Keep building cool stuff!

------
aneth4
Watch _why talk about Hackety Hack.

[http://orgtheory.wordpress.com/2012/03/20/_why-aa-
jonathan-g...](http://orgtheory.wordpress.com/2012/03/20/_why-aa-jonathan-
gillette/)

------
frozenport
Teaching kids Ruby? What happened to dreams? Do we want our kids engineering
the next mobile dating platform for the enterprise? We should be teaching them
OpenGL, C++, or maybe javascript.

~~~
twelvechairs
Teach kids Ruby and if they are interested they will learn other languages
later. Ruby (before you go on to rails) is very flexible in its use and good
to branch from. C++, javascript, and opengl have very particular use cases,
which is fine if you know thats you want to do, but pointless if you just want
to learn generalised programming concepts...

If you want to go lower-level better to learn some assembly (or at least C)
instead...

~~~
shod
Might I suggest Python instead? It's more immediately useful to kids
interested in the sciences.

~~~
AnthonBerg
Let's do both.

------
cloudhead
This shameless post alongside its comments is the reason I and others have
left OSS.

------
zachgalant
For a beginner, you need to check out www.codehs.com -- we've made it really
easy to get started and a ton of fun to learn.

Plus, students all get access to and personalized help from tutors whenever
they ask a question or submit their code.

~~~
harryf
CodeHS looks pretty good; logo-esque from first glance. I see a problem
though...

As a parent having tried everything I can find (logo, scratch, hackety hack,
invent with python, straight PHP programming etc. etc.) to teach my kids
(currently 9 & 6) programming, the #1 problem is the medium is wrong: sitting
still in front of a computer for more than 15 minutes is diametrically opposed
to their natural behaviour.

The best approach I've found, which also makes a great party game is "How to
train your robot" -> <http://drtechniko.com/2012/04/09/how-to-train-your-
robot/> . It works well because there are no computers involved.

Cargobot on the iPad also works pretty well, although largely because it's an
iPad

Also recently had success with <http://popapp.in> plus UI stencils although
this is more design / hypermedia than programming

