8

Raddle codebase

Submitted by surreal in meta

Now that Postmill is abandoned Raddle will see no features or bug fixes while running under this project. Maybe at some point raddle should move on to something that won't depend on a single person to avoid the same thing happening again.

Apparently many of raddle's users could contribute to the project but the language it's currently implemented in is a limitation. which means that the codebase should probably be in Python.

A custom solution may be the only option, any ideas on the matter are appreaciated.

Comments

You must log in or register to comment.

7

emma wrote

Apparently many of raddle's users could contribute to the project but the language it's currently implemented in is a limitation. which means that the codebase should probably be in Python.

From what I could tell, it was always about back-seat programmers being unhappy that Postmill wasn't written in their favourite language, not PHP being any kind of limitation. I can assure you that redoing 15 months and 28,000 lines of work in Python for the benefit of talkers with a questionable commitment to the project isn't going to bring in more contributions, but will just be a massive waste of time.

-1

surreal wrote

You're right but i see no other option if raddle wants to survive the long run. I hope raddle will outlast any codebase it's written on.

I would have contributed day1 if it was Python, cause that's the only language i really grok. I even started playing with PHP when i came across Postmill but still a big newbie to actually take over maintaining the project, and Symfony is another beast by itself (ORM in docstrings? wow)

I have to disagree on PHP not being a limitation though, the language is declining in popularity and evolvement and most of the new programmers learn Python as their first and probably only, backend language, so that will enable more contributions in the future.

If someone takes over maintaining Postmill that would be the best and a reason for me to keep learning PHP.

8

emma wrote

I have a lot to say about your post, especially the part where you say I'm right, then start listing reasons I'm wrong, but I'll just make two points:

I have to disagree on PHP not being a limitation though, the language is declining in popularity and evolvement and most of the new programmers learn Python as their first and probably only, backend language, so that will enable more contributions in the future.

Any programmer worth their salt will be able to apply the concepts they've learnt in one language to another. At university, we're expected to grok both PHP and Python after spending a few semesters writing Java, because these languages aren't wildly different once you look beyond syntax.

If Postmill being PHP weeds out contributions from people who cannot comprehend code in terms of abstract concepts, or who cannot take ten minutes to figure out PHP's syntax, then awesome.

If someone takes over maintaining Postmill that would be the best and a reason for me to keep learning PHP.

You can be this 'someone'. Be the force of change you want to see in this world.

0

surreal wrote

I agreed on being a waste of time, every rewrite ever was a waste of time, that does not mean is was not a time worth wasting though. I only disagreed on PHP where do you see a listing?

It's a fact that php is dying and It's not a matter of just applying the skills and spenting 10mins on the language but the time and mind investment one must make to learn the idioms and quirks of the language and PHP has a lot of them so people just don't make it cause this is not university, you actually have a choice.

My only reason to ever look at PHP was Postmill and my skills will always be to that of a small contributor rather than maintainer of 25k loc i never wrote.

Btw how high is the test coverage?

4

NEOalquimista wrote

Here's the departure message emma left on GitLab. If you scroll down, you'll see someone left a comment offering help to keep Postmill alive. That's nice. It shouldn't die. I'm still beginning on web development, and one of my goals is the ability to help this project in some way, some day.

3

surreal wrote

That actually may be a good thing for raddle, if emma continued her work on Postmill even though feature requests would come from another place, raddle can at least update for fixes.

3

DissidentRage wrote

Hot take: Python web development, at the present time, is shit.

The divide between the 2 and 3 branches has existed since I've been in the field, with most Linux distributions (the most common platform for servers) still depending very heavily on scripts that work exclusively in 2. You will have an easier time writing for 2, but you will be contributing to a problem that has existed for a long time. Writing for 3 is the future. Unfortunately that entails having to run "virtual environments" within your server to feign all attempts to run Python code as using 3. This method has very steep requirements of consciousness and mistakes can break your entire setup. It is fragile to the point that even trying to update your pip install will break it.

I understand because Python in general is a nicer language. It has some really convenient shorthand syntax and the enforcement of whitespace is a real boon to code readability. But as a web development platform I don't see it as being worthwhile without having a dedicated sysadmin who will take the brunt of its shit practices so a web developer doesn't have to.

PHP may sometimes look like an ugly mess that still hearkens back to its days as a Perl imitator but nobody worth their salt as a developer writes procedural PHP anymore. With the most recent major release many of its performance problems have been streamlined. It basically works the moment it's installed, can hook up with an Apache/Nginx daemon that doesn't need to be restarted if your application runs into an error, and it has a top-notch package distribution system. PHP may be declining in popularity but it has a lot more to do with outdated snark, Haskell hipsters, and business managers wanting to use enterprise environments like .NET and Java, not because it's an intrinsically bad language.

2

surreal wrote

what do you mean it's shit? what is not shit in the realm of web dev? every MVC framework out there is shit regardless of language and the ones that are not MVC are just an entagled mess of code. imo MVC leads to a mess too. "The web/database is just an IO device" why should the logic of the program depend on the UI stuff and the ORM?

All languages have something to offer. Python offers readabilty and that makes coding less painful that's why it's the first choice for someone without a CS background and the only choice for someone that doesn't want to learn programming but has to cause it helps them in their field.

