Fork me on GitHub
#clojure-uk
<
2018-06-15
>
guy05:06:22

Morning!

yogidevbear06:06:28

How are you doing @guy?

guy06:06:22

Yeah i'm ok 😞 my son woke up at 5, so just been chilling with him while drinking tea 😄

yogidevbear06:06:04

How old is your son?

guy06:06:52

He's 3 and ive got a 1 yr old daughter 😄

yogidevbear06:06:11

Definitely got your hands full! My little human is 5

guy06:06:19

d'awwwww

guy06:06:23

ultra cute!

guy06:06:36

I love my little sprogs, even if they drive me crazy sometimes

yogidevbear06:06:45

2 years is a nice age gap

guy06:06:08

I wish it was more not going to lie haha

😂 1
yogidevbear06:06:14

TIL sprog

😄 1
korny06:06:46

18 month old waking me up here :-) Though we are on holiday so slept in until 7:30

guy08:06:20

oh wow thats great

guy08:06:43

its odd my youngest used to sleep into 7:30 and now she doesnt 😞 6 am everyday, really starting to exhaust ,me

guy06:06:38

How about urself?

yogidevbear06:06:12

The joys of children 🙂

yogidevbear06:06:20

I woke up at 5:30 to make sure I caught a 6:30 train. Feeling a little bit sleepy-eyed and foggy-brained

guy06:06:26

ah thats rough

guy06:06:34

I used to do a similar trip when i was at school

yogidevbear06:06:01

It's all good. Doesn't happen every day and the journey is going to be worth it

guy06:06:08

ahhh cool

guy06:06:18

:thumbsup: going anywhere fun?

yogidevbear06:06:06

Dijon area in France 🙂 :flag-fr:

parrot 2
🥖 3
🇫🇷 1
😂 1
1
guy06:06:52

awesome 😄

yogidevbear06:06:08

Some useless trivia for the day... >The suffix 'ham' could be derived from one of two words, 'Ham', the Saxon word meaning 'settlement', or 'hamm', meaning 'water meadow'. A 'ham' can also be a geographical feature roughly corresponding to a peninsula surrounded on three sides, usually by marsh. >... the Germanic word 'ham' mean[s] ‘meadow in the bend of a river’, ‘water meadow’, or ‘flood plain’,

3Jane06:06:54

Ahh.. that’s why hamlet! ham-let

otfrom07:06:14

-by means farm (from old norse)

otfrom07:06:31

-ings is from -ingas meaning people of from Anglo-Saxon

otfrom07:06:41

Hastings - Hast's people

otfrom07:06:02

Grimsby - Grim's farm

agile_geek07:06:02

Oh stop ‘hamming’ it up

3Jane07:06:08

it’s not hamming it up until Brian Blessed does it

3Jane07:06:29

also, hamster… short for village monster?

mccraigmccraig07:06:51

@otfrom '-by' means 'town' in modern norsk... 'gård' is farm

otfrom08:06:50

your nynorsk is much better than mine so I'll bow to your superior there

mccraigmccraig08:06:49

i've been told that modern-day islandisk is much closer to old norsk, because iceland was largely isolated for 1000 years after some norsk folk settled it, and it's mostly trade and other cultural mixing which causes lang change

mccraigmccraig08:06:06

i've no idea how true any of that is though

manas_marthi06:06:58

Good morning

👋 3
dominicm06:06:01

Morning

👋 3
agile_geek07:06:11

Guten morgen

alexlynham08:06:47

morrrrrrrning

alexlynham08:06:11

last day today, then a week off \o/

🎉 2
guy08:06:23

Happy Friday parrot

hyankov09:06:15

Morning, everyone

👋 1
thomas09:06:34

goed morgen....

otfrom09:06:24

I love that this channel has been lots of "good morning" and OT, but then it is like that every day. 😉

3Jane09:06:00

plot twist: we’re all chat bots written in Clojure

💯 2
😂 1
maleghast09:06:28

Morning All 🙂

maleghast09:06:34

How is everyone doing today?

maleghast09:06:06

