Hi Alan, >From my experience this is not true: Go does not provide generics and actively >resists what most of us would consider good functional programming--Go is very >opinionated and doesn't allow much deviation from these opinions, by design. >So implementing practical immutable data structures would be difficult and >likely of limited utility in Go. That said, you should still try yourself if >given the opportunity.
Max > On Sep 14, 2015, at 21:44, Alan Moore <kahunamo...@coopsource.org> wrote: > > One more thing: if you are truly stuck with Go you can still adopt functional > patterns, style and data structures to good effect. Just because the opening > paren is on the wrong side of the function name doesn't mean you can't find > (or write?) an immutable data structure library for Go and promote functional > programming ideas within your team. > > Here is are some simple examples from C++ (from one of the authors of the D > language): > > http://bartoszmilewski.com/2014/06/09/the-functional-revolution-in-c > http://bartoszmilewski.com/2013/11/25/functional-data-structures-in-c-trees > https://github.com/BartoszMilewski/Okasaki > > I'm pretty sure you could port these or some other implementation to Go > fairly easily - YMMV. > > Alan > >> On Mon, Sep 14, 2015 at 7:18 PM, Alan Moore <kahunamo...@coopsource.org> >> wrote: >> I'll second Paul's comments and raise you two: >> >> 1) Depending on your app's use cases, speed going forward will be gained >> primarily from parallelism. I think Clojure has a better story there than Go >> but that is just my opinion. >> >> 2) It is very hard to fight against cultural bias against the JVM. I work in >> embedded systems where anything but C/C++ (or Lua, Python) is taboo. Your >> best bet is to "Go" with their momentum and when they run into a roadblock >> in Go (probably something related to mutability/locks in the face of heavy >> load), give a shot at the same problem with Clojure. >> >> Obviously this has to be done in a non-intrusive way (on the other end of a >> socket) but will give you a chance to prove Clojure and the JVM can handle >> the job. Unfortunately your company won't gain the other benefits of Clojure >> beyond just performance (e.g. clarity, simplicity, etc.) because the rest of >> the code base will be in Go but... clearly that ship has already sailed. >> >> Good luck! Let us know how things turn out. >> >> Alan >> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with your >> first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to a topic in the >> Google Groups "Clojure" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/clojure/p_cZoGCpvbE/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. > > > > -- > -- > "Whatever you can do, or dream you can do, begin it. Boldness has genius, > power, and magic in it. Begin it now." - Goethe > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.