I am starting to hate open source

I have just spent two frustrating days trying to build a toolchain to convert my plaintext short stories into Shunn .docx submission format, using pandoc etc. And it’s still not working properly. I find suggestions for scripts, templates etc… try them… and they don’t quite work properly, or have dependencies that lead to a rats-nest of ‘you have to install this… then you have to install that… and they must be in the right directories and… you have to set up your PATH and…’

It was a great idea in theory. But it led to so much fragmentation: anyone, regardless of ability, started forking off their own versions of things until you can’t see the wood for the trees. You end up spending more time trying to find real working tools than you do getting the actual job done.

Linux distros, for example: why so many? There is a REASON Linux has not taken over the desktop.

Perhaps I should have put this in the BBQ pit, sigh…

Do you think you’d have had better success in your project without open source software?

That section right there is why I can bring myself to set up Linux on any of my computers*. I have a ton of raspberry pis that use it, but I don’t have to interact with them very often. When there’s a problem it can be a real pain to get sorted out. Plus, since I don’t use Linux regularly, nothing is intuitive to me and many, if not most, of the tutorials that walk you through how to do something make the assumption that you have a working knowledge of it. For example, telling me I have to install something to get something else to work, but not explaining how to do it. Not that I expect every post to provide an ELI5 (Explain Like I’m 5) answer, I’m just saying it can be difficult.
My command line experience is limited to 90s/early 00s era DOS, so I’m not entirely unfamiliar with it, but very little of that knowledge transfers over to linux.
Having said all that, I’m sure some of how I feel with this is how people in the 90s felt asking me for help with their computer.

*That may change. One of my computers at work has exactly one job, it displays our surveillance cameras on a monitor where the employees can see it. The problem is that, despite telling Windows to just download updates, install them and reboot all on it’s own, it often doesn’t. That means there’s a big UPDATE AVAILABLE pop up that blocks the view until I have time to finish it. I’m considering installing Linux on that computer just to avoid that specific issue.

And that’s part of the problem as well. Which one do I use? It probably doesn’t make a difference for what I need it to do…or maybe it does. And if I were to ask which one to use for a project like this would get a dozen different answers.

IME, it’s not an open/closed source issue, it’s, again IME, that the closed source software tends to be easier to get up and running. I feel like I’m less likely to spend half a day trying to get it to work, reading stackexchange/reddit trying to figure out what else I need to install AND how to install it. And then, after all that, finding out I need to use a different distro, which means starting all over and, more often than not, giving up.

I don’t know how to do something, therefore that thing is hard and I hate it.

I do know how to do another thing, therefore that thing is all kittens and light.

This cuts both ways. I started using a Mac a while back, and I really hated it. All kinds of things I knew how to do on Linux I couldn’t do on the Mac. Why is this all so hard? Then I learned how to do them on the Mac. It took some time, effort, and lots of installing additional software, but now I can do the things I know how to do on Linux on the Mac.

I never understood this. Are people picking to start with distros that are so narrowly focused they can’t be made to do whatever you want? I’ve installed RedHat only software on other distros, I’ve gotten Ubuntu only vendor packages running on Debian. I’ve installed lots of unpackaged software.

When the documentation says install libfoo on RHEL, 90% of the time all that’s necessary is to search for “libfoo Ubuntu” to figure out which package is necessary on Ubuntu.

Arch has really good documentation. I use it all the time. I’ve never run Arch on anything. Once you get past a few distro specific commands, it’s all the same.

I was just trying to set up an automatic toolchain. I’d hoped that this would be fairly straightforward: some upfront work, yes, but then a one-click process. And yes, the promise of open-source is that it’s configurable. And yes, if proprietary tools don’t do what you want, you have a problem.

The issue seems to be that open source is often so fragmented. People address one problem in one particular environment… get it sorta working for them… and then abandon it. It looks useful: but it hasn’t had the rough edges filed off it. And then someone else forks a new version for *their* problem and environment… and moves on. Etc etc…

I’m going through the exact opposite. I had some security displays that ran Linux, opened a web browser, logged into the security backend, and showed the camera feeds. The people that run the security stuff switched to using some closed source Windows-only software to view the feeds. Now I’ve installed Windows and the security software, and it actually seems to be working well.

I followed the Microsoft documentation on automatically installing updates, and blocking popups. We’ll see if that actually works.

