The search for a new "Hello World" – Part #3 / Day #1

So, armed with a sort of checklist from my previous post it's time to consider some options, like I said, the goal of this exercise is to learn a new language, not to move away from PHP but to add a new dimension to my though process and widen the available tools scope.

Now, the list of available options is nothing short of daunting, so I'll use some biased judgment, a few recommendations and stroll along gathering information and keeping an open mind.

I also watched (finally) these two Codebits presentations and will be including some information along the way - at least as target practice :)

 

This will take a while to filter, so I'm dividing my efforts into iterations and posting them as I go.

 

The Go programming language

The Go programming language is an open source project to make programmers more productive. Go is expressive, concise, clean, and efficient. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.

I gotta say, it complies with the criteria I mentioned and, it's ranked below NXT-G so it's pretty hipster territory right there :) . It needs further investigation, but it made it to the shortlist.

Go Tips for learners on the road:

  • Go-Tour - An interactive in-browser Go tour that you can install and run locally
  • godoc , it's installed with go, just run : godoc --http=:6060

Resources:

Hello World

package main

import "fmt"

func main() {
	fmt.Println("Hello, 世界")
}

Installing and taking a stroll

The official site has a install reference page, I followed it and I was shocked that everything went smoothly the first time, I mean ... there's no decency anymore. Not only that, but they have the nerve to have a Go Tour (http://code.google.com/p/go-tour/) that you can install locally and run (say when I'm on the train) , where you are presented with the basic information on starting to code in go and where all the exercises are actually compiled on your machine. Pretty Neat.

Languages that are out

Meanwhile, some languages have been looked into and checked against "The Criteria" and are now out of the running - so to speak :

  • Fancy - Ruby inter-operable oop language. Benefits from all existing Ruby classes, doesn't feel like moving to it instead of Ruby would be beneficial for me. The message passing angle I never explored before, but fails criterion #2
  • Dart - A "we can fix javascript" attempt by Google . Interesting, OOP style, fails criterion #2 and #5 (I think) - might be interesting as a side tool for writing up "javascript"
  • Coffeescript - Doesn't have behemoth Google behind it, but for now I'm putting it in the same category as Dart