

What is "Professional" Code? - watmough

In your experience (or opinion), what are the differences between so-called professional code and code as a hobby?<p>I'm thinking of what actual code looks like in this case, rather than the overall result of a software system.<p>Personally, I'd venture that code that becomes part of shipping or bespoke products can often be highly constrained by compatibility with older products, and maintainability requirements for programmers who may be rotated in and out of roles with some frequency.<p>Can these restrictions make code better, or do they typically make it worse?
======
tjr
As I've mentioned here before, I've done work on avionics software, which
probably has some of the strictest development constraints you'll find.

Generally, these constraints include some things that we'd probably all agree
are good: consistent naming conventions, for example. But these constraints
also encourage very simplistic coding, such as, no recursion.

Code that follows the constraints tends to be extremely procedural, and tries
to avoid complexities of the language. This is for the purpose of verifying
that the code really will do what we claim it will. If someone, say, messed up
at recursion, it could exhaust too much memory and the box could die.

The result is very robust, but it lacks character. It's rarely beautiful and
elegant. But we are about as sure as we can be that it works.

[That is not to say that recursive, elegant code does not work, just that,
it's harder for a team of hot-swappable software verifiers, potentially just
out of college, to match the code up with the requirements, or to ensure that
non-obvious code is correct.]

