{ (Left Curly Bracket) is ASCII code point 123 (0x7B), Unicode U+007B, and a printable punctuation character. It opens a grouped enclosure — in prose it's rare, occasionally used as an outer nesting layer when parentheses and square brackets are already taken, but in code it's arguably the most structurally important character on the keyboard. Curly braces define blocks in C, C++, Java, JavaScript, Rust, Go, and CSS. Every function body, every loop, every conditional, every class declaration begins with {. JSON uses it to open objects, making it one of the first characters any API response parser encounters. In Bash, {a,b,c} triggers brace expansion, generating multiple strings from a single pattern, and ${var} disambiguates variable names in string interpolation. LaTeX uses braces for grouping arguments to commands. The trap with this character is a quiet formatting war: whether { belongs on the same line as the statement or on a new line by itself has fractured developer communities for decades, but the actually dangerous version is JavaScript's return statement — placing { on the next line after return triggers automatic semicolon insertion, and the function returns undefined instead of the object you intended. Bob Bemer added curly braces to ASCII in the 1960s, reportedly overcoming resistance from those who considered them unnecessary additions to an already crowded character set. UTF-8 encodes it as a single byte 0x7B. Unicode classifies it as Ps (Punctuation, Open) with the name LEFT CURLY BRACKET. The fullwidth { (U+FF5B) and the mathematical left brace found in some academic typesetting are distinct code points that will silently fail in any programming context.
if (ok) {count++; // braces define a scoped blocklog('{'); // print literal '{'}
C started it in 1972 — { } delimit compound statements (if, for, while blocks). C++, Java, JavaScript, C#, Go, Rust, and Swift all inherited this syntax. Python is the notable exception, using indentation instead. Braces are unambiguous for parsers and don't depend on whitespace.
Two styles: K&R (opening brace on same line as statement) and Allman (opening brace on its own line). K&R saves vertical space; Allman makes blocks more visually symmetric. Most JavaScript uses K&R because of ASI edge cases. C# conventionally uses Allman. Go enforces K&R in the compiler.
{ } define objects (key-value maps): {"name": "Alice", "age": 30}. Nested braces create nested objects. Unlike JavaScript, JSON requires all keys to be double-quoted strings and all values to be valid JSON types. Trailing commas and comments are not allowed.
${expression} inside template literals (backtick strings) evaluates the expression and inserts its string value. Any valid expression works: ${name}, ${a + b}, ${condition ? 'yes' : 'no'}. It replaced the error-prone 'hello ' + name + '!' concatenation pattern.