Hacker News new | past | comments | ask | show | jobs | submit login

If you're considering Action<T> and the numerous Func<T> implementations, then I disagree mostly.

They decrease efferent coupling but do not decrease bugs.

There is no direct correlation between readability and bugs from my experience. Some of the least buggy code I've seen is messy and likewise the most buggy can be the most readable. There is not enough correlation to draw that conclusion.

The metric that is important is the skill of the programmer who fulfilled the specification and their ability to understand the task fully and their ability to translate that understanding to the language at hand and know where and when things will go snap.

Things that DO increase bugs:

1. Crap programmers.

2. Coupling - log increase in side effects of a change.

3. Bad test coverage.

4. Poor design up front.

5. The killer: bad specifications (not even a code issue!).

Using more advanced language features does not necessarily improve things.




I have one for your list:

0. APIs that don't leverage the compiler to enforce correctness and catch bugs at compile time.

Designing APIs in such a way often requires FP language features. You can often model equivalent APIs without FP features, but they'll be so verbose as to be unusable.




Join us for AI Startup School this June 16-17 in San Francisco!

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

Search: