5 ms·
I support the notion of this post. In the last 6 years I’ve mostly been busy removing layers of abstraction in order to uncover the set of tools which is a good
by kosolam 3y ago
I support the notion of this post. In the last 6 years I’ve mostly been busy removing layers of abstraction in order to uncover the set of tools which is a good balance for me.
In example, replaced clojurescript with Javascript and then eventually Typescript.
Replaced Clojure with Java.
Replaced docker with VMs.
Avoided ansible in favor of simple bash scripts.
Avoid all kinds of firewalls in favor of understanding and using iptables directly.
Etc..
When it makes sense, additional layers of abstraction can always be added on top, if the foundation is solid.
- happymellon 3y agoWhilst I agree with most of this: > Replaced docker with VMs This doesn't make sense to me, as Docker and VMs are not the same thing. Replace LXC with VMs, sure.
- vbezhenar 3y agoYou can build infra with cloud-init to achieve something similar. You start with base image (e.g. debian cloud-init image), you craft cloud-init script (like Dockerfile) and you end up with VM disk file which you can run. It won't be better than docker, for sure, but if you're going to use VMs and stay sane, you'll need to reinvent it.
- kosolam 3y agoPlease check my reply to one of the comments above
- omneity 3y agoI don't know how others feel, but to me docker is definitely less complex internally than a VM. For one, I'm running a single kernel/set of drivers rather than two. But operationally yeah I agree, the stricter separation could make it easier to use a VM to get stuff done.
- kosolam 3y agoJust to clarify a bit. A VM is already a container. When you run docker inside a VM it’s another level of abstraction. Yes, one can run docker containers on bare metal, however the isolation is poor and so is the security guarantees. In terms of excess abstraction, with VMs or bare metal you just need to learn the essentials that you need to know anyways like for example linux networking and security. With docker there is additionally container networking.
- damethos 3y agoThis comment makes no sense to me. How is Clojure a layer of abstraction that had to be removed and replaced with Java? What do you think that Clojure was abstracting exactly? Same question for Typescript. In fact, Typescript is a layer on top of Javascript so I could say that you actually added one more here.
- kagakuninja 3y agoEven worse, he ultimately replaced clojurescript with typescript. Both are just JS transpilers.
- meiraleal 3y agoI stopped using clojurescript in favor of pure JS (without react) but if I was going to use typescript I would pretty much continue using CLJS.
- kosolam 3y agoThink about this from the perspective of the post. For us since we do use React CLJS and it’s array of libs did became an excess level of abstraction. A wrapper around the JS engine and JS ecosystem - which didn’t bring enough added value for us to justify its use. Typescript didn’t attract me at first but eventually it does bring a lot of added value on top of js and it’s 90% JS anyways. We build hardcore SPAs and the amazing tooling and libs for ts pay off.