The Frontend Scientist

A web developer is a generic term for a developer who works on frontend and/or backend code, and whilst it can be confidently said that those who work on backend code are also programmers, the same cannot be said for those who work on the frontend.

To some, frontend development is not programming, as neither HTML nor CSS are considered to be programming languages, a fact I largely agree with. Of course it’s not as straightforward as that, because the world of frontend development is a generalised one, and whilst one frontend developer may only use HTML and CSS, another may also be heavily involved in JavaScript work – and that is definitely a programming language. Additionally, templating languages such as Twig and Liquid also contain many constructs that are part of a programming language, further muddying the waters.

Engineers

Pushing that discussion aside for another day, the usage of the term “engineer” for a developer, whether they are programmers or not, has caused some ire. The term software engineer has been around for a while, and there have been calls for developers to stop using the term engineer completely.

In , E.W. Dijkstra wrote My conclusion was that the term “software engineering” should never have been coined. He went on to write:

Computers are such exceptional gadgets that there is good reason to assume that most analogies with other disciplines are too shallow to be of any positive value, are even so shallow that they are only confusing. I can only conclude that the wide-spread adoption of the term “software engineering” is to be regretted as it only hampers this recognition.

Nic Ferrier in his article you think you’re an engineer but you’re not recalls a discussion with his father who was annoyed at his son’s usage of the term “software engineer” since he, a trained engineer had to work hard for his title and once achieved, pays the IEEE regularly to maintain the title.

The first entry in the Oxford dictionary’s definition for engineer states:

A person who designs, builds, or maintains engines, machines, or structures – A person qualified in a branch of engineering, especially as a professional

Note: Curiously the second entry states that in North America, train drivers are called engineers, as they operate the engine. I am not sure what the IEEE has to say about that.

Using the above definition, developers and programmers could be said to fall under the category of engineer, as they can design, build, and maintain data structures. I guess it’s a fine detail that can be argued from both sides, but I can understand why those who are fully qualified engineers (in the original meaning) take umbrage at the title they themselves worked so hard for, is being used by people who have no qualifications in the field at all.

Scientists

A computer scientist is a scientist who has acquired knowledge of computer science, the study of the theoretical foundations of information and computation and their application. As with engineers, computer scientists will tend to have some qualification in their related field, either a BSc, MSc, or Phd. E.W. Dijkstra, quoted above, was a renowned computer scientist.

I have a BSc in Computer Systems from the University of Limerick, and in the past I have worked as a more traditional developer, using languages like C, Java, and PHP. It could be argued therefore that I am a computer scientist, although not at all in the way that Dijkstra was.

But since I now work mainly on the frontend part of the web, I suspect that I, and others like me, are Frontend Scientists.