Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
b
-
Go 1.18 Released
It depends on the level of abstraction you're addressing. One level may be "i need to store things with a quick search function", another may be "i need a storage of ordered names and expiry date for things", etc until you get to "I need a binary tree which orders by comparable types".
Where you split that process as a separate library you either decide to write or reuse - that becomes the problem to solve. A set implementation may be a problem to solve: https://github.com/deckarep/golang-set A btree may be a problem to solve: https://gitlab.com/cznic/b/-/tree/master/v2
-
A generic B+Tree implementation you can use today
Requires Go1.18beta1 or later: https://gitlab.com/cznic/b/-/tree/master/v2
genny
-
Go 1.18 Released
Im not sure about any library in particular.
There were bunch of libraries which helped with code generation to work around generics. I don't think it was specific to Graphql.
https://github.com/cheekybits/genny is one I have seen.
-
To Those Who Criticize JavaScript
TypeScript is pretty much necessary for a modern JS project if you ask me, so I agree with you here. At the same time, I'd say that if the JS ecosystem offers a solution, that doesn't count as a failure. It's like pointing to the lack of generics in Go and calling that a failure. No, that's a design choice that can be worked around. Same in JS; dynamic typing was a design choice, TypeScript is a solution.
-
Learn to build SDK or Wrapper over REST and Websocker
If you want to experiment, I've been meaning to try out this library, which uses code generation (a first-class feature in go), to give generics-like functionality.
-
Created my first go tool, an interface generator
If you are into codegen, there are some larger codegen projects or there, like cheekybits/codegen (there are more in the space of trying to circumvent generics in go).
-
Metaprogramming
In golang there is no parametric polymorphism (or “type parameters”, or “generics”). So people created workarounds, for example, gengen (similar solutions genny, generic, gen):
What are some alternatives?
go_chainable - With generics, allowing chainable .Map(func(...)).Reduce(func(...)) syntax in go
goreuse
gtl - Golang Template Library (GTL). Common data structures using Golang generics.
TOML-to-Go - Translates TOML into a Go type in your browser instantly
go-generic-optional - Implementation of Optionals in Go using Generics
gonerics - Generics for go
go - The Go programming language
xgen - XSD (XML Schema Definition) parser and Go/C/Java/Rust/TypeScript code generator
functional-go - This library is inspired by functional programming - Clojure
generic - flexible data type for Go
Garment - 🐺 A Thread Safe Connection Pooling.
hasgo - Haskell-flavoured functions for Go :smiley: