Ask HN: What are some poorly written but very successful open source software?
33 コメント
WordPress, phpNuke, phpBB, most of the old PHP CMSes and E-Commerce systems. The code is dirty and hacky, but the software is useful for millions of people.
vBulletin is another one to add. I've looked at the source code and it's full of comments along the lines of "// I'm not sure if this needs to be here" and "// Not sure how this works."
Last time I looked PHPNuke was horrifying, PHPBB was just outdated, and WordPress was pretty damn good.
A lot of people assume WordPress is poorly written because it got a reputation for being insecure. But modern WordPress is pretty well written and in part due to its automatic update mechanism pretty secure.
When was the last time you looked at WordPress?
A lot of people assume WordPress is poorly written because it got a reputation for being insecure. But modern WordPress is pretty well written and in part due to its automatic update mechanism pretty secure.
When was the last time you looked at WordPress?
> WordPress was pretty damn good
Building your own userland SQL Prepared Statements 'replacement' using string replacement is not "pretty damn good".
WordPress is notorious for refusing to drop support for ancient, unsupported versions of PHP.
WordPress is a fucking terrible solution to any problem, from a technical point of view.
Building your own userland SQL Prepared Statements 'replacement' using string replacement is not "pretty damn good".
WordPress is notorious for refusing to drop support for ancient, unsupported versions of PHP.
WordPress is a fucking terrible solution to any problem, from a technical point of view.
It seems to be solving 25% of all the problems https://martechtoday.com/wordpress-used-on-25-percent-of-all...
I said it's technically a piece of garbage, confirming that it fits very much in the topic of "poorly written but very successful"
That 25% of sites use it just proves the successful part, and says nothing about how appropriate it is technically.
That 25% of sites use it just proves the successful part, and says nothing about how appropriate it is technically.
Haven't looked at the code in a long time and it's probably as you say, not very nice code, and you are right that indeed WP fits this thread, BUT, i take issue with this phrasing "terrible solution to any problem" leading the reader to think that whatever he is trying to do, WP is not the answer. If it was such a terrible solution it wouldn't be were it is.
I completely forgot about PHPNuke. Damn, that brings back memories.
Browsing the source of games like Nethack and Battle for Wesnoth (around a decade ago) opened my eyes - sometimes code quality can seem poor but the product can be great.
Blender is another one that seems very ramshackle and complex. I won't go as far as saying it's poorly written, but it's a product of many contributors, including students, and yet it's an amazing piece of software.
This thread is not meant to be a criticism of projects, but a celebration that code quality is not the be all and end all.
Blender is another one that seems very ramshackle and complex. I won't go as far as saying it's poorly written, but it's a product of many contributors, including students, and yet it's an amazing piece of software.
This thread is not meant to be a criticism of projects, but a celebration that code quality is not the be all and end all.
Nethack has great code! It's very easy to follow and has tons of comments.
The comments are great but for me it's old-style c makes it hard to follow, it uses lots of short var names that are forward declared, doesn't pass length with char* arrays, etc. But I don't want to criticise any particular thing, because it works amazingly well. It's one of my top 10 games.
Joomla - both code and UI were beyond horrible, but I still turn down random Joomla projects on a yearly basis.
Though I live and breathe it, emacs C source base is amazingly nasty. The fact that it still uses redisplay and memory dumps after integrating so many improvements over the years...
If you consider:
1) Most of Linux source code is composed of drivers;
2) Most drivers for Linux have really bad quality code, with very few exceptions;
Then Linux is a perfect example.
1) Most of Linux source code is composed of drivers;
2) Most drivers for Linux have really bad quality code, with very few exceptions;
Then Linux is a perfect example.
Any Java plugin for Minecraft written by teenagers looks like a heresy for Enterprise Java developers...
I don't know the details but i've read sth similar regarding Calibre.
knowing the frontend I can imagine how it looks beneath
It does OK being able to get stuff out of Calibre.
The source code of procmail is terrifying
vTiger CRM. The worst code I have ever seen but still used by lots of businesses.
Yes, that's 200% true. After few customization, my programming skills goes down by 50%. I forgot some basic syntax.
I heard OpenOffice was a mess years back though I don't know about now.
I wouldn't touch OpenSSL with a ten foot pole.
Sendmail.
The chapter about Sendmail in Architecture of Open Source Applications[1] gives an explanations as to why it is so convoluted. Sendmail was originally written when TCP/IP and SMTP did not even exist.
[1] http://aosabook.org/en/sendmail.html
[1] http://aosabook.org/en/sendmail.html
That's not the real problem. Sendmail was written when databases didn't exist in the UNIX world and before UNIX had locking mechanisms. Many of the legacy problems with UNIX/Linux come from components which maintain a database with special purpose code. Sendmail, BIND, login/passwd, etc.
Drupal, wordpress, docker, xamarin, unity. and mono
openssl!
Docker.
[deleted]
That's probably one of the dividing lines. There are many programs that have "bad" source code, but which are still essential.
Another measure of "badness" could be how extensible, or not a program might be. Or even how many security-holes. With regard to security holes some projects such as Wordpress or Wireshark crop up too often.
But honestly? Most of the badly written programs aren't so bad, if you ignore a couple of outliers. If the benefits outweigh the drawbacks then the software leaves the world a better place.