Fork me on GitHub
#clojure-europe
<
2021-05-07
>
pez03:05:05

Good morning! I have just been to Seattle where I presented Calva. 😃

👍 15
2
RAMart05:05:29

☀️ 😎

dharrigan06:05:01

Good Morning!

simongray06:05:46

Does anyone else get kinda bored with how many Clojure (and other programming language) discussions get side-tracked by static typing enthusiasts these days? It’s always the same stuff…. “I could never live without types”, “my editor does this and that”, blabla - and never any discussion of the cost incurred by types. Case in point, yesterday’s HN discussion: https://news.ycombinator.com/item?id=27054839

simongray06:05:55

I blame TypeScript for this

pez06:05:26

TypeScript is quite awesome. 😃

simongray06:05:39

Sure, but it has lead to a situation where anything that isn’t statically typed is bad and “like JavaScript” - at least that’s my impression

pez06:05:20

Yeah, I think you might be right about the blame.

simongray06:05:26

people have become much more unwilling to consider an alternative point of view on types

pez06:05:12

It’s arrogance to a large part, I think. And ignorance caused by it.

👆 3
RAMart06:05:31

Every bug you hunt passed your type checker“ (Rich Hickey)

pez06:05:27

Indeed. The false sense of security is a thing.

RAMart06:05:22

And most people being so eager about types don‘t even use them in the right way. As far as I had the pleasure to be part of such discussions…

pez06:05:30

In TypeScript I use types sometimes and sometimes not. And when I do it, it is rather to get help typing out things correctly, than to guard against bugs.

pez06:05:55

On the tangent of this discussion I can just observe that I feel very productive using TypeScript. Almost as productive as with Clojure. It is not as fun as with Clojure, but the feeling of expressing my intentions easily and effectively is there.

pez06:05:18

I’m still a Clojure beginner so it might be that at some point I can find Clojure solutions much quicker than I find TypeScript solutions. Unless I am a hopeless case. We’ll see.

RAMart07:05:39

All fingers crossed! 😁

metal 6
dharrigan07:05:33

I too follow the HN discussions and yes, they do descend into "types good, untyped bad". Boring really. I tend to skim over such comments and see if I can find some insights 🙂

djm07:05:01

I recently came across a series of blog posts by a Java/Kotlin developer, that were intended to introduce his audience to Clojure. The second post was about how spec, because he couldn't live without static types, which made me chuckle

slipset10:05:01

I stopped doing frontend dev at ardoq when the frontenders switched to typescript. I think the main reason was that IM(NS)HO, they were doing it wrong.

slipset10:05:36

And, I wasn’t ready to “teach” them how to properly type things, (not that I would have been able to, for that sake)

slipset10:05:31

And, I believe that just converting an existing javascript project to typescript and slapping some types on it doesn’t really help.

slipset10:05:26

Because, more likely than not, the “types” that exist in the javascript project are not sound, and thus, won’t be more sound if you switch to typescript and continue to use the same “types”

💯 3
hkjels10:05:54

Thought Ardoq was a Clojure shop

hkjels10:05:24

it still is I guess, but just back-end then

👍 3
RAMart10:05:23

I really never ever want to miss shared sources for front-end and back-end again. (Yes, not necessarily Clojure(Script), but – for me – preferably. 😬)

ordnungswidrig10:05:18

good morning!

3
pez10:05:46

Is there something coming close to Clojure/ClojureScript apart from JavaScript/JavaScript, when it comes to backend/frontend code sharing? If I remember correctly GWT was there, because you used Java/Java.

borkdude10:05:48

Scala has such a thing too

borkdude10:05:18

Haskell presumably has GHCJS but I haven't heard good things about it

dharrigan10:05:07

kotlin has kotln js

dharrigan10:05:09

i.e., kotlin multiplatform

djm11:05:12

There are some python->javascript transpilers. Maybe Vaadin (Java) counts too

pez11:05:48

Is GWT still in use much, btw? I don’t see much activity on my human readable timestamp library these days 😃 https://github.com/PEZ/GWT-Relative-Time

thomas12:05:19

I had to do a bit of work on a project that use GWT... very special shall we say... just getting it up and running again took a whole day.

pez11:05:30

I abandoned that project pretty hard…

borkdude11:05:20

@pez May I recommend the "archived" setting that Github now supports? :)

borkdude11:05:56