No, it’s a documentation issue. The closed source security software has pretty good documentation, and was built with my use case in mind. It was much easier to setup than I was concerned about. The old web based system did none of that. I had to hack together some automation on Linux to make the use unattended. Automating Linux to do what I wanted was well documented and did not require paying extra to Microsoft.

Now the problem is that I need 3 security displays, which means someone has to pay for 3 license seats for me. Not my problem, they picked an expensive solution, not me.

There are many distros because each developer had a unique and different philosophy when constructing it and there is no legal reason why they are not allowed to just make a custom one that fits their own needs.

I assure you; you are under no obligation to use any of them. In fact, I would strongly discourage you to use new ones, obscure ones, specialised ones (unless you have that particular specialsed need, like using Pi-Hole for your Raspberry Pi), or any one that is not somewhat beginner friendly (Ubuntu, Linux Mint, CachyOS, etc.)

Closed source is never abandoned?

There are lots of tools to handle all of the complications and interdependencies that exist in software: apt, pipx, anaconda, cargo, etc. Any software ecosystem needs to have something to manage getting everything setup to run the one particular tool you want, which happens to also use 15 other tools. There are even whole other things like docker and snap to hide all of those dependencies from you.

I know people don’t want to learn how to create a conda environment just to run some old python code, but sometimes learning things is the price for playing.

Exactly my point. They each built them for what they wanted… and it worked fine for them.
Other people may have different needs.

To be able to construct something for your own need is not bad. This is the absolute super power of FOSS.

Of course not. A lot of once-popular tools have vanished. To use old examples: Wordperfect. Visicalc.

I am not against open source in principle, obviously. Remember the fun when we actually got our hands on UNIX code?

But the problem is that the barrier to entry is now almost non-existent. It becomes a problem of spending time to discern a well-written program from something thrown out by a script-kiddie…

No argument at all. But sometimes you just want to get the job done, rather than diverting to work on the tools…

I just cannot believe that there are some people in this world who just can’t appreciate the awesomeness that was 2009’s Hannah Montana Linux

Some people, such as myself, have no real knowledge of one distro vs another. A few months ago I was trying to do something or another, installed Mint (I think) and spent hours trying to get something else up and running and eventually learned that Mint didn’t have the dependencies I needed pre-installed and I started over with a different distro which worked fine but it was still lots of wasted time and hair pulling. I don’t remember what I was trying to do, but nothing suggested Mint wouldn’t work and once I figured that out, I didn’t feel like screwing around trying to get all these dependencies figured out when I could just install something else instead.

So, knowing very, very little about all this and having zero idea what ‘libfoo’ is, I googled ‘libfoo ubuntu’ and ‘install libfoo ubuntu’. Neither of those searches provided the info necessary (ignoring the AI at the top of the google results). I mean, some of the results might contain the needed information, but i don’t see anything along the lines of “How to install libfoo on ubuntu”. In fact, I googled “How to install libfoo on ubuntu” and I’m still not finding it. Here’s the first handful of results:

-Building dependent deb files
-apt packages - static vs dynamic libraries
-Shared Libraries
-How can I “register” my library libfoo.so to link it with -lfoo?

I’m sure I could figure it out, but it’s not obvious. And then if/when something with the install doesn’t go as planned, I have to go figure out how to fix that, and then the next thing and the next…
I like to think I’m pretty good with computers, but Linux tends to frustrate me.

And trying to make sense of github is a whole other thing.

And this is the same thing I go through every time I try to use docker as well.

@echoreply was using libfoo as example; it’s not a real library. In software development, foo, is commonly used as a placeholder for a name. A concrete example would be ‘libjpeg8 ubuntu’.

An open-source project can be used a million different ways while a closed-source only one.

For the common cases, open-source is painless, but for the uncommon cases it can degenerate to full-on software development. Closed-source never degenerates because those uncommon cases are not even possible.

A toy truck is easier to play with than a Lego truck, because you don’t have to assemble it. But the Lego truck is far more flexible.

There is, of course, the famous haiku error message:

"Yesterday it worked.

Today it is not working.

Windows is like that."

Okay, but could you make this toolchain using proprietary software more easily? Because it sounds like open source software is what is letting you attempt this toolchain at all.

The only software proprietary software I’m seeing that could do this is Scrivener, assuming you do it all at once (and aren’t trying to built a toolchain to regularly do this.) But apparently it doesn’t have an Shunn template built in, either. It has some built-ins that are close, but I’m not sure you’d still not have the template problem if you’re running into edge cases now. Is it worth the $70 to find out?

