Fork me on GitHub
#off-topic
<
2016-04-01
>
lewix12:04:27

anytone tried golang before? How does it compare in terms of ecosystem, productivity and community? (assuming that you're can have an objective opinion without bias)

lewix12:04:37

probably the most appropriate channel to ask this question 😛

sveri12:04:34

I did not try it, but the fact that I declare dependencies via github projects turns me off, remembering the nodejs desaster that just happened

lewix13:04:00

@it does not have to be via github as far as I know

sveri13:04:00

And what about transitive dependencies? Maybe you pull your deps from your repository, but what about their dependencies? Are they resolved to github then? I am just asking here, not sure how they resolve.

johannesgu13:04:20

The recommendation is to commit your dependencies to source control

johannesgu13:04:51

Especially if you use the vendor feature, which is default in Go 1.6

johannesgu13:04:58

(Last time I checked)

johannesgu13:04:35

I kinda like Go as a system language, but it's poor handling of collections turns me off. I'm from the .net world so I'm pretty used to do data transformation using LINQ. So when I discovered Clojure, Go went out of the window pretty quick simple_smile

johannesgu13:04:37

I still use it to create small tools, because it has no runtime dependencies, and has a small footprint in general

johannesgu13:04:44

I even started work on a Lisp dialect in Go but quickly found out that it's much more fun to code in Clojure simple_smile

lewix14:04:33

I've been debating for days either to go completely with Go or Clojure (I like the functional paragdim) for my next project. I'm just skeptical about the web development ecosystem of clojure. Go seems like there's more libraries and more people ready to lend a helping hand. @johannesgu

sd14:04:59

@lewix: i just started my fiirst clojure web project with ring and compojure and they’re solid imo. i used the leiningen reagent template which gives you clojurescript reagent stuff as well!

sd14:04:03

i haven’t done much with go but you often hear people recommending the standard http library before trying something like martini

lewix14:04:02

@sd: Have you run into issues hard to debug for which you couldn't get help from the community?

sd14:04:32

not yet, there have only been a couple of instances, but i got answers on here simple_smile

lewix14:04:37

awesome, sd I'm glad to hear that - I'll give it a try. I'm looking forward to play with reagent

sd14:04:31

yeah, it’s really cool. would def recommend the lein template to get started quickly

lewix15:04:25

@sd: does it work well with postgres

sd15:04:24

not sure, just been using couchdb so far

sd15:04:39

i’d imagine there’s good support though

sveri15:04:13

@lewix: I created a "web framework", it's in alpha state: https://github.com/sveri/closp but basically resembles what you need to get started. It covers front and backend, also includes reagent btw.

sveri15:04:56

I started off of luminus with it: http://www.luminusweb.net/ which is more popular I guess. However, here and there I differ in design choices with the creator, thats why I went my own way

sveri15:04:57

To make a long story short, go with clojure, having the JVM behind clojure means you have all libraries you will ever need. I would always pick it over go because of that fact if I was concerned about availability of libraries.

sveri15:04:55

Btw. luminusweb has awesome online documentation.

lewix16:04:12

sveri: what are your design choices?

sveri16:04:31

I early on implemented component into closp so that I dont have to restart my repl everytime. Also I chose joplin for database migrations. I added some basic user management and included a very simple crud generator I made myself. Other than that it was mostly minor stuff that the author of luminus added later on himself.

lewix16:04:07

@sveri: a lot of folks agree that dealing with the JVM can be a pain in the *

sveri16:04:11

Another major difference is that you can choose between a lot of different configurations in luminus while I provide one way to do things.

sveri16:04:21

In what regard?

lewix16:04:33

debugging

sveri16:04:04

Hm. It is ok for me, I never heard of a debugger that was much better than what you get in JVM land. whats so wrong about it? Besides that debugging in general still feels like technology from the 60s

sveri16:04:17

I still remember the days when I tried to parse C errors which basically meant, whoops, something went wrong. Go and look in source file xy around line 70, if you are lucky the error is somewhere there, otherwise, good luck hunting 😄

jsteve121218:04:56

I’m coming from Javascript which has pretty clear and obvious stack traces compared to the Java/Clojure stack traces

jsteve121218:04:22

and Chrome dev tools which are sweet

jsteve121218:04:00

(although if you’re in a Javascript framework like Angular, that can often obfuscate/ruin the stack trace messages)

sveri19:04:54

@jsteve1212: Agreed, the stacktraces are bad, but he was talking about debugging, which I understood as connecting a debugger to a running process and stepping through it.

jsteve121219:04:55

Ah, breakpoints and stepping through

jsteve121219:04:22

I’m fairly new to Clojure so I don’t think I’ve done that yet, but I usually just evaluate snippets in my editor REPL

chris19:04:36

fwiw you can even set breakpoints in cljs code in chrome and it will work correctly

chris19:04:39

source maps ftw

sveri20:04:42

@jsteve1212: and using cursive you can step through clojure code

chris20:04:07

Also, cider has a debugger now

jsteve121222:04:00

@sveri OK I’ve been avoiding a full fledged IDE for a while now (I use Atom for javascript and Lighttable for Clojure) but I’m gonna have to give Cursive a shot now