I worked at a software engineering education program where one of the lecturers had the brilliant idea: if the students already know Java, they can also do front-end programming with GWT, so let's also teach them that. In theory, a nice idea. In practice it was very confusing for the students why some basic stuff from Java didn't work in the browser ;)

pez11:05:29

Now archived.

pez11:05:07

I can’t believe how over-architectured that silly library is. Takes forever to figure out what is going on.

borkdude11:05:19

Maybe Kubernetes is the GWT of the devops world, also from Google? ;)

borkdude11:05:36

(I don't know what kubernetes is really, I'm just saying something silly)

😂 6
raymcdermott13:05:04

regarding types, I prefer a real sense of insecurity rather than a false one 😉

raymcdermott13:05:06

and k8s really is urgh - perfect for Google cos reasons but way too complex for most needs. For example, why is there a cottage industry (eg Helm charts) for configuring k8s?

dominicm13:05:30

I'm avoiding k8s.

dominicm13:05:35

I'll catch the next wave, maybe

mpenet13:05:01

it's not too bad, as long as you use a managed version

mpenet13:05:12

that cuts the complexity quite a bit

raymcdermott13:05:16

I can believe that

mpenet13:05:28

you still have to manage user level stuff, but it's relatively close to docker-compose stuff

dominicm13:05:30

There's still a lot of problems around the gradual migration towards states though, right?

dominicm13:05:49

I remember sitting next to a very confused developer wondering why his state wasn't being reached.

raymcdermott13:05:58

there are lots of defaults that are insecure

mpenet13:05:25

it's a cert fest on the admin side

mpenet13:05:31

when it's done well

mpenet13:05:50

so yeah, it's easy to miss details and shoot yourself in the foot if you try to do everything yourself

mpenet13:05:55

@mcorbin knows all this stuff very well but generally there's a lot of fud around k8s imho

dominicm13:05:19

psshht. Let me continue to be afraid.

dominicm13:05:40

Maybe I should try it, I get put off by all the "stuff" though.

mpenet13:05:21

if you want a voucher to try it on exoscale feel free to ask 🙂

mcorbin13:05:46

Like every tech, the answer to "should I use kubernetes or not" is "it depends" :D

mpenet13:05:21

I heard some people run their blogs on k8s 🙂 /looking at @mcorbin

mcorbin13:05:41

first, as mpenet said, there is a big difference between using a managed offering vs deploying kubernetes yourself. And even with managed offerings, you really need to know how the beast work (and what are the best practices), and it takes time

mcorbin13:05:50

my main concerns with k8s is that everyone is moving to it, there is more and more tools "kubernetes only" (so it's not an open ecosystem), and operators etc... brings with a lot of complexity (and when it fails, you're on your own).

mcorbin13:05:41

