go-linq | go | |
---|---|---|
4 | 2,096 | |
3,443 | 120,502 | |
- | 0.8% | |
0.0 | 10.0 | |
almost 2 years ago | 7 days ago | |
Go | Go | |
Apache License 2.0 | BSD 3-clause "New" or "Revised" License |
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.
go-linq
-
Fourteen Years of Go
This is a lot more possible now that Go has generics (as of 1.18).
I would probably never use these, as I find such libraries are a whole new domain-specific language to learn, and often don't make things much simpler anyway, but here are some libraries where people have done something like this:
* https://github.com/ahmetb/go-linq: modelled after LINQ, but created pre-generics so only recently added some generics features
-
Querying and transforming object graphs in Go
So awhile back, there was a port of Linq https://github.com/ahmetb/go-linq that ended up giving up, since then it has been continued with https://github.com/szmcdull/glinq
-
Juniper is an extended Go standard library using generics, including containers, iterators, and streams
I am aware of this that predates generics: https://github.com/ahmetb/go-linq/blob/master/groupby.go
- What libraries from other languages do you wish were ported over into go?
go
-
Component Generation with Figma API: Bridging the Gap Between Development and Design
In today's fast-paced software development landscape, efficient workflows and clear responsibilities between development and design teams are crucial. One effective way to streamline these workflows is by automating component generation from design tools like Figma to code using powerful programming languages like Golang. This article will explore the process of converting Figma components to code, focusing on the clear differentiation of responsibilities between development and design teams.
- The Functional Programming Hiring Problem
-
Go: Sentinel errors and errors.Is() slow your code down by 3000%
Nice write-up.
It's a shame that errors.Is is slow for general use, and at least some of that seems attributable to the Comparable change requiring reflection. Multi-errors seems to have bloated the switch. And of course the lack of a happy-path that was fixed in [1].
Since Go already has two ways of handling exceptional state: return or panic, it does feel like a stretch to also introduce a "not found" path too. All bets are off in tight inner loops, but I think as a general coding practice, it'll make the language (de facto) more complicated/ambiguous.
But my take away is that the question has been kicked off: can wrapped errors be made more efficient?
1. https://github.com/golang/go/commit/af43932c20d5b59cdffca454...
-
Fast Shadow Stacks for Go
I know that at least two engineers from the runtime team have seen the post in the #darkarts channel of gopher slack. One of them left a fire emoji :).
I'll probably bring it up in the by-weekly Go runtime diagnostics sync [1] next Thursday, but my guess is that they'll have the same conclusion as me: Neat trick, but not a good idea for the runtime until hardware shadow stacks become widely available and accessible.
[1] https://github.com/golang/go/issues/57175
-
Runtime code generation and execution in Go
I guess the meta programming that most often gets used with //go:generate ends up being text/template.
The Go sort algorithm (pdqsort) is implemented in this way so the same algorithm can be used to implement the various existing sort APIs.
https://github.com/golang/go/blob/master/src/sort/gen_sort_v...
-
Abusing Go's Infrastructure
it's a known issue https://github.com/golang/go/issues/31866
- Proposal: Add "SIMD" package to standard library
- Golang is evil on shitty networks
-
Generic Concurrency in Go
With the recent (as of Go 1.22) range over functions experiment it is possible to do a usual range over functions that are compatible with sequences iterator types defined by the iter package. A quite new concept in Go which is hopefully being shipped in the future versions of Go as part of the standard library. For more information please read range over func proposal as well as predestining article on coroutines in Go by Russ Cox, which the experimental iter package is built ontop.
-
Creating a personal AI assistant a.k.a An approachable series on learning new stuff!
Go
What are some alternatives?
Anakin - Codegeneration tool for isomorphic server and mobile Go apps with gRPC & Protobuf. Share code between your backend, Android & iOS app! :sun_with_face:
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
pkgreflect - A Go preprocessor for package scoped reflection
TinyGo - Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
efaceconv
zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.
gen - Type-driven code generation for Go
Nim - Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
interfaces - Code generation tools for Go.
Angular - Deliver web apps with confidence 🚀
jennifer - Jennifer is a code generator for Go
golang-developer-roadmap - Roadmap to becoming a Go developer in 2020