Ask HN: Which project does not have any good open-source alternatives?
Open Source is changing the tech industry. But there are still a lot of space where the closed source proprietary software is the only player.
Can you comment some of the space? So a person who is thinking about creating a new open source project can get the idea and start making a alternative?
282 comments
[ 2.8 ms ] story [ 288 ms ] threadhttps://www.fsf.org/campaigns/campaigns-summaries#hpp
- File, email self hosted and e2e encryption has Nextcloud, but only technical people can set it up. There should be a happy-clicky thing that non technical people could set up and it would force them to do it the right way, because the right way is the easy way. By happy-clicky, I mean, they create an account on any VPS provider, then click "add service", say how big to let it scale to, define what domain name to use and they are done.
- Web based chat servers that scale. Again, there are web front-ends, like Convos and TheLounge you can put in front of IRCD, but non technical people don't have the patience to set up IRC networks and put web front-ends on them. If there was a happy-clicky solution that used RPC over HTTPS or something to negotiate clusters and all the person has to do is point DNS to it, then more people would self host chat.
- File sharing. If there was something lighter weight than NextCloud that could auto-scale in any VPS provider and could be deployed from each VPS provider, then more people would self host. I almost wrote something like this out of necessity but so many people were using dropbox, I abandoned it.
In summary, I think the gap that needs to be filled is to have more projects that integrate into VPS providers (by the VPS provider) and be part of their VM deployment system, so that anyone can deploy them easily. Maybe there could even be a business model around integrating 3rd party services into each of the VPS providers, following some non vendor specific standard, that all the VPS providers could set up. Linode, Vultr, AWS, Azure, Softlayer, OVH, Hetzner, Digital Ocean, etc... and no code specific to any of them. All of them should have a standard API that services can be integrated into and then easily deployed securely and correctly by less than technical people.
Absolutely! There should be a default configuration path that is easily accessible. That is to say, the non technical user can basically just click Install and answer maybe one question and everything else is automatic with good defaults. Any additional choice will just cause pain, because non technical people won't have the knowledge to make informed choices.
> By happy-clicky, I mean, they create an account on any VPS provider, then click "add service", say how big to let it scale to, define what domain name to use and they are done.
This is crazy if we're talking about non technical users. A non technical user won't know what a VPS even is. They won't know what a service is or why they should add one. They won't know what scale means. Is it the one in the bathroom? What's a domain name?
Supporting federation of hosting with various VPS providers can be useful for advanced technical users but any mention of it should be avoided for a non technical audiance. There has to be a sane default choice made already for all these questions.
Riot is nice. https://about.riot.im/
Mozilla just adopted it for corporate communications. https://matrix.org/blog/2019/12/19/welcoming-mozilla-to-matr...
Perforce is also something that's very useful for game development but relatively expensive.
Git doesn't work very well with partial or subfolder checkouts which is something you would need if you want to store intermediates. In games intermediates can take multiple hours to build (like maps). Building the game from scratch every commit like it's usually done with git CI tooling does not work very well.
We also ran into wanting to give modders access to maps and materials but not to game code.
Git LFS might handle this, but it's just not something that Perforce shops have to even think about, train their people on, etc. It's just "there" and there's somebody that they can call and yell at if things go wrong.
Of locking files? Sure it does; if two people modify the same piece of code, then there will be a merge conflict, and whoever's doing the merge will have the opportunity to reconcile those two versions. It's like a lock, but you don't have to think about it / explicitly lock and unlock the object you're editing. Combine this with rebasing (git-speak for "switch to the branch into which I want to merge and then try applying all the changes from my branch") and you end up with a pretty coherent idea of what changed and in what order.
Having used both branch-oriented (like Git) and locking-oriented (not Perforce specifically, but my current dayjob involves very similar version control schemes), I vastly prefer the former. Less ceremony around doing things in parallel, and less risk of development deadlocks (e.g. Alice locked A.cpp for editing, Bob locked B.dds for editing, Alice now wants to edit B.dds, Bob now wants to edit A.cpp, now Alice will have to revert her lock on A.cpp, wait for Bob to do everything he needs to do, then relock A.cpp and redo her changes all over again (probably also having to debug new things because of new bits and pieces Bob added) - or Bob will have to do so for B.dds - and cue fistfight in the breakroom).
----
That all being said, binary files are indeed a weak spot for Git, so if you really do want to version control your textures and models and sounds and such, then sure, perhaps a different VCS tailored for that use-case would be more ideal. In my experience, though, that tends to be an anti-pattern; generally better to keep code and assets separate (I'm well aware that tools/engines like e.g. Unity don't play the slightest bit nicely with that separation), using separate version control systems tailored to the specific content.
I know some smaller studios that use git to some extent, and they tend to struggle with it on occasion - again, primarily in the art & design departments, mainly with binary files. All the larger studios and some of the smaller ones seem to use perforce. Publisher-owned multinationals might have their own proprietary systems, I don’t have any insider information there.
In any case, people who aren’t familiar with the requirements of gamedev like to argue about this. It’s like proponents of forks arguing with someone trying to eat soup with a spoon.
Yes, but if they really can't be split up into smaller components, then there's always the option of using a different repository and VCS specifically for binary assets. Yes, it's kicking the can down the road, but at least it's kicking that can away from the actual code.
But they're trying to do something very hard: control both quality and deadline. It's not like an open source or enterprise IT project. The game has to be finished, good, by a given date. To do that they do many things, including slaughtering sacred cows about how things are supposed to be done. If hard locking saves them time by avoiding wasted efforts, by artists who are probably over-worked already, then what's the problem?
Do you believe other tech fields are not trying to do the same exact thing? Do you believe that enterprise IT projects are somehow less beholden to both quality and deadlines than video games?
Controlling both quality and deadlines is what literally every (professional) software development project should be doing. The implication that game developers are somehow better about or more cognizant of this (let alone specifically because of broken development workflows) is pretty rich considering how frequently big-budget video games end up in development hell (see also: Duke Nukem Forever) and/or end up riddled with bugs (see also: literally everything Bethesda's released in the last decade or so).
(Not saying that enterprise IT is necessarily better in either regard, of course; bugs and delays are inevitable as software complexity grows, be it an RPG or an ERP...)
> If hard locking saves them time
It doesn't save time in aggregate, though. It maybe saves time for one specific corner case (conflicting edits on binary files) at the expense of slowing down everything else.
And if you're at the point where "conflicting edits on binary files" is no longer a corner case, then that betrays at least one of two dysfunctions:
- You're using some sort of container format instead of sanely keeping things split into separate texture/model/animation/normal/behavior/etc. files (and then - if the amalgamated container file is indeed necessary - combining it as part of the build process). If you're really running into a lot of cases where multiple people are trying to edit the exact same normal map at the exact same time, then...
- You've got a communications breakdown somewhere. You can band-aid over that with file locking, but that still doesn't address the issue of two people trying to independently edit something in the first place.
File locking is a way to communicate in advance that nobody should attempt to make changes to a particular file until the lock is cleared. Merge conflicts are communication in arrears (so to speak) and at that point, effort has already been wasted by at least one person.
By choosing one and discarding the other, or by creating a new audio file that incorporates both changes, just like one would do for any other file.
While I don't know if this exists, there's nothing theoretically preventing the creation of a diffing/patching tool for audio/video files, detecting insertions/deletions/replacements (perhaps by timestamp/frame rather than by line) the same way `diff` does for text.
> at that point, effort has already been wasted by at least one person.
A file lock doesn't prevent that time waste; there's nothing stopping someone from immediately overwriting it as soon as the first editor commits/releases the lock (in which case the first edit was a complete waste of time).
Locking the file is a signal not to work on it because someone else is modifying it. There isn't currently software that supports semantic merging of audio or video, so perforce says "someone is recoloring the asset, don't change the animation until they're done, or you'll just have to do the work again".
In the meantime, perforce prevents you from checking the file out. So you have to explicitly and clearly bypass your source control to do what you suggest, at which point someone rightfully yells at you.
I know how file locking works. Like I've said before, my day job involves using a locking-based version control system. My disdain for locking-based version control comes specifically from having to put up with it instead of using something sane like Git.
> So you have to explicitly and clearly bypass your source control to do what you suggest, at which point someone rightfully yells at you.
And yet that will inevitably happen anyway, because someone's breathing down your neck to get that animation done and won't take "well I'm waiting for Bob to finish recoloring first" as an answer. Cue the aforementioned fistfight over whether Alice's animation or Bob's recoloring can happen first.
Or it'll inevitably happen due to the aforementioned risk of deadlock (Alice is tweaking animations in a different order than Bob is tweaking textures, and thus run into a situation where both are waiting on the other to release locks on files; cue fistfight).
I've seen both cases happen repeatedly. All of those cases would've been avoided had we used a version control system that used branches and merges instead of locks and unlocks.
Well no, the failure modes would be different, but all of those things would still cause problems with branching and merging, mostly because you can't actually merge binary artifacts, only rebase.
And in a world where you can only rebase, locking actually makes sense.
The deadlock most certainly would not. One would get rebased on top of the other, in the worst case.
(In the best case, Alice and Bob would both be committing/pushing to their respective branches early and often, and could therefore look at each others' branches and see what changed between them; if you really want to emulate locking, you could do so pretty straightforwardly by checking if there are any changes to that file in commits outside of your own branch's commit history, and it should be doable to write automated tooling to that effect. All the "benefits" of locking without getting in the way of anything.)
> And in a world where you can only rebase, locking actually makes sense.
Even in a world where you can only rebase, locking is far more of a hindrance than a benefit, for the reasons already outlined.
As it happens, that's exactly the answer you're supposed to give. It's not like game devs have any shortage of things to work on at any particular time.
> All of those cases would've been avoided had we used a version control system that used branches and merges instead of locks and unlocks.
I don't think you're thinking this through all the way. If I have 5 different branches where textureA.png got modified, which one is the right one to end up with after everything is merged? Who is going to have to re-do work? Branches do not solve that problem, and without out of band communication, that problem is made significantly worse than if those changes were done in sequence (which is what file locking enforces).
Don’t get me wrong. I’m a GNU fanboy at heart. But I dont believe in magically willing well engineered software into existence. It takes resources fungible with money. Projects with cash are at an advantage. Projects with cash, motivation and years of experience in the codebase are the ones that dominate. Not starting from scratch becomes a huge advantage.
A new project in a space needs to find an unserved market segment with resources fungible with money. That’s why successful developers’ tools are easy and CAD programs hard.
If you want to make an alternative, just make it and learn from what happens. Because what everyone wants is a free iPhone. Good luck.
Because that would be my gut feeling: Not interoperable enough, since some things just work differently, but not necessarily much worse. If you can't send your sheets to company b without being sure they can properly use it, it's worthless. Pretty much the same problem with Word.
I still use Libre Office on Ubuntu and I wonder why they chose to be so different. It would be great if they could completely copy MS Office in UI/UX, but there's probably some kind of copyright there right?
Oracle v Google is copyright as applied to API’s. Different laws. Patents expire more quickly.
The thing is that different job functions that are exposed to overlapping user bases in the same industry (and even office) use a different 20%. If it was just per-industry variation, it would be easy for industry-specific competitors to succeed, but the parts of Excel used actively by Andrew, who makes a tool that is also consumed by Bob and Carol are different than those used actively by Bob and Carol (which also differ from each other, and which each have their own users who rely on the tool and the features it relies on, even though they don't actively use the features.)
I suspect making it work this way requires an army of developers and some corporate will power. Having an inside track on exactly how the OS works may be an advantage.
I strongly suspect you are correct. As stale evidence of culture, I offer some writing by a software developer who used to work for Microsoft on Excel:
https://www.joelonsoftware.com/2001/10/24/user-interface-des...
But the barrier to someone using it is much less because it is gentler than, say, giving someone python code to do the estimate and expecting them to do it correctly. I think the interface familiarity is key.
Unfortunately, while LibreOffice is usually pretty good at all this, it's always just one or two peculiar difference in function calls that breaks it. It's pretty close, but just not interoperable for anything advanced.
Even if you individually (yourself or your company) would be willing to move to some decent alternative (they do exist), you will still be exchanging files with people who are more locked in than you (e.g. banks/finance), because of custom plug-ins, custom macros, etc.
If I wanted to compete with Excel I would start with a plugin / add-in or complement tool and work my way from there. Some companies are probably doing it. They're not really replacing Excel itself but capturing some of the value away from Microsoft.
Google Sheets is a fit in some situations but the real facts are that Excel is amazing and when someone has been running core biz logic on it for a long time; that operator is someone you need to get to know before feeling too certain.
There's money in replacing that person and fucking the whole thing up so they are stuck with a long tail of consultants. I never ran that sort of business. However on a couple painful occasions I overzealously pitched what python and psql could do to solve a problem and later had to eat crow.
At the end of the day, the people that do the magic that keeps everyones job paying aren't always (or nearly never are) the people that make the contract hire decisions. If you can give those people a tool that lets them 2x their work and be excited about it there's a big net win. If you want them to move to a statically modeled web interface with dynamic tables and they lose all their ability to do everything they know in Excel, everyone loses.
Portability and timing is key if you have to take on that sort of gig. Team buy in might be worth more than that. Never take somebodies sewing machine if you still want that biz to make enough money to pay you.
What trips people up is that Excel models can be deceptively inviting of replacement ideas. They may have many workflows within them that are obviously much easier to accomplish with a different tool. E.g., grouping and applying aggregate functions; filtering; joining; filling missing data, especially with constraints such as filling forward EPS estimates but only into the same fiscal quarter; etc. You could look at an ocean of INDEX(,MATCH(...)) functions in Excel and discover that the same manipulation in Pandas would require just two lines of code. But it is easy to overlook the importance of seemingly simple calculation flows, in the same model, that are uniquely suited for being expressed in Excel, the universal language for describing calculations.
For example, I have seen data analysts move from Excel to Python, replacing their models as they go -- after being wowed by Pandas' data manipulation capabilities -- and then get bogged down for months trying to recreate what Excel's =RTD("BLOOMBERG.RTD","",...) already did for them. And when the portfolio manager tells them, "this number looks wrong", which happens often, they spend half a day dumping data into Excel and building a sheet that's illustrative for the PM.
In my mind that's actually what is the root at any talk of "Why isn't there an open source alternative for X amazing program?"
As a wiser person than me once said, "It's easy to imagine so I imagine it's easy." Deceptively simple operations in things that have a long legacy of supremacy can just be near impossible to clone even if you can churn out a POC that looks reasonable in 20 minutes. That trap is a big hill a lot of us die on. At one point in my life I swore off ever doing ETL, and now I do it for a living. Seems like that's actually the world now. Sheesh. With MS embracing Python for big data, maybe the next big thing is just what it's always been... Excel.
The entry level to power user path of Powerpoint and Excel specifically make it easy to jump in and then get very powerful usage from very quickly.
But true for Excel
"How I Earn Up To $14,444 Per Day Just Sending A Quick Email To People Who Visit My Odd 2 Page Website…!
And How You Can Get A Copy Of Everything I Use To Do This For FREE…"
http://bit.ly/ILOVEMoney
Hurry Up Very Limited Time
FREE FREE FREE
The age of the product would surely reveal the difficulty of creating a competing product...
[1] https://en.wikipedia.org/wiki/AutoCAD
It's used by mechanical engineers. It's what you use to design an engine. Good CAD software hooks up to the inventory system so that parts can be ordered automatically.
It's used by electrical engineers. Special CAD packages exist for integrated circuit design, magnetics, and antennas. For example a motor might contain coils of wire, permanent magnets, air, and various components through which magnetic field lines are directed. Eddy currents must be analysed.
It's used by chemical engineers. Pipes and tanks and pumps get laid out. Stuff like water hammer must be accounted for, except maybe the fluid is poisonous and explosive. Expansion joints for thermal stress and pressure changes might be important. Stress on welds must be calculated.
Almost all drafters and fabricators just want to interact with the 3D model with the mouse. Dragging and adding features.
Also 2D drawings are the main output of a CAD program, to build the designs from. Which Openscad doesn't provide.
In solidworks (to pick on the one I am most familiar with, NOT expert with) you can click on an edge and say "radius this". In Solidworks, you can have a master model drive dimensions down to other drawings, so that multiple people can work on different parts of the same system and get the bolt holes to line up. In Solidworks, you can say "give me 2% draft angles on these faces, and run an injection mold flow analysis."
Openscan is cool and I use it, but nobody would confuse it with Solidworks or similar.
Fusion is orders of magnitudes better though.
- use one physical webcam in multiple apps simultaneously
- switch which physical webcam software is using seamlessly
- add live video effects
- use a static image or video file as the webcam source
(If there is something like this already, then I have missed it!)
https://obsproject.com/forum/resources/obs-virtualcam.539/
Thanks for sharing!
There's reverse engineering of some codebases like Rollercoaster Tycoon, Diablo, and Super Mario 64, but for 99% of games we'll never see them outside of the original release or an emulator.
There is some open source games, but not many and all the old console games are simple and graphically/audio simple, all the old PC games, it's really only modern AAA titles that have tons of complex assets and would be hard to 'open source clone of X'.
[1]: https://www.rockpapershotgun.com/2019/06/13/square-enix-digi... [2]: https://www.theinquirer.net/inquirer/news/1014845/sega-loses...
And though Photopea[0] is not open source, it can mostly get things done for my minimal use-cases.
[0] https://www.photopea.com/
OK, not open source! but single-purchase at a reasonable price. Which reduces motivation for an OS replacement.
I love the work that the Inkscape team has done and it does do some stuff that illustrator doesn't do easily but it's no where near a replacement for illustrator. I haven't looked but I suspect it's not in their mission statement to be a replacement for Illustrator.
Hats off to Adobe for producing the world class tools they produce so consistently for basically the length of my adult life but man I think it would be good if there was something that was aiming to be an open source Illustrator alternative.
apply policy based on AD user or group membership
block/apply protocols rather than ports (allow ssh doesn't care what port ssh runs on)
advanced url categorization. allow Facebook but disallow Facebook chat
etc
Name one. What I mean by multi-tenant is that the namespace, security space, capacity quota and I/O quota are fully isolated and managed at the storage-system API, not via other facilities such as cgroups which aren't even applicable beyond a single-host level. Each tenant gets something that looks like a private service with predictable limits (appropriate for an SLA) regardless of what other tenants are doing, despite being on shared infrastructure. Commercial vendors like NetApp and all the "hyperconverged" crowd have support for this kind of isolation at the cluster level, as do some bespoke storage systems such as the one I work on at Facebook, but in the open-source world? Nada.
There’s Kdenlive and OpenShot that are maybe the most well-established, but they we’re both very buggy the last time I dealt with them, and they’re nowhere near featureful as what’s available commercially.
I think we could benefit from a well-know MovieMaker equivalent. Something that isn’t featureful, but is reliable (read: doesn’t crash) and intuitive.
Yes, there are a lot of players, especially on the Windows side in the under $100 price range, but nothing I've used has been comparable to iMovie on the Mac. It's the one void that hasn't been filled for me since switching from Mac to Windows.
I've purchased Cyberlink PowerDirector, Corel VideoStudio and Premiere Elements, and I didn't find them to be very good. There's too much of a sloppy "kitchen sink" mentality to them.
I actually found Windows Movie Maker to be better than the aforementioned products, but that got discontinued without a replacement for quite some time. There's now a "Video Editor" application which is part of "Photos" that is serviceable, but I would gladly pay a Windows app that is akin to iMovie - simple, focused and functional.
Edit: Not Open Source though, woops. Still a good sibstitute since Microsoft doesn't host Movie Maker anymore.
Once I can create the flashy animation style stuff I regularly create and not just Windows XP Movie Maker-level animations, I'd pay any price and switch to Linux in a heartbeat.
Craiglist is handling as much traffic as all of them with around 50 employees.
There's no reason why someone building an open solution couldn't work with the cities and get their endorsement.
These companies are also taking a giant cut but still losing money. Granted they are spending money on things that an open source alternative wouldn't necessarily spend money on, but I don't think very many of them are anywhere close to being profitable even without the extra spending.
All of these companies are following the ridiculous 0 to 1 monopoly model of growth and are wasting a ton of money trying to capture any market that they can get their hands on. It's not sustainable and the gig workers are paying the price. There's no doubt that they're providing a valuable service that could have spurred growth for the middle class, but instead they're using VC money to undercut existing businesses in hope of building the next Google.
I also know a few people at food delivery companies and they all take around 35% of each order.
My point is that you could have an open source version of these services that could be managed by local governments or not for profits.
That is the idea I guess.
> Their last quarter revenue was almost $4 billion, you can definitely serve millions of daily rides for way less than that.
How do you calculate this? Sure if you were just you with car, you could - but not sure this is exactly a workable business model without uber - if it was then people would presumably not use uber.
> My point is that you could have an open source version of these services that could be managed by local governments or not for profits.
You could have open source versions - but the source code is a small part of the operation - and I'm not sure why I would want to government to run it - or why people should not be allowed to profit from it. If the issue is that workers are being exploiter maybe a better option is to see if there is some reasonable regulation to be put in place or why there is such low demand relative to the supply of labour.
I'm not a 100% sure if I understand your question. What I meant was that you could run a marketplace web service like uber or airbnb for way less than they're spending now. The variable costs of processing those transactions approach 0 at scale, also would be practically free if someone wanted to host it themselves for their small town.
> You could have open source versions - but the source code is a small part of the operation - and I'm not sure why I would want to government to run it - or why people should not be allowed to profit from it. If the issue is that workers are being exploiter maybe a better option is to see if there is some reasonable regulation to be put in place or why there is such low demand relative to the supply of labour.
Yeah I agree. The OP asked about a good open source alternative and I think that this could work as an open source project and be deployed per town (or as a decentralized application).
Aspera: a high-performance data transfer suit, used in genetics and the film industry. I wrote a blog post about it a year ago and still get near-daily emails asking me if there is an open source alternative yet. QUIC may provide a basis for a solution, but it needs to be explored.
PDMS: software for planning, modeling and simulating oil and gas plants. Main two commercial suites are AVEVA PDMS and Autocad Plant 3D. AVEVA PDMBS is upwards of $1,000 per seat per month (!), so not feasible for projects which I have in mind (more on that in the new year). I'd imagine that Blender could be used as a starting point for a Free alternative, but I'm not sure. This is a tougher one.
[1] https://www.ccdatalab.org/blog/a-desperate-plea-for-a-free-s...
They're niche industries that require tremendous amount of upfront investment, in both physical assets to realize the utility of the open-source project, and knowledge-base required to operate the software.
On the other hand, you could have a piece of software that requires niche knowledge but its used literally everywhere - for e.g. OpenSSL. Not many people can contribute to it, yet it exists as open source. The point I am trying to make is that OpenSSL and your quantum hardware control software are very different things.
On the Free side, I think one reason is the copyleft nature of the GPL. Another pattern indicator is how modular the software is - smaller bits are easier to open source than massive projects - and the general inclinations of the programmers, their bosses, and their legal teams.
That being said, I don't think it's unreasonable to expect a Free alternative to AutoCAD in 2020. (Pipes 3D is an AutoCAD extention). It's widely used software across numerous industries, much like Photoshop, Illustrator or Audition, but there is no Free alternative that I'm aware of.
A particularly annoying thing to me here is that AVEVA was actually originally developed and owned by the British government, but it was privatized (I think under Thatcher.) I think the value created for the tax payer would have been much greater to create free tools and software and make them available to everybody rather than just whatever pittance they got from selling it during a privatization firesale.
Another exception is public works paid by taxes such as Government open source projects.
And yet, in commercial industry where I've worked - it is hard to find anything that's useful and can replace internal software because there are no free alternatives. I don't expect these things to be out and open!
I did not have any idea that changing protocol will have this amount of benefit in data transmission. Also amused that no one have not solved it in Open Source world.
(honest question, and full disclosure: tus core author)