But it's not a bad tech, but I don't think having k8s everywhere for every context is mandatory at all. And indeed my blog is running on k8s (but it's clojure driving the control plane :D)

mcorbin13:05:21

Also, when you switch to kubernetes, you are a bit forced to also switch to Prometheus for monitoring (meh), switch to argo or something else for CD... so it pulls a lot of things at the end

dharrigan14:05:07

I run my own little docker swarm at home 🙂

dharrigan14:05:17

I also have my own hosted gitlab instance that does my deployments for me when I push my local code

dharrigan14:05:23

I'm just geeky that way I suppose 🙂

borkdude14:05:43

We are also using docker swarm at work, instead if k8s

borkdude14:05:01

We found k8s too much overhead

dharrigan14:05:36

ditto at work

dharrigan14:05:03

Every now and again, people talk about moving to k8s but no-one has the willpower

mcorbin14:05:44

if you current platform work as you want, no need to move 😄

mcorbin14:05:24

there is no silver bullet

mccraigmccraig14:05:54

i've had a pretty nice time with eks (aws managed k8s) - it fits very nicely into the AWS ecosystem (pod IPs are real VPC IPs, ingresses are AWS load balancers, storage volumes are EBS vols, autoscaling uses AWS ASGs &c) - but i don't think i'd want to do my own bare metal k8s deployment

dominicm14:05:59

Oh wow, exoscale is actually hosting. I should look more at what all the Clojure companies actually do!

dominicm14:05:24

@mpenet I must admit, knowing that you're selling k8s makes your advocacy dubious 😜

🙈 2
mpenet14:05:45

🙂 I should have added a disclaimer, but it was fairly obvious

dominicm14:05:27

@mpenet Curious, what's your take on other managed services, like Redis, etc. Looks like you have some kind of third-party system for that?

mpenet13:05:29

actually I just learned the roadmap is public, mid/end of june, support for pg/mysql/redis/c*/es/kafka/influxdb

dominicm12:05:07

Nice! Managed or otherwise?

mpenet12:05:51

Managed

❤️ 2
mpenet14:05:47

I can't say much, I can only say we have a lot of exciting stuff coming very soon. I can let you know when this happens

👀 3
partywombat 2
dominicm14:05:32

What I'll add is, I'm never hosting anything, ever again. I resent that on AWS I can't just give it a Jar to host behind a load balancer for me and they do all the logs.

dominicm14:05:49

You can have all my money if you solve those problems for me 😄

dharrigan14:05:53

I think Redis are disallowing service providers from running Redis now

dharrigan14:05:00

due to big companies that have the letters WSA in them profiting off their work and not giving anything back

dharrigan14:05:10

see eyes passim re: elasticsearch

mpenet14:05:11

redis is bsd iirc

mpenet14:05:23

it's the redislab stuff that's licensed differently I think

mpenet14:05:33

I mean the modules they develop

dominicm14:05:02

I do like the modules, RedisGraph is very nice.

mpenet14:05:06

but I don't know the details, I am not the right person to tell all the details about this

dominicm14:05:14

I'm still waiting for "Redis as primary database".

dharrigan14:05:34

I use redis a lot, very nice it is

mccraigmccraig14:05:28

@dominicm isn't "jar behind a load-balancer" pretty much a lambda ?

dominicm14:05:58

@mccraigmccraig nuuuuuu. I don't want all the lambda pain!

dominicm14:05:00

Make it stop

dominicm14:05:13

More like Heroku. Elastic beanstalk isn't the same.

3
dominicm14:05:28

ECS might fit the bill.

mccraigmccraig14:05:37

haha, i've not actually tried lambdas, so i don't know the pain yet

mcorbin14:05:41

Imo one of the advantage of k8s is that you can (more or less) easily switch between cloud providers if they provide a k8s offering

dominicm14:05:40

@mccraigmccraig if nothing else, startup time kills the option. I like long-running servers. I just don't like logging, intrusion detection, etc.

mpenet14:05:09

@dominicm I think in theory you can cheat with stuff like firecracker

mpenet14:05:23

like snapshot your app after startup

mpenet14:05:30

and run your fns from there

dominicm14:05:38

https://redislabs.com/blog/top-9-takeaways-from-redisconf-2021/ #5 > Redis adoption as a primary database is on the rise with more than 66% of Redis Labs customers relying on Redis as their main database, Bloody hell.

mccraigmccraig14:05:44

and despite warnings about the inscrutability of operators @mcorbin - i've only had good experiences so far - the strimzi kafka operator has been awesome, and we've got a gnatsd operator and an elasticsearch operator which have both been straightforward

👍 2
mcorbin14:05:28

yes, some are nice. But I'm always afraid of storing stateful stuff on top of k8s 😄

dominicm14:05:43

@mpenet I don't think that's what firecracker is for. It's more about starting OS VMs quickly, that's what is behind Lambda. It's also definitely not for civilians.

mpenet14:05:59

not for civilians for sure

mpenet15:05:26

but you can solve that via firecracker. One of its strong points is snapshotting, just for that, reduce startup

3
mccraigmccraig15:05:32

ha, me too @mcorbin - i'm not going near the cassandra operators, but we're only using kafka, gnatsd and ES for ephemeral stuff so it's good

mcorbin15:05:53

yes, tu spin up dev environment it's handy

dominicm15:05:09

@mpenet I must have missed snapshotting in it. I have actually tried using it 😛

mpenet15:05:32

it's one of the best things with firecracker

dominicm15:05:46

Yeah, I totally missed that 😄

dominicm15:05:58

I was just interested in using it for benchmarking code.

dominicm15:05:13

I wonder if that means eventually lambda will be faster for java

dominicm15:05:57

I will add, I didn't particularly like using api gateway, etc. with lambda. It was much more comfortable to use a normal load balancer.

mpenet13:05:29

actually I just learned the roadmap is public, mid/end of june, support for pg/mysql/redis/c*/es/kafka/influxdb