I know that Lemmy is open source and it can only get better from here on out, but I do wonder if any experts can weigh in whether the foundation is well written? Or are we building on top of 4 years worth of tech debt?

170 points

There are no good code bases, only less bad ones.

permalink
report
reply
51 points
*

The only valid measurement of code quality: WTFs/minute

permalink
report
parent
reply
22 points

Is Lemmy less bad or more bad than a typical open source project?

permalink
report
parent
reply
46 points

From some comments I’ve read, it’s at least in better shape than kbin? A few people expressed interest in helping with that project and then went running for the hills after reading through the code.

permalink
report
parent
reply
50 points

It’s probably not the only reason, but Rust is a much more attractive language/platform for devs to work with than PHP. (Source: https://survey.stackoverflow.co/2023/#section-admired-and-desired-programming-scripting-and-markup-languages)

It’s also more scalable, because it’s a compiled multi-threaded technology, while PHP is interpreted and mono-threaded.

permalink
report
parent
reply
9 points

That’s PHP for ya

permalink
report
parent
reply
8 points

I read from one admin that a Lemmy instance is a lot easier to set up and maintain than a kbin instance. It’s initially more complicated to set up and updates are just a super headache to deal with. That sounds like a showstopper. I mean kbin is not going to get too far if it’s that difficult to run and maintain an instance, no matter how good or bad the code.

From a user perspective kbin has a really nice looking interface, though Lemmy has more features. I’d like to see kbin do well. It’s younger than Lemmy so it’s going to be behind, but hopefully the overhead in running an instance can be resolved.

permalink
report
parent
reply
18 points

The best code base is the repo I just created and haven’t committed anything to.

permalink
report
parent
reply
16 points

Just clone this one. Guaranteed the best repo ever! https://github.com/kelseyhightower/nocode

permalink
report
parent
reply
9 points

Wait, so the answer is, “it depends?” 🌎👨‍🚀🔫👨‍🚀

permalink
report
parent
reply
21 points

No the answer is that it is written in a modern language, is in its infancy and needs a lot of work to be really great, but it’s based on a certified protocol ActivityPub, that Mastodon and other “fediverse” systems use. It’s going to be really great, eventually.

permalink
report
parent
reply
6 points

“It depends” is a reference to an inside joke between developers. I agree with you that it could be really great, whether or not a code base is “good” or “bad” is just a complicated and highly subjective question to answer

permalink
report
parent
reply
8 points

Yup, code is bad, more code is worse. And unparseable specialist code is a technical debt.

permalink
report
parent
reply
6 points

Hey, my code base is fantastic if you ignore all the stuff I had to inherit, did in a time crunch, or didn’t understand what I was doing!

permalink
report
parent
reply
84 points

If you think four years of technical debt is a lot, wait until you hear about Microsoft Windows.

permalink
report
reply
9 points

I couldn’t imagine.

permalink
report
parent
reply
3 points

I love having 16-bit applications hidden in my 64-bit OS

permalink
report
parent
reply
64 points

Well it’s written in Rust. Doesn’t that make it automatically awesome and fast?

permalink
report
reply
23 points

“It’s webscale”

permalink
report
parent
reply
18 points

Everyone knows relational databases don’t scale because they use joins.

permalink
report
parent
reply
1 point

Not sure if this is a serious blanket statement?

permalink
report
parent
reply
2 points

What does this mean?

permalink
report
parent
reply
6 points

It’s from this old meme video

permalink
report
parent
reply
42 points

It’s fine. Nothing impressive about it but nothing horrifying about it. Could use better testing and better documentation, it’s pretty weak on both fronts. It’s a pretty young/immature code base, hard to have much tech debt yet. Not like its core dependencies can be a decade out of date. But it’s easy to navigate and understand,relatively speaking.

permalink
report
reply
8 points

Could use better testing and better documentation

I’ve seen one dev talk about documentation and it’s admittedly weak, but they’re pretty impacted by everything else. It’s on the burner and they’ll work on it at some point.

permalink
report
parent
reply
4 points

that’s pretty much the definition of tech debt

permalink
report
parent
reply
41 points
*

As long as the backend is stateless, it can be scaled to handle huge amount of users, at least in theory. IMO the main issue right now with Lemmy deployment is pictrs not being stateless. It uses a filesystem-based internal database called sled. Not only this make pictrs not stateless, you can’t even run multiple replica of pictrs in the same host because sled would crash if the database file lock is already acquired by another replica. Someone with some rust skill should consider donating their time to add postgresql support to pictrs soon, which will greatly help making Lemmy scalable. Too bad I know nothing about rust.

permalink
report
reply
13 points

An interesting choice of solution there for image hosting… I would have thought they would have gone with a simple proxy through to an object store like S3, GCS, Wasabi, insert other clone here. Or even picked an off the shelf BLOB capable system for self hosting like Mongo or Cassandra. Then your image hosting becomes stateless as you just give each image a flake ID, pop it in the storage system and give back a shortened URL. I’m sure they had their reasons though :-)

permalink
report
parent
reply
1 point

I think pictrs has a not very well documented object storage option. I’m struggling to find the link right now though.

permalink
report
parent
reply

No Stupid Questions

!nostupidquestions@lemmy.world

Create post

No such thing. Ask away!

!nostupidquestions is a community dedicated to being helpful and answering each others’ questions on various topics.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules (interactive)


Rule 1- All posts must be legitimate questions. All post titles must include a question.

All posts must be legitimate questions, and all post titles must include a question. Questions that are joke or trolling questions, memes, song lyrics as title, etc. are not allowed here. See Rule 6 for all exceptions.



Rule 2- Your question subject cannot be illegal or NSFW material.

Your question subject cannot be illegal or NSFW material. You will be warned first, banned second.



Rule 3- Do not seek mental, medical and professional help here.

Do not seek mental, medical and professional help here. Breaking this rule will not get you or your post removed, but it will put you at risk, and possibly in danger.



Rule 4- No self promotion or upvote-farming of any kind.

That’s it.



Rule 5- No baiting or sealioning or promoting an agenda.

Questions which, instead of being of an innocuous nature, are specifically intended (based on reports and in the opinion of our crack moderation team) to bait users into ideological wars on charged political topics will be removed and the authors warned - or banned - depending on severity.



Rule 6- Regarding META posts and joke questions.

Provided it is about the community itself, you may post non-question posts using the [META] tag on your post title.

On fridays, you are allowed to post meme and troll questions, on the condition that it’s in text format only, and conforms with our other rules. These posts MUST include the [NSQ Friday] tag in their title.

If you post a serious question on friday and are looking only for legitimate answers, then please include the [Serious] tag on your post. Irrelevant replies will then be removed by moderators.



Rule 7- You can't intentionally annoy, mock, or harass other members.

If you intentionally annoy, mock, harass, or discriminate against any individual member, you will be removed.

Likewise, if you are a member, sympathiser or a resemblant of a movement that is known to largely hate, mock, discriminate against, and/or want to take lives of a group of people, and you were provably vocal about your hate, then you will be banned on sight.



Rule 8- All comments should try to stay relevant to their parent content.

Rule 9- Reposts from other platforms are not allowed.

Let everyone have their own content.



Rule 10- Majority of bots aren't allowed to participate here.

Credits

Our breathtaking icon was bestowed upon us by @Cevilia!

The greatest banner of all time: by @TheOneWithTheHair!

Community stats

  • 9.6K

    Monthly active users

  • 3.3K

    Posts

  • 129K

    Comments