4 ms·
Cute. Now, back to reality, where 99% of the code is dead simple stuff that sticks around for years. I am really starting to believe it is a fault to be too cle
by EternalFury 14y ago
Cute.
Now, back to reality, where 99% of the code is dead simple stuff that sticks around for years.
I am really starting to believe it is a fault to be too clever in software development. Granted, the easier your code is to understand, the better it is for business.
- neeleshs 14y agoInterestingly, this fizzbuzz (not the inverse) is used in several contexts in my current project. But you are right, 99% is probably a very good estimate of dead simple stuff
- eitally 14y agoNope, not even close. Yes, CRUD apps and simple parsers/middleware are dead simple in theory, but when you have scores of execs fighting over quirky business rules, combine that with attrition and years of technical debt and even simple things become complex, crufty codebases. Pile on regulatory compliance and other external factors and it gets unmanageable quickly. Dealing with this is one of the biggest reasons type A programmers leave the enterprise space -- if you are frustrated easily by politics and nonsensical requests, AND you are confident enough or empowered enough to say not, the odds are high you will be unhappy.
- raganwald 14y agoTo me, the notion that 99% of a code base is dead simple is like the notion that Human DNA is 99% similar to Chimpanzee DNA. There’s only 1% difference, but oh what a difference that 1% makes!
- dustingetz 14y agoi'm not sure what you're working on, but in many enterprise problems, the business complexity is ridiculous: see < http://c2.com/cgi/wiki?WhyIsPayrollHard http://c2.com/cgi/wiki?WhyIsPayrollHard >. functional programming techniques eliminate several classes of bugs that I see all the time in large codebases, and the quality/correctness benefits make maintenance much less expensive.
- EternalFury 14y agoThere is a difference between dead simple problems and dead simple solutions. You can always come up with complex solutions to dead simple problems. And that's the biggest problem of all. Also, very often, it's not software that does not scale, it's people working on the software. Clearly, there are relatively few developers in the marketplace who can master the most advanced software development techniques. In practice, "clever" code will be misunderstood sooner or later, its complexity will increase as "lesser" developers patch it down to a level where they can understand it, expand it and correct it. And so you end up with large balls of mud, initially clever code turned into tremendous sources of complexity. If you look at the pillars of Internet, HTTP, FTP, telnet, IP, TCP, POP, SMTP, etc. There is 1 common factor between them: They are dead simple solutions to specific problems. And that is why they stood the test of time.
- rboyd 14y agoI don't think I would describe most of these protocols as "dead simple". Consider the multitude of attacks that existed/continue to exist against some of these protocols after decades of use. TCP reliable transmission and flow control are pretty tricky. The connection state diagram alone in RFC793 is non-trivial.