News for hackers. Stuff that matters.
Re:Absolute truths I unlearned as junior developer by agumonkey on Friday June 07, 2019 @09:57AM (#20124510)
Then you have technical debt. Wordpress appeared good to end users, but we know how it is underneath and all the problem you get along[0]. It's a fine balance for sure, and forgetting that solving the problem first is what matters is a mistake indeed.

[0] about that, there seem to be a 'foot in the door' effect at play. If you get users with a good enough but imperfect product, they won't mind too much if you take responsibility for problems when they arise. Another instance of worse is better.

Re:Absolute truths I unlearned as junior developer by rb808 on Friday June 07, 2019 @10:19AM (#20124735)
Wordpress is a great example. Its the most successful, most love blogging platform and usually user's first choice.
Re:Absolute truths I unlearned as junior developer by agumonkey on Friday June 07, 2019 @10:24AM (#20124804)
Man, I cannot deny and submit to the reality of wordpress dominance. That said have you ever poked at wordpress plugins code ? I won't name the one I read but it was a catastrophy. And not in a pedantic purist sense, real catastrophy, dead code everywhere, while loops 8 screens long, copy pasted above each others. I think it was #2 most downloaded at the time.
Re:Absolute truths I unlearned as junior developer by TheOtherHobbes on Friday June 07, 2019 @10:42AM (#20125003)
The code is crap. Wordpress is crap. It's unsafe, open-to-hackers crap. The plugins are crap.

But it solves the problem users want solved. It's lego-level blog assembly, which is as technical as many users want to get. A much "better" system - maybe a nice type-safe Haskell static HTML templater with a command line build system - wouldn't.

Flipping this around, from the user's POV, "I wrote some code that almost does Thing X" is not a solution - it's just some code that doesn't quite do the job.

It's nice that it uses functional programming or formal methods or $shiny_language or ML or whatever. But if it doesn't do the job, it doesn't solve the problem.

Re:Absolute truths I unlearned as junior developer by agumonkey on Friday June 07, 2019 @10:45AM (#20125048)
I don't agree with the analysis. It's mostly that mainstream life floats on ambiguity and undefined contexts. Wordpress does some things perfect for users but then bug or leak or plugin conflicts happen. While other platform may have solved this prior but it's a problem that users didn't anticipate so they didn't value it.
Re:Absolute truths I unlearned as junior developer by BeetleB on Friday June 07, 2019 @12:16PM (#20126107)
He didn't say Wordpress solves everyone's problems. That it doesn't solve your problem does not negate his point.
Re:Absolute truths I unlearned as junior developer by agumonkey on Friday June 07, 2019 @12:50PM (#20126493)
bugs leaks and upgrade conflicts are not my problems but any wordpress user problems
Re:Absolute truths I unlearned as junior developer by leeoniya on Friday June 07, 2019 @10:37AM (#20124942)
and globals. mutable globals everywhere. (at least last time i ran away from it all after having to fix an EOL'd plugin 10 years ago).

never again.

Re:Absolute truths I unlearned as junior developer by oblio on Friday June 07, 2019 @10:45AM (#20125046)
Why don't they fix it? It's long lived, it's popular, they have to maintain it.

Yes, there's backwards compatibility to maintain, but surely some of it can be contained, maybe with shims, like Windows does it.

Re:Absolute truths I unlearned as junior developer by stickfigure on Friday June 07, 2019 @12:02PM (#20125935)
Why don't they fix it?

In all likelihood, because the people maintaining Wordpress are the people who created it in the first place, and they don't know any better.

Why did PHP apps suffer from SQL injection attacks, long after PHP supported prepared statements? Why do Java apps often have ridiculous classes like AbstractSingletonThingFactoryFactory? Why does the Javascript community (still) promulgate useless leftpad-like packages? Why do Ruby apps often end up so heavily metaprogrammed that you can't trust any line of code to do what it says?

Cultures are hard to change. The people that are turned off by Wordpress' programming style probably pick other projects and other communities. Lots of the folks working on Wordpress probably cut their teeth in that codebase. They might not like it and they might realize there are better ways, but there probably isn't a critical mass of them that share a vision out of the morass.

Personally, I took one brief look under the covers of Wordpress and immediately decided to avoid it.

Re:Absolute truths I unlearned as junior developer by agumonkey on Friday June 07, 2019 @10:48AM (#20125083)
Maybe a 'if it aint broke dont fix it' paired with 'lets make this new feature instead'.
Re:Absolute truths I unlearned as junior developer by hanniabu on Friday June 07, 2019 @10:58AM (#20125192)
There's such a thing as taking the backwards compatibility meme too far though. You can't keep catering to those that drag their feet. Release an update and say that the legacy will no longer be supported a year from now.
Re:Absolute truths I unlearned as junior developer by PavlovsCat on Friday June 07, 2019 @10:21AM (#20124755)
Re:Absolute truths I unlearned as junior developer by MaxBarraclough on Sunday June 09, 2019 @05:40AM (#20138178)
Ugh. The submitter there uses Some of you guys are killing people figuratively. Are they not aware that bad software really does kill people?

I was expecting to see some ill-advised use of WordPress in a critical software system, but no, it's about inconveniencing web developers. </rant>

Re:Absolute truths I unlearned as junior developer by bdcravens on Friday June 07, 2019 @10:20AM (#20124746)
Debt (technical and otherwise) is leverage if utilized well, and potentially crippling if abused.
Re:Absolute truths I unlearned as junior developer by chessturk on Friday June 07, 2019 @11:00AM (#20125222)
I knew a shop that refused to move its customer data out of an ancient MS Access instance until one day it just started shedding records.

That's what I think of when I hear technical debt.

What are examples that make sense and don't just explode in your face?

Re:Absolute truths I unlearned as junior developer by pdpi on Friday June 07, 2019 @11:11AM (#20125328)
Whatever it is you're writing doesn't have to work for the next twenty years. If it's sufficiently simpler and cheaper, it's fine if that project only works for the next five years, and you have to start working on a rewrite in four. By then, you'll either have gone broke (in which case the extra scaling would've been useless anyhow), or you'll have four more years of experience to guide you in how to build the next generation.

In your particular case, that MS Access DB was almost certainly the right choice when it was written, and the gotcha in that story is that they didn't start planning the migration away from Access until it was too late — effectively, they didn't pay off the tech debt when they should have, and got foreclosed on.

Re:Absolute truths I unlearned as junior developer by bcrosby95 on Friday June 07, 2019 @11:16AM (#20125389)
An example of really bad technical debt we made in one of our projects was: back when Facebook apps were a thing, another social networking site released an app platform that was very similar to Facebook. Some companies had early partnership and launched at release, but we weren't aware of it and were caught flat footed.

Our code wasn't built to be generic enough to be able to work on anything but Facebook. So what we did was simple: copy the whole project, change the stuff that didn't work right.

The next time a social networking site released a platform we refactored our main code and introduced the proper abstractions so we could use it on all 3 sites. That code ended up working for most of the other social networks that launched an app platform.

Re:Absolute truths I unlearned as junior developer by bdcravens on Friday June 07, 2019 @11:18AM (#20125417)
I'll use your example: I've seen companies start life as Access databases and make plenty of money, and then pay for the proper rewrite out of the revenues generated, instead of doing it the "right way" up front. (when the costs to do it up front may have resulted in a failure to launch)

I don't think it's the type of debt that's the issue, as much as how you manage it.

Re:Absolute truths I unlearned as junior developer by CPLX on Friday June 07, 2019 @10:42AM (#20125017)
Wordpress is spectacularly useful and successful.
Re:Absolute truths I unlearned as junior developer by agumonkey on Friday June 07, 2019 @10:48AM (#20125091)
Note that I don't claim otherwise.
Re:Absolute truths I unlearned as junior developer by bumby on Friday June 07, 2019 @10:18AM (#20124724)
I think part of the problem is that humans are fundamentally present-biased. So low quality code that can avoid a schedule delay today is considered preferable to higher quality code that prevents even larger schedule delays in the future.
Re:Absolute truths I unlearned as junior developer by taneq on Friday June 07, 2019 @12:24PM (#20126212)
> Another instance of worse is better.

I hate this term, because worse isn't better, it's worse. But good enough is good enough and technically-better-but-not-available-yet is worse than adequate-and-available-right-now.