See? I try to tell people that node ruins everything, but nobody listens. :)
Node is useful for one thing: if a project is written in node.js and hosted on Github, I just nope out of there.
But I just started using node ;_;
I’m always behind.
I really didn’t like the article very much, because it boils down to
I like OpenBSD for reasons I won’t go into here but I couldn’t get Node to run on it for reasons I also won’t go into here (nvm handwaving).
A more interesting post would’ve been “Here’s how I automated node builds to allow deployment on OpenBSD” or “Here are the things holding Node back on OpenBSD”.
Instead, it’s just “derp nvm is hard so I left”. I didn’t learn anything from this.
The issue of /u/greduan boiled down to this github ticket initially. /u/qbit did additional work but it seems that nvm is still a non story for OpenBSD mostly because node needs some additional patches to even build on OpenBSD (and nvm doesn’t handle that).
I believe that at this point /u/greduan could be better of maintaining his own set of previous ports for lang/node with an additional version suffix on binaries. Shouldn’t be that insane to maintain.
Hope the linked github ticket and the referenced ticket at it’s end is rewarding enough for your initial disappointment.
I do appreciate that follow-on information. :)
At one point there was some effort from the node developers to better support OpenBSD, but I believe they got frustrated and gave up (they were trying to get an amd64 box to build an i386 version of node).
In broader terms, if software is developed “Linux first”, then “production” versions may not work on OpenBSD. In a just world, this wouldn’t be a problem. You’d run v12 on OpenBSD for a little while, then migrate all the v11 systems to v12.
In reality, as a result of widespread ecosystem poisoning, you can’t pick one version and run. Anything developed on v10 must stay on v10, v11 must stay v11, and so. (And so forth with ruby 1.8, 1.9, 2.2, and Python2 and python3.) As a result, these complex rvm virtual environment whatever wrappers solve the equivalent of DLL hell by creating a dozen different isolated hells, leading people to conclude that breakage is no big deal and they should “move fast”.
If you’re using python2 to python3 as an example for this, I must respectively disagree. You might as well say that perl5 and perl6 are incompatible. Of course they’re not compatible, they weren’t designed to be. Sometimes, due to bad decisions made in the beginning, breaking changes have to be introduced (the only way of fixing that is making a breaking change). Any code you write will have to be changed at some point, because standards change and technology changes. Might as well not try to reject that fact.
I think @tedu’s point stands pretty well–for whatever reason, both forwards and backwards compatibility has been suffering, and in an effort to save time people end up over-encapsulating their runtimes (see Docker).
You know, except for really old^Wboring stuff like PHP and Java.
Ruby learned a lot from the 1.8 -> 1.9 transition, it’s been very smooth sailing ever since.
OpenBSD Node.JS maintainer here, if people want to help the situation, here is what I recommend: build node from scratch on OpenBSD-current and report issues upstream.
git clone https://github.com/nodejs/node.git
export CXX=eg++ # or clang if you want
./configure && gmake
Exercise as many of the configure options as you can. Upstream has already expressed a lack of interest in supporting LibreSSL (Thanks to the VoidLinux guys for the attempt to get it supported!), but they have been very open to other OpenBSD specific fixes!
Thank you for your reply. If I ever get into OBSD while still doing Node.js I’ll definitely be doing more work in this front. :)
So I have not tried to install nvm on OpenBSD before, but I have run into a lack of pre-built software and it hasn’t been a OS-changing problem. I guess my question is, what happened to whipping out your trusty c/c++ compiler and googling error messages until build? Does nvm/node require some Linux-specific stuff?
With Arch I always have this itch in the back of my head which makes me uncomfortable using the OS.
This confuses me. He doesn’t seem to go into detail about why this is the case but it seems silly that you can get “uncomfortable” from using an OS, especially one at least with the minimal information given sounds like does the job for him nicely.
I don’t find it silly. As far as code and software is regarded, I often get a “gut feeling” that tells me something is a bad hack / dirty / overly complicated / going to bite in the long run.. that feeling that tells there’s a better way, a cleaner way to do things. Surely that feeling follows from something concrete, but it can be hard to articulate the cause(s) without spending great effort thinking about it. And why spend that effort if you’re not trying to win a nerd fight on the internet and prove someone wrong?
I also have a gut feeling that many other experienced developers experience similar gut feelings and follow them for good results. I can’t be sure.
For what it’s worth, I also use (arch) linux on a couple machines right now. It does make me uncomfortable. I haven’t found a linux distro that doesn’t do that yet.
11 months late. Have you tried the CRUX distro? It’s the one distro I’ve been 100% comfortable with (minus compile times) https://crux.nu/
He’s actually user here /u/greduan. Awesome article.
I’m also interested whether things have changed within year.
I was just notified this got posted somewhere, namely here and Reddit.
In any case, I haven’t gotten into this again, I soon got a job in July when I wrote this blog post (hadn’t published it yet) and at my job I had a OS X machine. Couple months ago I had the courage to install Linux on it, but OBSD is not something I have the courage to spend a weekend doing on a Macbook Pro.
In any case, I’m soon moving from Node.js to Erlang/Elixir, at least that’s my intention, so at least I’ll get to use OBSD with no problems on that front (I hope, haven’t looked it up).
Also I now have access to a laptop with an Intel wifi card, so as long as the situation regarding wifi is the same on OBSD as it is on Linux, it should work out of the box (it didn’t use to, had to use ethernet or a wifi dongle).
It is my intention to try it again in the future, so don’t worry. And yes I did want to get it to work, but I was really just way too lazy to get the work done on that front, that was my bad.
P.S.: This is a copy paste from the Reddit thread, basically, just so that’s clear.
P.P.S.: Hi mulander, nice to see you again. :)