Fork me on GitHub
#clojure-uk
<
2016-12-21
>
jasonbell09:12:55

Nothing less than a self driving car. Why not get hold of an East Coast Mainline train and replace the driver @agile_geek, use Clojure, it’ll be cool.

yogidevbear09:12:58

I think southern railway trains might be a better option 😉 I know thousands of people that commute into London on a daily basis that would be immensely grateful

yogidevbear09:12:23

And good morning to all

korny10:12:44

@yogidevbear ITYM "try to commute into London"

yogidevbear10:12:52

Haha fair point 😄 How are you adjusting to life as a new parent?

yogidevbear10:12:20

There really is nothing that can prepare you for the change

jasonbell12:12:45

@yogidevbear interestingly, the way I see it, the strike is about automation but striking only strengthens the argument for automating the whole tihng.

yogidevbear14:12:30

Yeah that is quite ironic. I think there's more to the whole situation than just that, but meh

agile_geek14:12:41

Interesting, in the beginners channel there's a guy I've been helping on and off for weeks and he's just got to the point where he's said "In Rails I can just add a plugin to do this and it works". This is why I think we need a better web story in Clojure. His understanding of even basic concepts like http is quite low so even engaging in the "it's more flexible in the long run" argument is not possible as he's never had a problem that he can't solve without just adding Rails plugins.

korny14:12:17

... and then he has two problems. Sometimes it's hard to teach someone who hasn't had to put something live, and then support it in production.

korny14:12:22

