Which is better: underscore or Pascal case?

A comparison of two popular naming conventions for variables and functions - underscore and PascalCase.
On this page

Which is better: underscore or Pascal case?

Excerpt

This article looks at the pros and cons of using underscore case vs PascalCase for naming variables and functions in code. It provides guidelines on when to use each style based on readability, language conventions, and personal preference.


Naming conventions are an important part of programming that every developer needs to understand. Two of the most common naming conventions are underscore case and PascalCase. But which one is better? In this article, we’ll look at the pros and cons of each to help you decide when to use underscore and when to use PascalCase.

Introduction

First, let’s define what we mean by underscore and PascalCase.

Underscore case means separating words with an underscore like this: my_variable_name. PascalCase means concatenating words together and capitalizing each new word like this: MyVariableName.

Casing conventions like these are crucial for writing readable code that follows standard practices. Though something as small as capitalization may seem trivial, it can have a big impact on how easy your code is to work with for yourself and other developers.

Reasons Some Prefer Underscore Case

There are a few key reasons why some developers prefer using underscores:

More Readable

Code with underscores can be easier to quickly parse and read since each word stands out separately. The underscores act like spaces between words in normal sentences. This can make variable and function names more scannable.

For example, get_user_info() is arguably a bit easier to read than getUserInfo().

Follows Natural Language Conventions

Underscore case aligns more closely with natural written language. We normally separate words with spaces, not cram them together. So some find underscores more intuitive.

Distinguishes Words Clearly

With PascalCase, it can occasionally be hard to tell where one word ends and the next begins, especially with longer names. Underscores make the word boundaries unambiguous.

For example, isValueInRange could be misread as isValidInRange at first glance. But is_value_in_range is very clear.

Reasons Some Prefer PascalCase

While underscores have some readability benefits, PascalCase has its own advantages:

More Common in Certain Languages

PascalCase is the standard convention in languages like C# and Java. So it will feel familiar to many developers used to these languages.

Allows camelCase

PascalCase lets you use camelCase like myVariable which is easy to type and read. With underscores, this is not possible.

Looks Cleaner to Some

Some developers feel PascalCase keeps code looking tidy and uniform without the visual clutter of underscores. The underscore can be seen as a distracting non-alphanumeric character.

When to Use Each

Given the pros and cons of each style, when should you use underscore case vs PascalCase? Here are some guidelines:

Follow Language Conventions

If you are using a language like C# or Java that standardizes on PascalCase, then conform to that convention for consistency.

Consider Personal Preference

There is room for personal taste in naming styles. If you strongly prefer one casing style, then you can make that choice for your own code.

Favor Readability

Readability should be the top priority. Experiment to see which style makes complex names easier to parse and understand at a glance for you.

For example, you may find convert_string_to_integer() easier to read than convertStringToInteger() when skimming code. But preference varies.

Use Tools to Switch Between Styles

You don’t have to manually format strings to change cases. Online tools like StringToCamelCase and StringToSnakeCase can instantly convert between styles.

For example:

1// PascalCase
2StringToSnakeCase("convertStringToInteger");
3
4// Returns: convert_string_to_integer

This allows flexibility to use different casing as needed.

Conclusion

The choice between underscore case and PascalCase comes down to a set of tradeoffs:

  • Underscores can improve readability and align with natural language, but some find them messy.
  • PascalCase is common in certain languages and enables camelCase, but sacrifices some visual separations.

There are good arguments on both sides. Neither convention is universally better across all situations and individual preferences.

Using online tools to switch between casing styles provides more flexibility. But overall, it is best to conform to language conventions when they exist and prioritize readability.

Learn more click here

The most important thing is to be consistent in casing within a codebase. Mixing styles arbitrarily can make code harder to understand. Set a standard convention for your project and stick to it.