Live data from Hacker News

Anti Mediocracy Manifesto for Software Development

gabordemooij.com

101–110 of 110 posts

Re: Anti Mediocracy Manifesto for Software Development

#101
post #100

Earlier quoted context omitted.

>A large number of natural distributions follow a power-law distribution. This is surprisingly debatable. People like to find power-law/scale-free distributions because it implies a neat generative story, but a lot of the "evidence" for power-law distributions is pretty weak. For example, you cannot just show that a log-log plot is linear--lots of other distributions can produce similar plots. Clauset, Shalizi, and N…

Agreed. The old saying is "anything looks linear when plotted on a log-log graph." However, the OP was giving a rough approximation in the first place, in saying that all natural distributions follow a Gaussian curve. But Gaussian curves go from -∞ to +∞. Many of the real-world distributions must only have positive values, like heights and weights. Although for real-world purposes, they can usually be approximated as…

Oh sure. When there's a plausible reason for thinking something is scale-free, I'm all for it.

For a while though, it was en vogue to find power law distributions in all sorts of weird places (email response times, numbers of friends), and that's what I was attempting to object to!

Re: Anti Mediocracy Manifesto for Software Development

#102

Lost me here: "Therefore, our true purpose is to express the intentions of our clients using as little code as reasonably possible, accompanied with lots of documentation and lots of tests (testing code and unit tests don't count as LOC). We should distrust every line of code written by ourselves as well as those written by others. The best code has 0 lines. Because in zero lines of code, there is room for exactly ze…

The Unix command /bin/true (do nothing, exit with code zero) can be implemented as an empty file. When it's run, the kernel doesn't recognize it as binary code, so it gives it to /bin/sh to run.

There's at least two bugs in a zero-byte implementation of /bin/true: it's too slow and it uses too much memory.

Re: Anti Mediocracy Manifesto for Software Development

#103
post #15

While very idealistic and beautiful in a way as all manifests tend to be, we (along the author) tend to forget certain truths - the middle of the gaussian curve is fattest; all natural distributions follow that curve, and developers are no exception. Most of us, by definition, are mediocre. There's nothing that can be done about it. We should not shun, but rather embrace that. Not by deluding ourselves that if we fol…

The main problem is management wanting shiny and new and not being aware of the value of paying down technical debt.

Re: Anti Mediocracy Manifesto for Software Development

#104

Earlier quoted context omitted.

Then why do I spend so much time fixing bugs in code where the concept was complicated to the nth degree so it could be written in five lines instead of ten? I agree that fewer lines of code is better, unfortunately if you hold that concept in too high a regard it's easy to make a mess. Some programming challenges are complex and the complexity can't be avoided. Sometimes solving that problem in fewer lines of code m…

Those 5 lines probably had 100s if not thousands of lines backing them. Maybe best to say 'fewer lines of code executed' as it doesn't really matter whether those lines are in a library or in your project, they still have a chance for bugs.

You're missing the point, it's not about executed code it's about concepts and simplicity.

Sometimes people work too hard to make two functions with slightly different objectives into a single complicated function. This can save lines of code since you aren't writing two similar functions. In general this is good practice but it's VERY common to take this too far, and it's very likely that the resulting complicated function will be MORE prone to bugs than the two simpler functions would have been.

Re: Anti Mediocracy Manifesto for Software Development

#105
post #94

Earlier quoted context omitted.

Being mediocre is a choice. It's the choice of the lazy and unemployed.

Sir, may I please look at your horse? It seems pretty high, would you step off it, please, and face the reality?

Accepting being better than some people is accepting being worse than some other people. One thing is for certain; we all aren't just as good. Who is really ignoring reality? Is it the person who thinks he has room to improve or is it the person who thinks he can't improve and has no reason to improve?

Re: Anti Mediocracy Manifesto for Software Development

#106
Personally, I would have gone further.

Somehow people forgot the old Ethos of being a programmer working on slow machines that had only 8k of ram or so. This would train humility, the art of writing small and efficient code, etc.

Now kids implement factories all over the place when they are not needed (amongst other patterns), it's a pattern galore really. As if they used fancy data structures regardless if they are needed or not just to float their ego; reassuring themselves that they do know tons of stuff.

ah well... Sorry for that rant :)

Re: Anti Mediocracy Manifesto for Software Development

#107

Earlier quoted context omitted.

...and mediocrity != mediocracy.

Corrections to the article have been made, and it is now at http://gabordemooij.com/index.php?p=/manifesto The power of peer review!

Nice. Peer review continues: wortless.

Uh, I kinda like the tone, but this guy might not be familiar with the decades of math and engineering that back something like Haskell.

It's true, there's an art to writing software, but...

Tools (practices, ideas) that have been honed and refined to the point that they are reflections of physics and logic aren't to be dismissed.

Those tools are to be wielded by artists!

Re: Anti Mediocracy Manifesto for Software Development

#108

Earlier quoted context omitted.

And I disagree right back at you :) All you're doing is shifting complexity around. Don't want one big piece of complex software? Fine. Break it up - now you have a bunch of simple pieces of software that all need to work together in a complex manner. You still need to plan for how all that works, and that often requires complex requirements. It's not "certainly less complex". The total complexity of the system is st…

And I... Kind of agree? :). You do have to plan out your software, I guess I kind of de ied that. I was wrong. You were right. Take your victory dance, then sit down, I'm not quite done yet. >It's not "certainly less complex". The total complexity of the system is still the same. The total complexity of the system is the same, yes, but the GLOBAL complexity of the system is significantly reduced: A lot of complexity…

How is it reduced if you have everything needing to communicate back and forward? Sounds like more complexity to me.

Re: Anti Mediocracy Manifesto for Software Development

#109
post #108

Earlier quoted context omitted.

And I... Kind of agree? :). You do have to plan out your software, I guess I kind of de ied that. I was wrong. You were right. Take your victory dance, then sit down, I'm not quite done yet. >It's not "certainly less complex". The total complexity of the system is still the same. The total complexity of the system is the same, yes, but the GLOBAL complexity of the system is significantly reduced: A lot of complexity…

How is it reduced if you have everything needing to communicate back and forward? Sounds like more complexity to me.

The components aren't necessarily separate apps, but even if they are, that problem has been solved many times over. Take your pick: HTTP, raw sockets (TCP or unix domain), ZeroMQ, RabbitMQ for larger projects, Shared Memory, pipe(2) (and friends), hell, even message queues and semaphores, if you hate yourself...

Re: Anti Mediocracy Manifesto for Software Development

#110
post #94

Earlier quoted context omitted.

Sir, may I please look at your horse? It seems pretty high, would you step off it, please, and face the reality?

Accepting being better than some people is accepting being worse than some other people. One thing is for certain; we all aren't just as good. Who is really ignoring reality? Is it the person who thinks he has room to improve or is it the person who thinks he can't improve and has no reason to improve?

That's not what you said.
Post reply on HN