“Hello World” by any other name – Part #2

Part #2 of the thinking-out-loud-learn-a-new-language series (Part #1 here)


Ok, so learning a  new language is cool and exciting, but we're doing it on the run here, full time job (and then some), 2 kids, 1,5 hour (split between 3 stretches) commute time two .. the works :) , so time is one problem and focus is another, so sort of getting it right from the start is important here. This means I should get some proper metrics and goals for this to work, that my choice needs to be as practical as possible and that whatever it is, it must add a new dimension to what I already know (syntactic sugar aside) and not simply be an alternative to, in this case, PHP.

So, a short list of things that should influence the choice:

  1. I use Linux - of the Ubuntu flavor - so proprietary or OS limited stuff is, baring alternatives, out of the question (should I consider Objective-C ? .Net based languages despite having Mono?)
  2. Needs to have a wider or different scope than that of PHP - i.e. mostly web of the HTTP flavor - doesn't necessarily have to do EVERYTHING out of the box, but flexibility is smiled upon
  3. Obviously needs to have good official documentation and I would appreciate some liveliness on future developments - stalled "We're fine this way" languages lose points
  4. It's surrounding tools and infrastructure aspects again, should be available and relatively easy to setup - if the best language in the world requires a HPC infrastructure to get a "Hello world" running, it is most definitely out of the question :)
  5. Must provide drivers and ways to connect to loose infrastructure applications (db's, web servers, graphic drivers, etc)
  6. while syntax and paradigms are not the complete goal here, it shouldn't be a completely brainfck'ed up language (yes yes a pun there :) )
  7. Having Enterprise written up, left, right and generally all over it is *NOT* a good sign , too :)

So, yeah, pretty wide criteria here, I might need to narrow the scope a bit, but it will serve me as a sort of checklist that I need to run against. While I will probably return to make the list better, I think I can start shopping around now :)

Any words on this? Comments? Have you done a similar process and wish to share your thoughts?