# Hackety Hack

Hackety Hack is an open source application that teaches individuals how to create software. It combines an IDE with an extensive Lessons system. The cross-platform desktop application also has integration with the website, where "Hackers" can share what they've learned, ask questions, and submit feedback.

## History

Hackety Hack was originally created by _why in order to solve "The Little Coder's Predicament": that learning modern software development is complicated, and difficult. Why eventually developed The Bylaws of Hackety in the Hackety Manifesto which lay down the guidelines for the project.
Why enlisted the help of a group of 25 parents and their children to get early feedback, referred to them as "50 of my closest friends". The earliest iterations of Hackety Hack were based on an embedded Gecko browser, but this eventually transformed into the Shoes GUI toolkit.

### Post-Why development

Why intended to release Hackety Hack 1.0 at the Art and Code Symposium. In his talk, he showed off a build that's known as "version 0.L," with promises of a 1.0 soon to follow. This never came to pass, as Why mysteriously disappeared in August 2009, deleting his projects. Because they were stored in git, the Ruby community was able to revive them. A small team kept working, releasing v0.9 on Christmas of 2009, and finally 1.0 on Christmas of 2010.

### Ruby Summer of Code 2010

Hackety Hack was chosen as a project for the Ruby Summer of Code in 2010. Fela Winkelmolen was the student chosen to work on the project. Chris Redinger, Jeff Casimir, Sarah Mei, and Steve Klabnik mentored.

## Comparison with other educational software

The two largest similar projects are Scratch and Alice. There are two major differences: Both of these projects use a graphical programming language based on the concept of "blocks," but Hackety Hack teaches Ruby. Both Scratch and Alice are university projects out of MIT and CMU, respectively, and Hackety Hack has no university affiliation.

### Blocks vs Ruby

The difference of 'blocks vs. Ruby' stems from a shared belief: most programming languages require a lot of effort and knowledge before one can build more than the simplest of programs. The 'blocks' solution is to use the concepts of graphical programming so that beginners don't have to worry about syntactical or memorization issues, as there's a palette of blocks to choose from, and they only fit together in the correct way. The solution that Hackety Hack pursues is by teaching with a more traditional programming language, but adding libraries that make it easy to do complicated tasks in one line. For example, in a more traditional software library, making a background with a gradient would take five or six lines of code using a toolkit like Qt, but is one line in Hackety Hack. This is achieved by choosing simple defaults and dropping support for lesser-used options.

### Comparison with similar projects

The university affiliation that Scratch and Alice enjoy gives them more resources to bring to bear. Both projects have teams of people, the brand credibility of their institutions, and graduate students to write papers about them and use them in research. Hackety Hack is a more nimble project, since the team is much smaller. It's also truly an open-source project, whereas the Alice project, for example, only releases dumps of the project source every so often. Hackety Hack's development is entirely open.