(I am in a good mood, it's Friday, I hit my deadline earlier this week and have since been thanked by co-workers for work done. I am enjoying it while it lasts!)

3Jane09:06:33

going on hols tomorrow for a couple of days, life is indeed good 😄

maleghast09:06:40

@lady3janepl - That sounds nice! Hope you have a lovely time! Where are you off to?

3Jane09:06:20

Poland 🙂

maleghast09:06:36

Oh cool 🙂

maleghast09:06:46

I've never been there, but I've rather fancied it for a while...

3Jane09:06:48

Primarily visiting distant relatives and some paperwork, but as it happens said relatives live in the country and it’s 30 degrees summer 😄

maleghast09:06:58

Sounds great 🙂

3Jane09:06:09

It’s worth going! The country improved a lot over the last 10 years 🙂 (although it’s gotten more expensive too, some places have food with UK prices)

Aleksander09:06:27

Morning everyone!

👋 2
3Jane09:06:50

If you ever have a chance, I recommend Tatra mountains (proper mountains), Kraków (an Edinburgh/Oxford mix, previous capital, reasonably near Tatra mountains and best ice cream I’ve ever had) and optionally Gdańsk (a port city with beautiful architecture, lots of German influence)

3Jane09:06:12

but I’m biased since I was born in Kraków ¯\(ツ)

danielneal09:06:27

ooh I went to euroclojure in krakow a few years back

danielneal09:06:29

it was beautiful there

Aleksander10:06:03

speaking of visiting Poland I was really surprised recently that a person on the internet really liked my home town. Not used to it…. https://twitter.com/argumatronic/status/1006631156194926595

3Jane10:06:51

Nice 🙂 Where is that?

3Jane10:06:25

Ahh thought it looked similar to Kraków’s ratusz

otfrom11:06:37

is it just me that thinks that clojure/spec and haskell have very different approaches to how to create long term maintainable and "correct or working" software is a good thing?

otfrom11:06:22

I really like the dialogue and the academic work on types (dynamic and static) and tla+ et al seem to be undecided, so I don't know why we have to make a decision as an industry

mccraigmccraig11:06:20

you have to make a decision now about what you are going to use @otfrom, and that decision will be difficult to change later on (though μservices may help)... so maybe some of the angst around whether you have/will made/make the correct decision bleeds in to the industry mindset ?

alexlynham15:06:37

lots of shops will continue with python/ruby/java or what have you and not concern themselves with this stuff at all probably troll

😂 1
alexlynham15:06:47

but it's a very interesting discussion for sure 🙂

jasonbell15:06:48

@alex.lynham Ain't to proud Java, the odd Java shim helps out then just call it from Clojure 🙂

alexlynham16:06:45

I feel like I’m just about smart enough to python

alexlynham16:06:52

but not smart enough to java

alexlynham16:06:17

all those methods and classes and stuff. Doesn’t fit in my head at all

manas_marthi17:06:11

I once heard Pascal creator Niklaus wirth ( Martin Odersky and Robert Griesemer did their PhD under him) say that dynamic languages are used because we have bad compilers for statically typed languages. He said compilers should do a lot more than what we have in C/C++/Java.

manas_marthi17:06:15

If I am not wrong, I believe he was referring to the lack of type inference

manas_marthi17:06:17

Interestingly the features Niklaus and Robert Griersemer conceived in Oberon lang ended up in Golang. Martin brought type inference into scala.

manas_marthi17:06:42

After listening Rich, Joe Armstrong, David West, I kind of started think that the debate of static vs dynamic typing will go nowhere without appropriate context

manas_marthi17:06:13

we are better off reframing the question - "Should I use static or dynamic typed lang for problem x"

manas_marthi17:06:25

instead of asking "should I use static or dynamic typed lang"

manas_marthi17:06:06

Aside, I had a feeling that the whole microservices buzz was simply a rehash of erlang actors

manas_marthi17:06:17

And surprisingly Brian Goetz said the exact thing

manas_marthi17:06:23

in his talk "FP is dead"

manas_marthi17:06:01

@alex.lynham I too had tough time munching Java style OO. But two books really helped in making sense of OO 1) Object Design: Roles, Responsibilities, and Collaborations by Alan McKean, Rebecca Wirfs-Brock and 2) Object thinking by David West. And more importantly listening to Alan Kay, Rob Pike, and Joe Armstrong.

manas_marthi17:06:28

Not to mention Erik Meijer

manas_marthi17:06:16

As of today, I think I would go for Go/Rust if the problem is close to the machine. But I would choose Clojure for a problem that is close to business. However, if I am not the one to write code, and I have to pay to someone to write the code, I would go for Java. You find Java Spring developers so easily

seancorfield17:06:36

Go and Rust are radically different in terms of type systems and the effort required to learn.

seancorfield17:06:26

I try to learn a new language every year (per "Pragmatic Programmer" book recommendation) and when I learned Go, I was pretty underwhelmed. When I learned Rust, it was what I'd hoped Go would be 🙂

korny18:06:01

I think that microservices do change a lot. They shouldn’t need to - proper modularity should be possible in monoliths, but developers don’t typically manage to build modular monolithic code unless you force them 😞 Whereas with small services, you can define your types more as contracts - “I expect this shape of data at this external interface, and I will return this shape of data” - and then you can use types, or not, to implement the internal logic.

korny18:06:07

