I'm curious to start a discussion and get some opinions on this trend I've

I’m curious to start a discussion and get some opinions on this trend I’ve noticed in the community and companies.

The trend I’ve noticed is companies making their own version of software by forking existing software as opposed to trying to get their changes upstream. These pieces of software are then hyper focused towards the machines these companies support.

Disclaimer: I actually actively worked on one of these. My goal is not to disparage these companies or their decisions, merely to try to understand why these changes were done, if that wss good for the community, and if there’s possibly a better solution.

The 3 I know of off hand are:

thats probably the single most important reason why eventually every single open source project dies…

I can see the temptation to do that, rather than have to make sure the features you’re adding support everyone’s hardware you can just make sure it works with your own hardware. There’s no profit in supporting someone else’s hardware or, to be less capitalistically cynical about it, you aren’t burning out all your time and effort on parts of the project you’re not personally interested in.

But at the same time, that’s the sort of thinking that hurts open source efforts.

@Cristian_Nicola I think that is a bit strong seeing as most of the planet now runs on (GPL) Linux…

the way i see it - you take existing source code which saves you a great deal of time on both research and implementation. you extend it and improve it to do what you need. i think it would only be fair to contribute back, even tho this would add a bit more work for you - you should consider the initial debt of time you saved… but thats just me.
@Alan_Lord does it?! https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=10&qpcustomd=0
i have done quite a few open source projects in the past 20+ years and i cant remember a time without linux taking over next year. i wonder how many of the developers from linux kernel from 5 years ago are still pushing code. what about 10 years ago?
there are a few long lived open source projects (apache, mysql, linux, mozilla to name a few) but how many of them are actually developed by the same people more than a few years?

I think another thing to consider is that sometimes companys don’t even realize what they are doing. It’s nice to have a piece of software that works perfectly with your machine. And when that piece of software already sort of exists, it’s even easier to just take that and make it work.

The problem then comes when these companies dont take the work they’ve done and put it back into the community.

Well, even more so now that it’s “Ultimaker Cura!” instead of just Cura…nobody’s going to want to give Ultimaker free advertising.

iMakr have their own customised version of Cura too.

Indeed they have: https://www.imakr.com/us/en/forum/topic/108-custom-made-cura-for-startt-updated-5-july-2017

So to me this behavior is detrimental. Ideally users could use software of their choice and not deal with variations and flavors of the same core product. I think comparing this to linux distros is a bit wrong though. I can choose to do a certain Linux distro and still get the functionality I need regardless (barring issues like packages only being available for one platform). If you make existing software only for your printers, it’s inevitable that you’ll get vendor lockout in those flavors simply because the companies aren’t putting in time to make sure printers they make no money from work with the software they give away for free.

I thought forking was considered a feature of open source, not a bug. It seemed like Prusa’s Slic3r fork got interest going again in the mainline version. Next month might be 30 months with 1.2.9 being the latest version marked “stable”.

Also mainline slic3r was slow and prusa has been porting a ton of it to c++.

Sometimes projects fork, especially small ones because the original maintainer has strong opinions about it and there are unmet needs.

For example the latest cura has had broken USB detection of printers for some time. It works for how cure printers startup and connect. But it’s janky for everything else.

I agree w a lot of the comments but also the original post. It’s a move to stay alive with a path to leverage open source to conserve resources. It’s not evil, but also not the end game, just a necessary cycle.

I believe the future of host software will break away from usb cables and local machine control via traditional computers and move to computers on board the machine communicating w the cloud. If not cloud, at least on board slicing w open source projects executing in the background.

Since cloud isn’t a bad thing in my book, I see a need for open source convergence in UI, base features, wireless operation and file accessibility. These needs are widely ignored by many commercial companies (including open source companies)… closed source companies are trying to purposefully stop these developments to minimize risk of competition competing in these areas- therefore degrading their leads in ease of use, reliability, etc. if the playing field was level between cheaper open source options and more expensive proprietary executions of the UX, their margins are challenged.

Closed companies are trying to protect their business models. It’s reasonable and legal. If open source companies don’t participate in a united front against a collective competitive UX, we will all splinter the marketplace and lose the battle. Nothing w/in the nature of the open source model prevents this approach. Not doing so is a short game based on the idea of scarcity, at worst.

My bottom line: the rising tide raises all ships… working together on open software will make us competitive w the closed companies w deeper pockets. History has shown even closed companies will adopt open source software that is either superior, or at least good enough and lowers cost.

Many small hardware companies are wasting resources trying to also be a software company. In today’s climate, it is a losing battle- not impossible but a less likely path to success.

I expect a convergence out of necessity and a future cycle of free firmware/software that moves past short-sighted branded flavors of open sourced host software. The general public doesn’t care about who owns what code or patents… they care about value, reliability, ease of use… the total user experience. If a closed company provides an affordable option, they will buy. If an open source company provides this, they will buy. The decisions aren’t made in corporate boardrooms or open source meet ups, they are made in the marketplace. I think open companies need to face these realities and get organized to survive the next phase of this 3d printing culture… beyond the adoption of 3d printing in education and manufacturing and the beginning of the acceptance of 3d printing in homes… crossing the chasm.

Brook

I maybe a little but of the devils advocate. Prusa’s Marlin firmware advancements are now actually part of the main release. Companies do have the ability to dedicate funds, people with mutu direction in the same room, and resources for improvements. Open source is very necessary. Sometimes dedicated paid staff of professionals are the best things to realize an idea. I beleive in open source. Just saying there can be mutual benefits between companies and communities.

This is an old pattern in open source projects. :slight_smile:

Companies tend to develop local variants, and not spend the extra work to integrate with the mainstream. Nothing immediately wrong with that - though there is some argument the company should make their changes public.

With a healthy open-source project, what eventually happens is the changes in the mainstream become desirable to incorporate into the local variant. If the local variant has drifted too far from the mainstream, the needed merge can be very difficult.

At the very least, you want to regularly pull from the mainstream, so your local variant is not too far behind. If the changes in the mainstream start to conflict with local changes, you really want to push your local changes upstream (or ideally a bit sooner).

If the mainstream project is slow moving or stagnant, the need to merge upstream is less.

I would suggest that anyone selling/shipping a product w open source stuff in there should publish same date as the first shipping unit :wink:
Brook

@Brook_Drumm Hey brook, I tried getting in touch with you on here through google hangouts. Could you message me? I had a few questions for you

Just email me. Brook@printrbot…

@Brook_Drumm ​ I kinda agree with you on where I see the field moving. I’m working on something in my spare time that I think will help with that as well as help with the whole cross platform UX piece.

My main goal in this thread was to try to determine exactly why companies were doing this and if it’s detrimental. I think I’ve gotten some pretty good discussion going so thank you all for that!