(it's a problem for us consultants too - I know many junior consultants who've also never had to support anything in production, too many clients kick us out before then...

agile_geek14:12:55

@korny I know exactly what you mean (having been a consultant for 8+ years and been CTO of a consultancy). We used to struggle to recruit because we had to have fairly snr ppl and if we recruited juniors we often got this issue. I wanted to move towards a platform oriented model where we built and ran a platform for our clients. We did this with one client but most are still in the 'bums on seats' model of staff augmentation.

tcoupland14:12:17

Arachne is coming

tcoupland14:12:43

is it really helping the problem your describing though...

rickmoynihan15:12:26

(asked also on #clojure )

agile_geek15:12:56

@tcoupland that's why I gave @luke some money in his kickstarter and why I invited him to speak at ClojureX! 😉

tcoupland15:12:49

and that was a good thing! I found it most interesting

agile_geek15:12:17

interesting the amount of hostility I got to the whole idea of his framework when I mooted having him as a speaker!

mccraigmccraig16:12:10

hostility to what about the framework @agile_geek ?

agile_geek16:12:43

the idea of a framework in Clojure

jonpither16:12:11

Hmm bit tired and grumpy after a flight, but I think it will be near impossible (and undesirable) for a framework to appeal to the lowest common denominator of everyone.

jonpither16:12:46

If people wire bits up themselves, or actively follow a template, then one would hope they would know what the heck they are doing.

jonpither16:12:21

Also hope Arachne nails it as a compelling choice tho

mccraigmccraig17:12:53

i find one of the great strengths of clojure is that programs evolve easily - simple approaches taken early on can be straightforwardly evolved into more complex solutions. a framework which got you going quickly and similarly supported the evolution of a project would be great

jonpither17:12:25

Trouble is a framework is 'starting heavy' as oppose to growing bottom up. It will be a fascinating ride.

agile_geek17:12:46

I think @luke recognises all those issues and is striving to support growing bottom up. I think the idea is to separate 'templating' to get started quickly from 'framework' that wires stuff together. Not sure how successful it will be but, to my point, someone needs to try and make web development easier to get started with in Clojure

jonpither17:12:14

Gonna be cool. Anyone remember AppFuse from Java land?

jonpither17:12:34

That was pretty funky

jonpither17:12:48

That is what I think of when I think of heavy starter frameworks

agile_geek17:12:32

Vaguely remember AppFuse...never used it. Spring became a bit bloaty towards the end!

agile_geek17:12:56

My favourite (although it's not really a true framework) is Wicket... that thing is an abomination! Like the bastard son of JSF and Swing!

jonpither17:12:14

Hehe. People used to rave about wicket on a proj I was on... that was after Tapestry 4 though which was very tough indeed!

jonpither17:12:47

Wicket is like react on the server side?

yogidevbear17:12:00

So being relatively new to Clojure, what is your view of the difference between what Arachne is supposed to be and something like Luminus web?

jonpither17:12:46

Have to run and dash on that one. M25 traffic awaits.

tcoupland18:12:49

i'm not sure there is that much of a difference really, I don't know much about Luminus though. I think they are trying to solve the same problem in different ways. I'd say Archne is trying to be broader, web is just a first target for it, and an easy sell

seancorfield19:12:52

I’ve been following the Arachne stuff since the get-go (but did not support the kickstarter) and I just unsubscribed from the list today. Arachne looks “clever” but crazy complex to get started with, to be honest.

agile_geek19:12:08

@jonpither it's java code to specify components behaviour and html to render. However the structure of the pages in terms of hwo the components are wired together is in the Java. The java code neds up bieng like swing..lots of event handlers. I found it an absolute nightmare as in theory the rendering and the behaviour of the components are separate but in reality the java code decides on the type of component, i.e text box etc. so the way the component renders is controlled from the Java and the where it renders from an interaction of the java and the html. It was a nightmare to debug and none of your components ends up reusable. The definition of 'complecting'!

seancorfield19:12:09

Even the “Hello World!” example in the repo is like “WTF?”...

agile_geek19:12:47

@seancorfield I haven't looked at the demo but that's troubling

seancorfield19:12:12

Back in 2009, I created a small, lightweight MVC framework for CFML (ColdFusion) that is one of the two most popular in that community these days. In 2011, when I was relatively new to Clojure, I decided to port it over. It was a good learning experience. This past year, we actually started using that port at work and so I did a lot of work on it but it kept feeling clunky with Clojure in a way that the CFML version never did. This month, I sat down to really take a critical look at the Clojure version and how to make it more idiomatic and more Clojure-y … and I ended up refactoring it away, in essence. We just completed the refactoring of three Clojure apps built with that framework to instead be pure Ring, Compojure, Component, and Selmer (for HTML templating) — which were the libraries that the framework itself wrapped up. We like the end result: simple, composable, idiomatic Clojure.

seancorfield19:12:46

So I EOL’d my framework. Luckily it only had a handful of users, and we were the only ones using it in production.

seancorfield19:12:50

This week I rewrote one of our legacy CFML apps that used the framework to Clojure, just using Ring, Compojure, and Component and it felt much simpler and cleaner.

seancorfield19:12:09

And that’s sort of what makes me uneasy about Arachne.

agile_geek19:12:02

I still see web developers new to Clojure really struggling to get started though

agile_geek19:12:07

One of my close friends who has 15 years web dev experience with Java, Ruby, Scala and has written Haskell just did a pet project in Ruby 5 because she looked a Clojure and even though she had a reasonable understanding of the language from ClojureBridge and tutorials not having a framework stopped her.

jonpither19:12:10

there has to be a gazillion 'build a webapp in 15 mins' blogs out there one would hope

jonpither19:12:49

but fair enough there's no one size fits all standard

jonpither19:12:03

but the conundrum is, that's not altogether a bad thing

agile_geek19:12:35

Of course there is a valid argument that a simple web app is not Clojures sweet spot and if you're doing that just use Rails or Django. TBH if that was what I was doing and it was my money I might use Ruby or Python!

jonpither19:12:17

true @agile_geek. The question reversed - does Clojure stand to benefit in anyway from posing a bar to entry?

jonpither19:12:54

something I have wondered looking at the php/js/codefusion landscape occasionally

agile_geek19:12:53

I think that's a very interesting question. I think my answer is that Clojure needs a larger user base than currently but I still want it to be small enough to be a bit niche. A bit "secret sauce". And that means perhaps it does need a barrier to entry.

seancorfield19:12:55

I think the “simple web application” idea is misleading tho’… Sure, you can get a todo list up in Rails in five minutes but that doesn’t scale to complex web apps without learning a lot about Rails.

agile_geek19:12:01

Having said that, my friend is one of the best developers (whose written functional code for years) so I'm disappointed to see her seeing it as a barrier

jonpither19:12:03

@seancorfield yeah also - if it's that simple - why not try out a SaaS instead of using an actual programming lang

jonpither19:12:21

@dominicm made that point to me the other day

seancorfield19:12:49

Years ago, a friend of mine “learned” C++. Using Visual C++, he built an application with a working GUI etc. But he came to me with help for a simple piece of business logic that he needed to write by hand because even with what he’d built, and all the generated code involved, he really still had no idea how to actually program in C++.

agile_geek19:12:04

Salesforce Apex....Yeuch!

jonpither19:12:13

well it's an interesting Q - learn a SaaS or a serious lang... pain lurks in the middle when you end up with the problem @seancorfield just described

agile_geek19:12:14

@seancorfield unfortunately 60% of Java developers I've worked with in last 8 years have been like that!

seancorfield19:12:29

Yes, the vast majority of developers are, IMO.

seancorfield19:12:47

And frameworks are the cause of that, to some extent.

agile_geek19:12:14

@seancorfield I would have counted myself in there for about 10 years of my java career

agile_geek19:12:32

The bit in the middle when I forgot stuff!

agile_geek19:12:32

And relied on frameworks!

agile_geek19:12:10

On the flip side I delivered a lot of value over that time

seancorfield19:12:15

If Arachne delivers on the Rails-like newbie experience for Clojure, will it actually help folks get into web development with Clojure, given how much more seems to need to learned about Clojure itself to get through even a basic web app? (re: Roelof W. on the beginners channel)

seancorfield19:12:13

He used Luminus, but is still struggling with basic Clojure stuff. Would his journey be any easier with Arachne? Or would all the complex magic behind the scenes and plugins and modules and configuration just make it even harder?

seancorfield19:12:17

So… yeah… I’ll remain very skeptical about Arachne I suspect… especially as a framework author myself (I’ve been project lead on three popular CFML frameworks now and a contributor to three others, over a decade or so).

agile_geek20:12:43

@seancorfield point taken re: the basic Clojure knowledge. But when a very experienced FP developer prefers Rails or Play2 with Scala do we need to ask questions?

seancorfield20:12:15

I would have opinions about such a person if I encountered that choice. I would ask them questions. It wouldn’t make me question Clojure’s choices tho’...

seancorfield20:12:43

(but bear in mind I’m not exactly pro-”Big Framework(tm)”)

seancorfield20:12:08

I think Rails and Play have way too much magic in them.

seancorfield20:12:42

And I am also an anti-ORM person so that aspect of Rails in particular I dislike very strongly.

agile_geek20:12:52

I agree about the ORM thing. And I've contributed to Hibernate. Thought it a good idea at time!

jonpither20:12:42

I remember pre-ORM writing loads of brittle ResultSet -> Object code, so ORM was a blessing at the time

jonpither20:12:03

(little did we know how mad ORM could then get)

agile_geek20:12:06

Cascading eager fetch = entire database loaded on every query

jonpither20:12:00

now we have Datomic

seancorfield20:12:08

How many of us are old enough to remember things like Poet / Versant / ObjectStore? 🙂

jonpither20:12:32

searches emoji for tumbleweed and comes up short

seancorfield21:12:09

Thanks @jonpither — now I feel ancient! :face_with_rolling_eyes: