Fork me on GitHub
#clojure-uk
<
2017-05-26
>
agile_geek08:05:22

@otfrom I tried org-jira-mode and most of the functionality doesn't work. I can't update 'tickets' from the mode and to be honest it's far too verbose for just a TODO and Pomodoro'ing. I'll stick to just copying the ticket number and desc to a normal org-mode TODO.

practicalli-johnny08:05:01

@maleghast the is no particular pub frequented after the TW dojo. A few people may go, but it's rare and self organised.

agile_geek09:05:00

I empathise with a lot in this blog.

maleghast09:05:50

@jr0cket - Thanks 🙂 I am toying with emailing Yolina and asking if it's ok if I am a little late, and may have to bail at very short notice. I have a work meeting at the end of the day and there is a reasonable risk that it might turn into dinner and that I will need to be "around".

agile_geek09:05:08

I do think the "Clojure is not fun to use" argument is very relative...i.e. it depends on where you came from. I found it more fun than Java (or Fortran or COBOL or C++) but Rubyists probably don't.

mccraigmccraig09:05:01

@agile_geek as an ex-rubyist i can state categorically that clojure is a lot more fun than ruby

glenjamin09:05:04

In Ruby you constantly have the fun of “where’s this method I’m calling defined?”

mccraigmccraig09:05:35

oh how i used to giggle

maleghast09:05:06

@agile_geek - I tend to agree. As a polyglot programmer who started with (sharp intake of breath) PHP I am quite certain that I get more out of Clojure than I do out of any other language, but I do__ like Ruby and Python very much, so I can understand the writer's split feelings on the matter. What I would say is that I have experienced nothing but extreme, genuine friendliness, patience and generosity from the community, but I realise that this is one person's experience...

maleghast09:05:56

I, perhaps, have a lot more time for Ruby, still, becuase I stayed the Hell away from Rails, but I am not 100% sure about that

maleghast09:05:17

@glenjamin - Yes, if it's other people's code. 🙂

glenjamin09:05:40

> Each of these has their most prominent mantra. For Clojure it’s “Simple vs. Easy” That’s not what Simple made Easy said at all

glenjamin09:05:55

It says simple and easy are different things, simple is more important, and both is still best

maleghast09:05:13

Yeah, I would agree - I think that the writer has missed the point on that talk.

glenjamin09:05:49

to be fair he does go on to say > Clojure is not designed to be hard, to the contrary, I think a lot of thought has gone into making it easy to use as well, but when ease and simplicity are at odds, then simplicity always wins.

maleghast09:05:40

That's the right approach though, surely?

maleghast09:05:41

Anyway, I was not filled with any negative feelings at reading the article, apart from a sinking feeling that anyone feels the need to write (other) articles about how Language X is dying / dead.

maleghast09:05:49

I mean, honestly what does that achieve?

maleghast09:05:51

I just want to vomit

mccraigmccraig09:05:58

i think there are some nice things about ruby @maleghast - it's pretty nice for a [dynamically-typed, OO, mutable-state] language, but these days i think the fewer of those particular attributes your language has, the better. the good unix integrations in the stdlib still make it my goto choice for non-trivial scripting though

agile_geek09:05:54

I felt the author of the blog I posted was quite balanced in his view...the original presenter of the talk that sparked this debate and the post, posted this https://blog.appcanary.com/2017/hard-isnt-simple-ruby-clojure.html which is also fairly written as he's caveating it with YMMV. I watched his talk too and it left me a little sad he'd struggled but he admitted he went back to "what was familiar to him" and that was more productive but he learned from Clojure.

maleghast09:05:27

@mccraigmccraig Yeah, I agree with you there. Being a jobbing developer for so much of my career I have had to accept that I sometimes need to take the "win" I can get... I've been trying to persuade my peers and / or subordinates to use Clojure for 6 years with no success... Sometimes it's more realistic to settle on Ruby simply to eliminate PHP from the discussion... 😉

maleghast09:05:45

RIGHT NOW__ I am lucky enough to be the only developer and so it's Clojure time!

agile_geek09:05:26

I do think long and hard about the fact that if I hadn't had the chance to practice Clojure for years and then get paid to learn from a real set of projects in an org with real problems I'm not sure I would pick Clojure when I get my own startup off the ground.

agile_geek09:05:04

I would probably have reduced the risk (as it would be spending my own money) and stuck with what I knew.

agile_geek09:05:59

After all, as I always say, we are not paid to write code, we're paid to deliver value...although writing maintainable code is part of that.

mccraigmccraig09:05:01

that would have been a sane course of action for you @agile_geek - it would be extra risky to undertake an already risky venture with unfamiliar tools

maleghast09:05:53

@agile_geek - I REALLY understand that. If the work I am doing at the moment were about building a complex web application for the public to interact with it would not be Clojure-time for me, right now, it would be Python-time

agile_geek10:05:52

Given that and the fact that when I make decisions in other's companies I think about what I'd do if it was my money I can completely understand why anyone would need a very compelling reason to adopt an unfamiliar language.

glenjamin10:05:13

I like the “innovation credits” idea from http://mcfunley.com/choose-boring-technology

maleghast10:05:23

@glenjamin - I am not familiar goes to read article

agile_geek10:05:09

@glenjamin living for years in large enterprises and consultancies I've always been 'boring' about my tech choices...mostly it's worked although the headaches have sometimes occurred years down the line. I take a few more 'calculated' risks now but you're definitely 'spending your innovation tokens'

maleghast10:05:00

@glenjamin - There is a lot of wisdom in that article.

maleghast10:05:28

@mccraigmccraig - Living on the EDGE!

mccraigmccraig10:05:53

@maleghast fortunately i have rolling deployments and it's easy to rollback, so not too scary

maleghast10:05:48

Makes sense 🙂

dominicm10:05:27

(shameless plug)

mccraigmccraig10:05:06

i'm not quite living on that edge i fear @dominicm

practicalli-johnny10:05:35

When someone on twitter / Reddit / HackerNews claims a language is dead then that language is officially mainstream... just like all the other dead languages that the industry used (Java, Scala, Python, Ruby, JavaScript, etc...)

mccraigmccraig10:05:53

though i do use most of the libs on your edge, with the notable exceptions of selmer and component

dominicm10:05:51

@mccraigmccraig lost a little love for selmer. I'd take a recommendation for something else in there.

mccraigmccraig10:05:12

dunno @dominicm - 99% of our html output is via a re-frame SPA, and the remainder is very simple and just plain hiccup - i haven't looked for any more sophisticated backend html rendering solution

agile_geek10:05:40

@dominicm ditto at my current client...what is it about Selmer that you're not keen on?

dominicm10:05:49

Similar position myself @mccraigmccraig.

dominicm10:05:56

@agile_geek just some odd behaviour around tags.

dominicm10:05:33

https://github.com/yogthos/Selmer/issues/150 is one that I caught the other day which confused me.

maleghast11:05:05

FWIW, I am loving using Edge, starting from a dead stop and wanting to be able to quickly and easily create an API and some web-pages out of some prototype code (I already told @dominicm)

maleghast11:05:59

I never got on with Pedestal, and I never had the time to look at Hoplon and Luminus. I am curious about Arachne, but it's taking a long time to get to a place where I feel confident in investing any time in it.

maleghast11:05:26

For right now, Edge has up-sides for me, but I am not saying there aren't other choices or that it's perfect. 🙂

maleghast11:05:30

That having been said, I still think that for small, simple things, like a lightweight API that "does one thing well" there is a beautiful simplicity to Liberator with Bidi or Compojure (ymmv, I prefer Bidi) and a good JSON library like Cheshire... Sometimes a framework is too much, and I feel the same in other languages. I prefer to use Sinatra or even just plain Rack in Ruby and I like Flask or even Bottle in Python...

maleghast11:05:34

Also, the issue that @dominicm mentions aside, I am finding Selmer very productive / intuitive, fwiw...

mccraigmccraig11:05:13

@maleghast bidi+yada is also great for an API (that is in fact what my API is using)

