There was a question at LangNext 2014 conference: what is a systems programming language in 2014? https://youtu.be/BBbv1ej0fFo?t=3m43s
On Wed, Sep 16, 2015 at 2:31 PM, Brian Hurt <[email protected]> wrote: > 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 <[email protected]> > 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 [email protected] >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> [email protected] >> 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 [email protected]. >> 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 [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected] > 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 [email protected]. > 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 [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
