“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:
- 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?)
- 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
- 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
- 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 :)
- Must provide drivers and ways to connect to loose infrastructure applications (db's, web servers, graphic drivers, etc)
- 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 :) )
- 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?