Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There is such a thing as simple code.

The job of the engineer is to make complexity simple, even when your target market is other engineers.

The complexifiers and verbose Vogons persist heavily today though, as well as project management processes that create an infested myriad of complexity from shallow code to legions of dependencies and asset flipping rather than an effort to be close to the actual standards that run things, abstraction overuse is a major problem.

Simplicity takes a professional to achieve and maintain. Simplicity and simple parts lead to "clean" code.



Absolutely, and I'd say:

> make complexity simple, even when your target market is other engineers

including and especially if the target market is other engineers.

Simplicity though is achieved with additional effort. It almost always requires additional effort to make the implementation simpler while having the same outcome.

It's why my personal motto is "Think more, write less". This, however, is not something that's encouraged in software companies. You are supposed to be sitting there and typing non-stop, that's what they call a "software engineering job".

In fact I never call any code "clean" because the term is vague. All that matters is how simple it is and thus how maintainable and performant, though occasionally the two can contradict each other, but most of the time they don't. Say, a complex caching algorithm can improve performance, so that's an exception. But most of the time simple is a synonym of both maintainable and fast. Can't think of anything else that matters, has real practical consequences and is not just hand waving around "common practices".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: