Good morning! I have just been to Seattle where I presented Calva. 😃
☕ ☀️ 😎
👋
månmån
Good Morning!
morning
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
I blame TypeScript for this
Hey!
TypeScript is quite awesome. 😃
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
Yeah, I think you might be right about the blame.
people have become much more unwilling to consider an alternative point of view on types
It’s arrogance to a large part, I think. And ignorance caused by it.
„Every bug you hunt passed your type checker“ (Rich Hickey)
Indeed. The false sense of security is a thing.
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…
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.
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.
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.
All fingers crossed! 😁
Morning
Morning!
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 🙂
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
morning
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.
And, I wasn’t ready to “teach” them how to properly type things, (not that I would have been able to, for that sake)
And, I believe that just converting an existing javascript project to typescript and slapping some types on it doesn’t really help.
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”
Thought Ardoq was a Clojure shop
it still is I guess, but just back-end then
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. 😬)
good morning!
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.
Scala has such a thing too
Haskell presumably has GHCJS but I haven't heard good things about it
kotlin has kotln js <https://kotlinlang.org/docs/js-overview.html>
i.e., kotlin multiplatform
There are some python->javascript transpilers. Maybe Vaadin (Java) counts too
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
I abandoned that project pretty hard…
@pez May I recommend the "archived" setting that Github now supports? :)
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 ;)
Now archived.
I can’t believe how over-architectured that silly library is. Takes forever to figure out what is going on.
Maybe Kubernetes is the GWT of the devops world, also from Google? ;)
(I don't know what kubernetes is really, I'm just saying something silly)
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.
morning
regarding types, I prefer a real sense of insecurity rather than a false one 😉
Morning
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?
I'm avoiding k8s.
I'll catch the next wave, maybe
it's not too bad, as long as you use a managed version
that cuts the complexity quite a bit
I can believe that
you still have to manage user level stuff, but it's relatively close to docker-compose stuff
There's still a lot of problems around the gradual migration towards states though, right?
I remember sitting next to a very confused developer wondering why his state wasn't being reached.
there are lots of defaults that are insecure
it's a cert fest on the admin side
when it's done well
so yeah, it's easy to miss details and shoot yourself in the foot if you try to do everything yourself
@mcorbin knows all this stuff very well but generally there's a lot of fud around k8s imho
psshht. Let me continue to be afraid.
Maybe I should try it, I get put off by all the "stuff" though.
if you want a voucher to try it on exoscale feel free to ask 🙂
Like every tech, the answer to "should I use kubernetes or not" is "it depends" :D
I heard some people run their blogs on k8s 🙂 /looking at @mcorbin
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
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).
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)
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
I run my own little docker swarm at home 🙂
I also have my own hosted gitlab instance that does my deployments for me when I push my local code
I'm just geeky that way I suppose 🙂
We are also using docker swarm at work, instead if k8s
We found k8s too much overhead
ditto at work
Every now and again, people talk about moving to k8s but no-one has the willpower
too busy
if you current platform work as you want, no need to move 😄
there is no silver bullet
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
Oh wow, exoscale is actually hosting. I should look more at what all the Clojure companies actually do!
@mpenet I must admit, knowing that you're selling k8s makes your advocacy dubious 😜
🙂 I should have added a disclaimer, but it was fairly obvious
@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?
Nice! Managed or otherwise?
Managed
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
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.
You can have all my money if you solve those problems for me 😄
I think Redis are disallowing service providers from running Redis now
due to big companies that have the letters WSA in them profiting off their work and not giving anything back
see eyes passim re: elasticsearch
redis is bsd iirc
it's the redislab stuff that's licensed differently I think
I mean the modules they develop
I do like the modules, RedisGraph is very nice.
but I don't know the details, I am not the right person to tell all the details about this
I'm still waiting for "Redis as primary database".
indeed <https://redislabs.com/legal/licenses/>
I use redis a lot, very nice it is
@dominicm isn't "jar behind a load-balancer" pretty much a lambda ?
@mccraigmccraig nuuuuuu. I don't want all the lambda pain!
Make it stop
More like Heroku. Elastic beanstalk isn't the same.
ECS might fit the bill.
haha, i've not actually tried lambdas, so i don't know the pain yet
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
@mccraigmccraig if nothing else, startup time kills the option. I like long-running servers. I just don't like logging, intrusion detection, etc.
@dominicm I think in theory you can cheat with stuff like firecracker
like snapshot your app after startup
and run your fns from there
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.
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
yes, some are nice. But I'm always afraid of storing stateful stuff on top of k8s 😄
@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.
not for civilians for sure
but you can solve that via firecracker. One of its strong points is snapshotting, just for that, reduce startup
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
yes, tu spin up dev environment it's handy
@mpenet I must have missed snapshotting in it. I have actually tried using it 😛
it's one of the best things with firecracker
imho
Yeah, I totally missed that 😄
I was just interested in using it for benchmarking code.
I wonder if that means eventually lambda will be faster for java
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.