I have no flipping clue what "system-level programming" means these days, and I'm hoping someone could spell it out. I used to think (back when I was doing that sort of stuff) that it mean operating systems level stuff- device drivers, embedded, real time, stuff like that. But no language with a GC or non-trivial run time is a good fit for that. From usage, I now think it means "we refuse to use Java".
On Tue, Sep 15, 2015 at 11:45 PM, Mikera <mike.r.anderson...@gmail.com> wrote: > 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. > -- 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.