One last bit of perspective here, which may be relevant to your project? I've found that Go has the lowest cognitive load "switching" load. I have a job that mostly doesn't involve coding. When I get to code, I have a limited window in which I can jump in and make changes. Amongst the languages I've worked with, which includes Ruby, Python, Java, Bash, and C++, Go is the clear winner. By which I mean, the time it takes me to switch back to writing Go code and start making effective changes is shorter than it is with any other language I've mentioned.
With languages like Python and Ruby, I've found switching costs to be very high. The lack of compile time type-information means it is difficult to determine what the "type" of a parameter to a function, or the result of a method might be. You have to go and look at other chunks of code to figure that out, and that can be costly. Also, the use of exceptions means that there are always invisible control flows that are hard to remember / see when switching back to code. With Java, the class hierarchy, the distinctions between public, private, protected, and package level accessibility all add complexity that some part of my brain needs to recall / rediscover before I can be confident of the correctness of a change. C++ is even more complex than Java. Mental switching costs are even higher. If your project is one that involves only short windows of opportunity to work on code, while mostly focusing on other tasks - like analyzing your data - then Go might be an enormous benefit. If your project is structured more like an ordinary software development project, with focused developers who can work on the project for four to seven hours a day, this aspect of Go won't matter. Eric. On Wednesday, December 6, 2017 at 1:56:01 AM UTC-8, Christophe Meessen wrote: > > Hello, > > I'm a computer scientist in charge of developing an image processing > pipeline for telescope images. > It will also have a web server and DB connection. > > The project is going through reviews by external experts, and the problem > I'm facing is that my proposal to use Go is about to be rejected. > > The main opposing arguments are > - everybody uses python in astrophysics > - it is very easy to find someone who knows python > - risk that I, sole Go programmer, might become unavailable > > I would have the same arguments if I was project leader and unfamiliar > with Go. > > The counter arguments I found so far are that > - Go is simpler and safer than Python > - I learned Go in a week-end > > The problem is that they don't convince people who don't know Go, are not > experienced software developers, and don't want to do the due diligence. > It's the usual inertia to change. > > What other arguments could I use ? > > Do you know other significant scientific experiments that have adopted Go > ? > > > > I have found this github project. > https://github.com/indigo-astronomy/indigo > INDI is a well known Python Observatory Control System. > INDIGO is its translation into Go. > > I have also found SciPipe https://github.com/scipipe. > It is a Go pipeline framework used in scientific applications. > > > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.