13 ms·
Nine years of Go
- auvi 8y agojust wondering, what are some well known Go projects? I know docker is one.
- bauerd 8y agoKubernetes Edit: Tons of others, really
- YZF 8y agohttps://github.com/etcd-io/etcd https://github.com/etcd-io/etcd
- ainar-g 8y ago* Kubernetes: https://kubernetes.io https://kubernetes.io * Hugo, a static site generator: https://gohugo.io https://gohugo.io * Gogs, a git service: https://gogs.io https://gogs.io * Syncthing: https://github.com/syncthing/syncthing https://github.com/syncthing/syncthing * CockroachDB, a scalable SQL database: https://www.cockroachlabs.com/ https://www.cockroachlabs.com/
- coder543 8y agoGogs has been succeeded by Gitea[0], as I understand things. [0]: https://gitea.io/ https://gitea.io/
- yepguy 8y agoThey're both under active development.
- KaoruAoiShiho 8y agoMy last post on Gogs and Gitea: https://news.ycombinator.com/item?id=17006872 https://news.ycombinator.com/item?id=17006872
- coder543 8y agoThere are a lot of conflicting opinions, even on that thread. It would be nice if someone wrote an article that did a deep dive on the current state of both of them. Looking at Git activity, I can clearly see that Gitea is more actively under development by every metric. However, since they are now divergent code bases, what does Gogs offer that would make someone inclined to use it over Gitea?
- icholy 8y agoThe re-branding left a really bad taste in my mouth. I'm going to keep using the original.
- chewxy 8y agoCan I plug the library that I've been slowly working on (with the help of the Go community): gorgonia - https://gorgonia.org/ https://gorgonia.org/ It's like TensorFlow and PyTorch had a bastard child. Pure Go. Train your NN like you would in TF and PT.
- cft 8y agolnd, btcd
- latenightcoding 8y agoethereum nats traefik
- andmarios 8y agodocker, kubernetes, prometheus, grafana, influxdb, caddy, vault, etcd, consul, terraform, cockroachdb, alertmanager
- raincom 8y agoIn sum, its is all container echo system.
- tptacek 8y agoOnly a minority of those projects have anything to do with containers.
- andmarios 8y agoIf there is a link, I'd say it's devops —except cockroach and caddy of course. Go is a very useful language for this space, as it's easy (we aren't developers after all), it's safe, fast, compiles to a single binary, easy cross-compile support, software written in it tends to be robust, great basic library, etc.
- twic 8y agoI don't know if "echo system" is a deliberate mistake, but i like it!
- jcamou 8y agoKubernetes, Docker, InfluxDB, CockroachDB...
- axegon_ 8y agoWondering how come no one mentioned Mattermost.
- ortuman 8y agojackal: https://github.com/ortuman/jackal https://github.com/ortuman/jackal
- shazow 8y agoMore here: - https://github.com/trending/go?since=monthly https://github.com/trending/go?since=monthly - https://github.com/search?l=&o=desc&q=stars%3A>5000+language%3AGo&s=stars&type=Repositories https://github.com/search?l=&o=desc&q=stars%3A>5000+language... - https://github.com/avelino/awesome-go https://github.com/avelino/awesome-go - https://github.com/golang/go/wiki/Projects https://github.com/golang/go/wiki/Projects
- deleted 8y ago[deleted]
- stewbrew 8y agosyncthing
- blacksmythe 8y agogrpc-go: https://github.com/grpc/grpc-go https://github.com/grpc/grpc-go
- yepguy 8y ago* restic, a good backup tool: https://restic.net/ https://restic.net/ * rclone, like rsync but for cloud storage APIs: https://rclone.org/ https://rclone.org/
- w8rbt 8y agoCoreDNS
- pr3dr49 8y agoMany are mentioned here in the lists someone took the trouble to assemble for us: https://github.com/avelino/awesome-go https://github.com/avelino/awesome-go https://github.com/uhub/awesome-go https://github.com/uhub/awesome-go https://github.com/gobuild/awesome-go-tools https://github.com/gobuild/awesome-go-tools https://awesome-repos.ecp.plus/go.html https://awesome-repos.ecp.plus/go.html This one went further than just assembling the list: https://go.libhunt.com/ https://go.libhunt.com/
- donedealomg 8y agoI really really want to like Go, but.... It's not really succeeding in the enterprise, is it? Java is still growing and growing... and it's only a little bit of double the age of Golang
- CSDude 8y agoI love Go, used it a lot for over 3 years. I love the simplicity, directness, the inline structs, but I still cannot get out of the package management mess. I can even tolerate `if err != nil, return err` and do not care enoguh of generics, but I hope Go modules and Go 2 would fix, over the time, it has really become a love-hate relationship for me. My daily driver at work is Java and some Python, I really miss the tooling (of course, not runtime classnotfound errors) and maturity. Not ignoring the success of projects with Go, such a big one as Kubernetes, I think it is a whole different aspect, but Go started to tear me out through the years, and it is hard to defend it.
- shazow 8y agoCan you expand on "I still cannot get out of the package management mess"? I've used the community dep project for a while, which was okay. I switched to the GO111MODULE experiment and it's more than okay.
- CSDude 8y agoTry adding a dependency to a big project like client-go or Docker client, it always gets messy for me.
- the_clarence 8y agoThere is no better way to do errors imo, unless you're going the erlang way of "let it fail". Errors can be passed to the caller the same way exceptions are, and it becomes an endless pursuit of where the error is actually being handled (if at all). I agree that some syntax sugar helps, see Rust, but it doesn't completely fixes the problem.
- nvarsj 8y agoIt's baffling though that the compiler doesn't at least warn when you forget to check the err. So many edge cases with that (especially due to `:=` vs `=` if reassigning a prior err).
- 8y ago
- germanyhater 8y agoI prefer to use .NET Core / C#. It is very fast, async, cross-platform, open source and unlike GO, it is a high level programming language. One disadvantage is that compilation time is not as fast as with GO, but it was improved over the last years.
- PunchTornado 8y ago> unlike GO, it is a high level programming language what is high and low level depends very much on the context, but I don't see GO to be lower level than C#...
- jcelerier 8y agosince it has no generics, it has less expressive power
- AlexCoventry 8y agoCurious about the downvotes on this. Seems accurate.
- jcelerier 8y agowell, yes, unless they can proove that System F is equivalent in expressive power to λω in which case they can go fetch their Turing prize.
- pjmlp 8y agoLack of support for generics, enumerations, dynamic, FFI marshalling, expression trees, LINQ, exceptions, match expressions, ....
- PunchTornado 8y agosome of these are not present in other high level languages like PHP, javascript and you don't call them lower level...
- pcx 8y agoIn the last 3 months, we have built the new version of our API in Golang, the old one was in rails. The api serves a mobile app and a web app. Despite taking longer to build, it's a treat to work on Golang. The explicit error handling and static typing have made our code much more reliable, with a lot less unit/integration tests required. Concurrency is dead easy to understand and build over. We are OK with using dep, definitely miss a debugger or an REPL. Having generics would make it much easier to write code. But overall it was worth it. Our response times are much lower now with a lot less server nodes required.
- iends 8y agoDid you consider Java?
- vthallam 8y agoNot op, but I don't think people would want to go from Ruby to Java. I was working on Java before I was a Go dev, feel, Java is too verbose. Go is so simple to start with and you don't need "frameworks" for deploying a production quality microservice.
- oblio 8y agoModern Java is pretty cool. You can you use a mini-framework inspired by stuff like Sinatra/Flask, for example Dropwizard.
- brianwawok 8y agoI moved dropwizard to Django. Life is too short to generate setters.
- letientai299 8y agoWhy generate? Why not Lombok?
- the_clarence 8y agoWhat happened to the weird tire logo?
- jungler 8y agoI'm in the process of evaluating Go-raylib for a fantasy console project in lieu of Love2D. The basic rationale is: * I only need inner loop high performance - it's a fantasy console, and intentionally limited. It will have some C code, but I don't want to write a lot of it. * I want the project to be easy to build with few external dependencies(raylib is tops at getting this right) * I want static types and zero-indexing for the "OS layer" part, at least, since I have to build some original data structures for IDE functionality(e.g. there will be a text editor). It was the last part that made me switch away from Lua, and then it was the first two that made me consider Go.
- tokai 8y agoWhat about nim?
- justinclift 8y agoAre you meaning https://github.com/gen2brain/raylib-go https://github.com/gen2brain/raylib-go? If so, it seems a bit too buggy still for really wanting to write production code with it. :( G3N seems ok: http://g3n.rocks http://g3n.rocks Although it doesn't yet have a long history of maturity either. :/
- pasabagi 8y agoI think the problem is the ffi overhead to C from Go is really high, like, way higher than any comparable language, because of the segmented stack thing. I mean the nice thing about Love2d is that LuaJIT has the best ffi overhead when calling C. https://github.com/dyu/ffi-overhead https://github.com/dyu/ffi-overhead
- pjmlp 8y agoIt always felt strange to me the CGO approach, instead of what many compiled languages offer, e.g.: function exit(code: integer); external; cdecl; No need to have two phase compilation or run external tools.
- deleted 8y ago[deleted]
- ilovecaching 8y agoI've written a lot of Go, I started four years ago when my workplace at the time wanted to ditch writing web services in Ruby. We were very deep into containers, so the obvious choice to the team lead was to do what the Docker folks were doing. My take is that Go is a great language when you're working with incompetent people. It's so limiting in the abstractions you can build with it, that it is very difficult to write code that is not immediately obvious in its purpose. Go is easy to teach, easy to review, and it's so syntactically deficient and the tooling is good enough that it's hard to bikeshed. This ultimately improves the experience of writing code at work, and its static type system makes it easier to reason about large code bases for the folks who are used to using Ruby and Python at scale. But Go is also awful in so many ways, its such an obvious step backwards in its design and the community is so dogmatic about Go and the Go authors. On large code bases you almost invariably end up working around the deficiencies with the empty interface, code gen tools that add non standard syntax, and lots, and lots of copying code and code patterns over and over again. Any common pattern you see emerge, that you'd like to create a generic structure for, is probably impossible to encode without type variables. Go also notoriously pushes many errors that would have been caught at compile team to runtime because of its weak type system. With Sum types, it's difficult to make improper states illegal, and default values lead to subtle bugs because they essentially behave as predictable garbage. Go honestly keeps me from having faith in software engineering as a craft. It's the acceptable of the status quo, or worse, moving backwards in order to fit the needs of the lowest common denominator.
- codeslave3422 8y ago"My take is that Go is a great language when you're working with incompetent people. It's so limiting in the abstractions you can build with it, that it is very difficult to write code that is not immediately obvious in its purpose." Do you think this is intentional? Similar to how java is incredibly restrictive, and thus great for corporate programming environments?
- pjmlp 8y ago“The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.” -- Rob Pike