If my code is split into small modules, and I have types (or specs) at the “edges”, I personally prefer not to add types all through the code - maybe if you had a perfect type inference system, tied to a range of IDEs that made the types simple to use, it’d be OK. But in all my experience, inflicting types on small code modules just makes for big code modules, where the actual work of the code is hidden in a corner somewhere, while 90% of the code is spent creating POJOs and Objects and marshalling data to and from the external formats, and building DI and Factories and a whole lot of bumph you don’t need in a more dynamic language.

korny18:06:18

(or when you need it, it’s 5 lines of code not 500)

manas_marthi18:06:39

@seancorfield I cannot learn so many langs. Hands down to you. I tried F# and Pony. But did not go so far. Go can be good in terms training the teams..Isn't it?

manas_marthi18:06:00

Less features => More easy to train grads

seancorfield18:06:57

@manas.marthi Yeah, I'd say Go is much easier to learn/teach and folks would become productive much faster (than Rust).

3Jane18:06:56

@korny except when people build microservices that are tightly coupled and then we’re back to square one :) can’t fix some things

korny18:06:59

@lady3janepl yeah. Sigh. “Let’s put our API behind a service library!” “Hey, why can’t we release our services independently any more?”

korny18:06:49

To be fair, GDS had libraries but also let you semantically version them so you could at least defer changing the shared types. But still.

3Jane18:06:18

I rather meant “service X needs different output from Y!” “Wait but Z depends on an undocumented feature of Y.” “LOCKSTEP RELEASE”

3Jane18:06:15

But yeah, there are various ways to put yourself in a pickle. This is what people should pay senior devs for. This, and snark.

💯 1
manas_marthi18:06:20

Regarding microservices, I guess two Spring Boot apps talking via JSON/HTTPS is equivalent of using channels and maps within one app. Isn't it?

korny18:06:50

Too many people take the senior devs, and say “You need to be leading not coding! Go into a corner and write ADRs and diagrams, and stop showing people how to do stuff better”

👍 2
manas_marthi18:06:06

Besides, queues, and channels help to make asynch calls easy. A lot of our code is made of blocking REST calls 😞

korny18:06:24

@manas.marthi apart from the masses of bloat you get with Spring Boot, yeah 🙂 The issue though is that people doing it within one app always seem to end up tightly coupling things. “Hey, I need a class to do X, there’s one in the other module that’s public, I’ll use that”

korny18:06:23

Stuff that’s fine for a small-ish app, but as things grow, you get masses of coupling and spaghetti. At least with two Spring Boot apps you have enforced decoupling.

korny18:06:55

On sync vs async, I think it’s a common failing of microservices architectures that they tend to be all synchronous. There’s no need for it, and it scales badly. The best systems I’ve worked on had a mix of Rest-ish synchronous APIs, and queues for anything that could be deferred.

korny18:06:20

Anyway, I’m probably wildly over-generalising, I’m home after a 5-hour trip home followed by a :poop: incident with a tired toddler, I should be relaxing not pontificating on slack 🙂

jasonbell18:06:35

$ mvn install
>>>> Seriously Jase I'd grab your passport and go on holiday for a week while I download Spring Boot.
>>>> Australia is good this time of year I head, shall I book you a ticket?
🙂

mccraigmccraig18:06:58

@korny i am of the opinion that synchrony should be reserved for cpu-bound things. as soon as any i/o is required you should go async

mccraigmccraig18:06:40

mvn got a lot better since i last used it @jasonbell, or at least a lot more considerate

jasonbell18:06:31

@mccraigmccraig I saw a talk on Spring Boot components last weekend in Belfast, I just kept asking myself, "who'd put themselves through that much pain? Oh that guy at the front talking...."

2
😂 2
mccraigmccraig19:06:40

i've never had the joy of spring boot... the last java stuff i was doing was springy, but pre-boot

seancorfield19:06:08

I swear Spring Boot only seems like wonderful magic and unicorns to people that have only previously dealt with giant Enterprise Java stuff...

jasonbell19:06:35

@seancorfield I can see appeal, I used to develop in Spring stuff years ago.

seancorfield19:06:03

...I was at Java One around the time Spring Boot first appeared and one of the guys on the booth demo'd it to me and I was like "Still seems like a lot of work compared to all this other non-Java stuff" 👀

seancorfield19:06:31

Mind you, Spring was a huge improvement over its forebears...

korny19:06:16

I did a Spring Boot project a couple of years. It starts like a simpler Spring. But most of that is just lots and lots of magic configuration and auto-configuration. We ended up having to dig through the source code a few times, and it’s full of bizarre magic to hide the complexity under a rug of code…

korny19:06:05

Spring itself was awesome back when it was new - it was just a DI framework, it was simple enough, and it was vastly better than J2EE. It’s added vast amounts of bloat since then. If I have to be in Java, give me DropWizard any day.

👍 1