AWS gives open source the middle finger? - <AUTHOR> https://techcrunch.com/2019/01/09/aws-gives-open-source-the-middle-finger <comment><USER2> Amazon was using MongoDB without paying for it.

MongoDB found that objectionable, and changed the license such that Amazon would either have to pay, or stop using it.

Amazon stopped using it, and started using its own in-house implementation instead (presumably because it was cheaper to develop it than to pay MongoDB).

So, MongoDB got exactly what they asked for. It's just that, when they forced Amazon to make a choice, they didn't expect one of the options they gave them to be viable. They were wrong.

I don't see how Amazon is in the wrong here. They are no longer using MongoDB for free, as the authors demanded. They did not reuse any code. They are not advertising their replacement as MongoDB, either.

Is it because of API compatibility? But the notion that one cannot reimplement a public API for the sake of compatibility is in and of itself extremely hostile to the F/OSS ecosystem, given how many products in it are reimplementations of proprietary APIs.

<comment><USER3> Yeah, I don't understand it either. There is a company which puts 300 M$ effort into developing something and then another company is using the first company's brand recognition to get a competitive edge while offering zero added value (And no, hosting mongodb in AWS not a new thing, only uninformed people would assume so. When I look around I find services like Scalegrid or MDB Atlas itself which is exactly the thing that AWS is claiming to justify their decision). So yeah, you are right, I can't see how could that be wrong either.

<comment><USER4> Morally it might be questionable, if it puts MongoDB out of business and reinforces the AWS "monopoly".

However, MongoDB selected a free and open source license. This was always in the cards. They went with AGPL to keep the source maximally open for end users, but that never protected their revenue stream. (Some JS SDK companies used it for that purpose, where it makes some sene, but a DB is very different.)

But if they had started with something proprietary uptake would have been very likely much less. And people would have continued to use mysql or Cassandra if they really needed something "webscale".

<comment><USER5> They recently switched to a new license, inspired by AGPL, that isn't approved by OSI and probably not Open Source.

So they are trying to eat their cake and have it too.

<comment><USER4> It's not OSI because it places even more restrictions on usage than AGPL did, but this is very much matter of context and interpretation. If GNU would have created it it would have been welcomed by GNU-ers a lot better.

I sort of agree with their sentiment, but of course they are late to the have- cake-will-have-it-and-eaten-it-too party, as now AWS was able to fork the last AGPL-ed version and be done with it.

</comment></comment></comment></comment></comment><comment><USER6> > _However, developers are technically savvy enough to distinguish between the > real thing and a poor imitation. MongoDB will continue to outperform any > impersonations in the market_

This feels like a MongoDB sponsored post. How badly would you have to fuck up to be considered a poor imitation of MongoDB?

In any case I don't see how having their own hosted version of MongoDB is a middle finger to open source, but Aurora SQL/PostgresQL isn't. Is Cockroach a middle finger Postgres? I don't consider this any more a middle finger than the SSPL.

<comment><USER7> How credible techcrunch should be considered a reliable journalism source here? This one smells pretty much like a money article

<comment><USER8> That sentence was presented clearly as a quote from the MongoDB CEO, and followed immediately by "[t]hat's a pretty feisty comment."

I don't entirely disagree with your overall assessment, but it could just be a case of clickbait journalism, rather than payola.

</comment></comment></comment><comment><USER9> I left AWS after six years of working there wholly because of their restrictive policies about developing software in your spare time -- especially if you were thinking about working on a game.

I recognize this article is about a product offering of AWS, and not their internal policies towards contributing to open source, but the two are linked in my mind and I'm not all surprised to see a headline like this.

<comment><USER10> I "accidentally" worked at amazon for a few weeks when a company I had just joined was acquired by them.

I knew it was time to start looking when I was informed that I had to get prior permission to do ANY open source contributions even on my own hardware on my own time. That's just not feasible logistically and above and beyond the general "don't write open source that competes with us or on our our time/hardware without permission" rule most reasonable companies have.

<comment><USER11> Problem is, you could potentially encroach on a big company's interests without knowing so, i.e. they're working in [insert space] in secret, or create an ethical issue for the company. Truth is, excepting maybe Netflix, the rest of FAANG requires you to get approvals.

<comment><USER12> Every company that is based on california, or that employs you in california, is better.

No matter what the non-compete says, if you're in CA, you can use your own hardware and non-work time to develop anything that doesn't directly compete with your employer/dayjob and doesn't use trade secrets/IP from the company.

Amazon though is mostly based in Washington, where no such law exists, so sweeping non-competes are legal.

The above is the reason that there is a difference between various FAANG companies. Even if the company policy requires you to get approval, if it really isn't a work-related piece of code, you can simply tell them to pound sand and CA will have your back.

<comment><USER13> This is misleading. While non-competes are enforceable in Washington, employers can not force employees to sign away the rights to inventions produced on their own time without employer resources.

