Fork me on GitHub
#clojure-uk
<
2016-07-05
>
kevin4208:07:32

Morning, @djtango I think we can find in clojure a mature stack as we found back in the days with python. Plus the documentation looks very strong, there’s lot a good book and good tutorials around.

kevin4208:07:48

I would say that when you have been developing for a long time with python, ruby and js, I find the lisp way a very much interesting paradigm to explore.

jonpither09:07:50

All coming tonight?

thomas09:07:56

can’t sorry...

thomas09:07:16

that looks like a very handy lib.

agile_geek09:07:55

@djtango: for me Clojure/script brings a number of things to the party: 1. It's fun to write (especially compared to Java!) 2. It's core abstractions are very powerful but don't obscure the underlying concepts therefore not 'painting you into a corner' 3. Makes state change explicit and obvious when it occurs 4. Provides access to two of the most powerful runtime platforms (JVM and JS) with really simple interop (three if you throw in CLR) Disadvantages: 1. Some of the powerful abstractions (from point 2 above) lead to a steep learning curve (because they don't obscure underlying concepts) 2. I wish lazy evaluation was as clearly sign posted as state change (the number of times I've tripped over lazy ops for side effects even though I know this!) 3. Need a better story around coherence of web development (I hate to say the 'F-word', framework, but it's a common complaint from those used to Rails/Django etc.)

djtango10:07:47

@jonpither: is there a dojo tonight?

rickmoynihan11:07:31

@djtango: the JVM is one thing it offers over the stacks you list (I wouldn't necessarily call Python/Ruby/JS - traditional stacks)... I think python/ruby suffer a lot for not having an environment like the JVM with good threads/concurrency support.... those stacks force process based concurrency models; which push complexity into devops/micro-services. Not saying micro-services aren't good - just HAVING to do micro-services because of platform deficiencies rather than architectural reasons isn't necessarily a good thing. Being able to do concurrent things within a process is a really good thing. The lazy sequence abstraction is amazing - when you come to it for the first time - in languages without lazyness or lazy-sequences in the standard library; sequences often get traversed more than they need to... Also this can lead to libraries loading large collections into memory because developers prefer collection-like interfaces to iterators. Lazy-sequences basically make iterators and collections appear the same. Removing the how-much decision from API's is great is very liberating from a design perspective. As @agile_geek says clojure's time model is really cool. Also Lispness leads to a certain elegance (aside from FP)... i.e. symbolic meta-programming is really powerful and easy to leverage... whilst users might not use this often, they can use it through libraries.

agile_geek12:07:45

@thomas: Datascope looks cool. I need to redraw some diagrams representing persistent datastructures in my talk about immutability and I wonder if I can use this to do some of the work for me?

thomas12:07:42

I suspect you can… but also have a look at the diagrams Rich used in his first few talks. And also Phil Potter, he did a talk about it at ClojureEx a few years ago.

djtango13:07:52

@agile_geek: darn it looks good but I can't make it tonight 😐 I need to get back into the habit of coming to the clojure events...

agile_geek13:07:50

@djtango: it will be recorded in SkillsCast and they're usually available pretty quickly after events.

djtango13:07:08

perfect, good to know! Thanks

agile_geek14:07:58

@glenjamin: yeah I've seen them before. I fancied trying to do something animated drawn using https://itunes.apple.com/gb/app/paper-by-fiftythree-sketch/id506003812?mt=8 or something similar but I'll see.