DEV Community

Cover image for Programming Languages as Tools
Callum Connolly
Callum Connolly

Posted on

Programming Languages as Tools

Tools are an exceptionally useful invention. Hammers allow us to do things with our hands we'd never be able to usually. Erasers exist for fixing mistakes. Programming languages, for the countless that exist, are tools to help us to solve a problem but do not solve problem themselves. We are the ones that solve the problems - it is important to understand this, as it allows us to focus on the problem itself that we are fixing, not on the solution in our chosen language.

When we use a hammer to nail something together when making a bed, the problem isn't that we need to drive this specific nail through this specific joint. The goal is to join together two pieces of wood to create a frame. A hammer, and a nail, is the tool that we are using for the job, but there are others. We could use woodworking joints, we could use glue, straps. Anything. We may even realise that we don't even need to join together these two specific pieces of wood.

The same idea goes for programming languages and other programming tools.

Programming tools allow us to take shortcuts in the process of development, but it is important to take the time to understand the underlying processes that are occuring, the changes we are making, the files we are affecting etc. Similarly, every single day we use these tools built upon the knowledge, labour, and millions of collective (wo)man hours of programmers mostly without knowing it to even solve simple problems, like googling your own problems, logging into a server, or running a program.

Programming languages are just tools which are defined at a certain level of abstraction with a specific syntax to allow us to flip bits (This is a gross reductionism). The goal of a language is to flip bits. The goal of using a language is to solve a problem. Each languages has it's own advantages and disadvantages which make them more, or less, appropriate in a given situation. Our goal as programmers isn't necessarily to write code. Our goal is to solve problems (or even better, eliminate them), using the skills, resources (both human and technological), and knowledge that we have at our disposal.

Discussion (0)