|This article relies too much on references to primary sources. (August 2015)|
Snake case (or snake_case) is the practice of writing compound words or phrases in which the elements are separated with one underscore character (_) and no spaces, with each element's initial letter usually lowercased within the compound and the first letter either upper or lower case—as in "foo_bar" and "Hello_world". It is commonly used in computer code for variable names, and function names, and sometimes computer filenames. At least one study found that readers can recognize snake case values more quickly than camelCase.
The use of underscores as word separators in identifiers in programming languages is old, dating to the late 1960s. It is particularly associated with C, being found in The C Programming Language (1978), and contrasted with Pascal case, an older term for CamelCase. However, the convention traditionally had no specific name: the Python style guide refers to it simply as "lower_case_with_underscores". The name "snake_case" comes from the Ruby community, where it was coined in 2004 by Gavin Kistner, writing:
(BTW...what *do* you call that naming style? snake_case? That's what I'll call it until someone corrects me.)
The name is evidently by contrast with CamelCase (as the subject of the message notes), continuing the animal theme with a long creature, low to the ground.
As of 2015[update] there are no standard names for other delimiter-separated naming conventions for multiple-word identifiers, though there are various terms with limited usage, such as lisp-case, kebab-case, SCREAMING_SNAKE_CASE, etc.
Examples of languages that use snake case as convention
- OCaml, for variable and function names
- C++, for the standard library and Boost
- Erlang, for function names
- PHP, for functions, but not class methods. Older conventions were often using snake case for every type of identifiers, except classes and namespaces.
- Python, for variable names, function names, and method names
- Rust, for variable and function names
- Elixir, for variable and function names
- e.g. in Python and Ruby; see Naming convention (programming)
- "An Eye Tracking Study on camelCase and under_score Identifier Styles".
- Guido van Rossum, Barry Warsaw, Nick Coghlan (2001-07-05). "PEP 0008 -- Style Guide for Python Code".
- Gavin Kistner (2004-02-23). "Appropriate use of camelCase". Newsgroup: comp.lang.ruby. Usenet: HBn_b.379957$xy6.2073499@attbi_s02. Retrieved August 13, 2015.
- "StackOverflow - What's the name for snake_case with dashes?".
- "Programmers - If this is camelCase what-is-this?".
- "Library Design Guidelines". Retrieved August 13, 2015.
- "Boost Library Requirements and Guidelines". Retrieved August 13, 2015.
- "Rust Naming Conventions".
- "Elixir Style Guide".
|This computer-programming-related article is a stub. You can help Wikipedia by expanding it.|