maleghast11:05:09

Yeah, I am pro Yada, and on reflection I might well use it instead of Liberator in the future.

mccraigmccraig11:05:24

also yada is async and liberator isn't - and i try and avoid non-async things these days

dominicm12:05:56

Yes, I fundamentally like Selmer. I'm not entirely sure on the implementation yet though is all.

maleghast12:05:23

Yes, I like Yada's async-ness, but there are times / places where sync is not only not a risk but also required, so I don't mind that Liberator isn't...

mccraigmccraig12:05:35

i don't believe i have ever encountered such a time or place @maleghast 😉

dominicm12:05:47

yada makes sync vs async transparent 🙂

maleghast12:05:13

OK, yeah, that's true, it wins!

mccraigmccraig12:05:29

well, transparent @dominicm until you realise that the pubsub lib you are using to feed your websockets uses a Thread per subscription... then unhappiness

mccraigmccraig12:05:51

not that that has anything to do with yada

dominicm12:05:09

@mccraigmccraig I mean rather, yada doesn't care if you're using sync. It will happily block. You don't get some of the benefits of async, but c'est la vie.

dominicm12:05:23

If you're doing async, all that becomes a concern, yep

seancorfield13:05:57

We use Selmer at World Singles for all our HTML emails and quite a few small web apps. The tags/filters approach has proved pretty flexible for us (we've written several of our own).

seancorfield13:05:51

We also use Hiccup for a couple of things (where we're transforming complex data structures to complex HTML at runtime).

seancorfield14:05:22

Mostly we use Compojure for routing but one of our new projects uses Bidi and that has pros/cons but might cause us to switch other projects over in time.

seancorfield14:05:05

And all our apps are Component-based, with a "standard" WebServer Component we've developed ourselves that wraps Ring/Jetty/http-kit (we pick the server type at startup).

otfrom14:05:18

@seancorfield what have you found the pros/cons of bidi to be compared to compojure?

seancorfield14:05:06

The keyword tagging in Bidi allows for better separation of concerns. I'd have to ask my colleague to get more specific.

seancorfield14:05:45

Being able to enumerate all routes, and do reverse lookup are pros too.

seancorfield14:05:47

I'd want to write Bidi routes in some syntactic sugar tho' -- I find the bare usage a lot uglier than Compojure.

seancorfield14:05:31

(I might be able to be more specific when I get to my desk and can look at code!)

mccraigmccraig14:05:46

route enumeration is a big win

maleghast14:05:24

@otfrom I would second @seancorfield on the Pros - being able to enumerate and reverse-lookup routes is really great. Also, Bidi does a great job of separating routes from "action" as ALL it does is routing, so you can change the way in which you are building resources without having your routes coupled to your logic. Well that bit makes me happy anyway... 😉

otfrom14:05:03

has anyone tried lacinia yet? I've not looked at it enough but it almost feels like liberator/yada:rest :: lacinia:graphql

otfrom14:05:10

but I've not really looked properly

dominicm14:05:06

We're using yada & lacinia together

dominicm14:05:22

works well.

otfrom15:05:47

@dominicm got a repo you can share? Would be good to see how you divide that up

dominicm15:05:49

@otfrom client project only for now 😞

otfrom15:05:08

@dominicm you say that like you can't open source them too. 😉

otfrom15:05:17

we'll have to wait for a blog post then 😄

minimal15:05:55

@dominicm are you using a cljs lib to generate the graphql queries?

agile_geek15:05:49

@otfrom we've just added lacinia to one of the services in my client but I haven't had time to look at it.

otfrom15:05:42

@agile_geek I think you are adorable the way you refer to them as your client even though you are contractor scum there so it is just "work" 😉

agile_geek15:05:57

@otfrom They are a client of my company and I work for my company in a manner that I determine....or as far as IR35 is concerned I do!

otfrom15:05:51

btw, having a really useful discussion (for me) on using lumo for day to day scripting

jonpither16:05:45

Totally..... rocks

mccraigmccraig21:05:19

lumo: cljs on node