Slashdot Mirror


MEAN Vs. LAMP: Finding the Right Fit For Your Next Project

snydeq writes: LAMP diehards take note: The flexible simplicity of MongoDB, ExpressJS, AngularJS, and Node.js is no joke and could very well be a worthwhile stack for your next programming project, writes InfoWorld's Peter Wayner. "It was only a few years ago that MongoDB, Express.js, AngularJS, and Node.js were raising eyebrows on their own. Now they've grown up and ganged up, and together they're doing serious work, poaching no small number of developers from the vast LAMP camp. But how exactly does this newfangled MEAN thing stack up against LAMP? When is it better to choose the well-tested, mature LAMP over this upstart collection of JavaScript-centric technologies?"

175 comments

  1. The Fuck? by OverlordQ · · Score: 4, Insightful

    >This isn't a problem if every single entry fits into exactly the same format, but how often is the world that generous?
    > What if two people share the same address but not the same account?

    You dont make it a unique field?

    > What if you want to have three lines to the address instead of two?

    You have an empty field?

    > Who hasn’t tried to fix a relational database by shoehorning too much data into a single column? Or else you end up adding yet another column, and the table grows unbounded.

    Yeah, I cant read this crap considering the very next section is 'Disk space is cheap'. If it's cheap, who cares about 1 extra field in the database.

    Remember guys MongoDB is webscale

    --
    Your hair look like poop, Bob! - Wanker.
    1. Re:The Fuck? by Anonymous Coward · · Score: 2, Insightful

      Might as well just call this place, Digg 3.0 - Getting Shittier All the Time.

    2. Re:The Fuck? by MightyMartian · · Score: 4, Insightful

      It's almost as if the writer doesn't understand what a relational database is.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    3. Re:The Fuck? by wonkey_monkey · · Score: 5, Funny

      I enjoyed this gem:

      If you write code for Node and decide it’s better placed in AngularJS, you can move it over with ease, and it's almost certain to run the same way.

      Yes, if there's one thing professional programmers (and their PHBs) love, it's code that's almost certain to work.

      --
      systemd is Roko's Basilisk.
    4. Re:The Fuck? by darkain · · Score: 3, Funny

      "MongoDB is webscale"

      For those that have not seen it yet: https://www.youtube.com/watch?...

    5. Re:The Fuck? by Anonymous Coward · · Score: 0

      I think the perception problem with RDBMSs is that Mysql has been dominant for so long. If you have a big table and you change schema in mysql it basically locks up your database for hours. Sure there are lots of full blown add-on projects to get around this, but this is something the database should take care of. So people get into these database model hacks when they can't change their schema. There is a solution though! Use PostgreSQL! Schema changes don't lock up the database and they can be done transactionally.

    6. Re:The Fuck? by Penguinisto · · Score: 2

      ...at all.

      But you know, it's totally cool to run your tiny startup's auth DB on its own multi-box sharded cluster... n' stuff. Bragging rights and all that.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    7. Re:The Fuck? by rockmuelle · · Score: 4, Insightful

      And the author hasn't looked at a relation database in the last few years, either. PostgreSQL, Oracle, MySQL, and I'm sure the other big ones all have JSON (or similar) column types now that let you attach semi-structured elements to your records. You get all the benefits of a RDBMs (ACID, referential integrity, 40 years of history) _and_ all the benefits of NoSQL.

      Seriously, there's no good reason not to start with PostgreSQL and only add MongoDB if you really have a good use case for it (you know, you suddenly need to be Web Scale). Personally (and professionally), I use both, with PostgreSQL as the main DB for everything and MongoDB for read-only collections of indexed data.

      My challenge to devs out there: spend the hour it takes to learn SQL and understand what you can actually do with it. And, stop pretending that an RDBMS won't scale to meet your needs (spoiler alert: it will).

      -Chris

    8. Re:The Fuck? by mlts · · Score: 1

      MEAN may have its place, but those duplicate fields implies not just additional disk space, but more data that has to be backed up, more data that can be hacked, more data that can get corrupted (what happens if two identical fields wind up with different values... what FirstName gets precedence), more data the backend RDBMS has to chug through.

      For smallish tasks, this isn't a big deal, since a small Linode VM or whatnot can do the tasks. However, this can impose a performance and space penalty that can be costly later on.

    9. Re:The Fuck? by narcc · · Score: 2

      Lack of Certainly.

      That's a big one. Not just in that context. It's why I'll forever maintain that new exciting things are for playing and old and stable things are for work. When you already know the problems, risk, and challenges, you're better able to plan. When you pick from the latest headlines, you're almost guaranteed to pick a flash-in-the-pan technology that'll be dead and gone in a year or two.

    10. Re:The Fuck? by jbolden · · Score: 4, Informative

      I know SQL pretty well. I agree with you it handles most stuff. That doesn't mean it handles everything.

      SQL engines are often slower.
      SQL engines have problems with massive parallelism (i.e often at around 12 CPUs you stop gaining much at all by adding addition CPU).
      SQL engines have problems with complex in document (i.e. in blob) searches
      etc...

    11. Re:The Fuck? by DrVxD · · Score: 1

      I hadn't seen it. I thank you.

      --
      Not everything that can be measured matters; Not everything that matters can be measured.
    12. Re:The Fuck? by Anonymous Coward · · Score: 0

      If your shop lets this flavor of the week shit in, we've already established that the bosses don't care if it works.

    13. Re:The Fuck? by angel'o'sphere · · Score: 1

      Even *I* know that Node.js is a backend "engine"/"framework" and AngularJS is a front end technology.

      So: you can not replace one of them with the other!

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    14. Re:The Fuck? by Anonymous Coward · · Score: 0

      This just reminds me of: https://www.youtube.com/watch?v=b2F-DItXtZs

      Having used Mongo and Node at "scale", I've concluded that neither should be used in a production environment unless you know *exactly* what you're doing (sysadmin here).

      Mongo is *really* hard to scale well, as you need *lots* of nodes to shard your data across to get good performance out of large data sets (ok small single server stuff is fine). Node stuff (which includes express) requires a bunch of backend infrastructure and training devs to write multi-host deployments which can be hard.

      The real problem is people read "web scale" and believe their mantra about scalability, when the same problems exist with all other platforms, yet on their own they solve none of the problems. The devs I've met that are huge advocates seem to either ignore of not understand these problems.

      They're just extra items to add to your tech catalogs which have benefits and drawbacks.... Just don't treat them as the only items! ;)

    15. Re:The Fuck? by Anonymous Coward · · Score: 0

      MySQL is free and quick and dirty. Use Oracle, MSSQL and I've heard great things about Postgres. I have experience with the first two, and you can do some amazing things if you know what you are doing. They cost that much for a reason.

    16. Re:The Fuck? by Anonymous Coward · · Score: 1

      SQL engines have problems with massive parallelism (i.e often at around 12 CPUs you stop gaining much at all by adding addition CPU)

      Then add another engine to get 12 more CPUs :-)

    17. Re:The Fuck? by hummassa · · Score: 1

      Yes, if there's one thing professional programmers (and their PHBs) love, it's code that's almost certain to work.

      It's actually the best kind; there are two types of code, code that's almost certain to work and code that's almost certain not to work...

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    18. Re:The Fuck? by hummassa · · Score: 1

      MySQL is free and quick and dirty. Use Oracle, MSSQL and I've heard great things about Postgres. I have experience with the first two, and you can do some amazing things if you know what you are doing. They cost that much for a reason.

      But probably not the reason you think. :D They cost that much so that some CIO can cover his arse when something goes terribly wrong with the corporate database... "we are waiting for Oracle support to tend to our ticket."

      --
      It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    19. Re:The Fuck? by znrt · · Score: 1

      Having used Mongo and Node at "scale"

      interesting. care to elaborate?

      I've concluded that neither should be used in a production environment unless you know *exactly* what you're doing

      isn't that true for any platform. and, do you really use stuff in production without knowing "exactly" what you are doing?

      Mongo is *really* hard to scale well, as you need *lots* of nodes to shard your data across to get good performance out of large data sets (ok small single server stuff is fine).

      adding nodes to shard data seems like a straightforward scaling strategy. how does this not scale well? what problems are you having?

      Node stuff (which includes express) requires a bunch of backend infrastructure and training devs to write multi-host deployments which can be hard.

      how are multi-host deployments exclusive to 'node stuff'? don't you need infrastructure and trained devs for any deployment? what are you comparing?

      The real problem is people read "web scale" and believe their mantra about scalability, when the same problems exist with all other platforms, yet on their own they solve none of the problems. The devs I've met that are huge advocates seem to either ignore of not understand these problems.

      They're just extra items to add to your tech catalogs which have benefits and drawbacks.... Just don't treat them as the only items! ;)

      honestly, i find braindead hype as delusional as your reactionary attitude and insubstantial claims.

    20. Re:The Fuck? by drakaan · · Score: 4, Insightful

      Not to be rude, but what the hell are you talking about?

      SQL engines are often slower than what? In what scenario? Operating on what hypothetical database schema with how many records spread across how many tables?

      SQL engines have problems with massive parallelism? Why? Which ones?

      How well do you *really* know SQL in general and the capabilities of different database engines in particular? I suspect you may know less than some people who know SQL *really* well (as opposed to *pretty* well).

      I apologize for the tenor of this post, but that portion off the article was ridiculous, and thus far all of the comments in support of it have demonstrated a similar lack of familiarity with actual databases, their operation, or performance tuning.

      --
      "Murphy was an optimist" - O'Toole's commentary on Murphy's Law
    21. Re:The Fuck? by Anonymous Coward · · Score: 0

      mind explodes

    22. Re:The Fuck? by shutdown+-p+now · · Score: 3, Informative

      The last few years in this case is more like the last decade. Before JSON, there were (and are) XML-typed columns, and any decent RDBMS will let you use XQuery or similar to query on them directly within your SQL query (and will use special indices to optimize such queries). SQL/XML spec, that standardizes this, was published in 2003. Oracle shipped preliminary support of the then-draft spec in 2002; Microsoft shipped it in SQL Server 2005 in, well, 2005; and Postgres shipped it in 8.3 in 2008.

    23. Re:The Fuck? by geminidomino · · Score: 1

      Which category does the "why the hell does that even work" code fall into?

    24. Re:The Fuck? by yagu · · Score: 1

      +5 Insightful

    25. Re:The Fuck? by 0100010001010011 · · Score: 3, Funny

      Hush, the 20 year olds think they invented something.

      “When I was a boy of 14, my father was so ignorant I could hardly stand to have the old man around. But when I got to be 21, I was astonished at how much the old man had learned in seven years.”

      Once you get a B.S., you think you know everything. Once you get an M.S., you realize you know nothing. Once you get a Ph.D., you realize no one knows anything!

    26. Re:The Fuck? by narcc · · Score: 4, Funny

      Ruby

    27. Re:The Fuck? by UnknownSoldier · · Score: 1
    28. Re:The Fuck? by JustAnotherOldGuy · · Score: 1

      But does MongoDB use systemd yet? That's the real test.

      --
      Just cruising through this digital world at 33 1/3 rpm...
    29. Re:The Fuck? by Anonymous Coward · · Score: 4, Insightful

      What's really concerning is that I've had "new school" web devs completely laugh at me when I suggest they ask their resident DBA questions about database performance, etc. Apparently, a DBA is just someone who makes images and restores backups now. "Hey guys, let's make a business that's completely reliant upon reliable data, and then completely ignore getting someone who's entire knowledge specialization is data management and arrangement... Yeah, fuck those dba guys..."

    30. Re:The Fuck? by Anonymous Coward · · Score: 0

      That's why it's called engineering.

    31. Re:The Fuck? by Anonymous Coward · · Score: 0

      Computers are so much faster when you don't care about the correctness of data. Get with the times.

    32. Re:The Fuck? by Anonymous Coward · · Score: 1

      I know SQL pretty well.

      But not well enough, obviously.

      I agree with you it handles most stuff. That doesn't mean it handles everything.

      Actually, it does handle everything that can be done with a dataset.

      SQL engines are often slower.

      Than what? At what? It's very likely slower at "get everything you've ever gathered and let the application layer sort it out". That's a huge amount of data being pushed across a connection all at once, and that's just going to be slow no matter what. It's highly unlikely that a non-crap (read: not MySQL) RDBMS is going to be slow at anything involving proper data-set handling.

      SQL engines have problems with massive parallelism (i.e often at around 12 CPUs you stop gaining much at all by adding addition CPU).

      Speaking from experience, no they don't. In fact, many times I have some "touchy" stored procedures that require me to turn off parallelism in order to get a verifiable result. (SQL Server has OPTION MAXDOP=1 for this, and I'm sure other systems have something similar to be used when you want a valid last result from an INSERT INTO...SELECT FROM statement. Also, to satisfy the nitpickers and purists out there, you're far better off re-writing the statement that introduces degree-of-parallelism concerns than you are crippling the optimizer.)

      SQL engines have problems with complex in document (i.e. in blob) searches

      BLOb data isn't really meant to be searched. It's a Binary Large Object. Perhaps you're thinking of Full-Text Indexing (or similar)? That doesn't operate on binary data, just on text data. Sure, you can have known-format binaries be indexed by a custom format indexer, but that's a whole different animal. (Word documents stored in a VARBINARY are a terrible idea... just sayin'.) You could, in theory, trigger a data format inspector to update some metadata columns upon insert/update if you really wanted to. That's not database specific. And your searches would hit the metadata tables, not the table containing the BLOb.

      This just sounds like typical anti-SQL hate drivel to me. None of this stuff is rocket science, and M/R is not the replacement for an entire branch of mathematics.

    33. Re:The Fuck? by Anonymous Coward · · Score: 3, Funny

      Just an FYI, jbolden works for Microsoft. So his experience and comments would be related solely to SQLServer.

    34. Re: The Fuck? by Anonymous Coward · · Score: 0, Funny

      You certainly don'tneed a DBA these days. ORMs handle all that and prerry well.

    35. Re:The Fuck? by Anonymous Coward · · Score: 0

      one answer: MPP databases. yah, they're expensive, but they prove that there's nothing inherently slow about SQL itself. It's just the best damn language to work with data---and there are fast parallel engines out there, just gotta look.

    36. Re:The Fuck? by guruevi · · Score: 1

      You obviously never had issues with MSSQL/Oracle then. A badly performing RDBMS is usually due to a bad DBA or a bad history. Oracle/MSSQL are simply a bit more forgiving as long as you keep throwing hardware and licenses at the issue.

      If you look at MariaDB or even MySQL >4, a lot of the issues GP is complaining about have been resolved a long time ago. BDB/InnoDB have been available for a long time. And there is still no native multi-master PostgreSQL.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    37. Re:The Fuck? by Anonymous Coward · · Score: 0

      You are correct, especially for someone (jbolden) who calls himself a chief architect, it was a silly response.

    38. Re:The Fuck? by dotancohen · · Score: 1

      And the author hasn't looked at a relation database in the last few years, either. PostgreSQL, Oracle, MySQL, and I'm sure the other big ones all have JSON (or similar) column types now that let you attach semi-structured elements to your records. You get all the benefits of a RDBMs (ACID, referential integrity, 40 years of history) _and_ all the benefits of NoSQL.

      Seriously, there's no good reason not to start with PostgreSQL and only add MongoDB if you really have a good use case for it (you know, you suddenly need to be Web Scale). Personally (and professionally), I use both, with PostgreSQL as the main DB for everything and MongoDB for read-only collections of indexed data.

      My challenge to devs out there: spend the hour it takes to learn SQL and understand what you can actually do with it. And, stop pretending that an RDBMS won't scale to meet your needs (spoiler alert: it will).

      -Chris

      What JSON column types exist in MySQL? I know that MariaDB supports COLUMN_JSON() on dynamic columns for SELECT statements (but no way to insert JSON), but MySQL seems to have no native JSON support. Even the third-party components such as mysqljson only import and export JSON, there is no internal JSON nor dynamic column storage and the values are stored in native MySQL datatypes in predefined columns.

      Even in MariaDB, WHEREing from a dynamic column means parsing the whole table's dynamic columns (i.e. no index). It is little more than a native serialize feature, and in fact is stored internally as a blob.

      The major feature (and I personally don't like it but perhaps that is because I've never had a good need for it) of MongoDB and brethen is that the "columns" (actually JSON array elements) are _not_ predefined. Thus you can have a table with the following "rows" (note the different columns):
      ["id":1, "type":"shirt", "colour":"blue"]
      ["id":2, "type":"pants", "size":"36"]

      --
      It is dangerous to be right when the government is wrong.
    39. Re: The Fuck? by Anonymous Coward · · Score: 0

      Not native but there is Postgres-XC which EnterpriseDB supports if you are looking for that kinda thing.

    40. Re:The Fuck? by marsu_k · · Score: 1

      JSON objects, replace [ ] with { }

    41. Re:The Fuck? by marsu_k · · Score: 1

      ...or Javascript (/Ecmascript) objects, rather.

    42. Re:The Fuck? by dave420 · · Score: 1

      You do realise that "almost certain to run the same way" and "almost certain to work" don't mean the same thing, right? At least I hope so! :)

    43. Re:The Fuck? by Anonymous Coward · · Score: 1

      This is an awesome article why-you-should-never-use-mongodb by a "real world web developer"!

      Webscale projects that had to be de-duped back to RDBMS. Not that there is no use case for MongoDB but a quote from the atricle's summary "MongoDB’s ideal use case is even narrower than our television [project] data"

    44. Re:The Fuck? by wonkey_monkey · · Score: 1

      If the same code doesn't "run the same way" (by which I take it to mean produces the same output from the same input) in two different places, then I'd class that as not working.

      --
      systemd is Roko's Basilisk.
    45. Re:The Fuck? by jbolden · · Score: 4, Informative

      SQL engines are often slower than what?

      Than engines designed for massive parallelism in dealing with workloads which can be effectually processed in parallel.

      Operating on what hypothetical database schema with how many records spread across how many tables?

      Generally NoSQL engines use schema on read techniques not schema on write. The table structure comes during the read. To get some sort of fair comparison something like a typical star schema with a much too large fact table (think billions or trillions of rows) and a half dozen dimension tables.

      Or if you really want to make it worse. The same query where the table is getting 1m writes / second and you want an accurate stream.

      SQL engines have problems with massive parallelism? Why? Which ones?

      Because SQL by its nature operates on the table not the individual rows. Older database technologies that were row oriented like what you see on a mainframe on in SaS work better when the ratio of table size to computation speed is low. Today because disk storage size per dollar has gone up so fast, we disk we face many of the same problems systems in the 1980s faced with tape.

      And the next question is pretty much all of them. The big data SQL engines have the least problems though and via. their execution plans turning into map-reduces might present a viable long term solution.

      How well do you *really* know SQL in general and the capabilities of different database engines in particular?

      Assume I don't know anything. Oracle, which has the best engine and SQL people on the planet has a guide for hybridization to handle things their engine can't handle well. IBM which probably comes in second and invented the relational database produces their own Hadoop / R to handle queries that DB2 (which is BTW far better than Oracle at stream) can't handle. Teradata's engine which was originally written specifically for larger amounts of data for a decade has had specific features of another subsystem to do enhanced big data, they also have guides for hybridization for things even their enhanced engine can't handle And Microsoft which writes the 3rd most popular engine has spent many millions on hybridization strategies. Enterprise DB (postgres) fully supports the IBM strategy.

      I don't know anyone in the space who does agree with the /. "SQL can do everything" attitude.

      but that portion off the article was ridiculous, and thus far all of the comments in support of it have demonstrated a similar lack of familiarity with actual databases, their operation, or performance tuning.

      The article was ridiculous I said as much in another response. However the comment I was responding to went much too far in the other direction. As for performance tuning -- performance tuning is designed to avoid full table scans and expensive joins. To goal of many hybridization strategies is to take a raw data flow and convert it into a relational ETL using a big data engine which can take advantage of indexing and a better execution plan. It doesn't do much good when the initial goal is to do a full table scan.

    46. Re:The Fuck? by jbolden · · Score: 1

      Teradata, Vertica ... use hybridization and big data strategies inside their engines. They don't refute the point, they prove it.

    47. Re:The Fuck? by jbolden · · Score: 1

      Absolutely true. SQL technology is much more mature. But just like SQL made sense in a world where non-SQL COBOL based systems were more mature for many client-server workloads, big data makes sense for non client server workloads of the kind that are more similar from a hardware standpoint to the old non-SQL workloads.

    48. Re:The Fuck? by jbolden · · Score: 0

      Your comment about set theory is nonsense. This is computer science not math. In math (and especially set theory) a problem has a finite solution if given any finite amount of computation power C there exists any finite amount of time T such that the algorithm will arrive at an answer. Computer science is all about making C and T small.

      If you want to have a long conversation get an account.

    49. Re:The Fuck? by jbolden · · Score: 1

      And then what? How do you get them to work together? You could add a coordination system between them so you have a bunch of slaves nodes getting dispatches from the master node? Well to make that work you need to design your data to be partitioned and your workload to be able to be combined at the coordination level with little contact between the coordinator and the slave nodes. That's a big data engine.

    50. Re:The Fuck? by drakaan · · Score: 1

      Ok, thanks for the clarification.

      NoSQL scenarios being what they are, there are obviously cases when they make sense and have advantages in terms of performance, but it's not always a win, especially if you don't know what you're doing or why.

      I don't know anyone who believes that SQL can do everything either, especially when dealing with extremely large datasets, but analytics and search on huge datasets are not the scenario that your typical dev who doesn't know whether or why to use LAMP or MEAN in the first place are going to be handling in their first outing. The advice being given for those noobs who don't know the relative strengths of each stack, especially in regards to databases.

      --
      "Murphy was an optimist" - O'Toole's commentary on Murphy's Law
    51. Re:The Fuck? by Daniel+Hoffmann · · Score: 1

      I am aware of those features but most applications that rely on relational databases use some kind of object relational mapping, I never looked into it bu how is the support of those features in that context?

    52. Re:The Fuck? by ranton · · Score: 1

      Just an FYI, jbolden works for Microsoft. So his experience and comments would be related solely to SQLServer.

      jbolden appears to be a managing partner of his own consulting firm, and his linkedin resume not only doesn't mention Microsoft but it lists Oracle multiple times with no mention of MSSQL Server.

      But that only makes his post even more confusing, since there are very few scenarios extreme enough that Oracle cannot handle the database workload as well as any NoSQL solution. Although there are many scenarios where a novice Oracle DBA could not get the same performance as a novice NoSQL DBA. But god help those novice developers using the NoSQL database set up by a novice DBA when they don't comprehend what they are giving up by saying "no thanks" to ACID compliance.

      --
      -- All that is necessary for the triumph of evil is that good men do nothing. -- Edmund Burke
    53. Re:The Fuck? by sribe · · Score: 1

      Seriously, there's no good reason not to start with PostgreSQL and only add MongoDB...

      Although I've never needed MongoDB myself, I can see situations where it would be appropriate. I see ***NO*** situations where the ass-backward inside-out semantic model of Node.js is actually appropriate. There are ways to scale to serving high activity loads (actually, higher than Node has any chance of serving), with obfuscating control flow and making it so godawful difficult to be sure that you've handled all combinations of normal completion and errors thrown.

    54. Re:The Fuck? by sribe · · Score: 2

      SQL engines are often slower.

      Well, for queries on structured data, no, not often at all. Practically never if properly configured.

      SQL engines have problems with massive parallelism (i.e often at around 12 CPUs you stop gaining much at all by adding addition CPU).

      Maybe MySQL does, I don't know. PostgreSQL does not. And the big expensive proprietary brands certainly scale well.

      SQL engines have problems with complex in document (i.e. in blob) searches

      Finally, a kernel of truth. Of course blobs are often an excuse to be lazy and not figure out the actual structure of the data, but in cases where blobs are truly appropriate, there are better solutions than SQL, for the blob parts at least.

    55. Re:The Fuck? by jbolden · · Score: 1

      but it's not always a win, especially if you don't know what you're doing or why.

      I agree. I always start big data conversations with the "what query do you want to perform that doesn't work on RDBMS"? If they can't even name one then there is no reason to go big data. A dataset under a 100g, that isn't being read / destroyed quickly that can be structured consistently never needs big data. One of those 3 things has to not be true.

      The problem on /. right now is that lots of the developers who are SQL advocates didn't come up in the pre-SQL years when the ratio of computational power to storage was much lower than it was 1990-2005. Techniques that made sense when you could only do say 3g / hr are making sense today when storage is often measured in petabytes and its hard to get 5g / sec from even the best arrays. 100t of read at 5g / sec = 5.5 hrs. If you need answers in 55 seconds then even getting a factor of 10 above 5g / sec (which I've never seen done) won't get you close to your goal. That's my point to most of the SQL advocates there are use cases because 100t of data in a table is no longer something that even midsized business can't play pretty comfortable with.

    56. Re:The Fuck? by jbolden · · Score: 1

      Well, for queries on structured data, no, not often at all. Practically never if properly configured.

      Why do the people who make those engines disagree with you and advocate hybrid strategies?

      Maybe MySQL does, I don't know. PostgreSQL does not.

      Enterprise DB which writes Postgres disagrees with you. That's one reason they have a practice around supporting IBM's big data platform and themselves author the Postgres Plus Connector for Hadoop.

    57. Re:The Fuck? by jbolden · · Score: 3, Informative

      You are correct, I've never worked for Microsoft I don't even sell much Microsoft. Mostly when I'm dealing with SQLServer datasets they have been no problem for RDBMS. My company has helped do connector work for Azure on Hadoop / SQLServer mixtures.

      I suspect the reason AC thought I worked for Microsoft was I thought the Windows 8 (and early new interface for Office) migration program (i.e shift the x86 ecosystem) that Balmer / Office group was pushing made a lot of sense and defended it.

      there are very few scenarios extreme enough that Oracle cannot handle the database workload as well as any NoSQL solution

      Oracle is excellent. Oracle has problems with massive parallelism though. The Oracle engine works well at 10 CPUs handling versatile workloads. It doesn't at 1000 CPUs focusing on one big table scan for one query.

      But god help those novice developers using the NoSQL database set up by a novice DBA when they don't comprehend what they are giving up by saying "no thanks" to ACID compliance.

      If you aren't using relational you better be using old fashioned block type strategies (i.e. full table writes like you do in COBOL) or not be doing transaction processing at all. That's one of the things you are giving up when you go non-relational. Data changes become much trickier.

      But that's not a problem for most NoSQL where you just write the data out, process it for X time and changes are handled via appends if at all. A good relational analogy to the append structure is how RDBMS handle materialized views and data changes.

    58. Re:The Fuck? by Anonymous Coward · · Score: 0

      And there is still no native multi-master PostgreSQL.

      Uhm, what do you call this? http://sourceforge.net/projects/postgres-xc/

    59. Re: The Fuck? by ZeroWaiteState · · Score: 1

      A lot of people look at MySQL and say "well, MySQL doesn't do the job so relational databases aren't suitable". Most of the complaints I read that are in favor of Mongo give a laundry list of problems with MySQL as their justification. Well, duh. MySQL implements small subset of ANSI SQL, and until recently did it very inefficiently. So use another database, like Postgres. That's like saying HTTP isn't a suitable protocol because Apache uses a lot of memory. Most of these people who are throwing away relational logic are going to find themselves reimplementing it, badly. MongoDB is a really good cache and a good place to store ephemeral session data. It isn't a replacement for a relational data store in most use cases.

    60. Re:The Fuck? by Anonymous Coward · · Score: 0

      Oh look! Slashtard jbolden is spewing its usual " I'm completely right and you're all wrong! " rhetoric!

    61. Re:The Fuck? by omnichad · · Score: 1

      Field validation? You might arguably want some of the same code on both sides for more complex field validation, since client-side is more responsive.

    62. Re:The Fuck? by angel'o'sphere · · Score: 1

      That is not "replacing" ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    63. Re:The Fuck? by omnichad · · Score: 1

      Original post:

      If you write code for Node and decide it’s better placed in AngularJS, you can move it over with ease

      You're right. That's not replacing. But code that works client-side could be moved server-side and vice-versa. And I gave an example of one case where that might happen. Or where the same code might be used in both places. I don't really know why you're in love with the fact that you used the word replacing, so I can't address it any more specifically.

    64. Re:The Fuck? by angel'o'sphere · · Score: 1

      Well, was it you, or wasn't it another parent who used it?

      Using the phrase "you can replace node.js with AngularJS" implies you can replace the whole back end site framework with a whole front end site framework.

      Obviously that makes no sense at all.

      Putting client side verification code as a verbatim copy into the backend implies that you use the exact same JavaScript objects (at least with the same "hashes") on both sides, which you likely don't do. On the backend you have "objects" on the front end you have "forms".

      I doubt you can write JavaScript once and deploy it on both ends and have a doubled input sanity check.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    65. Re:The Fuck? by omnichad · · Score: 1

      Nobody ever said this:

      you can replace node.js with AngularJS

      Where is it? Maybe you're misreading what the actual quote is saying.

      The point isn't whether AngularJS input checking code would transfer over verbatim, the point is that coding conventions could be very similar. And yes, despite using different objects, a validation function of regexes/switches/if-then could all transfer over with minor tweaks. Certainly has a chance of being easier than writing completely separate code for PHP/Python and Javascript.

    66. Re:The Fuck? by angel'o'sphere · · Score: 1
      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    67. Re:The Fuck? by omnichad · · Score: 1

      It says you can move some code that was put in the wrong place in the original design. It doesn't say anything about replacing anything. It doesn't say it's necessarily appropriate or that you can use a Frontend environment to do backend things or vice versa.

    68. Re:The Fuck? by Anonymous Coward · · Score: 0

      The Oracle engine works well at 10 CPUs handling versatile workloads. It doesn't at 1000 CPUs focusing on one big table scan for one query.

      For the sake of the fucking deity of your choice's incestual relationship with its mother, learn partitioning. It ain't hard.

    69. Re:The Fuck? by Anonymous Coward · · Score: 0

      +1

  2. Great comparison by Anonymous Coward · · Score: 5, Insightful

    Which is a better tool for outdoor work, a lawn mower or a snowblower?

    1. Re:Great comparison by wonkey_monkey · · Score: 4, Funny

      Your mama was a snowblower!

      --
      systemd is Roko's Basilisk.
    2. Re:Great comparison by ArcadeMan · · Score: 1

      It depends if you're living under the pacific ocean or the atlantic ocean.

    3. Re:Great comparison by Anonymous Coward · · Score: 0

      I live under the Indian Ocean you insensitive clod!

    4. Re:Great comparison by mr_mischief · · Score: 1

      Well, then, you don't want a lawnmower or a snowblower. You want a soil aerator.

    5. Re:Great comparison by Anonymous Coward · · Score: 0

      A Mexican.

    6. Re:Great comparison by fahrbot-bot · · Score: 1

      Which is a better tool for outdoor work, a lawn mower or a snowblower?

      It depends if you're living under the pacific ocean or the atlantic ocean.

      Under? Snorkel.

      --
      It must have been something you assimilated. . . .
  3. Obligatory Blazing Saddles Reference by __aaclcg7560 · · Score: 1

    "Mongo likes MEAN!"

  4. Different types of terms by markdavis · · Score: 4, Funny

    Never heard of "MEAN" before now, but that doesn't align with the term "LAMP" which describes the entire server/platform. "LAMP" includes the operating system (Linux) and web server (Apache) in the name https://en.wikipedia.org/wiki/...

    While MEAN does not https://en.wikipedia.org/wiki/...

    So would it be "LAMEAN" perhaps? :)

    1. Re:Different types of terms by laffer1 · · Score: 4, Insightful

      I think the who problem with LAMP or MEAN is that it's trying to define one web stack. The world has moved on. Some companies deploy nginx now instead of apache or in combination with it. Netflix sends 33% of all Internet traffic on FreeBSD rather than Linux. I've seen so many people replace the P in LAMP to be python. We can't even agree on the P.

      My current stack at work is FATAPJ - FreeBSD, Apache, Tomcat, AngularJS, PostgreSQL, Java

    2. Re:Different types of terms by Anonymous Coward · · Score: 0

      Maybe LMEAN, but definitely not LAMEAN. Node is the server. Apache isn't used in MEAN. And you could maybe argue that MEAN is slightly more OS agnostic, which could justify dropping the L.

    3. Re:Different types of terms by markdavis · · Score: 1

      Agreed, we could make hundreds of different combinations of acronyms for different stuff! But I will say, your "FATAPJ" stack is a little hard to pronounce.... thus, you should change some components as soon as possible, preferably with another vowel near the end :)

    4. Re:Different types of terms by knarfling · · Score: 1

      So would it be "LAMEAN" perhaps? :)

      Pretty sure that this is a deliberate attempt to make the project have a more appealing name. LAMEAN is likely to be pronounced with a bad Spanish accent, "La MEAN," or pronounced as two words, "LAME AN." I can hear someone saying, "That project was LAME AN' just not worth it."

      --
      Great civilizations have lived and died on false theories. Don't mess up mine with a few facts.
    5. Re:Different types of terms by Penguinisto · · Score: 1

      I think their idea may be that the OS is no longer relevant (you know, thanks to Docker or similar)?

      BTW, the "A" in LAMP is allegedly to be replaced by the "N" (as in, node.js), which IMHO is cute, but damned sure not as flexible a solution that Apache, nginx, or even (*ducks*) Tomcat provides.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    6. Re:Different types of terms by Penguinisto · · Score: 4, Funny

      As long as they don't replace it with Erlang, because then it would just be LAME.

      --
      Quo usque tandem abutere, Nimbus, patientia nostra?
    7. Re:Different types of terms by Anonymous Coward · · Score: 0

      So I would agree that Node isn't as robust, or battle tested, or even uses a language worth a damn... but not as *flexible*?? Seeing as you can pretty much do anything you want in node, I wouldn't exactly say it's not flexible.

    8. Re:Different types of terms by Anonymous Coward · · Score: 0

      I bet there's also a staging area, where old Java code is migrated to more modern JVM language, Scala, and SQLite is used for rapid prototyping.

    9. Re: Different types of terms by cyber-vandal · · Score: 2

      Stupid buzzword acronyms aren't just for MBAs anymore.

    10. Re:Different types of terms by Anonymous Coward · · Score: 0

      I think it's LAMPy at that point... either way you are correct. I have used Angular as front-end on a LAMP project, using PHP frameworks as APIs for the Angular front-end with business logic that needs to be protected running in PHP controllers. Of course you can also add another MVC framework of your choice to be your database API, and just focus on business logic in middle tier, it really depends on what you are making. Simple definitions no longer apply. It is a very exciting time, but also very hectic.

    11. Re:Different types of terms by mr_mischief · · Score: 5, Funny

      Something other than Node is likely used for the static parts of a site or for caching. Apache or Nginx are likely candidates. There are endless stack names, and they can be as silly as we want and someone could still build something useful on them. LAMP got coined because the stack was so popular together, with the 'P' being /P(erl|HP|ython)/ in many camps. That doesn't mean they'll all catch on as common, popular stacks.

      Some people use BAPP -- BSD, Apache, PostgreSQL, Perl/Python/PHP. Some people use specifically FreeBSD: FAPP. Some people use FreeBSD, Apache, Perl, and SQLite...

      Here are some other less common web stacks:

      MongoDB, ExpressJS, Linux, AngularJS, NodeJS, Groovy, Erlang
      MELANGE

      Scala, Python, AngularJS, Zope
      SPAZ

      Clojure, Linux, Oracle DB, WebGL, Nginx
      CLOWN

      PostgreSQL, io.js, Scala, Solaris, Erlang, D
      PISSED

      SQLite, Ubuntu, C, korn shell, io.js, TCL
      SUCKIT

      Lighttpd, io.js, C, Kadmelia
      LICK

      Apache, Mumps, io.js, R, Ingres, Twitter API, Enterprise JavaBeans
      AMIRITE

    12. Re:Different types of terms by Anonymous Coward · · Score: 3, Funny

      Well, at least it isn't FreeBSD, Apache, Tomcat, AngularJS, Lua, Bash, Emacs, Ruby, and TypeScript.

    13. Re:Different types of terms by znrt · · Score: 1

      I think their idea may be that the OS is no longer relevant (you know, thanks to Docker or similar)?

      yes, node is available on several platforms.
      (but docker is linux only for the time being :D)

      BTW, the "A" in LAMP is allegedly to be replaced by the "N"

      actually, this whole silver bullet 'stack' approach is nonsense. back in the days of lamp there were far fewer options, there was also little expertise with 'modern' webapps and high availability, it could make sense branding something like 'lamp' and have it distributed to developers and almost preinstalled on private servers. those days are gone, today there are many tools you can combine in different ways to suit any kind of project.

    14. Re:Different types of terms by jd2112 · · Score: 0

      As long as they don't replace it with Erlang, because then it would just be LAME.

      What does web development have to do with MP3 encoding?

      --
      Any insufficiently advanced magic is indistinguishable from technology.
    15. Re:Different types of terms by just+another+AC · · Score: 1

      Or since MEAN ignores the OS and webserver, we have some license to reorder things. suggestions:

      PATFAJ
      FATJAP
      or
      AAJPTF

      I particularly like how the last one rolls off the tongue. I want to see 100 managers all in a room trying to recite this latest buzzword.

    16. Re:Different types of terms by Tablizer · · Score: 1

      I recognize those folder names, Damn, you raided my porn!

    17. Re:Different types of terms by Anonymous Coward · · Score: 0

      LAME Ain't an MP3 Encoder

    18. Re:Different types of terms by Anonymous Coward · · Score: 0

      the 'p' stands for perl

    19. Re:Different types of terms by PostPhil · · Score: 2

      R, IIS, MongoDB, JQuery, Oracle, BigTable

      That's what I most associate with Enterprise web development. Feel free to substitute IIS with Intercal.

    20. Re:Different types of terms by Anonymous Coward · · Score: 0

      Well there's the totally offensive and completely unacceptable FATJAP

      Good luck getting that out of your head when you work on your stack

    21. Re:Different types of terms by Anonymous Coward · · Score: 0

      Hey, hey, hey...

    22. Re:Different types of terms by Anonymous Coward · · Score: 0

      Hmmm, I always thought that the beauty of the P was that it could stand for PHP, Perl or Python,

  5. I LOVE LAMP! by Anonymous Coward · · Score: 0

    I love lamp.

    1. Re:I LOVE LAMP! by viperidaenz · · Score: 2

      Are you just looking at things in the office and saying that you love them?

  6. Angular by pr0nbot · · Score: 5, Interesting

    I can't comment on the other technologies, but Angular has transformed how I build the interactive parts of web pages.

    When you first approach Angular it seems like an over-engineered, incomprehensible edifice, and the tutorial throws you straight into writing your whole website as a single-page application. But once your realise that you can use a small lump of it on a single page to bind some UI elements to javascript state objects, you find yourself using it all the time even for small things. For me at least, it's as much a revelation as jquery was.

    1. Re:Angular by Anonymous Coward · · Score: 0

      If that's what you're using Angular for you should really be using Web Components or Polymer.

    2. Re:Angular by Anonymous Coward · · Score: 1

      Same here. I used to call what most people did "Web Assembly Language". It was so fucking tedious, you'd go from your backend in a nice language/env like .NET or Python and then get stuck micro-managing a bunch of tedious little shit on your client.

      Angular alleviates about 90% of that tedium.

    3. Re:Angular by guruevi · · Score: 1

      There are way smaller libraries that can bind UI to state. I use them because Angular is an over-engineered incomprehensible edifice if that's all you want to do. If I'd want something the size of Angular, I'd also expect something that actually tracks/updates state in the backend.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    4. Re:Angular by Anonymous Coward · · Score: 1

      It surely is a different world when using some of the elaborate frameworks. When someone says "JavaScript framework", many still get hung up on the picture JQuery painted. I generally try to avoid JQuery by all means, but at the same time it is utterly useless to build JavaScript applications without a framework. I have done it, and it is a grade A mess. That being said, I still have no problem (I actually enjoy it, in some masochistic way, perhaps) going vanilla for minor tasks, but when things get non-trivial: it is just not worth the debugging pain.

      For what you describe, I believe Knockout would be a better fit than Angular. It is more lightweight, but still powerful and lends itself very well to building test suites.

      For larger sites, you quickly end up having to extend Knockout immensely and suddenly Angular is probably the right choice again, but for small applications, Knockout lets one bang up a robust application in no time.

  7. So much stupid by geophile · · Score: 5, Informative

    Among the great revelations of relational databases was the JOIN command. With JOIN, we could save disk space by removing repeated fields like city, state, and ZIP code. By storing this frequently accessed and repeated data in separate tables that can be included in future results through a JOIN, we keep our database tidy and our disks slim. But JOINs can be tricky for some and hard on RAM, and though it's still a good idea to isolate and access data in separate tables through JOINs, there's not as much need to save disk space now that disk drives are measured in multiple terabytes. The space is so cheap that some database designers end up denormalizing their data because the JOINs are too slow.

    This is just so wrong. If you store, let's say, city/state/zip redundantly, then you run the risk of having the copies, that should be kept synchronized, diverge. This is especially true in the absence of all-or-none transactions. And not to mention the fact that having to update the "same" datum in multiple places is going to affect performance.

    1. Re:So much stupid by Anonymous Coward · · Score: 1

      won't someone please think of the cache

    2. Re:So much stupid by Anonymous Coward · · Score: 0

      Some level of denormalization is typical and desirable in datawarehousing. Reports won't often generate from a single denormalized table but generally in more of a snowflake configuration where a central fact table is supported by a cluster of dimension tables but reducing the number of joins is essential to a good working warehouse.

      A lot of data just isn't that volatile. Suppliers for a particular part don't change addresses three times an hour so it's ok to include the supplier and shipping address in the parts table (for example). You may have multiple seemingly redundant parts (Hammer-Home Depot; Hammer-Lowes) but you gain tremendously in the reporting if you just want a list of parts required to fill a work order.

      You are correct that synchronizing the data is an issue but datawarehousing already has that issue since you generally aren't using the working databases for the warehouse--you'll have to replicate that over. And if you're already replicating the data--why not improve on the data model in the warehouse at that time so that it's better tuned for reporting?

      It's not always stupidity to reduce the number of joins but it is application specific. For reporting, yes, absolutely, try for a single table if that makes sense. For a working application, less so.

  8. Right tool for the job by Anonymous Coward · · Score: 1

    First off I'd say MongoDB is never the right tool for the job if you need transactions.

    Second JavaScript is never the right tool for the job on the server side. Been there, done that, still not good for the server, but fine for the browser.

    MySQL, including Maria, is still not the right tool for the job, not unless you like writing hacks because it still sucks after all these years. For instance it can't defer constraint checks until commit phase of a transaction.

    1. Re:Right tool for the job by naris · · Score: 1

      JavaScript is definitely NOT the right tool for the job on the browser side. Unfortunately, it is the ONLY tool for the job on the browser :(

  9. why would you ever? by Gravis+Zero · · Score: 2, Insightful

    When is it better to choose the well-tested, mature LAMP over this upstart collection of JavaScript-centric technologies?

    always

    --
    Anons need not reply. Questions end with a question mark.
  10. Aren't even the same thing? by Anonymous Coward · · Score: 0

    The 'A' in LAMP stands for Apache. Apache is a web server. Which one of the letters in MEAN is a web server? Hmmm????? Are these even comparable, at all? Do they even come close to doing the same things as each other????

    1. Re:Aren't even the same thing? by Anonymous Coward · · Score: 0

      http module for nodejs apparently. or nginx? i have no fucking clue what these coder bootcamp fags think up really

    2. Re:Aren't even the same thing? by Lunix+Nutcase · · Score: 2

      Node.js.

  11. Move to App-Server. Try GARMS by snadrus · · Score: 1

    The CGI model used in LAMP meant your front-end could scale indefinitely, but the backend (Database) had to deal with a connection create/teardown on each request, so databases where that was fast are what won that round (MySQL).

    Now there's the App-Server model, which has some brittleness when people think they can save state locally, but they can't at scale (when you need more than one box). On the other hand, persistent and reused connections to backend resources mean faster TCP (already-warm). To scale this setup, something consistent is usually necessary (like Redis). The other challenge is auto-scale, which is automatic in PHP/CGI-land, but needs interaction with the app-server to do right in MEAN.

    I've done CGI/PHP, MEAN, and now I'm off to GoLang's Gorilla + Angular 1.x (with templates, etc on CDN) + Redis + MySQL + Shared Filestore (SSH), so "GARMS" which gives me easy concurrency (go), consistency (log-ins on Redis), transactions (MySQL), large storage (SSH), and a fast-delivered partial-paint UI (Angular pages on CDN).

    --
    Science & open-source build trust from peer review. Learn systems you can trust.
  12. Variable Definitions by SuperKendall · · Score: 1

    Yes, if there's one thing professional programmers (and their PHBs) love, it's code that's almost certain to work.

    The reason that's OK for everyone is that it's also "Almost Certain" to work in the original place also...

    It's just that each placement has different values and flavors of "Almost". :-)

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  13. Terrible arguments for Big Data by jbolden · · Score: 1

    I'm a big data advocate. I like the idea of engines designed for unstructured data. But the two examples in the article barely even register as difficulties of relational databases, "What if two people share the same address but not the same account? What if you want to have three lines to the address instead of two? Who hasn’t tried to fix a relational database by shoehorning too much data into a single column? Or else you end up adding yet another column, and the table grows unbounded.".

    As for his comments on denormalizing, I'm wondering if he has ever head of a data warehouse and a star / snowflake schema both of which handle the "I want cheaper joins" problem without having to denormalize the dimension tables.

    1. Re:Terrible arguments for Big Data by rev0lt · · Score: 1

      PostgreSQL has a K/V extension available for a while now. And custom types and arrays aren't also actually new. If you add to that JSON & XML support, I see little to no advantage in using NoSQL for any kind of workload. (keeping in mind that graph databases that actually solve something useful aren't NoSQL)

    2. Re:Terrible arguments for Big Data by Anonymous Coward · · Score: 0

      Which begs the question: Why bother lighting the fuse for a full cartesian product blow-up at all? Does it make sense to potentially match C columns for all R rows from T number of tables and how does that complexity grow? Does it make sense to base data-connectivity on convention and how normalized can that ever become? Relational logic is first and foremost about tables, columns and rows (tuplets), not data-connectivity - what everybody assume relational means. The important parts are usually handled manually by the application... Why would a DBMS require that?

      People are married to their early optimizations and special titles, but it's all going to change dramatically over the next 5-20 years. 20 years is probably a bit harsh, but not from what I've witnessed so far.

    3. Re:Terrible arguments for Big Data by jbolden · · Score: 1

      Why bother lighting the fuse for a full cartesian product blow-up at all?

      The main reason is when the blow up in practice is sparse.

      Say for example A has 1 million rows and 20 columns. B has 1 million rows and 20 columns. Column A1 is a link to rows in B. On average a value in A1 will have 3 corresponding rows in B. Pulls from A*B tend to be 5 rows or less. It is cheap to just pull the appropriate blocks from A and then the appropriate blocks from B. That's going to be much faster than denormalizing,

    4. Re:Terrible arguments for Big Data by jbolden · · Score: 1

      Good comment. K/V can be potentially added to SQL.

  14. MongoDB? Thanks., I'll pass by rev0lt · · Score: 1, Informative

    Not only because stuff like this, https://aphyr.com/posts/322-ca... , but also because MongoDB performance actually isn't that great. I do care about my data, and PostgreSQL is actually faster in some scenarios (eg. if you actually know what you're doing), so thanks, I'll pass. And Apache HTTPD? Who's still using that on new projects?

    1. Re:MongoDB? Thanks., I'll pass by Prune · · Score: 1

      Mod parent up. A cursory look at that reference is proof beyond a doubt that Mongo is the sheerest garbage (to borrow the infamous quote from the history of QCD).

      --
      "Politicians and diapers must be changed often, and for the same reason."
    2. Re:MongoDB? Thanks., I'll pass by 31415926535897 · · Score: 1

      Not only because stuff like this, https://aphyr.com/posts/322-ca... , but also because MongoDB performance actually isn't that great. I do care about my data, and PostgreSQL is actually faster in some scenarios (eg. if you actually know what you're doing), so thanks, I'll pass. And Apache HTTPD? Who's still using that on new projects?

      Curious, if not Apache httpd, then what?

    3. Re:MongoDB? Thanks., I'll pass by Anonymous Coward · · Score: 0

      prolly nginx

    4. Re:MongoDB? Thanks., I'll pass by dave420 · · Score: 1

      Most probably nginx. It blows Apache out of the water, at least for what I've been using it for.

    5. Re:MongoDB? Thanks., I'll pass by rev0lt · · Score: 1

      Nginx, Lighttpd, Cherokee to name a few. There are probably more than a dozen options available more suitable than Apache in most cases.

  15. Jepsen by Wizy · · Score: 4, Interesting

    Remember folks, MongoDB has failed the Jepsen Test multiple times.

    https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-reads

    1. Re:Jepsen by Prune · · Score: 1

      Please mod parent up. The examination he cites has the potential to save countless developers from getting burned by this toxic crap "database".

      --
      "Politicians and diapers must be changed often, and for the same reason."
  16. Note by bigsexyjoe · · Score: 1

    Just because you decide to use Node, doesn't mean there's any particular reason, why you should have to use Mongo and Angular. You might prefer Backbone and Postgres. Granted, then you wouldn't get such a nice acronym, but it's a perfectly reasonable technology stack. Oh, and you can throw in the L from LAMP if you want, as well.

    1. Re:Note by Anonymous Coward · · Score: 0

      you can through in decent OS too like omniOS or smartOS :)

  17. When you don't care by PhrostyMcByte · · Score: 1, Informative

    When is it better to choose the well-tested, mature LAMP over this upstart collection of JavaScript-centric technologies?

    JavaScript in its current form will never have a place larger than simple website scripting in my production environment -- it's unmaintainable in anything beyond small doses and is something we work with because there's literally no other option, not because we want to. TypeScript makes things better, but being better than JavaScript really isn't that tough. It's still not as good as -- and doesn't provide benefits instead of -- existing common backend languages like Java and C#.

    To me, node.js perfectly represents the age of programming we're in: people are doing things because they can, not because they should. Things that would have been just-for-fun geeky side projects 10 years ago are now somehow making their way into legitimate business-critical projects.

    1. Re:When you don't care by Anonymous Coward · · Score: 0

      Don't overlook the power of a unified language platform. With MEAN, its JavaScript everywhere. That means your workforce can work on server or client code and they'll understand the needs of other coders better since everyone is speaking the same language with the same abilities and limitations. No longer must I have experts in 4-5 languages. My DB is JS, my app server, my web server, my client code.

    2. Re:When you don't care by Shortguy881 · · Score: 1

      That's what happens when you take a front end language and move it throughout the stack. Now we have all these front end developers jumping through the stack doing all sorts of stupid crap thinking they are real developers.

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    3. Re:When you don't care by Anonymous Coward · · Score: 0

      Poor wallmart, paypal and countless other large shops running critical large scale apps on node.

  18. Relations by pigiron · · Score: 3, Insightful
    What if two people share the same address but not the same account?


    Then you need an account table, a customer table, and a relational table that contains instances of paired keys from each. Learn some elementary set theory for chrissakes! The article is full of other stupidities as bad as this. /. keeps getting dumber and dumber. "Gee, my My SQL table has too many columns."

    I'll bet it does, you nitwit.
    1. Re: Relations by Shortguy881 · · Score: 1

      Third normalization much?

      --
      Brilliance without wisdom, power without conscience. Ours is a world of nuclear giants and ethical infants.
    2. Re: Relations by Anonymous Coward · · Score: 0

      Third normalization much?

      Another retard failing basic web service design.

  19. Use the right tool for the job... by Dastardly · · Score: 2

    And, if either tool works use the one you know best. And, try to write code well, so you don't get stuck when the right decision now becomes the wrong decision later because things change.

    From a data store side, there are reasons to use an RDBMS and one or more NoSQL solutions all together. They handle different situations better and if you have any decent level of complexity you find the boxes defined by LAMP or MEAN too confining. I generally stay away from MySQL due to the licensing issues, but MariaDB and Amazon Aurora fit the same space. I used PostgreSQL for one solution. Of course in the AWS case you might forgo MongoDB altogether for Dynamo because why deal with operating Mongo when Amazon will take care of that with Dynamo.

    Some of us have to deal with corporate standards and actually neither LAMP or MEAN is actually allowed, which makes this whole thing a pointless flame war.

  20. No joke by WaffleMonster · · Score: 1

    If it isn't a joke then what is it? A tragedy?

    1. Re:No joke by WaffleMonster · · Score: 1

      To be fair I'm also no fan of what is traditionally considered "LAMP". I personally believe PHP is more dangerous than it needs to be, MySQL is a poor choice relative to alternatives and harbor little regard even for Apache.

      MongoDB is built for the cloud

      No. Application design limits scalability of non-trivial systems not the data store.

      MySQL's structure is confining (and overrated)

      The only thing that sucks worse than a good relational schema design is everything else.

      Disk space is cheap

      JOINS JOINS JOINS... The reason for JOINs is saving disk space... mind blown.

      Node.js simplifies the server layer
      MEAN makes code isomorphic

      General purpose languages are a dead end. The money you save not having to train people to use appropriate DSLs for the task at hand will be more than offset by increased cost of managing product lifecycle.

      Node.js is superfast

      ab is the most worthless (slow, single threaded, client CPU limited) tool for benchmarking web servers you can pick. Almost as worthless as benchmarking hello world applications bearing no resemblance to real world usage.

      Depth matters

      How does admitting to being behind other solutions translate into a reason for your approach?

      I'm disappointed all around.. both with this article and what is allowed to pass for forward progress in the web stack space.

  21. MongoDB is so 2003. by EmperorOfCanada · · Score: 4, Informative

    There is exactly a zero percentage chance that I will ever use MongoDB in another project. On the surface it was great. I evangelized my friends about it and the whole NoSQL thing. But as time went by I realized that it wasn't made for people to use. Almost nothing was intuitive. For each new feature that I wanted I had to look up a tutorial and generally found a list of gotchas. If you design your project around MongoDB then it will work. But if you try to wrap MongoDB around your project then you are completely screwed.

    Basically MongoDB halved the initial quarter of data storage design and programming. But as the project progressed the time spent screwing with Mongo went up exponentially until the project was shoved out the door and primary feature in version 2 was the complete removal of MongoDB.

    I could make a mile long list of places the project stumbled. But a few key ones would be that there are no good data management tools for accessing a MongoDB. The second was that huge schema screwups were way too easy. It was very hard for programmers to get a mile high overview of how data being stored was being structured. That is a data layout was easy but putting the results into your head was really hard.

    I am finding other NoSQL approaches are far superior. Things such as use of JSON, memcaches, MariaDB (or the excellent PostgreSQL) working together allows the project to dictate how things function instead of Mongo very quickly shaping the project architecture because of its marked strengths and weaknesses.

    Redis is the environment presently being explored for version 4 and so far it is looking very interesting. But I am not joking when I say that at this point I would use access on windows as my backend datastore before I would use MongoDB.

  22. Variable collections are a worst-case for RDBMSs by Anonymous Coward · · Score: 0

    I support an OLTP system where each customer can have

    • 1~20 “pockets”, each comprising [ID, value, available_value, expiration_date, spending_limit, max_spending_limit, total_spending_limit],
    • 0~10 “services” [name, state, offset, start_date, end_date],
    • 0~30 “accumulators” [ID, value, period, expiration_date, bonus_plan],
    • 0~10 “destinations”

    And the table has to be denormalized for speed because in an RDBMS a JOIN just won't cut the response times needed. Guess how wide is the table? 545 columns wide, typically 70-80% unused (fields at zero or null), and still, because you can't tell what column will hold what a simple SQL query can't be written to gather aggregates on pockets/services/accumulators.

    Fortunately we're migrating to a new system with separate tables, but it uses a much simpler in-memory database.

  23. Finish the job... by jtara · · Score: 1

    Why not finish the job, and just move the database to a distributed one that runs in the browsers?

    1. Re:Finish the job... by Anonymous Coward · · Score: 0

      great idea - I wonder when my bank will do that! ;)

      (actually, this raises an interesting point: maybe the MEAN stack has an advantage when one is handling data that doesn't really have any value? such as data that can be straightforwardly reconstructed?)

    2. Re:Finish the job... by marcello_dl · · Score: 1

      because of control. It's control that drives innovation, not people's best interest.

      So, while any sane person reasoning in a vacuum would eventually decide that the internet should be about sharing data on open protocols with a wealth of different clients so that hackers have no monocultures to study and attack, we have web browsers happily executing js from sites whose url is gotten by executing js (possibly to make noscript users give up) and the government of elbonia able to tell you that that yourbank.de certificate is legitimate.

      This generation has to go through the same hell through which the previous one went with windows, and given the nature of the notifications in my sis' smartphone, we are near.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  24. I suggest transitioning gradually by mann17 · · Score: 1

    For client projects, if you've worked with the LAMP stack for a few years and are thinking about making a transition to the MEAN stack, I suggest transitioning gradually. For example, start by doing most of your front-end work with Angular. Once you're comfortable with that, you can move on to node and express, while still using a traditional SQL database. Once you're familiar with node, you can move to Mongo. If you take it one new technology at a time, you can build your skill with each new technology without worrying about falling behind on your deadlines. Alternatively, if you are working on a project in your spare time, there is no harm in going straight for the full MEAN stack.

  25. Normalization by Frankie70 · · Score: 3, Insightful

    The fool thinks the only reason for normalization is to save space.

  26. MongoDB? by PPH · · Score: 1

    All I know about it is that it installed with Debian on my laptop. And from time to time, when everything starts to bog down, its MongoDB that is hogging CPU cycles. So I sudo kill `pidof mongodb` and all is well. Nothing stops working or loses functions. So I can't figure out what the fuck MongoDB was doing clogging up my system.

    --
    Have gnu, will travel.
  27. Instead of just guessing... by Anonymous Coward · · Score: 0

    Instead of just guessing which is better based on an article and a few opinions, I would likely evaluate my current site/database throughput (and there are a *lot* of tools available to give hard numbers about data throughput, transaction counts, etc), and then I would look at re-implementing it in a silo and compare one against the other using the tools. Its silly to ask "which one is better for you and your site" when all of those sites are different. I didn't know about some of these pure JS technologies, and I might consider them, but it will be on a strictly 'test and see' basis. Until then, I will stick with what is, and decide when I see what's best for me.

  28. MEAN vs LAMP? by MassacrE · · Score: 1

    I prefer PLOW, the Platform, Language, Operating system and Web server stack.

  29. Fooling No One! by TelevisioSledgicus · · Score: 0, Funny

    Enough, we can see through this ploy by the christian right... oh boy here they come again. Seriously, ANYONE can see that MEAN is just an anagram for AMEN!

    Stop pushing your religion on everyone!!!!!

  30. Problems with Node by richieb · · Score: 1
    --
    ...richie - It is a good day to code.
    1. Re:Problems with Node by Lennie · · Score: 1

      Notice how the writer of the article in the last comment says:

      "Yeah, I actually have no problem with javascript on the client side. I think its really awesome for a beginner to be able to make static pages interactive relatively easily. However, javascript on the server is a totally different animal."

      The solution is obvious, maybe it much more readable and predictable:

      Promises, promises, promises

      https://www.youtube.com/watch?...

      --
      New things are always on the horizon
    2. Re:Problems with Node by Daniel+Hoffmann · · Score: 1

      This article is not about nodejs being bad, it is about low experienced programmers doing crappy things with it. It is basically saying: "To architecture good scalable web applications you need to be a smart guy with some experience". Well that is pretty much the same thing for all languages...

      The author then goes into a rant that I can only compare to VB6 rants of the old days: It made easier for beginners to get into the bandwagon, so much code written in it sucked, this caused VB6 to have a fame for being a bad language because of that (which was not true at all at the time).

    3. Re:Problems with Node by richieb · · Score: 1

      Cool talk. Thanks!

      --
      ...richie - It is a good day to code.
  31. Comment removed by account_deleted · · Score: 1

    Comment removed based on user account deletion

  32. I run FUCK by OrangeTide · · Score: 0

    FUCK - FTP, Unix, C, Kerberos

    --
    “Common sense is not so common.” — Voltaire
  33. MongoDB is dying by Anonymous Coward · · Score: 0

    There are claims on Glassdoor of significant layoffs and low sales which I guess isn't all that surprising.

  34. Re:Variable collections are a worst-case for RDBMS by HxBro · · Score: 1

    Or just use more than 1 query, sometimes making things simpler and following the KISS principle when selecting data works far better than a join.

  35. Mongo 16MB hard limit by Anonymous Coward · · Score: 0

    Has mongodb got around the limit of 16MB (yes MB) per document?
    How webscale is that? OODBs from the 70's were more webscale than this.
    Don't believe me? RTFM http://docs.mongodb.org/manual/reference/limits/ before you fuck up a good system with a slow and stupid db (and I'm being nice about the real vs claimed capabilities of mongo).

  36. Why do I get the impression NoSQL guys can't code? by Qbertino · · Score: 1

    Why do I get the impression that these NoSQL guys know even *less* about proper programming than the PHP crowd?

    The problem with NoSQL is, they threw out SQL (well done) but they throw out relations and proper archtecture along with it (WTF?). I'm all for ditching SQL as an apps means to access persistance. It's stupid and wasn't meant for that. Even the SQL DB engineers tell us that. But if you don't understand relations and proper application models, you have no business building webapps or - heavens forbid - database servers.

    As for "MEAN" - call be back when you've got a project like Joomla, Wordpress, Drupal, Typo3, Neos ... errrm, scratch those last two ... please DON'T call me if you have a project like Typo3 or, heaven help, Neos ... EZ Publish, MOD X, TextPattern, Plone, or something along those lines to show. Even better, call me when you've built a clone of Wordpress, with something like TAL for templating, sans the crappy software architecture that come with the big PHP projects and have an installer that sets it up in 5 minutes (which the PHP projects actually have).

    Until then I'm sticking with this bizar but working contraption called LAMP. Other then you academic mastubation projects it actually gets the job done.

    Thank yooouuuu.

    --
    We suffer more in our imagination than in reality. - Seneca
  37. What I wrote's nonsense dave420? by Anonymous Coward · · Score: 0

    "I just reply to you when I see you spamming Slashdot with your nonsense"- by dave420 (699308) on Friday June 19, 2015 @10:31AM (#49945047)

    Why agree w/ my points on hosts then? Quoting you on it next:

    "I'm not denying all those things" - by dave420 (699308) on Wednesday September 17, 2014 @11:39AM (#47927435) FROM -> http://yro.slashdot.org/commen...

    Of course you're not: It's impossible to dispute FACT on HOSTS FILES superiority to other methods!

    (Since they're fact in favor of hosts doing more than so-called competitors & doing more with less for more security, speed, reliability, + anonymity online - which is, of course, more than a mere trolling stalking harassing "ne'er-do-well" like yourself could *EVER* manage).

    ---

    "I'm simply pointing out that it takes an AdBlocker to block your spamming"- by dave420 (699308) on Friday June 19, 2015 @10:31AM (#49945047)

    Then WHY DON'T YOU DO THAT, shithead? Answer that!

    (You stalk/harass me instead!)

    If you're "so-called 'better solutions'" are BETTER, & I bother you? Use them... OBVIOUSLY, asshole, you don't & you're just a "ne'er-do-well" troll, OR you have "other motivations" (see next):

    * DO YOU WORK FOR AN ADVERTISING FIRM, or ARE YOU A WEBMASTER/WEBCODER, or ARE YOU A MALWARE MAKER, or ARE YOU AFFILIATED WITH 1 OF MY COMPETITORS?

    Answer that too!

    I'll be waiting (but you'll avoid every question, or lie - which only makes you look stupider than ever vs. myself)

    (You must be involved with 1 of those above, especially since you're TOO STUPID to EVER "get the best of me" & you know it, witness the above - & their "so-called 'solutions' are INFERIOR TO MINE on TONS of levels, evidencing their stupidity in & of itself via inferior designwork!)

    APK

    P.S.=> SEE Dave420 SQUIRM everybody, lol - evasions galore from him to ensue are almost guaranteed... apk

  38. What I wrote's nonsense dave420? by Anonymous Coward · · Score: 0

    "I just reply to you when I see you spamming Slashdot with your nonsense"- by dave420 (699308) on Friday June 19, 2015 @10:31AM (#49945047)

    Why agree w/ my points on hosts then? Quoting you on it next:

    "I'm not denying all those things" - by dave420 (699308) on Wednesday September 17, 2014 @11:39AM (#47927435) FROM -> http://yro.slashdot.org/commen...

    Of course you're not: It's impossible to dispute FACT on HOSTS FILES superiority to other methods!

    (Since they're fact in favor of hosts doing more than so-called competitors & doing more with less for more security, speed, reliability, + anonymity online - which is, of course, more than a mere trolling stalking harassing "ne'er-do-well" like yourself could *EVER* manage).

    ---

    "I'm simply pointing out that it takes an AdBlocker to block your spamming"- by dave420 (699308) on Friday June 19, 2015 @10:31AM (#49945047)

    Then WHY DON'T YOU DO THAT, shithead? Answer that!

    (You stalk/harass me instead!)

    If you're "so-called 'better solutions'" are BETTER, & I bother you? Use them... OBVIOUSLY, asshole, you don't & you're just a "ne'er-do-well" troll, OR you have "other motivations" (see next):

    * DO YOU WORK FOR AN ADVERTISING FIRM, or ARE YOU A WEBMASTER/WEBCODER, or ARE YOU A MALWARE MAKER, or ARE YOU AFFILIATED WITH 1 OF MY COMPETITORS?

    Answer that too!

    I'll be waiting (but you'll avoid every question, or lie - which only makes you look stupider than ever vs. myself)

    (You must be involved with 1 of those above, especially since you're TOO STUPID to EVER "get the best of me" & you know it, witness the above - & their "so-called 'solutions' are INFERIOR TO MINE on TONS of levels, evidencing their stupidity in & of itself via inferior designwork!)

    APK

    P.S.=> SEE Dave420 SQUIRM everybody, lol - evasions galore from him to ensue are almost guaranteed... apk

  39. Re:Variable collections are a worst-case for RDBMS by Anonymous Coward · · Score: 0

    > And the table has to be denormalized for speed because in an RDBMS a JOIN just won't cut the response times needed.
    Multiple queries are even slower than a join. I guess a nested table would be the right answer here, but apparently the basic logic was designed when they were new. -.-'

  40. I can't believe no one mentioned Meteor by Daniel+Hoffmann · · Score: 3, Informative

    Meteor ( https://www.meteor.com/ ) is a javascript framework that runs on top of Nodejs and it is GREAT. It is a full stack solution, it has a view engine (Blaze templating language, based on handlebars), a server (Nodejs) and a database (MongoDB) all bundled up and it just works out of the box, no configuration required. From the meteor website:

    "Really, you'd like to use a combination of packages that have been not just tested individually, but tested together, since so much of the complexity in a large software project comes not from its individual pieces but from how they're integrated. Rather than leaving your package system to select the "best" combination of package versions, which could change every day and could be a totally new combination that nobody else has ever tried, you'd like to use a set of packages that has been comprehensively tested by professional release engineers that really know the platform.

    That's what the Meteor Distribution provides. Similar to a Redhat or Ubuntu distribution, the Meteor Distribution is a set of package versions that have been tested and recommended for use together."

    And that is just one of the great features that Meteor provides. Another great feature of Meteor is that your Javascript code runs both on the server and on the client _at the same time_. Whatever action you make that triggers a state change (change in the database) will run both on the client and on the server, the client has something called MiniMongo that caches the result from the server database and the changes happen without a roundtrip to the server. If the server state is not consistent with the client state Meteor takes care of synchronizing everything. So the application looks like is running locally there is no lag at all.

    This drastically reduce the code necessary for example, you don't write form validation code twice, you write it once and show a popup message on the client and throw an exception on the server if something is wrong. Really everything in Meteor works great, there is a really good automatic deploy system (it even deploys to phonegap, also I believe you can deploy your mobile apps to app stores automatically), the API is really small, the meteor packages work great (check out the Velocity testing framework, it is awesome!) and so on

    There is one big caveat though, you can't migrate parts of your existing application to Meteor, the only real optional part of Meteor is the View layer, you can discard Blaze and run your own solution. I have had a great time using React with Meteor for example.

  41. and the next post will be... by naris · · Score: 1

    Why is my website so slow now. It worked really great before, but now that I have more than 12 widgets and 5 customers it's getting really slow. I also have these really odd bugs and crashes that I don't know about until some piece of rarely executed code gets executed and some things don't work like I expect them to, especially when I pass a Customer object to a function that expects a Widget...

  42. Bullshit Term by allo · · Score: 1

    So MongoDB is now an alternative to Linux?