I write code in a lot of languages. In a typical week I use PHP for client websites, Ruby for our internal applications and scripting, JavaScript on web pages, and ActionScript for Flash work. And I have developed strong opinions about all of them.

Starting a new Flash project this week, I have realized that ActionScript/Flash and Ruby/Rails are really at opposite ends of the spectrum in a lot of ways. Particularly in their philosophy and culture, which reflects to a great extent the people who use those languages.

It has long been frustrating for me to work in ActionScript. The language has been changing a lot – last year Macromedia went from the JavaScript-like structure of the language to something a lot more like Java, which they call ActionScript 2. The idea is that you can write larger and more complicated programs with much more ease. And that might indeed be the case, but it got a lot more complex. And just around the corner is ActionScript 3, but I’m afraid to even look. Macromedia has done a poor job of documenting the language – the ‘LiveDocs’ on their website don’t even come up for me, I just get a blank page, and reading the F1 help within the authoring environment takes a good ten seconds or more to come up on my brand new G5 PowerMac! Inexcusable.

Macromedia has provided an alternative, however, in the form of about five books, identical to the online documentation that works so poorly, to the tune of $50 each. So naturally one turns to other websites, in hopes of finding helpful code snippets. Sites that typically share code or tips are hideously unusable and debiliatingly ad-ridden, and something as simple and common as finding a tweening library that works in the current incarnation of the language is an exercise in futility.

Maybe it is cultural. Flash is not open source software, and Flash coders generally work in Windows. Flash/ActionScript does not seem to have a culture of sharing like many programming languages. The best Flash developers work in-house, develop libraries for their own use, and have little interest in sharing code. Often all that is shared is the URL of the finished product, a ritual often referred to as a “site check.”

Contrast this with Ruby, and Ruby on Rails in particular. This is a smaller community. The language was not created by a business, but rather a really cool individual interested in making a neat language. There are no adds on the website. Code is shared very, very freely. For whatever reason, it is the nicest and friendliest community based around a programming language that I know of. It is a joy to program, the code is lovely and easy to understand, and the work is satisfying.

Can you guess which language I prefer?

Tagged with: ,