Go lang

Last round of the recently concluded stripectf was in Go lang. This gave me a good opportunity to familiarize myself with the language. Even though my native programming language is Java, I have worked professionally in JavaScript, Perl and PHP; dabbled in Python for my personal projects and can manage to read Ruby, Lisp(and it’s dialects), Erlang and Scala with some Google help. When I ruminate on programming languages, I do not see any of these replacing Java as the de facto lingo of the enterprise world but I see the promise in Go lang.

1. Go lang is strongly and statically typed. This means that a lot of mistakes that could potentially cause your code to blow up in production would be caught at compile time. Apart from this, if the language crosses a critical mass of adoption, someone will come up with an IDE that can possibly match Eclipse, IntelliJ, et al. Also, one of the principles behind the language’s design is to aid tooling which means that a lot of tools could possibly crop up which would help to make code more secure, performant etc.

2. Syntax of Go lang is not revolutionary. I consider this a virtue. I am strongly of the opinion that if a language has to gain mass adoption, it’s syntax should be very close to the prevalent languages. Go lang does not deviate much from the Cish syntax but has subtle improvements which improves programmer productivity.

What makes Java a good programming language for the enterprise? Syntax of Java is very close to C which means that you could possibly train a lot of the computer science graduates out there to code in Java. Try Lisp with an average Joe programmer and you will know what I am talking about. With the people supply problem solved let us move on to other factors. Enterprises gravitate towards stability, security and viewing programmers as replaceable components of a machine. Java gives enough constructs to prevent a reasonably sane headed person from shooting themselves in the foot. Static/strong typing, code analysis tools and IDEs go a long way in helping with this. Without tearing your hairs out, try working with a code base in a dynamic language designed by an architect and then handed to a team for coding and then passed on to a testing team and then shifted over to an offshore team for maintenance. And to top it all, you do not have Eclipse or IntelliJ to help you with this mess.

Go lang has all the pluses of Java minus the verbosity. Of course it has a lot of other features which you can read about in the website.

3 thoughts on “Go lang

  1. I just had a quick look into the Go language, saw few code samples and understand at high level what exactly it does. Go Lang is a OOP link programming language but I did not liked the way how the language is designed. One may say it’s easy to use , simple or what ever but I feel it is a worth language for enterprise applications.

    Visibility of a variable should not be defined based on the first letter is caps or small. Isn’t go a little crazy? How shall we define a protected variable?

    With the language design of Go Lang, it can never ever replace any programming language. I feel it’s a unique some kind of wired programming language.

  2. I just had a quick look into the Go language, saw few code samples and understood at high level what exactly it does. Go Lang is a OOP like programming language but I did not liked the way how the language is designed. One may say it’s easy to use , simple or what ever but I did not feel it’s a worth language for enterprise applications.

    Visibility of a variable should not be defined based on the first letter is caps or small. Isn’t go a little crazy? How shall we define a protected variable?

    With the language design of Go Lang, it can never ever replace any programming language. I feel it’s a unique some kind of wired programming language.

    1. Go lang does not have any OOP features in the traditional sense but gives you nice constructs to create your own style of OOP.

      Regarding the visibility, I like the idea of method names beginning with capital letters having default public visibility. I have never as such found a real good use for the fine grained visibility constructs in Java, maybe some day I may :).

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s