3 ms·
I've seen a lot of projects use Go in the enterprise space. They all ran into the issue that Go is a great replacement for C++, a good replacement for real time
by JamesBarney 8y ago
I've seen a lot of projects use Go in the enterprise space. They all ran into the issue that Go is a great replacement for C++, a good replacement for real time systems, and a not a great replacement for C# and Java.
- lkramer 8y agoWhy is it not a great replacement for Java? My experience have been opposite, C++ still have its place, but Go has taken over where previously maybe Java would be reached.
- threeseed 8y ago1. Very limited libraries. 2. Very limited support from enterprise vendors. 3. Poor at scaling to hundreds of developers. Java's verbosity and over use of design patterns has actually been beneficial. 4. Network effects. Almost every enterprise developer, outsourced dev shop and operations team knows at least a little Java.
- geodel 8y agoWell of course everything you said is kinda true. Go is not going replace Java in one-to-one replacement type projects. It is going to be in a way like Cloud vendors have creamed traditional IT/outsourcing vendors or IPhones crushed blackberry. At some point existing Java systems will stop delivering value compared to their maintenance cost in lot of situations. This is where Go as replacement will come in handy.
- SEJeff 8y agoGo is a terrible replacement for real time systems. While newer go has a much better garbage collector, it still isn't 100% deterministic. Most real time systems are written in C / C++ / Systems Verilog (FPGAs) / etc. I've once seen it written in a special java where the internal core sys (garbage collection) jars were overridden to disable gc entirely. Once the JIT was primed and ready to go this was exceptionally good and was fast as heck. If go is killing anything, it is killing Ruby and it is seriously cutting into the server side stuff written in node. In my experience, Go is a nice fit right in the middle between C and Python. The best part of it is probably that the language spec is so short any developer can read it all and memorize it. As more and more stuff uses Go due to its overall simplicity and sensibility, some java stuff will suffer for sure.
- JamesBarney 8y agoSorry by real time systems I just meant systems that do lots of data processing that is generated in real time but don't have super strict latency issues. Not the control system that's running on the oil rig for instance but all of the data processing that is happening downstream on the data the sensors generate. I can see how that wasn't clear at all. I should have used maybe the term data stream processing applications. > Go is a nice fit right in the middle between C and Python Totally agree. I just see it used as a Python replacement more often then a C replacement. And the teams that did seemed to be getting a lot less done than the ones using a Python equivalent language.