I've been programming on and off since I was a kid. At some points in my career I've done it professionally and consistently. Nowadays however I just want to make something interactive. The thing is, my mind is full of conventions.

"You wanted a banana but what you got was a gorilla holding the banana and the entire jungle."

Joe Armstrong, creator of Erlang, on object-oriented programming

The modern development landscape is a landmine of choices

If one were to make an interactive site in 2023, just starting can be overwhelming. Shall I use a framework? Where's the latest reset.css? Shouldn't I be letting npm manage my packages? What browsers should I be supporting, and what polyfills do I need?

God forbid someone just start with an index.html and manually type out the words <html> and </html> without a linter autocorrecting and autoclosing tags for us, which is why I did exactly that.

<!DOCTYPE html>
<html>
<head>
<script>
var packages=0;
function inspect_package(number) {
    packages = packages + number;
    document.getElementById("inspected_packages").innerHTML = packages;
}

</script>

</head>

<body>


<button onClick='inspect_package(1)'>inspect the package</button>
<p>number of packages inspected: </p>
<p id='inspected_packages'></p>

</body>

</html>
The beginnings of an incremental game.

Anyone with a lick of professional game or programming experience knows that these should be separated out into their own files and the "inspect the package" text should be saved as a localization string for future translations. But I've abandoned all that for the meantime to simply try a few ideas out.

That's not to say that the organizational work of "doing things right" is a boring drag. But being bogged down by decisions to ensure proper programming conventions at this point will keep me from simply developing the idea.

Also, those "proper programming conventions" exist to accelerate development. Many decisions can be made organically as the program scales. What's great about experience is knowing that you're about to experience a speed bump and avoiding that by making decisions early on. But the idea here is to make those decisions as they must be made, and not all at once.

Looking to art

Naive art refers to art made by those without formal schooling. They don't carry the "jungle" of artistic conventions taught in school in their head. I am applying the same principle here. I have a vision of an interaction in my head, and I'm just going to focus on that.

So - what is naive code? It's just coding to get something done, without letting too many conventions get in the way and googling as I go along.

Not everything about naive art can be applied to code. I can already hear the screams of anguish over technical debt. That's why I think of it as an initial approach to investigate an idea. Is what I'm building something I like? Am I having fun with it?

How many ideas have we had that simply stay ideas because we feel overwhelmed just to start them? I know I've had my fair share. I'm sick of being struck by inspiration only to be grounded by reality. I want to stay in the clouds just a little bit longer. The box of "good programming" can wait until then.