Compare [https://apps.leg.wa.gov/RCW/default.aspx?cite=49.44.140](https://apps.leg.wa.gov/RCW/default.aspx?cite=49.44.140) to the equivalent CA law: [https://leginfo.legislature.ca.gov/faces/codes_displaySectio...](https://leginfo.legislature.ca.gov/faces/codes_displaySection.xhtml?lawCode=LAB&sectionNum=2870) . It's essentially the same wording.

<comment><USER14> Isn't "invention" a patent term? Not all creative work is invention.

</comment></comment></comment></comment></comment></comment><comment><USER15> From the movie "Revolution OS" [1], Richard Stallman explaining Copyleft:

 _" If we put the software in the public domain, somebody else would be able to make a little bit of changes and turn that into a proprietary software package, which means that the users would be running our software, but they wouldn't have freedom to cooperate and share."_

 _" And what we do is, we say, this software is copyrighted and we, the authors give you permission to redistribute copies, we give you permission to change, we give you permission to add to it. But when you redistribute it, it has to be under these terms, no more and no less. So that whoever gets it from you also gets the freedom to cooperate with other people, if he wants to. And then, in this way everywhere the software goes, the freedom goes, too. And it becomes an inalienable right to cooperate with other people and form a community."_

Bruce Perens, on the choice of the GPL for Debian:

 _" Uh, it's one of the few software licenses that was written from the standpoint of the community rather than from the standpoint of um, protecting a company or um, as is the case with MIT and BSD license, performing the goals of a government grant program. Uh, and the GPL is really unique in that. It's not just a license. It's a whole philosophy that, I think, motivated the open source definition."_

MongoDB tried to protect its company's profits, and as a result, Amazon [and its users] now have a proprietary product rather than an open source one. Could have gotten free fixes from the biggest lab in the world, but instead they're getting jack squat. And since Amazon's product is proprietary, now users and the community have less freedom.

Linus is asked at the end if he's bothered that he's not cashing out on billions of dollars of use, and he basically doesn't care. He just wanted people to work on the software. If Linux had the same licensing scheme, it may have remained a hobby operating system.

[1] [https://www.youtube.com/watch?v=Eluzi70O-P4#t=17m](https://www.youtube.com/watch?v=Eluzi70O-P4#t=17m)

<comment><USER16> >Linus is asked at the end if he's bothered that he's not cashing out on billions of dollars of use

Linus has an annual salary of $10 million, [https://www.therichest.com/celebnetworth/celebrity- business/...](https://www.therichest.com/celebnetworth/celebrity- business/tech-millionaire/linus-torvalds-net-worth/)

<comment><USER17> That is a hilariously low salary given the impact of Linux on the world today.

<comment><USER18> After a certain point, more money doesn't really help the cause

</comment></comment></comment></comment><comment><USER19> "AWS gives MongoDB the middle finger" would be a more accurate, less sensationalist headline.

Making a business choice to not buy licenses from a single for-profit company doesn't really have anything to do with open source in general.

<comment><USER20> where art thou dang to come help us?

</comment></comment><comment><USER21> WTF with this title. We all agree API shouldn't be licenseable, but now we expect companies to feel like they shouldn't use API for free because without licensing the source code "it looks bad"?

<comment><USER22> What does this even have to do with Open Source? MongoDB isn't Open Source; not any more. Their new Server Side Public License is not an OSI-approved Open Source license, and the _intent_ of the license change goes directly against the 6th criteria of the Open Source Definition ("No Discrimination Against Fields of Endeavor").

<comment><USER23> While I agree with what you said it is important to note that the OSI isn't the defining authority on what is to be considered open source.

<comment><USER24> I keep seeing this sentence (or variations thereof) on every thread about this topic.

It sounds weird to me that people think a foundation created by Perens and Raymond (et al.), the people who defined Open Source, and wrote the Open Source Definition is not the defining authority on what open source is.

What gives?

<comment><USER25> I think the idea there is that one body shouldn't have a proprietary lock on what counts as Open Source and what doesn't. OSI/OSD as the loudest voices of what is OSS, is helpful, but they shouldn't be the only voices.

(As much as I get annoyed by things claiming to be open source, that really aren't proper open source, I have to accept that this is a movement brought about by a rag-tag bunch of hackers who don't much care for single entities telling them what to do, so they should also be measured by that)

<comment><USER26> It was a movement brought by an organized group of professionals who thought that the viral nature of the GPL kept business from taking advantage of the new commons. They created an organization to monitor use of the new term "Open Source," which would be a superset of the GPL, without the onerous-to-business requirement of sharing your changes.

</comment></comment></comment></comment></comment></comment><comment><USER27> > "However, developers are technically savvy enough to distinguish between the > real thing and a poor imitation. MongoDB will continue to outperform any > impersonations in the market."

That's a bold statement to make against AWS services.

<comment><USER28> For what it's worth when it comes to choosing a hosted ElasticSearch provider I would go to Elastic over AWS Elasticsearch Service.

<comment><USER27> Interesting, as someone considering using AWS ES for an upcoming project I'd love to hear more about your experience.

<comment><USER29> It's new enough to be a second tier AWS service (they tend to have odd performance issues or less than ideal pricing models). My understanding is that they also block off portions of the management API that you'd typically use to maintain your own cluster and that they've had some reliability problems.

</comment></comment></comment></comment><comment><USER30> A lot of people are focusing on the bitchiness, but to me this is actually interesting from the perspective of (F)OSS evolution.

This scenario is one of the many where (F)OSS explicitly protects downstream users: company reduces availability, user forks. It just so happens that the traditional players (the small, indie user va the big, bad corp) are actually mirrored (big, bad user vs small, indie corp). This has been the ugly reality of OSS for more than a decade now, and there seems to be no way to align the interests of "big users" more closely with upstream. Before the switch last year, MongoDB already used the most "aggressively collectivist" license available, and still it didn't protect them from rich freeloaders.

This is also the other side of the coin in the Google vs Oracle debate about apis and copyright.

<comment><USER31> > it didn't protect them from rich freeloaders.

You offer a free software package to the world, so that anyone can use it as they see fit.

Some guy uses your software package.

How exactly has that guy became a freeloader in this story?

<comment><USER32> Because they have money and don't use it to support the community. Nobody is saying it explicitly, but of course we want small indie people to be able to use stuff for free while rich corporations foot the bill. But it's hard to codify that in a way that doesn't explicitly so, and it's hard to enforce a rule where something is free only if you're small or poor, but it costs money if you're big and rich. And to see the largest corporation in the world use Open Source stuff for free without sharing anything back to the community, well, that doesn't sit right with a lot of people.

<comment><USER33> It's not at all hard to have a license where something is free for noncommercial or limited commercial usage, and premium otherwise. This is an extremely typical model for many products today whose licenses you could use as inspiration. See for instance things like Microsoft's Visual Studio. And the nice thing is that contract law is really quite powerful and very much on your side when it comes to enforcement. You don't need Microsoft's legal department to enforce your rights.

In my opinion I feel like the real issue is that many in the open source community want to have their cake and eat it to. They want to put ideas out there ostensibly for free and be part of the social communal movement, but when those ideas are actually used to generate value - they want to see the checks roll in. That's just not how it works. Look at products that are funded by donations. There are some exceptions, but the general rule is that they end up grossly underfunded and have to be more and more aggressive with requests for donations just to stay afloat. If people want payment, then demand payment. If you want to give away something for free, don't ever expect to get paid for it.

<comment><USER30> It's not unreasonable to wish for a middle ground where small actors don't have to pay and big actors do.

 _> a license where something is free for noncommercial or limited commercial usage, and premium otherwise._

That's basically what Mongo have switched to. Unfortunately, this broke other bits of community, because playing with licenses is actually not that easy.

My point is that, maybe, we need a new license that can reflect the changed times. GPL 3 wanted to be that license, but it doesn't look like it succeeded. The new licenses attempted piecemeal by this or that company (like Mongo) will always fail to cut it, because the are typically not written by people with significant experience and knowledge in this particular field (license- writing).

Maybe it's time for interested companies and expert stakeholders (FSF etc) to come together and try to agree on something that could move us all forward.

<comment><USER34> Just to be clear, the FSF does not agree with your distinction. The FSF only endorses free software, which means free for all users, commercial or noncommercial ( [https://www.gnu.org/philosophy/categories.en.html](https://www.gnu.org/philosophy/categories.en.html) ):

>Proprietary software is another name for nonfree software. In the past we subdivided nonfree software into "semifree software", which could be modified and redistributed noncommercially, and "proprietary software", which could not be. But we have dropped that distinction and now use "proprietary software" as synonymous with nonfree software.

>The Free Software Foundation follows the rule that we cannot install any proprietary program on our computers except temporarily for the specific purpose of writing a free replacement for that very program. Aside from that, we feel there is no possible excuse for installing a proprietary program.

<comment><USER30> The FSF doesn't have a monopoly on the sentiment of open-source communities. Their principles were developed in a very different scenario, which is the point of my comment.

<comment><USER34> I just meant specifically for your call to action

> Maybe it's time for interested companies and expert stakeholders (FSF etc)

That the FSF likely would have no interest in participating in such an activity since it would betray their core principles (regardless of whether you or i feel that this principle is sound)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER35> mongodb announced the Server Side Public License change less than 12 weeks ago. When you account for end of year and holidays, building a new product line and rolling it out in such a short period of time seems unlikely. I would guess this has been in the works for a while (although admittedly I could be overestimating engineering effort and underestimating amazon engineering talent).

<comment><USER36> MongoDB could have been having conversations with Amazon prior, trying to negotiate a licensing agreement. These negotiations take a lot of time at corporations, I could easily see someone saying "hey, MongoDB's starting to squeeze us, let's get some people working on Plan B before they cut us off".

</comment></comment><comment><USER37> "When the terms you offer are accepted, hold to them. Else no one will trust you."

For someone to release a major software package under an open source license with particular terms, and then to get angry when other people enjoy that software under the terms that YOU specified, is just nonsense. You aren't happy with the way things played out, because you didn't really understand the types of activities that were possible or maybe just didn't think about it.

Look, it's their software and they can re-license it as they see fit. But to vilify AWS for using their open source software legitimately under the terms they licensed it under is offensive. _That_ is giving the middle finger to open source.

How exactly the author of this article can write something that finds fault in the company using software legitimately under an open source license, and not with the company who is re-licensing their software to a non-OSI license? Who is truly giving the middle finger to open source?

</comment><comment><USER38> The most important issue to me is that Amazon benefits from open source not only without supporting it, but by threatening it. While we can argue whether it is MongoDb or not and other issues, it is clear that Amazon benefits. Otherwise why not simply invent their own API? They have the benefit of a well thought out system, of a large pool of people who know and can use MongoDB. Can they afford to support MongoDB? If not perhaps they should just 'fess up.

The open source system is great. Many individuals create the content and share it. There has been a great tolerance for companies like Amazon that exploit - not use but exploit - this community. While I don't have enough experience to know if MongoDB's response was a good one, I do think it is time for the community at large to begin a continuing discussion of what to do when large companies like Amazon are bad citizens.

Open source thrives on being ... well open, and it is important to retain that openness _within_ the community.

</comment><comment><USER39> Bezos gives _everyone_ the middle finger. Doesn't matter if you're part of the massive open source stack they profit from or one of their workers unfairly paid trying to meet unfair workload demands or one of the 100s of countries, states and cities they relentlessly conspire to steal taxes from.

What's really funny about their not-mongodb as a service is they will inevitably roll over any piece of software _third parties_ host on AWS too if they think it makes enough money. Your SaaS is just another project for some team waiting on their next. They have already done that for 10,000s of physical products on Amazon.com that were sold by third party vendors who became redundant via Amazon releasing similar products under their own brands.

<comment><USER40> >is they will inevitably roll over any piece of software

Can you please clarify? I'm researching AWS and am interested in the historical practices of the company, but I'm not sure what "roll over" means in the context you used it.

<comment><USER39> I mean they will inevitably go through the websites people are hosting on AWS looking for profitable software to copy, because that's what Amazon has always done to people making money on Amazon.

<comment><USER40> Thanks - I suspected you were saying as much. MongoDB aside, can you share examples of this process?

<comment><USER39> Some of the physical merchandise they've copied, they have many more brands:

[https://www.amazon.com/AmazonBasics/b?node=10112675011](https://www.amazon.com/AmazonBasics/b?node=10112675011)

They have been copying SaaS straight from their partners for years already too:

[https://www.theregister.co.uk/2013/03/08/amazon_copies_partn...](https://www.theregister.co.uk/2013/03/08/amazon_copies_partner_products/)

I think you can add Heroku (AWS Beanstalk) even before that.

<comment><USER40> Thanks again!

</comment></comment></comment></comment></comment></comment><comment><USER41> It's mongodb though... It's well documented at this point you shouldn't be using mongo on anything that matters

<comment><USER42> And yet many of us are using it in Production.

Including companies like Adobe, eBay, Expedia, Sony etc.

<comment><USER43> The fact that some are okay with and would use an unreliable tool is not inconsistent with the fact that it is documented that the tool is unreliable. Popularity among users has little to do with the tool being reliable, and this particular one is already popular for being unreliable.

<comment><USER42> What you are saying doesn't really make any sense.

A systemically unreliable database would never be popular as its not a piece of your architecture that you can tolerate having constant outages with. And there is no evidence of MongoDB being systemically unreliable.

<comment><USER43> > A systemically unreliable database would never be popular

1\. Correctness and popularity are different

2\. Not everyone looks for correctness, even when looking for a database. See: MySQL.

> as its not a piece of your architecture that you can tolerate having > constant outages with

Reliability and correctness are not binary scales of 'works' vs. 'does not work'. Again, see MySQL.

> there is no evidence of MongoDB being systemically unreliable

There is plenty of evidence of MongoDB losing writes because of its (honestly) stupid design: writing to memory maps instead of files, never fsyncing, sharding and distributing without confirming disk flush.

\---

MySQL: For a long time, one needed to be aware of certain caveats and corners and limitations of MySQL or be surprised with data inconsistency and loss. That is not to say that MySQL could not be operated reliably; it could, just that the barrier was higher than it appeared.

From truncating data (with a warning) to not accepting and silently (i.e., without warnings) ignoring CHECK constraints, I've had clients who lost business data and realized it only too late to go back to the original data source.

I used to think MySQL was an bad database due to its concessions of correctness and poor documentation, until MongoDB came along with their lofty marketing and high-and-mighty "Nobody needs SQL anymore, we are Web-scale" blare-horn and failed to deliver on even keeping the data it claimed to have saved.

</comment></comment></comment></comment></comment><comment><USER44> > "To be fair, AWS has become more active in open source lately"

What are they referring to?

From my perspective, Amazon rarely open sources their work. It's one of the reasons I would never want to work at Amazon. It's very clear they have no love for technology outside of making a business out of it.

<comment> yjftsjthsd-h Firecracker? That was a big one to me.

<comment><USER45> Correto too.

</comment></comment></comment><comment><USER46> More like Mongo gave AWS the finger, then AWS said fine and started using Postgres. Now Mongo is upset that they have an inferior product that is losing market share because they killed of their potentially laregest cloud deployment.

</comment><comment><USER47> The headline is as misleading and wrong as it could be.

AWS is not giving open source the middle finger. It is giving the middle finger to a project that was once open source and has decided to be no longer open source.

</comment><comment><USER48> We are in the middle of a transformation and its clear open source will have to change. There is little stopping cloud providers and other well funded parties monetizing your projects leaving little room for you to.

Because they don't have to focus on development they can divert their resources to marketing, adding the syrup on top to 'ease use' and ride the hype wave while the original developers are dismissed as 'technical' folks who do not understand marketing when the fact is they do not have time left over from development, or the resources.

It's perfectly legitimate to expect to sustain yourself while building open source products and projects. Unfortunately we are flooded with one sided superficial perspectives and short term narratives that look at open source projects as if its a crime to expect to make some money while not even examining slightly the parasitic models of cloud providers and others who in effect hijack open source projects with marketing.

The end game is few can compete with the resources, reach and engineering of behemoths like AWS, Azure, GCP and others. And at the customer end the cloud is unavoidable and thus will only see increased adoption. This is not only going to affect open source but dismantle entire groups of software and hardware ecosystems.

The only way forward seems open source projects that leverage these cloud platforms to provide some additional functionality, but these projects will be intimately tied to these platforms and not 'open' as we understand the term.

<comment><USER49> > It's perfectly legitimate to expect to sustain yourself while building open > source products and projects.

I'm not convinced that should be the case. Any business endeavor carries risk, whether its basis is open source software, closed-source software, or any other product type, and one shouldn't have an _expectation_ of any level of success.

There are fortunately many success stories relating to open source software, so from my perspective it's unclear that anything needs to change.

</comment></comment><comment><USER50> > However, developers are technically savvy enough to distinguish between the > real thing and a poor imitation. MongoDB will continue to outperform any > impersonations in the market.

 _snerk_ Well, if it doesn't lose your data or have broken replication protocols for years, then it'd be a poor imitation, so I'll give the CEO that one.

</comment><comment><USER51> Where was the outrage when they implemented the MySQL and Postgres interfaces on Aurora?

<comment><USER52> They're basically killing a company behind an open-source project.

<comment><USER53> Behind a _formerly_ open-source project.

</comment></comment></comment><comment><USER54> Seems to me that Mongo gave AWS the middle finger two years ago.

<comment><USER55> What happened two years ago?

<comment><USER45> They changed the licensing basically forcing Amazon to pay or stop using Mongo or build something else. But at an AWS level that's a lot of money apparently, so they stopped using it.

Maybe I'm wrong. Anyone feel free to correct me.

<comment><USER55> I thought he was referencing that but the license change was more recent, Oct 2018: [https://www.mongodb.com/press/mongodb-issues-new-server- side...](https://www.mongodb.com/press/mongodb-issues-new-server-side-public- license-for-mongodb-community-server)

</comment></comment></comment></comment><comment><USER56> Flamebait. Replace "open source" with "MongoDB" (the company, not the code) then the title makes much more sense, and the article is kind of a nothingburger.

</comment><comment><USER57> Stupid title for the article. Inflammatory and I bet tc got some eyeballs.

</comment><comment><USER58> A major part of the success of open source has been the fact that companies have the option to fork/tweak/sell the code. MongoDB has benefited from this as much as anyone. They gained the adoption levels they have now by advertising these exact benefits. Only later did they decide you need a commercial license to provide it as a service. How many companies would have thought twice about using MongoDB had they thought they would eventually have to pay for it and/or couldn't monetize it themselves?

Also, it's not like Amazon is not giving back to the open source community ([https://aws.amazon.com/opensource/](https://aws.amazon.com/opensource/))

<comment><USER59> You don't need a commercial license to provide SSPL code itself as a hosted service if you release the service-rigging code you use to do so.

As for the most typical use case, web apps, see their FAQ:

> The copyleft condition of Section 13 of the SSPL applies only when you are > offering the functionality of MongoDB, or modified versions of MongoDB, to > third parties as a service. There is no copyleft condition for other SaaS > applications that use MongoDB as a database.

[https://www.mongodb.com/licensing/server-side-public- license...](https://www.mongodb.com/licensing/server-side-public- license/faq#implications)

Compare their prior, public clarification on the scope of AGPLv3:

> Note however that it is NOT required that applications using mongo be > published. The copyleft applies only to the mongod and mongos database > programs. This is why Mongo DB drivers are all licensed under an Apache > license. You application, even though it talks to the database, is a > separate program and "work".

[https://www.mongodb.com/blog/post/the- agpl](https://www.mongodb.com/blog/post/the-agpl)

Much as Kernel developers published a statement clarifying and limiting the sweep of GPLv2 copyleft, Mongo published a statement clarifying and limiting the sweep of AGPLv3 copyleft.

I've heard from a former Mongo employee that Mongo wrote several letters to users and vendors, assuring them that AGPLv3 didn't require release of their app code.

</comment></comment><comment><USER60> That's a very tendentious title.

</comment><comment><USER61> Is there a license category that says something like: "Anyone can use our tech to build stuff with for free however you may not re-sell our tech wrapped in maintenance or hosting services"?

If you're a small open source company with a services business model, how do you stop someone like AWS forking your code, making a few changes they don't share with you and basically becoming the de-facto supplier of maintenance and services for your tech?

<comment><USER47> > Is there a license category that says something like: "Anyone can use our > tech to build stuff with for free however you may not re-sell our tech > wrapped in maintenance or hosting services"?

Yes, there is. It's what MongoDB did. It's not Open Source.

> If you're a small open source company with a services business model, how do > you stop someone like AWS forking your code, making a few changes they don't > share with you and basically becoming the de-facto supplier of maintenance > and services for your tech?

You have a business model that does not work. You've been lying to your investors claiming that you have one. That's exactly the MongoDB story.

<comment><USER59> > It's what MongoDB did.

That's incorrect. MongoDB's Server Side Public License differs from Commons Clause and some of the "community" licenses from other database companies we've seen. The latter prohibit hosting programs as a service for others. SSPL explicitly permits that, but triggers copyleft, so the service rigging code must be released under the same terms.

</comment></comment></comment><comment><USER62> Implementing MongoDB API is something like implementing SQL language, doesn't it? Plus communication protocol with auth, of course.

</comment><comment><USER63> >a hosted drop-in replacement for MongoDB that doesn't use any MongoDB code

Is there any evidence for this? I assumed they forked the last Apache 2.0 version of Mongo.

<comment><USER64> Mongo was AGPL, not Apache 2. It seems unlikely Amazon was willing to integrate an AGPL code into AWS.

<comment><USER63> My bad, thanks for clarifying.

</comment></comment></comment><comment><USER65> Scaling mongodb is not easy, and may this is why AWS DocumentDB is built instead of providing an RDS version of mongodb?

</comment><comment> VvR-Ox I don't even wonder.

It's not just Open Source who will get nasty signs from amazon. They already have too much power for one company and the more power they'll have the less they have to abide by rules normal companies/humans have to abide by.

<comment><USER31> How are you breaking any rule if all you're doing is using a software package that's distributed with a FLOSS license?

Isn't that the whole point of releasing software under a FLOSS license?

</comment></comment><comment><USER66> RIP MongoDB

</comment><comment><USER67> not sure this is worth the controversial title. good on amazon.

</comment><comment><USER68> Yeah, overall this seems like a bad move by Amazon on multiple fronts. The name of the new service is DocumentDB, which by itself is a name they have recycled from competitors...

<comment><USER69> Is this comment supposed to be irony?

</comment></comment><comment><USER3> Very well put. I already found disgusting what AWS did with Dynamodb (adding key-eviction, etc as a catch-up with MDB) but this is even more hideous.

<comment><USER45> MongoDB has a terrible reputation when it comes to scalability and support. If you search you can find a bunch of horror stories. I don't have any angle to condemn or support this move, but it definitely seems like a response to what AWS customers and the market were asking for: "Give us a managed MongoDB or MongoDB-like service that doesn't suck"

<comment><USER3> I find a bunch of horror stories about DynamoDB and PostgreSQL too. Your point is? How is that even related to the fact that AWS is basically piggybacking on MongoDB-s R&D effort and brand recognition?

Also it's clear that you have zero knowledge about Mongodb hosted services. Because otherwise you would know that very good supported hosted services exist which are 100% compatible with AWS (beside MDB Atlas).</comment></comment></comment>


Breaking News: The Internet has exploded - <AUTHOR> http://david.weebly.com/1/post/2007/09/breaking-the-internet-has-exploded.html

<comment><AUTHOR> Alexa is in a sad state of affairs. I particularly love the "change everything" algorithms they got going on there: compare the same 7-day period one day and the next, and it'll look completely different.</comment>


Here Are 20 Companies Who Sell Your Data (& How To Stop Them) - <AUTHOR> http://www.readwriteweb.com/archives/here-are-20-companies-who-sell-your-data-how-to-stop-them.php <comment><USER2> They plugged SafeShepherd which appears to be a monthly-fee service. What happens if I pay $14/mo or $65/yr, get my records scrubbed, and downgrade to the free plan? Do those "difficult records" pop up again?

I went to sign up with Facebook and discovered it wants permission to view my photos and my friends' profile info. That's concerning, so I went with the non-Facebook signup (only requiring a name, zip code, and email). Out of the 15 or so records it showed me, none of them were me, so I didn't go the premium route.

It seems to do a decent job picking up people. The records it did find belonged to people who shared my first and last name and lived in the same state.</comment>


Google Web Drive in the works? - <AUTHOR> http://forums.macrumors.com/showpost.php?p=6875608&postcount=85 <comment><USER2> It's posted, but doesn't seem to be discussed at all in that forum.

Some more discussion is available on it here: <http://blogoscoped.com/archive/2009-01-18-n35.html>

</comment><comment><USER3> I'm pretty sure there is a Windows Explorer add-in that makes your GMail account in effect a "web drive". Could this be that?

</comment><comment><USER4> A number of companies have shut down web drive projects in the recent past such as AOL's Xdrive.

I guess I'd be surprised with Google's move to "focus" their efforts if they released something like this.

</comment><comment><USER5> My guess is they'll dump it and delete everyone's data as soon as the share price tanks.

Google is apparently not so rich and powerful that they can't shut down an (!) online notepad.

<comment><USER6> They only shut down new registrations. As they stated, they will continue to allow previous users to use the service "indefinitely".

</comment></comment><comment><USER7> Would be nice to sync mp3 with Android. I'm amazed no one already took the effort in doing so</comment>


Ask HN: What programming language are you currently learning? - <AUTHOR>

I would like to know what languages my fellow HN readers are currently learning/investigating, in their free time, and the criteria for choosing which language to learn next. <comment><USER2> None. I've got enough of them. What I need to get better at is maths, signal processing, and graphics. Chiming in to reject the idea that we should spend our careers churning through languages.

<comment><USER3> Not to say you are wrong, but if one has an interest in a new or different language they should not think they shouldn't because they already know enough.

Learning a new language can also be a supplement, say learning haskell in such a way that you improve your math ability and critical thinking at the same time. Or attempting to write a project in a new language would be far more interesting say if you are burned out from a job in a certain programming language. New and different things can be very refreshing!

</comment></comment><comment><USER4> I'm learning Scala for the following three reasons (in increasing order of importance.) These just reflect my current needs, not a prescription for other people, and all three revolve around my need to add a practical language to my repertoire to reduce my usage of C++ and Java.

3\. I decided to learn a language I could use on the Java platform using Java APIs, rather than on the _nix C platform using C APIs. Partly this is a matter of wanting to escape C's shortcomings; partly it's because I have my eye on a couple of upcoming projects at my company for which the Java libraries will be extremely helpful.

2\. I want to learn a language that will allow me to use functional idioms and help me learn a more functional style, yet allow me to get the job done even when my functional-fu falls short. I don't want to learn a language that expands my mind but then becomes a fond memory. I hope that for many years to come Scala will be the first language I reach for when I need to get something done on the Java platform.

1\. I want to master a modern yet practical language with a strong static type system. I don't do much programming that calls for a dynamic language, and I'm pretty satisfied with Python. I write a lot of code in C++; C++ and Java are the only statically typed languages that I have really mastered, and I'm dissatisfied with both of them.

Runners-up:

Clojure: not statically typed. Maybe my next language after Scala -- I really enjoyed using Common Lisp but hated the library situation.

O'Caml: great for the _nix C platform, but not for Java. Also possibly too pure to be a "go-to" language (heh.)

<comment><USER5> Ocaml isn't too pure. It's just weaker in libraries (and has no threading). It's faster than Scala in my experience, but not by more than 50%.

I like Scala quite a lot so far. The main pleasure of Haskell or Ocaml over Scala is that they can deduce _all_ your types (even function arguments), whereas Scala supports overloading and can't.

</comment></comment><comment><USER6> (1) Haskell, because I like functional programming, and this language seems very promising (I first looked at it 10 years ago, but I gave up because the implementations seemed immature. I took another look recently, and I'm amazed by how much it's progressed since then). I especially like the way that laziness and purity enable a concise, stream-processing paradigm through the use of maps, folds, and various combinators.

(2) Lua, because it seems like the Scheme of imperative scripting languages, while still being very practical and hackerish. It also has a neat game engine (Love2d) which I'm eager to try out.

</comment><comment><USER7> Javascript. I've "known" it for 10+ years, but now I think is the time to take it seriously. The web stack is getting dumber as a lot of UI and logic moves to JS inside the browser.

Databases got dumber in exactly the same way -- do you know or care if your database has good stored procedure support? Eventually it won't matter much what the server is running.

<comment><USER8> +1. It's just getting faster and faster as it becomes the focus of the browser wars, and it's not a bad language, really.

</comment></comment><comment><USER9> Haskell. I'm working through [http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_H...](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours) which is quite a good tutorial.

<comment><USER10> Even though I complained about not being able to learn Haskell in another comment, this is the tutorial that got me the furthest. I found RWH pretty much worthless by comparison.

</comment></comment><comment><USER11> Erlang - why? after diving into threading in Java for a recent project, I wanted to see other ways of approaching the same problem - recommendations for other languages with powerful threading solutions?

<comment><USER12> Haskell. Don't waste your time with Erlang.

<comment><USER13> Can you elaborate?

</comment></comment></comment><comment><USER14> Objective-C. Quite a big jump from Ruby. :)

</comment><comment><USER15> I'm not learning any language right now, but have learned a fair share over the course of the past few years.

My general criteria is not to learn a language that is conceptually similar to something you already know unless there are professional advances to be had there. If all you know is Python, C might be good because it's lower level. Lisp or Haskell or O'Caml might be good because you'll have to program with different paradigms, etc. If I were coming from Python, Ruby wouldn't be my next choice unless I needed it for a job.

</comment><comment><USER16> Python

<comment><USER17> Ok. That covers the rest of this weekend anyway. :)

</comment></comment><comment><USER18> Haxe - compiles to ActionScript, JavaScript, PHP et al. Strongly typed (with type inference) and creates faster code than Adobe's AS3 compiler.

F#

</comment><comment><USER19> Haskell. I've already written non-trivial applications in it, but there's still so much to understand.

<comment><USER20> Haskell for me too. It's slow going, but it's already making me a better Python programmer in my real work. OCaml/F# are on the back burner too.

<comment><USER21> > making me a better Python programmer in my real work.

I found this too. Once I started reasoning with lazyness, Python's generators felt a lot more natural. The itertools module is very useful.

<comment><USER20> Haskell's let... in... construct I use heavily now, I don't miss multi-line lambdas now.

</comment></comment></comment></comment><comment><USER22> ARM Assembly. I want to commune directly with the bare metal. I want to lose my fear of those hex dumps machines spit out just before they die.

</comment><comment><USER23> Clojure.

<comment><USER24> I am learning Clojure because I know lots of "traditional" languages and want to stretch my brain in new ways. I am also interested in new ways to write parallel programs, which is becoming a bigger and bigger issue. Clojure scores well on these two criteria. I chose Clojure over Scala and Haskell, because I believe in dynamic typing over static typing. This is probably more an issue of tase than anything and I also have a high opinion of those static languages. I am very impressed with Rich Hickey's design sensibility and his goals for Clojure align well with my own.

<comment><USER23> Agree on all points.

</comment></comment></comment><comment><USER25> Baby Language

</comment><comment><USER26> Arc (lisp in general)

</comment><comment><USER27> Ruby

<comment><USER28> Me too - oop I understand - gotta get a grip on procs and lmbadas.....

Best language I ever used and I was programming in Fortran iv on 80 column punch cards in 1972...

<comment><USER29> Cool. Be sure to ask lots of questions on the ruby-talk mailing list, and hopefully there's useful stuff on ruby-doc.org. (If not, let me know. :) )

</comment></comment></comment><comment><USER30> Common Lisp -- because it has begun to change the way I think.

</comment><comment><USER31> C++, after learning Python as a firstl anguage, going through accelerated C++ then thinking in C++

</comment><comment><USER32> I am (very slowly) diving deeper and deeper into Ruby.

</comment><comment><USER33> Python, Processing & Java. And HTML, CSS etc.....

All of them, really, for pleasure. Python because I want to learn to program, Processing for image processing, Java to bypass CS 101 requirements, and HTML & CSS for web design.

</comment><comment><USER34> Adobe flex. I am doing some data visualization stuff. I thought about using HTML5 drawing syntax first. But because stupid IE still doesn't support it. I give it up. Adobe flex is perfect for the job for the time being.

</comment><comment><USER35> after being a coder for 3 decades I finally got around to lisp, two things prompted me to do it, first the source code to HN, secondly a discussion with 'dtor' of the glusterfs project, a young indian coder that seems to be pretty gifted. I audited some code there and came upon a macro that took me a long long time to comprehend, he explained it was to give C continuations.

One thing let to another and I ended up buying a bunch of books and downloading the mit video lectures.

</comment><comment><USER36> Processing

</comment><comment><USER37> I haven't learned a new language for a while now. Perl/Java/C never fails me and I'd rather learn a new trick than another way of doing an old trick. I am learning about modern large-scale Internet service design, running hadoop clusters, distributed logging solutions, virtualization, ad-hoc radio networks, radio propagation, sensor fusion, intelligent transportation systems, etc. (for startup and PhD)

</comment><comment><USER38> Objective-C and the iPhone API. This is probably the first language I learn just in the process of doing something specific (writing apps for iPhone), and not because I really need to learn it for enhance my programming skills. Still it is an interesting language even if designing it today from scratch could lead to something pretty different...

</comment><comment><USER39> Stop replying in this thread and make a poll !

<comment><USER29> Wouldn't that require knowing in advanace the answers people would give?

Or is a "close enough" guess at the usual suspects (with an option for 'Other') good enough?

</comment></comment><comment><USER40> PHP and Action Script through Adobe Flex

</comment><comment><USER41> I'm rewriting a card-game-playing environment written in Java. I originally wanted to use one of the Java implementations of Arc, but the low activity level of the forum (and my difficulty installing Rainbow a while back) makes me uneasy, so I'm learning Clojure. Sorry PG.

</comment><comment><USER42> Ruby, Scheme, C++. C++ I am learning for about six years already, what a fucking complex language :)

</comment><comment><USER43> Scheme

<comment><USER44> I'm learning Scheme so I can program Impromptu (<http://impromptu.moso.com.au/>) to control my MIDI setup live. I'm having a hell of a time with macros and define-syntax; I have not yet found docs that explain those so I can understand them. I have played around with SBCL and Clojure, and can write macros in those languages. Don't know why I'm having problem with Scheme.

</comment></comment><comment><USER45> I continue to learn Haskell. A possible future side project would be a good fit for trying out functional reactive programming.

If I ever find myself wanting to program at a low level again, I can see myself learning D.

</comment><comment><USER46> Potion, _why's experimental language. It's cool to play with something bleeding edge, though something about the language itself makes it feel like Python. Maybe the use of colons to define functions/blocks.

</comment><comment><USER47> \- Visual C# (Microsoft Dot Net)

\- Some CSS, HTML and Jquery

\- English :)

</comment><comment><USER10> After trying to learn Haskell on and off for a couple of years and miserably failing to be able to write a useful program with it, I'm moving on to Scala which pretty much rules.

</comment><comment><USER4> Scala

</comment><comment><USER48> Playing with Erlang - I like its approach to errors and parallelization. Plus the idea of a functional language with Prolog-like pattern matching seemed like a cool idea.

</comment><comment><USER49> Scala. Because it's the right combination of fun and pain. =)

</comment><comment><USER50> PHP

<comment><USER13> Rather surprising to see PHP so high here since I rarely see PHP-related submissions on HN. How do people learn it? I've found that the best thing for me was finding StumbleUpon and reading up as much as I could about best practices in PHP and programming in general. Now I force myself to try a different language for my own projects to get away from PHP as a "comfort zone".

<comment><USER19> I'm a bit shocked to see any significant popularity here, as it seems to be a language most hackers avoid. I'd like to know why people are interested in the languages they're learning - not just PHP.

<comment><USER17> The OP asked about what you are currently learning. Many folks may actually be required to learn it for their job, rather than for professional enrichment.

</comment></comment></comment></comment><comment><USER51> Dabbling with Clojure and Haskell at the moment. Also reading some material relating to clisp and Scheme.

I can never stick to one thing.

</comment><comment><USER52> F# -- OCAML has got it all: imperative, functional. Plus with F# you've got a huge collection of ready-to-use libraries

</comment><comment><USER53> After Effects Expressions, a js-like scripting language for video graphics. I'm not sure if this qualifies though...

</comment><comment><USER54> Forth, because I'm to impose some creativity enhancing constraints on what I develop my free time.

</comment><comment><USER55> Clojure. It's fantastic. <http://clojure.org/>

</comment><comment><USER56> Bouncing around between PHP, AS3 and Python/Django. Really need to settle on one for a bit.

</comment><comment><USER57> A few months ago Python, decided to jump the gun to learn Common Lisp and Scheme.

</comment><comment><USER58> erlang. because somehow my install of ejabberd failed and I don't know the first thing about how to troubleshoot it. plus I want to learn more about languages that are good with parallelization.

</comment><comment><USER59> Erlang - nitrogenproject.com got the best of me one evening...

</comment><comment><USER60> Newspeak, Lisp, Python, Smalltalk, Objective-C.

</comment><comment><USER61> Lisp, in Pico Lisp flavor.

</comment><comment><USER62> Ruby at the moment

</comment><comment><USER63> Factor

</comment><comment><USER64> Ruby

</comment><comment><USER29> Haskell.

</comment><comment><USER65> Prolog

</comment><comment><USER66> Jython

</comment><comment><USER67> obj-c

</comment><comment><USER68> C++ = you can never stop learning darn thing, it is still growing.</comment>