A Defense of the Roman Numeral in Modern Software (Yes, Really)
Roman numerals look like a relic. They are hard to read, hard to write, and there is no reason to use them in software. Except when there is. Here is the case for keeping them, the cases where they actually help, and the surprising places they still show up.
Roman numerals are not obsolete. They survive because they do one job better than any alternative: signaling "this is a deliberate, ceremonial number" without anyone having to explain. They are a typographic convention, not a calculation tool. Use them in titles, chapter numbers, sequels, anniversaries, and anywhere the number is part of the brand, not the data. The <a href="/roman-numeral-converter">Roman Numeral Converter</a> handles the conversion so you do not have to count on your fingers.
Roman numerals are obsolete. They are hard to read, harder to write, and there is no software problem that requires them. The 14th century figured this out, the decimal system replaced Roman numerals for calculation, and the only reason to use them in software is to be precious about typography. Or so the conventional wisdom goes.
The conventional wisdom is mostly right. Roman numerals are bad for calculation, bad for data, and bad for any use where the number is part of the data, not the presentation. But they are not obsolete. They survive in software because they do one job better than any alternative: signaling that a number is part of the brand, the title, or the design — not part of the data.
The one job Roman numerals do well
The job is signaling "this is a deliberate number, not a count." When you see "Chapter V" in a book, you do not read it as "Chapter 5." You read it as "Chapter 5, the way this book counts chapters." The Roman numeral is a typographic convention that says "this number is not a data point; it is part of the design."
Subtitles work the same way. "Rocky II" is not "Rocky 2." "Star Wars Episode IV" is not "Episode 4." "Super Bowl LVII" is not "Super Bowl 57." The number is part of the name. The Roman numeral is a typographic signal that the number is not a count but a label.
The same logic applies in software. When you have a list, the count is the data. When you have a name that happens to contain a number, the number is part of the name. Roman numerals are the convention for the second case. Using "I, II, III" instead of "1, 2, 3" tells the reader "these are labels, not a count."
Where Roman numerals still appear in software
Despite being "obsolete," Roman numerals show up in a surprising number of places:
Sequels, episodes, and editions
"Rocky II," "Star Wars Episode IV," "Final Fantasy VII," "Windows II," "iOS 18." Wait, "iOS 18" is not Roman. "iOS 18" is Arabic. But "Final Fantasy VII" is Roman. The pattern is the same: a series name with a number, and the number is part of the brand.
The brand decision is not always Roman. "iOS 18" is Arabic, "macOS 15" is Arabic, "Windows 11" is Arabic. The Apple and Microsoft brands use Arabic. The Final Fantasy, Rocky, and Star Wars brands use Roman. The choice is the brand's, not the convention's. Roman is one option, Arabic is another, spelled-out is another (e.g., "Final Fantasy Seven").
Chapter and section numbers
Many books number their chapters with Roman numerals: "Chapter I," "Chapter II," "Chapter III." The convention is older than the digital age but persists in print, e-books, and PDF. The choice is typographic, not data-driven: the chapter is part of the design, not the data.
For software that displays chapters (e-books, PDF viewers, documentation), the choice is to use Roman or Arabic based on the source material. A PDF of a 19th-century book uses Roman. A modern API reference uses Arabic. The choice is editorial, not technical.
Act and scene numbers in plays
"Act III, Scene ii" is the standard. The convention is centuries old and persists in scripts, study guides, and theater programs. The choice is typographic, and Roman is the standard.
Super Bowl, Olympics, and other numbered events
"Super Bowl LVII" is Roman. "The 33rd Olympics" is spelled out. "The 2024 Olympics" is Arabic. The choice is editorial. For one-time events (Olympics, World Cup), the year is the identifier, and the format is Arabic or spelled-out. For recurring numbered events (Super Bowl, World Series), the number is part of the brand, and the format is the brand's choice. The Super Bowl brand uses Roman. The World Series brand uses Arabic. The Olympics brand uses the year.
Monarchs, popes, and other named people
"Henry VIII" is Roman. "Pope John Paul II" is Roman. "World War II" is Roman. The convention is the same: the number is part of the name, not a count of how many Henrys or popes have existed. The use of Roman signals that the number is the identifier, not the count.
Sequel numbering in entertainment
"Rocky II" through "Rocky VI," "Die Hard 2" (Arabic) versus "Die Hard with a Vengeance" (spelled out), "Fast & Furious V" (Roman) versus "Fast Five" (Arabic). The choices are inconsistent across franchises. The common thread is that the number is part of the title, and the format is the brand's choice.
Where Roman numerals are the wrong choice
Roman numerals are wrong for any use where the number is data, not presentation. The clear cases:
Calculations
Roman numerals are bad for calculation. "XIV + IX = XXIII" is correct but slow. The decimal system replaced Roman for calculation because decimal is faster and more reliable. For any use where you need to add, subtract, multiply, or divide, use the decimal system (or binary, hex, or whatever the language uses).
Counting and indexing
For arrays, lists, iterations, and any use where the number is a position, use the standard counting system. "Item 1, 2, 3" is faster to read and faster to compute than "Item I, II, III." The convention is to use the standard counting system, not Roman.
Years and dates
Years are Arabic. "2024" is not "MMXXIV." The convention is universal. Roman numerals for years is for ornamental use (engraved on buildings, used in movie credits) but never for data.
Large numbers
Roman numerals do not scale. "MCMXCIX" is 1999. "MMMMMMMMMMMMMMMMMMMMMMM" would be a lot of M's. The convention is to use Roman for small numbers (1-39) and switch to Arabic for larger. Most modern uses of Roman are for 1-20. Past 20, the symbols get unwieldy.
The case for keeping them
Roman numerals are not obsolete. They survive in software because they are a typographic convention, not a calculation tool. The job they do is signaling that a number is part of the brand, the title, or the design — not part of the data. The job is small but real. The convention is old but stable.
The risk of removing them is that you lose the signal. "Chapter V" reads differently from "Chapter 5." "Rocky II" reads differently from "Rocky 2." The Roman numeral tells the reader "this is a label, not a count." Without the Roman numeral, the reader might read the number as a count and be confused when "Rocky 2" is followed by "Rocky 1" in a prequel.
The cost of keeping them is small. The conversion from Arabic to Roman is a one-line algorithm. The lookup from Roman to Arabic is a small table. The display in the UI is one option in the format dropdown. The work to support Roman is not large, and the value of supporting it is real.
The implementation
For software that needs Roman numerals, the implementation is straightforward:
- Have a function that converts an integer to Roman. The function takes an integer and returns a string. The algorithm is well-known and fits in 20 lines of code.
- Have a function that converts a Roman string to an integer. The function takes a string and returns an integer. The algorithm is also well-known and fits in 30 lines of code.
- Have a UI option to display numbers in Roman or Arabic. The option is per-component or per-format, depending on the use case.
For most uses, the conversion is done at the display layer, not the data layer. The data is stored as integers. The display layer formats the integer as Roman when the user wants Roman and as Arabic when the user wants Arabic. This keeps the data clean and the display flexible.
The Roman Numeral Converter on this site does both directions. It also handles the edge cases (0, negative, very large) and the convention questions (lowercase vs uppercase, subtractive notation vs additive notation). For most uses, the converter is enough — the software that needs Roman numerals can use the converter for the display.
The honest summary
Roman numerals are not obsolete. They survive in software because they do one job better than any alternative: signaling that a number is part of the brand, the title, or the design — not part of the data. The job is small but real. The convention is old but stable.
Use Roman numerals when the number is part of the brand. Use Arabic when the number is part of the data. The choice is editorial, not technical. The implementation is straightforward. The cost of supporting both is small.
The mistake is to assume Roman numerals are obsolete and remove them. The mistake on the other side is to use Roman for data, which makes the data harder to read and harder to compute. The middle is to use Roman for labels, Arabic for data, and a converter for the cases where the user wants one or the other.