Hacker News new | ask | show | jobs
by ssmall 5133 days ago
So whenever people ask me about Go, I try and get them to keep in mind this isn't meant to be a competitor to python/ruby or any of that. Approach it from the mindset of a C guy and it will look amazing. The biggest benefits over python/ruby are static typing and that it is compiled. I know static typing isn't popular around here but it has its benefits. I love go and I know web programming is possible in it, but I'd never use it for that. To me it shines at system level services, embedded linux, and anything with high performances and reliability requirements without real time requirements.

We were actually having a talk today about using it here on an embedded Linux device we produce. I'm not very confident anything will come of it but I think it would be a good fit.

2 comments

Indeed. There's been so much focus on interpreted langauges these days, compiled languages seem to be all but forgotten. C++ is the last new compiled language that's caught on. (There are others, like D, which are hanging in there, but don't seem to be gaining ground.) Go seems to have potential to grow into a successful compiled language.
While I share your point of view, being a bit pedatic, I would like to note that most JVM and .NET languages are also compiled.
Compiling to a virtual machine is only one step up from byte-compiling, which hardly counts. Calling a tail a leg doesn't make it one.
Microsoft .NET always JITs the code, there is no VM bytecodes being executed on runtime. If you prefer you can AOT your application with NGEN.

Mono also offers the possibility to fully AOT your .NET application.

Most Java VMs can be made to fully JIT the code, bypassing any interpretation with flags similar to -XX:CompileThreshold in Hotspots' case.

If you prefer compile Java directly to native code, you can make use of gcj, Aonix Perc or Excelsior JET.

Language != Implementation

  >  The biggest benefits over python/ruby are static typing and that it is compiled.
I find channels, interfaces, and attaching functions to data (as apposed to attaching methods and data to objects) rather compelling features personally.
If I'm not mistaken, ruby and python both offer similar ideas. I've only used both passingly
Not to be a jerk and I'm no expert in ruby (or much python for that matter), I don't think they do, at all really. At least no go-style interfaces or channels.