gofpher VS fp-go

Compare gofpher vs fp-go and see what are their differences.

gofpher

a collection of functional programming constructs for go (by rebeccaskinner)
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
gofpher fp-go
2 4
9 1,692
- 2.5%
0.0 7.8
almost 8 years ago 2 months ago
Go Go
Apache License 2.0 Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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.

gofpher

Posts with mentions or reviews of gofpher. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-08-17.
  • Functional Programming Library for Golang by IBM
    8 projects | news.ycombinator.com | 17 Aug 2023
    I'm glad to see this idea getting some traction again. I haven't used Go much in the last few years, but I started writing playing around with a similar idea back in 2016 when I was working on a small compiler for a configuration management tool, and later put together a [small stand-alone proof of concept library](https://github.com/rebeccaskinner/gofpher) as part of a [talk](https://speakerdeck.com/rebeccaskinner/monadic-error-handlin...).

    At the time, I remember finding FP in go surprisingly ergonomic. Implementing the library to support it was a pain since the type system wasn't expressive enough to prevent everything from devolving into a pile of untyped reflection, but it was reasonably easy to keep that an implementation detail. On the whole, I felt like go would have lent itself well to the "dash of FP for flavor" style of programming that seems to be gaining popularity these days. Unfortunately, in 2017 at least, the Go community seemed to have very little interest in the idea.

    I still have a fondness for Go. It always felt nice to use. If the language features have caught up to the point where a robust library like this is feasible, and the communities attitude has shifted, I might take another look at the language.

  • Learn Go in ~5mins
    3 projects | news.ycombinator.com | 5 Jan 2021
    Monadic error handling like in ML work-alikes, Rust etc. would be a good start. Adopt:

    • https://github.com/rebeccaskinner/gofpher

    • https://speakerdeck.com/rebeccaskinner/monadic-error-handlin...

    I've been talking to the local Go user group. No one even knows about that concept. This continues a pattern of general ignorance/lack of looking beyond one's horizon I've noticed.

fp-go

Posts with mentions or reviews of fp-go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-11-08.
  • Functional Programming in Go
    2 projects | news.ycombinator.com | 8 Nov 2024
    I've tried going down this route myself by using libraries like fp-go[1]. I think this particular project has done a great job, but I ultimately opted not to pursue functional programming in Go for a few reasons:

    - Ergonomics weren't the greatest when working with monads such as options and results. I think pattern matching is needed here, but concepts like those go against Go's core design philosophy.

    - I suspect there are several cases where runtime performance is an issue, but admittedly did not investigate this.

    - Perhaps most importantly, it deviates from the way most people read and write Go, and less importantly, LLMs struggle too.

    Because of these reasons, I came to the conclusion that the advantages were not worth the trade-offs.

    Perhaps somebody will create a garbage-collected Rust-like language in the future and bridge the gap between the two languages.

    [1] - https://github.com/IBM/fp-go

  • IBM/fp-go: functional programming library for golang
    1 project | /r/functionalprogramming | 19 Aug 2023
  • Functional Programming Library for Golang by IBM
    8 projects | news.ycombinator.com | 17 Aug 2023
    True, however the README does link to this:

    https://github.com/IBM/fp-go/tree/main/samples

What are some alternatives?

When comparing gofpher and fp-go you can also consider the following projects:

FuncFrog - Stream api (kind of) implementation for go, other useful functions and packages to use go in a functional way

gotests - Automatically generate Go test boilerplate from your source code.

fo - An experimental language which adds functional programming features to Go.

scala - Scala 2 compiler and standard library. Scala 2 bugs at https://github.com/scala/bug; Scala 3 at https://github.com/scala/scala3

lo - 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

fp-ts - Functional programming in TypeScript

mo - 🦄 Monads and popular FP abstractions, powered by Go 1.18+ Generics (Option, Result, Either...)

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured