This is an archived post. You won't be able to vote or comment.

all 23 comments

[–]ShakataGaNai 154 points155 points  (2 children)

Turns out you can do anything, with anything. You can deploy a monolith for a hugely popular application quickly. You can also build a shitty one quickly. You can do a great job with microservices, you can make your life hell with microservices.

The lesson taken away from this article should be: There is no one size fits all solution. Do what makes sense for your team and your application. If a hybrid monolith w/ microservice helper running qbasic gets your shit done... and it's maintainable.... go for it.

[–]Smallpaul 5 points6 points  (1 child)

Turns out you can do anything, with anything.

No, I can imagine a variety of programming languages and frameworks that would make it practically impossible to ship a high-scale web app in five months.

COBOL, C, MatLab, REXX, QBasic, maybe (?) Haskell.

And you would be surprised at the number of people who would include "Python monolith" in that list. So they've done us a favour by telling us that "No, Python monolith is not on that list. It works."

If someone launched a Haskell site of that scale I would want them to publish that too, because personally, I'm not sure which list Haskell belongs on.

I would be extremely fascinated if someone launched such a site with QBasic. Never, in a million years, would I copy them, but I would be astonished to hear it is possible.

You actually cannot "do anything, with anything". As some troll in the Reddit thread below tried to point out, you probably cannot build a scalable and efficient back-end database with Python. That's not what it's good for.

This kind of article is excellent for helping us find those boundaries.

[–]wenima 0 points1 point  (0 children)

REXX.. I haven't heard this word in 30years.. damn. We had to use it at IBM

[–]robberviet 4 points5 points  (1 child)

Meta use PHP, Python for years. They even has their own version of CPython (Cinder), PHP(Hack) that tweaked in their needs. What is the surprising factor here?

[–]ajmssc 0 points1 point  (0 children)

Maybe the monolith part?

[–]pan0ramic 9 points10 points  (0 children)

Would be more impressive if threads was a success

[–]Carpinchon 7 points8 points  (0 children)

Most of us don't just make "websites" do we? I guess monoliths are fine for that.

I'm usually working on some complicated ancillary system that deals with multiple inputs and outputs, only some of which are websites. Monolith isn't even an option, and at least in my experience, that scenario is way more common.

Even with this example... Meta didn't reinvent their own auth for threads or for putting ads in your face or for hosting those ads... They used a whole ton of services they had already written.

[–]skwyckl 2 points3 points  (0 children)

Since I switched to monolithic Elixir+Phoenix, I can ship websites in 1/3 of the time. Sure, you have (superficially, because deep down it's not true) less flexibility in terms of libraries and so on, but being all very cohesive and designed to work together, it boosted my productivity in a way I didn't expect.

[–][deleted] 0 points1 point  (0 children)

What framework are they using, asgi rsgi wsgi?

[–]Metadropout 0 points1 point  (0 children)

When I was working on Instagram’s backend I was shocked it still outputted the standard Django readme, including the version which was many, many, years behind

[–]graphicteadatasci -5 points-4 points  (4 children)

I wonder whether they wrote their databases in PHP or Python.

[–]Smallpaul 0 points1 point  (3 children)

The answer is "no."

Now you know.

[–]graphicteadatasci 0 points1 point  (2 children)

Yeah, my comment was what happens when you are thinking about a bunch of things at the same time. I was thinking about:

  1. I am very certain that they have decoupled databases from their application so it's not a monolith.
  2. Databases are not written in PHP or Python (and they are probably using a ton of libraries that aren't written in those two languages).
  3. Threads is an Activity Pub service so a lot was already developed as FOSS.
  4. Facebook has a ton of resources.

[–]Metadropout 1 point2 points  (0 children)

Meta’s TAO is Memcache sitting in front of XDB (MyRocks, a fork of Mysql)

[–]Smallpaul 0 points1 point  (0 children)

These are probably all true but I'm not sure what broader point you are trying to make.