Skip to main content

Essays, Papers, White Papers and Articles: What's the Difference?

I've been writing and blogging for as long as I can remember, and I've never really understood the difference between articles, essays, papers and white papers. I've certainly never known when I should use each term. So I asked ChatGPT to explain the differences and when I should use each one.

This is what it told me.
It turns out there's quite a bit of overlap, but the main differences come down to purpose, audience, evidence and formality.

Essays

An essay is about exploring an idea, developing an argument or expressing a point of view. It's often personal, reflective and doesn't necessarily require extensive research or a formal structure.

For example, I've been reading a lot about software optimisation recently, particularly the views of Donald Knuth, Michael Jackson, Brian Kernighan and P. J. Plauger. If I were to bring their ideas together, compare them with my own experience and reach a conclusion about premature optimisation, that would make a good essay.

The important distinction is that an essay is primarily about exploring what you think, rather than proving something through systematic research.

Papers

A paper is a much more formal affair. It usually presents research, analysis or a rigorous technical argument. Readers expect evidence, references, a clear structure and conclusions supported by the findings.

For example, if I examined 100 software repositories, identified the optimisations being made, measured their effectiveness and analysed the results, I could reasonably call that a paper.

Papers are often associated with academic journals and conferences, although they don't have to be academic. The important thing is the level of rigour involved.

Calling something a paper sets expectations. A few references to books and some personal opinions, however well argued, probably aren't enough.

White Papers

White papers are slightly different. They're generally written to explain a problem, present evidence and recommend a particular solution or approach. They're aimed at influencing decisions, particularly within businesses and other organisations.

For example, I could write a white paper about responsible software optimisation. It might examine premature optimisation, profiling, benchmarking and observability before recommending a set of principles that engineering teams should follow.

Unlike an essay, which explores an idea, or a paper, which presents research, a white paper is usually trying to persuade its audience to adopt a particular approach.
Unfortunately, white papers have also become associated with marketing. Technology companies frequently publish them to demonstrate expertise while ultimately trying to sell something. That doesn't necessarily make them bad, but it's worth remembering.

Articles

Articles are the broadest category and, as it turns out, probably the best description of most of what I write.

An article is intended to inform, explain, persuade or entertain an audience. It can contain research, references and detailed technical arguments, but its primary purpose is to communicate something in an accessible way.

My recent writing about programming style, comments in code, the HTTP QUERY method and software optimisation all fits comfortably into this category.

An article doesn't have to be short or superficial either. Something several thousand words long, supported by extensive research, can still be an article.

This was probably the most useful distinction for me. Just because I've researched a subject and referenced several books doesn't mean I've written a paper.

So Which Should I Use?

ChatGPT gave me a useful way of deciding:

  • Essay: I'm exploring what I think.
  • Paper: I'm demonstrating what I've discovered through systematic research.
  • White paper: I'm recommending what engineers or organisations should do.
  • Article: I'm explaining something interesting to other people.

These aren't hard and fast rules, and the categories certainly overlap. An essay can contain research, an article can make an argument and a white paper can include original findings. The distinction is more about the purpose of the writing than its length or complexity.

Finally

Looking back at what I've written over the years, most of it consists of articles, including this one. Even my more substantial technical pieces, where I've spent considerable time researching a subject, are generally intended to explain an idea or share something I've learned.

However, my ongoing research into software optimisation might eventually become an essay. I've been comparing advice from several influential programming books, some of which were written decades apart, and considering how relevant that advice remains today. Bringing those ideas together into a single argument about how optimisation thinking has evolved would fit the description nicely.

If I wanted to call it a paper, I'd need to go further and gather some original, systematic evidence.

Ultimately, I don't think the label matters as much as the content, but understanding the distinction helps set expectations for readers. And after all these years of writing, it's nice to finally have a better idea of what to call it.

Of course, there's something slightly ironic about asking AI to explain the different types of writing and then using it to help write an article about them.

Comments

Popular posts from this blog

It's great to be back at the ACCU Conference 2025!

Last week I was back at the ACCU Conference in Bristol, for the first time since I gave an opening keynote in 2019 . In March 2020, COVID hit the UK and I got out of the habit of attending and speaking at conferences. Plus the ACCU Conference, and the organisation in general, took a big step back towards C++ and that hasn’t been relevant to me for nearly two decades. It’s taken until now, 2025 for me to want to talk again, and I was really pleased to be accepted for the ACCU Conference again. It was just a 20 minute session and I only attended for the day I was speaking. There was enough varied content for it to be interesting to me and I’m hoping to be back for the full conference next year. I really enjoyed attending and it was great to catch up with people I hadn’t seen for years. I felt re-engaged and particularly liked being asked if I’d been to nor(DEV):con . Learning to stop writing code (and why you won't miss it) Daisy Hollman I should have read the summary of the openin...

Write Your Own Load Balancer: A worked Example

I was out walking with a techie friend of mine I’d not seen for a while and he asked me if I’d written anything recently. I hadn’t, other than an article on data sharing a few months before and I realised I was missing it. Well, not the writing itself, but the end result. In the last few weeks, another friend of mine, John Cricket , has been setting weekly code challenges via linkedin and his new website, https://codingchallenges.fyi/ . They were all quite interesting, but one in particular on writing load balancers appealed, so I thought I’d kill two birds with one stone and write up a worked example. You’ll find my worked example below. The challenge itself is italics and voice is that of John Crickets. The Coding Challenge https://codingchallenges.fyi/challenges/challenge-load-balancer/ Write Your Own Load Balancer This challenge is to build your own application layer load balancer. A load balancer sits in front of a group of servers and routes client requests across all of the serv...

Catalina-Ant for Tomcat 7

I recently upgraded from Tomcat 6 to Tomcat 7 and all of my Ant deployment scripts stopped working. I eventually worked out why and made the necessary changes, but there doesn’t seem to be a complete description of how to use Catalina-Ant for Tomcat 7 on the web so I thought I'd write one. To start with, make sure Tomcat manager is configured for use by Catalina-Ant. Make sure that manager-script is included in the roles for one of the users in TOMCAT_HOME/conf/tomcat-users.xml . For example: <tomcat-users> <user name="admin" password="s3cr£t" roles="manager-gui, manager-script "/> </tomcat-users> Catalina-Ant for Tomcat 6 was encapsulated within a single JAR file. Catalina-Ant for Tomcat 7 requires four JAR files. One from TOMCAT_HOME/bin : tomcat-juli.jar and three from TOMCAT_HOME/lib: catalina-ant.jar tomcat-coyote.jar tomcat-util.jar There are at least three ways of making the JARs available to Ant: Copy the JARs into th...