So I asked a friend of mine who is a senior programmer in silicon valley about MongodDB. He has worked at a lot of the big names doing backend stuff. He laughed and sent me this. Definitely follow the link. It is worth a good laugh.
Basically his take on MongoDB is that it has great growth because it is trivial to set up. He said until recently it was complete and utter crap but it has gotten better. It is still trivial to set up and if you know what you are doing you can fix a lot of the stupidity of the default configuration but at that point you are better off using another database. My friend is definitely in the realm of the power user though so I’m guessing his perspective is a little different than your standard programmer who needs to get a database up and running.
p.s. forgive me for being too lazy to fix the run on sentences
Ethan LOL .
But one point not made is that it is this funny because Mongo is that notorious. It would not be funny if it were Couch or if it were say in PCs Lenovo or Acer, but DELL, in its day, or certainly Microsoft, yes.
It is a proxy that Mongo is dominant top of mind for developers, whether they speak good or evil about it. They are still talking Mongo and not Cassandra.
Could have just as easily been Oracle
No, in this context it could not be. Oracle SQL database has to be structured. The data in creating the world is unstructured and requires an NoSQL type database. While there are many types of such, MongoDB is the one name that is renowned enough to be quite funny to those in the know.
Oracle would not be funny, it would be tragic. It would, most likely, not be possible to store this data in any useful form in a currently existing Oracle database. And if it were so, the programming would be arduous and the data insertion incredibly tedious and difficult.
MongoDB and its ilk of database takes on and organizes unstructured data.
That is why I found the cartoon both hilarious and quite poignant in that Mongo was used as the punch line.
SQL does have an “unstructured” data type appropriately called a “blob.” Beyond storing it and retrieving it there is not much SQL can do with it. For example, you can save images as blobs. For a time that’s how I was saving images for HTML pages. The linked image is stored in a database. In addition to the “blob” you have to add some helper fields to be able to manage them – you have to “structure” them! Mongo is the King of Blob!
The idea behind “disruptive innovation” is that you provide an inferior low cost product for an underserved market. In time this innovation gets perfected to the point that the incumbent technology is outclassed and displaced. The curious thing is that the incumbent laughs at the upstart. IBM called microcomputers toys and for laughs came out with the IBM Peanut. Where is IBM in PCs now? In a few years SQL will join COBOL and ALGOL in the software museum.
PERSONAL COMPUTERS; IS THE I.B.M. PEANUT REALLY IN THE WINGS?
September 27, 1983 <---- check the date, the Mac came out in 1984
It would, most likely, not be possible to store this data in any useful form in a currently existing Oracle database.
Not really true. I have known of many applications on relational databases which include documents. The document itself is stored in a CLOB or BLOB field depending on whether is is simple character data or binary data. The record includes some number of ordinary fields used for indexing. Oracle supports word indexes on the CLOB fields for more arbitrary retrieval.
To be sure, a database like Mongo will generally be faster and provide more generalized access, but there are a number of use cases for document data which are well supported by relational databases, even if the documents themselves are loosely structured.
Whether or not an SQL can store the data from that world, it cannot in a practical sense make use of that data. The stored data would need to be transferred to an NoSQL database unless you wanted to hand code billions of pieces of data and somehow put all this disparate information together, and if you get one piece wrong, or if you need to establish new categories, you have to almost start over.
That is the point, not that an SQL has some capabilities in regard. From a practical perspective God in creating nature is not running the software from an SQL database.
Whether or not an SQL can store the data from that world, it cannot in a practical sense make use of that data.
That depends entirely on the nature of the documents and the use case. There are many use cases where there are a handful of data items which are the basis for retrieval of the document, items which are easily identified at the time the document is stored. There are likewise cases in which a word index of the document is quite sufficient (word index allows one to make queries like contains with logical operators).
I don’t dispute that a database like Mongo has dramatic advantages in many use cases; I am just saying that “Never SQL” is too absolute a statement.
Mostly I was just seeing the snake with Larry Ellison’s face . . .
Larry would not have been shy about making the claim, irrespective of how inappropriate it might have been.
Jeepers, this is a chaotic world that is being created, not some easily categorized business plan. NO, an SQL would be absolutely useless in such a chaotic and complex system.
I am not advocating for Mongo one way or another here. It is without doubt that building a world like this programmer is doing is full of so much unstructured, dynamic, and ever changing contextual data to make a world work that an SQL is not capable of running the world.