So I fully support companies offering their software free, except to run commercially.
To note, about 8 years ago I saw many companies and people open sourcing interesting software. This was for personal gains... They were a consulting company. ThoughtBot was a good example, they made tools, they made blogs about ruby on rails, they also sold their professional services. And it worked.
1. Sidekiq (https://github.com/mperham/sidekiq) 2. Couchbase (https://www.couchbase.com)
what license would you even use for that - it seems everything here allows commercial
This is basically "you're free to use the application and the source unless you're a company where 25 people or more will be using/modifying this software". Mind you, I see an issue with this where proving that the number of people are actually using the software is difficult. I'd prefer a version where it's just the number of people in the organisation in total.
Creative Commons licenses are good for documentation and manuals.
ThoughtBot came around later, and feels much like a adhering to a lot of the similar cultural habits.
Note: I worked for TW, currently at Red Hat. Note 2: Somne of TW's projects under the other pillars are open source first, but aren't related to this topic.
I'm sure there are a percentage of people operating in the cloud who stick judiciously to an open-source stack, and remain masters of their own future as a result. But it seems more common to spread some open source icing on top of a cake made out of ingredients like Beanstalk, Redshift, S3, Lambda, etc. (Or name your favorite non-Amazon cloud vendor's equivalent.) Those companies may be just as locked into their closed-source software vendor of choice as people were locked into Microsoft or IBM or whoever back in the 1990s.
In the 90s and 2010s it was software: you buy this software because others are not compatible with it.
Today's lock-in is cloud services. Will people ever learn?
If I use DynamoDB, I'm stuck with AWS, absent an expensive, difficult migration.
Even with Kubernetes, moving from EKS to your own cluster means spinning up your own k8s masters, which might not be in $RANDOM_DEVELOPER's wheelhouse. And IIRC AWS has their own special things for doing ingress that you'd need to change as well.
Even just going from EC2 to Google's analog might mean rewriting private tooling that specifically uses AWS APIs.
As for Ingress, Amazon does have an ingress controller that configures an Application Load Balancer with kubernetes Ingress API objects. I feel like this locks you in less because again, Ingress is standardized. The problem with Ingress specifically is that the standard doesn't cover things people actually want their ingress controller to do, so every implementation has their own set of features. We use nginx... you better believe there are literal nginx.conf snippets inside the Kubernetes API objects to get things to do what we want. So this is just a case of Kubernetes being bad, not really cloud provider lockin. I'm more stuck on nginx than on Amazon.
(As for load balancers; again, Amazon has proprietary configuration parameters that won't be portable, but they don't really do anything important. You can make your Amazon load balancer terminate TLS (a bad idea), and pick which of the 3 Amazon load balancer types you want to use. Switch to Google, and that won't work... but you also probably won't care. The Load Balancer API spec seems to do what people want, so it's relatively commoditized and you won't be sad when you switch providers. We actually have to have a wildcard certificate specifically because Amazon's classic load balancers are so bad. Would be happy to not terminate TLS in the load balancer and have Envoy or Nginx terminate TLS and ask letsencrypt for a new certificate every couple months.)
Sure Kubernetes is an open GCP product, but what about datastore, Spanner, Cloud SQL, their memory cache, urlfetch, and a host of other closed source and private services. Kubernetes seems to be the exception to the rule.
A world where front ends are deployed on a CDN and the back ends are all containers is very commodity driven. Also infrastructure being set up with code on platforms that target multiple providers like Terraform provides more ability to move systems.
It'll be really interesting to see if AWS can keep their margins in such a world.
Given that MS make huge amounts of money from email and have virtual lock in on corporate email it's very possible, but on the other hand perhaps it won't happen if everyone is, as they tend to be, using open frameworks and generally open systems.
This is hardly the case if you stick to reputable hardware and Linux distros, e.g. Dell servers + CentOS.
The minute you stop paying a cloud vendor, your entire infrastructure vanishes in a cloud of smoke, and if you relied on their "value add" proprietary services, you are left with basically nothing, not even the ability to run your own code, or in some cases even your data.
During the 90s, the big lock-in strategy was thru proprietary file formats. With cloud, exfiltrating one's own data can get real spendy real quick.
But it seems the lock-in is the fit & finish of one's production env. K8s was the new religion at my last gig. But interop & migrating between on-prem, AWS, Google wasn't easy. All the fiddly bits, like managing VPCs, creds and certs, load balancing tweaks, autoscaling rules, backups, ad nauseam.
Maybe things have gotten easier. Maybe we were doing it wrong. (I'm certain that I had no idea what I was doing.) But I couldn't shake the feeling our effort to leave AWS (if we wanted) was gonna fail.
Everyone hated Microsoft for selling software. Everyone hated Microsoft for requiring the world value software monetarily. The world thought programmers were just a bunch of nerds to be taken advantage of. Microsoft said no.
The nerds hated microsoft for making them pay for an operating system.
The nerds got their way. They got free everything.
And now the OSS worls is a convoluted mess. It costs way more to make Ruby on Rails work than just installing IIS and writing some C#.
Now those who said Microsoft was bullying them are the bullies. OSS has become more expensive than the Microsoft equivalent.
No one wants to pay for code at all anymore.
Why couldn't you all see this coming? It was so obvious.
The nerds hated microsoft because microsoft was (and still is in many ways) mandatory.
And they remained that by vendor deals, government contracts etc.
So everybody learned in schools on windows computers and with microsoft office and so on and so on.
Thats the reason, not because of money - it was allways easy to crack windows (I believe intentionally, rather a cracked Windows, contributing to the monopoly, than something else)
> Everyone hated Microsoft for selling software.
Not really. They hated it for abusing their monopoly, and for selling a crappy (at the time at least) desktop OS.
> Everyone hated Microsoft for requiring the world value software monetarily.
Not really. Some believed software must be free as in beer and speech, most didn't care. They certainly didn't hate MS for it.
>The nerds hated microsoft for making them pay for an operating system.
Not really. They hated MS for monopoly abuse, a bad OS, too many viruses and security holes, few ways to look under the hood, and fucking forever with IE 6.
>The nerds got their way. They got free everything.
They just got the server. And a lot of the enterprise server is still MS. The desktop is still 90% MS and 10% macOS (with some insignificant Linux percentage). As for mobile it's 40% iOS and 60% Android, which technically it's still OSS, but not in any sense that matters besides the license (nobody cares much, and it's not developed by some community bazaar style, Google calls all the shots, and the good stuff -google apps- are not Open Source).
>And now the OSS worlds is a convoluted mess.
Not really.
>It costs way more to make Ruby on Rails work than just installing IIS and writing some C#.
Yeah, no. If anything RoR is famous for its ease of development. And it costs nothing (besides programmers, which you need in any case), which is why cash-strapped startups prefer RoR and other FOSS solutions over MS.
>Now those who said Microsoft was bullying them are the bullies.
Non sequitur.
>OSS has become more expensive than the Microsoft equivalent.
Non sequitur. OSS is as free as ever (and better than ever).
>No one wants to pay for code at all anymore.
Less want to pay for code, though billions still buy software and pay for services.
I watched an MS-supporter at a MS 'dev camp' day conference give a lecture on web hosting. His position - restated multiple times - was that hosting with IIS was cheaper than with Apache/Linux, but hosting companies were in cahoots to artificially inflate the cost of IIS hosting, because it let them justify paying linux admins more. Something about you could programmatically script IIS much faster/easier than Linux, and it was cheaper to integrate with Active Directory, but hosting companies wanted to make MS look bad so they charged more (and made a bigger profit) on MS hosting.
Honestly, even typing it out doesn't make much sense. I tried to get him to clarify the position some at the time (this was... probably 2010-2012 time frame) and... I got some nonsense answer. It was truly nonsensical. But he was passionate. I half-expected the word 'illuminati' to pop up in his presentation.
Linux/Apache is "more expensive" for hosting, but companies charge more for Windows because the Linux people at those companies want to drive people away from Microsoft. I think that was the gist of it...
The GUI of their OS at that time is still superior to what linux desktop provides us with today.
But the OS was also full of holes (pre-XP: 95, 98, ME), programs would take down the whole system, updates required tons of restarts, and several other issues (BSOD, etc). People use to make memes against Windows, without even being Linux users: regular Windows users were frustrated.
Linux desktop efforts never managed to get a coherent vision, as every 3-4 years somebody had the idea to remake everything and screw compatibility (Gnome 1 to 2, 2 to 3, KDE 1 to 2 to 3 to 4, etc, lots of critical desktop apps changing for no reason, others abandoned, etc. And don't get me started on the audio drivers situation back then, or how it took until 2019 and we still don't have a solid X replacement thats adopted by everybody).
That's not why Linux Desktop never got traction.
Linux on Server got traction because thousands of companies all around the world managed to profit from it. A whole ecosystem was created.
When Linux on Desktop was born, Microsoft's platform was already an ecosystem all around the world. Hundreds of thousands of companies had developed applications for MS-DOS and were invested in Microsoft's ecosystem and users had already learnt the paradigms.
Clients were already locked-in on Windows.
Also, the situation regarding compatibility on Linux is not that different on Windows.
KDE changed API 4 times in 25 years. Windows also changed a lot. Visual Basic, WinForms, SilverLight, etc. Actually windows abandoned more API's than KDE and Gnome did.
And you can still build a KDE 1 and statically build and ship it (just like apps in Windows) and it will still run fine. [0]
KDE and Gnome have always been largely volunteered projects. Of course ~500 volunteered developers who develop something on their free time cannot compete with a worldwide ecosystem.
That didn't prevent OS X, from a near bankrupt company in 1998-99 with ~2% of PCs in the US, to get to ~10-15% in the same timespan. And that while still introducing a whole new OS in 2000, and changing CPU architecture in 2005.
Plus, what I described has been described as the reason Linux didn't get traction by both Linus and Eric Raymond, for what's worth.
>Also, the situation regarding compatibility on Linux is not that different on Windows. KDE changed API 4 times in 25 years. Windows also changed a lot. Visual Basic, WinForms, SilverLight, etc. Actually windows abandoned more API's than KDE and Gnome did.
It's not even close. MS still supports running even Win95 apps to this day, whatever they used an "abandoned API", so that's a moot point though. Old VB apps still run fine, etc.
KDE and Gnome on the other hand had large incompatible changes that frustrated devs, community, and general public. Lots of devs in disfavor of the old design/techs just left the community, and those are harder to replace without a salary.
Oh my friend you're under-selling Apple.
Apple, the most profitable company in the world, didn't get more than 10-15% of the market share. They didn't break any API's either. And they created their own hardware.
> It's not even close. MS still supports running even Win95 apps to this day, whatever they used an "abandoned API", so that's a moot point though. Old VB apps still run fine, etc.
Linux supports that too. You can still have a KDE1 app running on your Desktop.
Nobody has the incentive to do that. But it's pretty doable technically. Just like it's possible to run a Visual Basic app on Windows.
It is not the same, under Windows 10 you can run a Win95 app as-is since the OS comes with the necessary APIs and these APIs still get updates.
Under Linux not only nobody has the KDE1 libraries installed, but also not any distribution provides them, they rely on other libraries that are incompatible, are a pain to build and unlike Win32 and similar APIs, KDE1 libraries have never seen any new improvements over the years. As an example for the latter, Win32 applications written for Windows 95 can use the extra text editor control functionality introduced after XP despite this functionality not even existing when they were made.
To provide something equivalent, the Linux desktop needs GUI API that will remain backwards compatible in the future (as nothing can be done about the past anyway) while at the same time getting improvements that apply to both new and existing programs.
It’s fast, stable, well laid out and very easy to configure.
It also plays well with both gtk and qt apps.
It took a long time but Linux did catch up it’s just by the time it did desktops are less relevant to average people.
Only if your chance on a "good" compatible laptop. Else all bets are off. The BT/wifi might not work, the video drivers might be problematic, the laptop might not sleep when you close the lid, the fans might blare all the time, and so on.
And even at that, it changes from release to release, whatever the fancy of e.g. Gnome devs strikes them for a non-compatible change, critical functionality is implemented in a ho-hum way, and so on.
And you also need to delve into the minutiae, to know that you should go for "Cinnamon on Fedora" over, e.g. Mint, or Ubuntu (and perhaps the proponents of the latter would say Fedora is shit, and so on).
Problems are always solved by "chose other hardware" and "get another distro".
So there's no need of "Windows Certified"? I had a fair deal of the problems you described on Windows laptops (private and company provided, all certified for Windows, no less).
Linux desktop has its fair share of problems, but Windows runs far from flawless either. I liked Windows when it didn't spy on users but after switching to Linux I was positively surprised. And some stuff I really care for such as incremental remote backups with a decent user interface runs way better on Linux.
While I'm sure people have the problems you describe I haven't had them on laptops in the last decade at least, everything has pretty much worked out the box (except Nvidia which works but requires a kicking sadly).
Gtk and Qt still don't offer a full UI stack with all the Win32 features, guaranteed to be available in all customer desktops.
Basic stuff comparable to DirectDraw, DirectText or a audio stack that doesn't get rebooted every now and then.
SDL is perfectly comparable, except vastly less of a clunky ancient pain in the ass. That is why almost every 2d indie game uses it and not DirectDraw, so to say linux has nothing comparable to DirectDraw is stupid.
Yeah, maybe I should state Direct2D as well to see what your answer would be.
So what is the Linux answer to DirectText? Surely not SDL.
Freetype and Cairo are the direct equivalent of Direct2d and DirectWrite (which is what i suspect you mean by DirectText) which virtually everything on linux uses.
You keep bringing up these arguments as though they are show stoppers and yet people using Linux as a desktop never mention them.
My mum's been on Linux since 12.04 and has never once said "You know what I need DirectText" users don't care how text gets on the screen only that text gets on the screen.
Edit: should mention she doesn't just use it as a glorified browser container she uses libre office, gimp and a few other programs, organises her music and all the stuff an average user her age would do on windows.
To her it is entirely a functional windows replacement, enough that when I upgrade her machine her request was "can I have that minty thing?"
I think arguably a current Linux distro/desktop designed for non-technical users is better for them than Win95 or Win2k was.
Tell me that windows isn't still better for the laymen?
I guess it depends on how you define laymen? I think Ubuntu worked out of the box with everything I've thrown at it in years.
Suddenly it's bad to charge a premium?
What I don't do is to pay premium for the previlege to use keyboards that break down with a single dust particle and screens that get scratched with the laptop's own keyboard, that might not be replaced without the additional Apple Care package.
I'm not sure what you call it when Amazon can pretty much just take your project over when you piss them off.
Mongo is getting EEE'ed.
[0] https://www.joelonsoftware.com/2002/06/12/strategy-letter-v/
Sure, there is proprietary lock-in. But because of OSS, it is also becoming easy to avoid the lock-in. For example, rather than use a hosted elastic service, I was able to launch an elastic stack on k8s in less than an hour of configuration. It's able to scale up and down in the cluster and do everything I need. So if I need to easily change providers, all I need is someone who offers hosted k8s (or any provider if I decide to self manage down the line). We are in the process of doing the same with our DB and will migrate from a hosted Aurora instance.
It looks like ovh is now offering managed k8s. DO just launched theirs, countless others have as well or are about to.
I am running on gke right now because it was easiest. But there will be little keeping me from migrating down the road since k8s + helm + a few other tools are making it easier and easier to launch your own services.
I imagine if it doesn't exist yet, someone will create a nifty little tool to connect up two separate k8s clusters and seemlessly migrate everything over. There are few barriers to keep that from happening.
The small players will always stay niche, a cloud is effectively a network monopoly (like iOS and Android) with most companies only wanting to invest in the cloud that's going to have everything they need when they need it, they'll still offer proprietary services to differentiate against the other 2 cloud vendors and additional way to lock you in and make it harder to migrate away.
You could choose to build out your system to be completely cloud agnostic but that is generally regarded to be economically irresponsible in itself preventing you from leveraging the best features available in each cloud.
I don't see it being anywhere near that clear-cut.
Seems more akin to what the RDBMS world went through for a long time, and still does, because people insist on using things other than Postgres[1]. You can stay SQL-standard compliant, writing your app to be portable. Or you can use these appealing proprietary extensions to the spec, and not be portable.
Seems like a majority of folks writing in-house choose to use the extensions, and the majority of folks who want others to use their software make an effort to be cross platform.
You'll probably see a similar split with cloud services, although I'm not sure it will necessarily follow the same lines.
[1] That's a joke, there.
This is only true as long as the costs of maintaining a cloud provider abstraction layer are greater than the costs of being locked in to a single vendor. I believe that some businesses, once they are armed with an abstraction toolkit like this, will be able to employ arbitrage between the cloud vendors for themselves, and sell that toolkit to other companies who want the same kind of freedom.
And then somebody creates a free software alternative, and will maintain it and keep it up to date.
but the assumption is that this layer is free (due to OSS), and the "owners" of this layer cannot pull the carpet under you by raising prices.
Billions of dollars and years of constructions to just start trying to enter the market, where you will fail because your offerings are relatively pathetic on multiple fronts.
When Google and Amazon are not making their own specialized hardware (good luck implementing your own TrueTime or TPU or competing with them with ML or DB products built on off-the-shelf stuff) they get custom made chips at prices you can't by Intel et al and have things like a very sophisticated SDN backed by a private global physical network infra and enormous amounts of expertise of building and running very efficient DCs. And then there is a software stack which often is literally more than a decade ahead of industry practice.
What's gonna be more useful CV and CYA wise? Who's ever been fired for choosing AWS? How is being expert in <obscure hosting provider> going to advance my career? Where do I hire people who know about <obscure hosting provider>? How would I even realistically learn that <obscure hosting provider> might be a good fit for my needs?
Honestly I can’t see the cloud making sense for another decade.
NVidia’s new hobby board for $99 + open source has me imagining a future where someone like myself can offer similar experiences to Alexa or a number of Googley features to family and friends in a few years.
Just curious, you are going to host your database on k8s? Or is there some other solution you are looking at?
My understanding is that k8s is great when you need stateless services, but gets more complicated when you need to maintain state. Been a while since I looked at it, though.
We also have a job that runs nightly to make a dump of the db and store it in the object store and the persistent disk has a snapshot scheduled for every two hours and in both cases, we are backing up the binary logs, so we can do point in time recovery much like AWS's Aurora offering.
We may eventually switch to a mariadb Galera cluster where there are 3+ master pods that distribute the load and can stay available if one pod dies. But I haven't done the research on stability of that setup yet. A few years ago it wasn't ready yet, but I imagine it is by now.
Our K8s deployment is setup to automatically make backups and test those backups periodically with a full restore. It also notifies us in case of a failed backup. Updating the software is as easy as a single helm command and scaling is about the same as with Aurora. Either you set it up to scale up automatically or you go in and upgrade instances when needed.
Aurora admins aren't monitoring your server for performance issues then making configuration tweaks to speed things up. So I'm not really seeing a lot of difference.
Your CTO is no more going to risk an infrastructure migration because you pinky promised that it would be “seamless” than your DBA is going to migrate from your seven figure Oracle installation to Postgres because you used the “Repository Pattern to abstract your database access”.
The reality is that Cloud Computing is the biggest threat to OSS at the moment. ( as my comments on this show lol ). I'm a big proponent of the idea of elastic computing. My fear is that the current "cloud"/elastic computing providers are more akin to off-shore outsourcing than to real technological advance. A short term solution, that will have serious and major repercussions down the line.
And yes, I do get all the benefits. I've been long enough in the industry ( and on most sides ), to have built both small and massive datacenters, and have built both public and private elastic infra. But this is way too much consolidation, and way too many possible harmful long term effects. We should have made running infra easier... not go the "lease" model 100%. :-/
20 years ago, large chunks of "the web hosting industry" sold access to Linux/Apache/Sendmail/Postfix/BIND/vsftpd/Perl/PHP/MySQL/etc - often (at least in my part of the game) using paid-for WHM/CPanel or Plesk to manage all those.
While I sympathise with Mongo/Redis/Elastic et al, who're having their work packaged up and sold by Amazon/Microsoft/Google in their cloud offerings, I don't recall any outcry about all the open source projects local ISPs and CPanel/Plesk hosting companies bundled up and charged customers access for. I don't remember the authors of Linux, Apache/Sendmail et al complaining about "not getting paid" for their OSS.
I get it that the world has changed, and companies building the OSS they're built on wasn't so much of a thing back then (although MySQL is an example of that from 20+ years back...), but I'm not sure a choice by founders to invest significant resources writing OSS is a reason other companies should not be able to use software with he same licenses in the same way companies have been using it for decades.
I've super curious to see if these new category of licenses work out business-wise, I suspect if they do (which I'm not completely confident they will), that it'll allow development of software on a scale and complexity which the "scratch your own itch" OSS community couldn't tackle. There are almost certainly software project for which the initial coding curve is so steep and high that nobody is going to start working on them in their spare time or as an unofficial skunkworks project or 20% time project at work. It the _only_ people tackling large complex problems as "open source" (in a loose interpretation here) are PhD students, there'll be less amazing software created than if companies like Mongo/Redis/Elastic can pay teams of devs to work on software which while not "FSF certified open source", is still usable and understandable by others in ways that proprietary software is not. I could debug my not-technically-OSS Mongo problems, unlike my Oracle problems. That's not rms's vision of the future. But at least it's not Larry Ellison's either...
From the angle I'm looking, AWS wants to sell Redis/Mongo/Elasticsearch because that's what the devs are using. The devs are using it because it solves one of their problems well (or, less charitably, because its a "standard part" of new-framework-de-jour).
I can't think of any piece of software that came out of a cloud provider into a place of being "the essential hot new dev framework".
I don't deny for a moment that Amazon/Google/Microsoft write a lot of software, but I haven't got an example I can point at of that moving out of their own ecosystem into the broader development community.
Things like Lambda, S3, Kinesis have become huge in the dev world in one form or another - Lambda as the serverless concept, S3 as the standard API interface, Kinesis as Kafka (not implying causation or copying, just that AWS independently developed a technology very similar to something that became huge in the dev world).
Not too sure about Microsoft.
Google has invented so many technologies that have shaped development that it would be exhausting to list. MapReduce, AngularJS, Kubernetes and TensorFlow each transformed the development world and that's just the tip of the iceberg.
And I'll give Amazon credit for Lambda and Kinesis, but at least in my head, S3 is just ludicrous-scale BerekleyDB (or any of the persist-to-disk forks of memcached including the one I wrote back when it was still written in Perl).
Amazon isn't in the business of creating and promoting new software to developers. Not in the way Mongo/Redis/Elastic are.
"Popular things" have to come from somewhere, and my optimistic side kinda hopes that _maybe_ these new "OSS unless you're a cloud provider" licenses will be a way to fund development of software too big and complex and ambitious that it won't ever get started as a "scratch your itch" project. I dunno if that'll pan out. But I'm glad someone is trying.
https://fosdem.org/2019/schedule/event/cloud_is_another_sun/
http://www.winestockwebdesign.com/Essays/Eternal_Mainframe.h...
The amount of value generated by open source software running on cloud providers may be much greater than the fees those providers are charging. It’s not a zero-sum game.
If cloud vendors used proprietary software they'd have to charge more to their customers.
Why is it unfortunate. OSS developers are volunteering and donating their talent.
Is it unfortunate that homeless people reap the benefit from patrons who sponsor charitable homeless shelters?
Or is it unfortunate that students realize wealth from the nonprofit university?
There’s lots of charities. I thought the whole point is for people to donate what others get value from.
So, again, the developer labor is donated, by parties that are not blind to the market impacts. Where is the problem?
If you care about where these trends are taking us, there's plenty to complain about, and you can easily find those problems by reading the conversation you're replying to.
The labor isn't "donated" in any sense of the word. It's not like these big companies just pay hundreds of kernel developers to sit around and make commits to whatever they're in the mood to do today.
Clients pay Linux vendors to get the hardware support, features, etc. that they need written into the Linux kernel, and the vendors do that for them. They write the code, test it, harden it, and get it upstreamed so that the client isn't stuck carrying a patched kernel on their own in perpetuity.
It's not the financial interest of Linux consumers (think: banks, airlines, healthcare systems, militaries, cloud platforms, entertainment producers, etc.) to pay millions of dollars a year to have their own in-house kernel development and support team when they can pay a vendor to do it.
It's not just about support in the sense of someone to pick up the phone, it's about support in the sense of maintaining and developing mission-critical software for large enterprises.
And with that, indemnity.
Do your shareholders want to hear that you're working with a tried, tested, trusted vendor to make sure your systems that can never, ever, ever go down are in fact designed that way? Or do they want to hear, don't worry, Dave in IT's got it, he got a kernel patch accepted once? In many industries, IT is just a cost center and a risk. Corporations and governments are motivated to lower their IT-related risk in the most financially-prudent manner, which usually means a vendor.
Why is that unfortunate? It has enabled a cycle of OSS to user AND OSS to vendor to vendor enrichment to user...since you can always modify the code at will. The best of both worlds, until you get into that special "extension" problem that GPL3 tried to lock down.
Because there will only ever be 3 major multi-billion tech companies that stand to benefit most from OSS.
Because they own their markets, where they can wait to find out what OSS software has become successful and either just profit from it by hosting it directly or invest the paid resources into replicating it - an opportunity and reward not available to anyone else that doesn't have a large cloud market share.
Because they're using their profits (made possible from hosting other's OSS investments) to finance their own OSS investments which will have infinite paid and support resources that Indie OSS developers will be unable to compete against, eventually leading to building a brand where there'll be customers that will only use OSS by the cloud vendors first, since they're commercially backed and dependable.
I can only do so many things at a time. I can't possibly run as many businesses at a time as it would take to charge money for all the code I write. So, why not give it away?
Many artists give away their work. Scientists give away their work. The DIY community and maker community give away their work. And so on... programmers aren't unique here.
Framing all of OSS as simply "free labor to enrich massive, incredible wealth companies" is just wrong.
That being said, I do agree we can certainly do a better job of supporting OSS work. I hope to see continued innovation in this area.
Funny you should mention this. Look into the median salaries of these professions, not the outliers.
I am not against OSS but when something is given away for free, people will have the perception that it has less value. Once that thought has anchored, no one will be willing to pay more in the future.
absolutely nothing. Which is indeed one particular type of OSS model. The best kind imho.
But this thread has been talking about business models which involve using OSS to get a customer in the door who will then pay the business for other things (such as hosting/services). Under the OSS, this business model seems to be failing as major corporations start to encroach.
For the most part, any developer who is good enough to create e.g. Redis and be hired could easily have skipped the "create Redis" part and just get hired in the first place, for far greater return on investment.
That's not even getting into the fact that leading a popular open source project is no guarantee of even being hired by those big companies, due to their interview processes. For example, Google rejected the creator of Homebrew, despite getting a lot of value out of the software, because of problems with whiteboard coding.
Of course, it's important to note that that is his interpretation of the process. He did do a short stint at Apple at some point, too, so it's not like he didn't end up getting hired anyways.
Do the corporations creating products with OSS have a more positive impact on the world than when they purchased their software? If so, isn’t that beneficial to developers? Isn’t it empowering as a developer to know that your software powers businesses and markets? Why do developers contribute code in the first place?
If Indie oss developers provide say 49% of the contributions to open source project ought they expect the same representation or recompense as a project with 90% indie developer contributions?
More philosophically: After you create something, how long do you get to own or control that thing and how it is used?
How long do indie oss developers think they should be able to dictate the future of the project? Is corporate investment in open source actually welcome?
Never that there were no benefits - that was addressed in my initial statement. OSS does bring benefits to everyone using it where its made some products and services financially possible.
But it still stands that the majority of the wealth being created from OSS is going towards building Cloud Monopolies and a fraction of that wealth being used to finance their own proprietary and OSS efforts that will outspend and out compete Indie OSS efforts - the trend of which will go towards most people switching to use commercially-backed Cloud OSS software where it exists.
At a miniscule fraction of the value they created.
These people deserve to have so much money that they can simply work on open source for free, forever. I haven't seen anybody in that position yet.
This isn't even like a musician wherein some record company fronted capital, the companies benefiting from open source didn't front anything for these developers.
Two things here:
1) In a sane business climate, you will never extract more than some fraction of the value you create. If you receive as much value as you create, then there is no purpose in anyone using whatever you've built, because they gain nothing from it.
2) If your goal is extracting as much of the created value for yourself as possible, open source software licenses are not designed in such a manner as to do so.
If you want to get the same benefits of proprietary software, write proprietary software. There's nothing wrong with doing so.
It's disgusting.
Edit: please downvote me dogmatic stallman types
Like with the "Jeff Bezos doesn't like contributions to OSS" rumors, there's a general impression that outside some exceptions, companies are not really interested in keeping a healthy community even if they could ultimately benefit with it.
Big companies start as individuals. I don't think your comment effectively communicates your intent...maybe something about wealth distribution or how corporations are immoral. I don't completely disagree with these concepts.
I think you're forgetting the end users of the applications running on the open source regardless of cloud provider. The value they are reaping is near limitless.
We need a good license in the spirit of Commons Clause: source available, feel free to use, but don't sell (just written better and hopefully supported by wider community).
The most curious thing about this is that when a company behind a successful OSS project decides to change a license that would extract some of that value back to the actual creators and maintainers of OSS, they get the backlash from OSS community [0][1]. Ironic, given that the same authors openly post the donations received that amount to... well not peanuts exactly, but not something comparable to an average programmer's pay either. Not all feedback is like this, of course - some recognize the unfairness in the system and support the search for change.
What I currently miss most is some viable 3rd option - not open source, not closed source, but something in between. Apart from GPL & co., and MIT / BSD / Apache, we need a sort of license that would allow creators to extract some part of money from their work. Or at least allow them to sell services, based on their product, without fear of being undercut by competitors who don't bother developing. Why develop when you can take the best OSS product, integrate it to your infrastructure and sell the service?
Current situation with "middle-ground" licenses is:
- Fair Source license is very well written, but is unfortunately only applicable to a very narrow use-case (user-facing apps), and bigtech can still undercut you at hosting (though you do get some royalties... probably)
- Commons Clause seems a bit vague about the term "Sell", has a very unfortunate name, and their main proponent already chose another license... too bad, because the idea is great.
- Zero License is too complex (for me at least)
- Business Source License looks promising, though I am not thrilled about the prospect of turning my software to GPL after 3 years (AGPL with closed loopholes would be a better choice).
If someone knows of a better license in the spirit of Commons Clause, I'm all ears.
[0] https://www.techrepublic.com/article/fair-source-licensing-i...
[1] https://drewdevault.com/2018/08/22/Commons-clause-will-destr...
If Lucene followed the same logic being espoused here, then ElasticSearch as we know it wouldn't exist, because they wouldn't be able to use Lucene, which is an incredibly core component to ES. Elastic employs several people to work on Lucene full time at this point, so they're "giving back" in that regard, but they're still making money off of pre-existing open source.
What is the litmus test for this being okay? No one seems to be upset at Elastic for making money off Lucene, but the idea of the big cloud vendors making money off of ES is upsetting to a lot of people. If Amazon or Microsoft employed a handful of people to work on ElasticSearch full time does it become okay then?
Having constraints for selling and building on other people's work doesn't mean that one shouldn't be able to do it, just that previous link in the chain should be financially rewarded for it.
This sounds exactly like a lot of proprietary software licensing agreements :)
>Having constraints for selling and building on other people's work doesn't mean that one shouldn't be able to do it, just that previous link in the chain should be financially rewarded for it.
I don't think there's anything wrong with building and selling proprietary software, but that's really what's being described here.
If financial reward is what you most care about, write proprietary software. If FOSS is what you care most about, then the AGPL is probably a good fit for you. It won't force anyone to pay you for using your work, but it would force them to give back to the community.
This is a false dichotomy. You don't need to "care most about financial reward" to recognize that FOSS is simply not sustainable.
There is a whole level of freedoms one can grant (or not) to users of their software. FOSS is one extreme. Proprietary software is another. I don't think we need to tolerate black boxes, just because we want functioning software.
What about Open Source makes you believe this is the bad outcome?
The cloud companies make their money providing the physical infrastructure, their expertise in working with the product, support, etc. when hosting it for you. You're not paying them to have access to ElasticSearch - you've already got ElasticSearch.
Why should an end-user have to purchase ElasticSearch hosting from Elastic? Why shouldn't they have the option of getting their hosting from someone that they already get other hosted services from?
If there had been a similar attitude behind the development of open source webservers, the web as we know it would almost certainly not exist today. If httpd had been licensed in such a way that you couldn't make money off of providing it as a hosted service, and no open source alternative had come into existence, I doubt we'd all be sitting on HN right now. It never got concentrated like it has today with the big three, but nothing in the license prevented it from occurring.
Hosting OSS isn't the only thing that creates value, but it's where most of the revenue is now being derived since no-one pays for OSS, only to host it. The generated wealth is then be used to finance other proprietary and OSS efforts that can outspend and out resource anyone else they choose to compete with, who need to rely on a different source and business model for their sustainable income.
Cloud hosting is the primary business model that allows investing in developing OSS as they'll still get paid in the end, in this way OSS bringing the cost of software down to zero becomes a loss-leading marketing expense (and competitive advantage) that allows mass free bait distribution of their software which everyone else is at a disadvantage to compete against.
Essentially OSS is strengthening cloud monopolies by bringing the cost of software development to zero with the majority of wealth created going to making major tech cloud providers more wealthy and powerful each passing year.
> Why should an end-user have to purchase ElasticSearch hosting from Elastic?
Because AWS didn't put any of the investment in creating it, they're reaping the benefits from Elastic's investments and can undercut them since they don't have to fund any of the development and have access to an bigger economy of scale no-one else has access to.
In the end, working for such corporations is the only way to actually be paid when one wants to have a daily job in software tooling.
I don't think they do, actually? MongoDB felt a need to change their license from AGPL to SSPL. That said, I'm on "not going far enough" side of the argument. I don't care if they distribute their code, I want them to stop competing with my service, or to pay the royalties. Alternatively, they are free to develop their own product. Note that that doesn't go for users - users are free to install and use the software as they see fit. But providing competing service which is based on the work of those that bigtech competes with, simply does not seem fair to me.
Which is basically rent seeking which is what this whole thread is complaining about.
And, incidentally, the whole problem copywrite was invented to solve -- you get a "time limited" monopoly on the distribution of your work.
> But providing competing service which is based on the work of those that bigtech competes with, simply does not seem fair to me.
<bad car analogy warning>
This is like car companies saying you are free to race their cars as long as you never outcompete them on the track...
Ayende from RavenDB (which is a great no-nonsense document DB) has written an interesting blog series [0] on how they approach OSS while still making money from it and keeping their interests aligned with users and customers. TL;DR they license the full server and all modules as AGPL, offer free community (commercial) license that don't skimp on core features (clustering, authn/z), treat support as a cost-center.
Appears to work well for them and I personally find their mode of operation sympathetic.
[0] https://ayende.com/blog/posts/series/186113-A/making-money-f...
People are free to use them for their projects. More power to them.
Assuming that all OSS projects are exploited or missing out is wrong.
The reason apl/mit are so popular is because they encourage use. I suspect that projects that try to use common core or whatnot will not meet with success because of the limitations of those licenses. Although I’ll be happy to be proven wrong.
IMO the best way would be for all OSS developers to come together and agree on a standard "OSS-like" license which is basically "OSS and free for everyone else except cloud hosters", if enough OSS developers do this it will force the major cloud vendors to implement a system to revenue share back to the creators of OSS their hosting.
I'm puzzled why Redis Labs, Elastic, Confluent and Mongo DB aren't already coming together to use the same standardized license as there's strength in numbers - instead they're each individually releasing their commercial efforts under their own individually branded license.
I think you are trying to mean not that. Like, if I install it myself, it's okay, but if the "cloud vendor" installs it for me, that violates the license?
I think I understand the sorts of entities you have in mind to allow or not allow; I'm not sure it's clear how you'd write a license like that.
"The cloud" is in the end just hardware somewhere else. I think you are maybe fantasizing about a license that would be more about _what sorts of businesses_ are allowed to use it, than it is about _how_ it's run. The OSI open source definition does not allow licenses that "restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research." You could think that's an inappropriate restriction I guess. https://opensource.org/osd-annotated
It could also prohibit any commercial cloud hosting without written permission, for which it's automatically granted to every company that isn't Amazon, Microsoft or Alphabet.
At some point would it be collusion? I think collusion needs consumers, but the consumers of the cloud vendors would be harmed?
As with any standardization efforts this is just cooperation, there's nothing secretive, illegal or deceitful about it - they'd just be coming together to standardize on a License to build a sustainable business model that prevents cloud monopolies from using their OSS efforts to compete against them.
This way everybody using opensource benefits. The original opensource contributers benefit twice: their software gets improved, and they have marketable skills as cloud companies will be interested to hire them to work on opensource projects.
By no means are their OSS investments altruistic, Cloud companies by far benefit the most from OSS and no OSS developers aren't winning. Being able to hire OSS developers using funds generated from hosting their OSS efforts is some weird definition of winning, which they're using towards strengthening the software ecosystem around their cloud infrastructure - increasing its value.
The power and value of OSS is swinging sharply away from Indie OSS developers towards the major tech cloud monopolies - where they can now afford to outspend, out compete, out reach and out last any competing Indie OSS efforts.
Without the backing and investments of commercial companies, Linux would not be the success it currently is. So in the end everyone benefits in some way, although maybe not financially.
Same goes for a lot of other succesfull opensource projects: without commercial backing it would not be as succesfull.
why does anything have to be altruistic? Why can't a company invest in OSS selfishly? The results are the same - more OSS available for anybody else to use.
> OSS developers aren't winning.
what's "winning" here? Is winning gaining financial profit from OSS? Is winning gaining user/market share? Is winning just merely being employed to do what you want to (i.e., employed to contribute to OSS)? And why is any one of those definitions more worthy than any other?
It doesn't benefit everyone, it benefits anyone using their proprietary and OSS products and cloud services. It definitely doesn't benefit existing OSS projects who are seeing their innovations replicated by full-time resources or OSS developers working on competing projects.
The core issue is that consulting scales at O(n) where n is your personal time investment. It's not like offering a service where you spend all your time working on the service and get to experience exponential growth.
Basically, if you choose to commit to free software / OSS, you can't expect to get directly paid for it. Now, I know that that's not always ideal and ends up in tragedy-of-the-commons situations where the OSS devs don't get paid enough, but that's the reality of the situation to me.
Restrictive licenses don't solve the problem, because these same cloud behemoths can just pull an open distro on you.
Free in software is not about getting paid. Money is not the problem. You can expect getting paid as much as you want, you just have to let other people access code, change and distribute it as they wish.
Thinking it is "free as in free beer" is shallow. I don't need any of those crap android apps even if they are free, I want to have ability to see those apps code so I can see if they are sending my private data somewhere, and I have to have ability to remove that code. I can even pay license fee if I find some app useful, if price is to high I find alternative or just don't use it.
Free software, in the sense you described, also means you cannot monetize it by applying a restrictive license. Full stop.
The other side is that you probably will have hard time chasing people to pay you, so in essence you won't be able to get much out of it, but that is just side effect.
2019 @ Microsoft: "We are all in on open source"
I suspect what would happen is that they would look at the cost and wonder if it’s not worth building an alternate solution in house.
They would be able to build it to work and scale as it works best for their technical setup.
Lock in would be much worse even if it’s not ideal even with OSS and OSS would be less used in general.
I think if you look at e.g Redis vs the Dynamo/Cassandra split the OSS ecosystem is much better off in the former.
https://blogs.unity3d.com/2019/01/10/our-response-to-improba...
https://arstechnica.com/gaming/2019/01/unity-engine-tos-chan...
Opensource can also exist outside the server side. There are opensource desktop&mobile apps and cloud vendors cannot do anything against them. Stop painting a narrowed view of reality, opensource is bigger than you think.
Rinse and repeat.
Unfortunately most of the wealth created by OSS is being reaped by the large cloud vendors because relatively no-one pays for OSS but they do to host their production systems on it, atm this revenue goes directly to the major tech cloud companies which are using it to build out their multi-billion dollar infrastructure moats, ensuring a barrier to entry no other will be able to partake in.
This is why cloud vendors have become so "OSS friendly" - they love the status quo as they've become the primary beneficiaries from everyone developing and distributing OSS for free as long as they're able to collect the rent when it gets hosted in the end.
You're starting to see the conflicts as more companies like Redis Labs, Elastic, Confluent and MongoDB who realize this and start distributing their future investments under "OSS free that's free for everyone else but can't be used commercially by cloud vendors" as a way to force licensing so Cloud vendors are unable to use their own investments to compete against them - and force some revenue share back from when Customers pay for OSS, when they host it.
So when you hear how much cloud companies "love OSS" and how their initiatives like "Open Distro for Elasticsearch" is to ensure it stays open, know that they're not doing it out of altruism, it's to repackage Elastic's OSS investments and make it available for free so they can be hosted on AWS without having to host with Elastic, it effectively lets them avoid licensing and revenue sharing back to the companies who've invested their time and resources into developing it.