4 ms·
Why learn a new language just to learn a new language for production stuff? I looked at at switching to Go from Java for my flagship product. I couldn't find en
by virmundi 9y ago
Why learn a new language just to learn a new language for production stuff? I looked at at switching to Go from Java for my flagship product. I couldn't find enough compelling reasons to switch. It didn't offer enough benefits to outweigh the benefits of Java + Spring Boot. As a result, Java it is.
Now for a new product that I might sell as traditional installed software, Go makes some sense here since it simplifies install. My clients wouldn't need to install and maintain the VM.
In the end I wonder why switch to a new stack just because? I understand learning the languages to see if they are better tools. I understand learning for the sake of learning. But why bet a business on a new language just because it's cool?
- djeikyb 9y agoMy team just chose golang instead of java or dotnet core for a new crud app. I'm not especially fond of go, but mean length of feedback loops are worth it (so far). We have a bunch of tests, and they all run in a few hundredths of a second. Same coverage in java is usually several seconds at least. Often up to 30s if running tests with maven. Standing up the app is also instantaneous. Spring boot apps with hibernate often take at least ten seconds. In prod this doesn't matter. But a cheap app start means integration tests are cheap. An fs hook runs both unit and integration tests every time the code changes. ps. all the things people hate about go are true
- riku_iki 9y agoThere are lighter options in java world, my dropwizard server with JDBI starts in 1.2sec.
- parenthephobia 9y agoI'm genuinely unsure if this is a joke. If you're running that on a modern computer, your server is spending billions of clock cycles starting up. What on Earth is it doing? :) If I write a Go server, I'm unhappy if it takes more than 0.2 seconds to start.
- riku_iki 9y agoDepends what your server is doing, java app binded to http port will take probably same amount of time. My dropwizard server contains almost all possible batteries: ssl, logging, http filters, static content, metrics, DB connection pooling, static content serving, all kinds of URL parameter parsing and URL routing, DI framework, ORM, thread pooling. I think it just inspects and initializes all this data structures in memory, load libraries and classes, etc.
- pjmlp 9y ago> My clients wouldn't need to install and maintain the VM Why should they? One can always deliver everything together. Not much different than static linking. Also there are AOT compilers and with Java 9 we are getting a linker to create customized JREs.
- virmundi 9y agoI'm waiting for the 9 features. That should make things easier. Since I'm targeting small physician practices, I need to make everything as simple as possible. I've even toyed with Raspberry Pi as the install device. From what I've read, Go is a good option for this.