Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


This 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.


Even worse, he ultimately replaced clojurescript with typescript. Both are just JS transpilers.


I 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.


Just 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.


I 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.


Think 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.


Whilst 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.


You 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.


Please check my reply to one of the comments above




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: