Go is fine for system-level programming, but I personally wouldn't use it as a web application programming language. Ten reasons to consider.:
1. There isn't really much speed difference on micro-benchmarks between JVM code and Go. See e.g.: http://benchmarksgame.alioth.debian.org/u64q/go.html 2. In many real-world cases JVM code will outperform Go, see e.g. http://zhen.org/blog/go-vs-java-decoding-billions-of-integers-per-second/ 3. The JVM GC is superior to the GC in Go. This makes a big difference for complex applications with a lot of live objects on the heap, especially when dealing with stuff like immutable persistent data structures (and you want to use those, right?). Overall, I'd expect Clojure to easily outperform Go for these types of applications. 4. The JVM startup time / memory overhead is irrelevant for long running server applications. If you are restarting the JVM regularly, you are definitely doing something wrong. The JVM is well tuned for long-running server side web applications in general, rather than the lightweight processes / scripts that are more suited to Go. 5. Functional programming is natural in Clojure and is IMHO the future for building modern applications 6. If you like the CSP stuff (goroutines, channels etc.), Clojure has the excellent core.async, which basically lets you do all the nice CSP type things in Clojure you can do in Go. However that isn't forced on you: Clojure supports a lot of other paradigms for concurrent programming. Choose what works best for you. 7. The open source library ecosystem on the JVM is awesome. There's nothing like it for any other language. Even if nobody has written a Clojure library that wraps up the functionality you need yet, using Java libraries from Clojure is very painless (often easier than using Java libraries from Java!) 8. Virtually all the key big data stuff depends on the JVM. Spark, Hadoop ecosystem etc. Being on the JVM is a valuable strategic choice if you are into data processing. / analytics. 9. Clojure has an compelling full stack development story with ClojureScript on the browser and Clojure on the server. It's pretty useful to be able to share code between the server and the client. 10. Once you've experienced interactive REPL driven web application development with stuff like Figwheel, you probably won't want to go back to anything else On Monday, 14 September 2015 03:44:48 UTC+8, Alan Thompson wrote: > > Hi, > > I'm about to start a new web project and they are thinking about using Go > (golang) instead of a JVM (preferably Clojure) based approach. The idea is > "BARE METAL SPEED!!!", but I really think the network and DB will be the > bottlenecks, not Clojure vs Go. > > Is anybody out there aware of any speed comparisons using Clojure/Pedestal > and/or Go? I'm thinking basic measurements like connections/sec, latency, > simultaneous users, etc. > > Thanks, > 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 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.