Python2 is almost dead Python3 is a better and faster(>=3.6) language. Why do you hate virtual envs, they are like very simple app "containers" and you can have different versions of the same package. always run inside venvs and dont try to upgrade just a make a new one. still waiting for the Pipfile though..

1

DissidentRage wrote (edited )

every MVC framework out there is shit regardless of language and the ones that are not MVC are just an entagled mess of code. imo MVC leads to a mess too. "The web/database is just an IO device" why should the logic of the program depend on the UI stuff and the ORM?

This tells me you've never actually done serious work with any MVC frameworks - at least none that were any good. The point is to separate those things out into different concerns so that if you needed to change one component you wouldn't have to rewrite the entire application.

The idea behind "the web/database is just an IO device" is specifically to prevent you from needing to address the way the UI and ORM are set up if you need to change those things. You could for instance move from MySQL to MariaDB or PostgreSQL by pointing it to a different database server and using a different package to handle the database transactions without having to change your actual application structure.

It only becomes a problematic mess when you're looking at code from people with no system design experience who couldn't tell the difference between a repository and a factory or write SQL statements into controller methods. By separating things out at different levels you make it so you only have to deal with the levels of complexity of operations equal to the levels of complexity of the changes you need to make to your application.

All languages have something to offer. Python offers readabilty and that makes coding less painful that's why it's the first choice for someone without a CS background and the only choice for someone that doesn't want to learn programming but has to cause it helps them in their field.

Kinda making my point and emma's. If you don't want to learn to do proper development you have no business architecting something like Postmill because you will end up doing a disservice to your user base in the end.

Python2 is almost dead Python3 is a better and faster(>=3.6) language.

Support is not adoption rate. And yes Python 3 is much better and faster than 2 but you still have to contend with the PEP 394 standard which suggests that the basic python package simply create a symbolic link to python2.

Why do you hate virtual envs, they are like very simple app "containers" and you can have different versions of the same package.

It's work that's only required because of the fundamentally broken development environment that it needs to run in, which I covered on the previous reply. Perhaps there are ways now of making it more convenient, but it's still working around an antipattern that was borne out of necessity since the Linux community has been carrying Python 2's dead husk.

My frustration at this comes from actually trying to migrate into the Python community and finding its development environment being fragile to the point of masochism.

1

surreal wrote

Venvs were created so you can have different versions of packages and it's dependencies and it has nothing to do with the py2-3 difference.

I have worked a lot with Django and if you think it's shit then it's a matter of opinion cause reality proves it works very well for all kind of systems.

I agree with "the web/database is just an IO device", i meant that MVC frameworks are not built with that in mind. Separation of concerns is not just being able to drop MySQL for MariaDB (which is an exact clone..) and Postgres which is almost the same. What about NoSQL or you know just plain CSV files because why the fuck no? And what about the UI? how do you turn a webapp into a desktop app with GUI? Node.js? nah.. Most MVC frameworks are not modular in these regards. Btw Symfony uses comments as an API to the ORM which is something you will never see in a Python framework and it's disturbing.

What if Postmill never gets another commit, would you expect raddle to die as well? The userbase is raddle and feature requests go in vein. The architecture is already there to clone, this is not something only the elite devs can do, this should be for the community, wasn't it this way all along? It's better to have the most contributors you can get so the community is safer from those elite software architects.

3

md_ wrote

Hm, as a fresh member who was ready to start investing some time in raddle, seeing this post is a bit concerning. I don't know the backstory, but it seems inevitable that something will always happen that will either break the community, or the software the community relies on (or both). I've seen things like this happen in many communities in the past.

For what is worth, maybe whatever raddle adopts next should rely on an common protocol implemented by many different forum software (to handle this situation, of the software running raddle being abandoned), and which can federate (to handle another scenario, of the specific instance going down). Maybe an extension of ActivityPub for forums.

2

surreal wrote

maybe Raddle can live in a Mastodon instance?

2

md_ wrote

I don't know if Mastadon, or the underlying OStatus and ActivityPub, can support forum-like categories and threading. But I hope so.

2

surreal wrote

i will have to take a closer look at this protocol, i expect it to be abstract enough to support something like raddle.

1

surreal wrote

From what i can tell these protocols were created for realtime communication which is interesting but not fitting for a forum style static website.

1

md_ wrote (edited )

I don't know about real time, but indeed they are more suited for microblogging.

Now, there's I2P Project's Syndie, for distributed forums, but that's done inside an app, not on the public web. For raddle, I guess being on the public web is important.

3

dele_ted wrote

Just to make sure I'm not misunderstanding anything - what you're saying is that the best solution would be to completely rewrite Raddle from the bottom up in Python?

2

surreal wrote

the best solution would be to keep Postmill codebase, if the migration to something is else is chosen then a custom solution may be the only option. The data is already there so anything should sit on top of that.

This doesn't have to be a rushed decision, Raddle's codebase is not that big, a clone in Python is doable if more than one people contributed.

4

dele_ted wrote

I can see what you mean. I'd gladly spend some free time on the project if we actually end up writing a Python clone. We'd need more than one or two developers, though, and they would have to be pretty engaged with the project.