I would have thought that pandoc’s own templates would work. So the fact you’re seeing issues is interesting. A script doesn’t seem like it would be necessary, just a single command, assuming you just want to do it once and have all your text files easily accessible. But, of course, I defer to you actually trying it in practice.

Similarly, you really shouldn’t need to manually install dependencies on any modern Linux. The package manager should be able to do it for you. That’s its main advantage.

No. Of course proprietary software is not intended to work with other closed systems.

I have looked at Scrivener, but I’m not willing to buy a paid program which may not work anyway.

I guess I will just have to learn libreoffice in detail and do it by hand.

First, practically, as to your actual problem…

  1. This is probably something Claude Code or ChatGPT Codex can do for you, trivially, in a few minutes. Pay $20 for a month and it can either do it on the spot for you (to convert a handful of docs) or write you a reusable script to do so any time you want. It will iterate with you until it gets it right, at much less hassle than trying to configure pandoc yourself.

    You can force it to use a tool like pandoc (or perhaps consider mdast for something more structured/semantic) if you want, but it can probably also just do this as a bare Python/Javascript script too. Doesn’t matter; leave the implementation details up to it.

    If you don’t want to pay, try the free version and it’ll probably still work. Or send me some example files and I’ll do it for you.

  2. I think the difficulty mostly depends on how complex and structured (or not) your input shape is. Like are you coming from truly plaintext (no formatting or metadata at all), or simple Markdown, or something more like fancy LaTeX? If you’re willing to use Markdown and some basic frontmatter, this becomes a very easy problem to solve.

  3. What software are you writing the story in? Do you use something like Obsidian, or just a plain text editor…? With the right editor, you can probably also make this a reusable export plug-in so you don’t need an external tool at all. (You can even do this in Google Docs, as a Google Apps Script, for example.)

FWIW, LLMs and especially agents are extremely good at this stuff — both the language transformation itself (machine languages are still just “languages”, and it’s very good at translating/porting), and also at understanding the intricacies of FOSS library internals.

If you use a good agent instead of a chatbot, and it doesn’t know how to do something, it can just go to Github to read the actual source code and figure it out on its own. In the AI era, that’s a huge advantage over closed-source software.


And with that out of the way, an opinion on open-source…

As both a user and a frontend developer, I personally find most open-source programs abysmal in terms of their usability. It’s not just their user interfaces (which are bad enough), but their overall user experience seems a distant secondary or tertiary concern vs things like number of features, code quality, or some particular internal style guide they obsess over.

Comparing things like Audacity or GIMP vs their commercial, closed-source equivalents, it’s a pretty night-and-day difference. Most open-source software doesn’t have a lot of funding or staffing, and the few that do tend to focus them on other priorities than usability.

Where open-source does shine, however, is modularity and reusability — the FOSS libraries and frameworks that other software use are amazing. And they’re everywhere, even in commercial software.

Take Linux, for example… it’s in sooooo much consumer electronics, basically any major product that isn’t from Apple or Microsoft: your TV, your Kindles, your Android phones, your car’s infotainment system, your router… it’s all Linux. But it’s almost never your standard home-user distro; it’s a Linux kernel with a heavily modified interface on top of it, usually closed-source and vendor-specific and tailored for the product and (hopefully) more polished. That’s because there’s somebody paying for all that work to make it user-friendly.

Or something like the Chromium browser project, which is the basis of Chrome, Brave, Edge, and basically every browser that isn’t Firefox or Safari. The bare Chromium experience is usable but not very integrated; some commercial vendor then takes that and makes an actual browser out of it, profile syncing and ads and spying and all.

Then there’s the actual libraries, things like ffmpeg that basically any audio-visual tool uses, alongside YouTube and Netflix too. Open source libraries power almost the entire Web, too, from the operating system up to the filesystem up to the web server up to the web languages and encryption and compression and network libraries. It’s all just invisible, but the world runs on it.

Where it really doesn’t do so well is end-user software, as you saw (and no argument from me there) — especially command-line stuff. But because it’s FOSS, the AIs are both trained on it already and can refer to the actual source of truth (the source code) to figure things out, and also to write you bespoke new features or bugfixes as needed.

FOSS software by itself can be kinda rough to learn to use, but with AI help, it can become anything you want it to, customized especially for you. It’s a killer combo.