Levysoft
  • Home
  • Portfolio
  • WordPress Plugin
  • Contattami

Dal 2004 il blog di Antonio Troise

RSS FeedTwitterFacebook
giu 20 2008

Cose è un CamelCase? In quanti modi diversi è possibile scrivere una variabile per renderla leggibile?

Posted by Antonio Troise
Tweet

Se siete soliti fare un salto nei forum o nei blog dei programmatori prima o poi vi imbatterete in questo termine dal gusto arcano: CamelCase. Ma cosa significa?
Il CamelCase è la pratica di scrivere parole composte o frasi unendo tutte le parole tra loro, ma lasciando le loro iniziali maiuscole. Il nome (letteralmente “carattere a cammello“) deriva dai “salti” all’interno di una parola (dato dall’inserimento delle maiuscole che aiutano a distinguere le parole di cui è composta), che fanno venire in mente le gobbe di un cammello.

Naming delle variabili

CamelCase Se qualcuno di voi ha mai programmato allora gli sarà sicuramente venuto in mente questo metodo di scrivere, perché, molto probabilmente, lo avrà usato, del tutto inconsapevolmente, quando avete fatto del “naming” delle variabili, ovvero quando avete dovuto assegnare i nomi alle variabili (a meno che non siete solitii dare dei nomi svincolati dal contesto, come, $a o $pippo o $pluto).

Infatti, tralasciando i cognomi come McCartney e alcuni esempi degli anni ’50 come CinemaScope, il CamelCase è diventato relativamente comune tra i programmatori durante gli anni ’70, per usare più parole per una variabile o un nome di programma, mantenendo comunque la leggibilità. Il motivo per cui questo metodo di scrivere si è diffuso tra i programmatori è dato, principalmente, dal fatto che nelle pratiche di programmazione, gli spazi e i segni d’interpunzione non sono permessi durante l’assegnazione dei nomi delle variabili; è facile capire, quindi, come, per rendere più leggibile e comprensibile il nome di una variabile, sia nata l’esigenza di rendere maiuscole le iniziali di ogni parola di cui è composta (anche se, nel caso specifico, la prima lettera è lasciata minuscola: thisVeryLongName).

Ragioni storiche

Ma perché, allora, non si usa il metodo, altrettanto valido, di separare le parole con un trattino (“-”) o con un underscore (“_”)? La ragione è principalmente storica.
Il CamelCase è stato molto usato dai programmatori Java perché è stata per anni la convenzione ufficiale di Sun per la scrittura dei nomi di classe e di variabile.
Questa pratica contrasta la tradizione del C di unire le sillabe insieme o di segnare le sillabe spezzate con il carattere di underscore.
Per questo motivo, quindi il CamelCase, risulta molto comune in certe community dei linguaggi (inizialmente Pascal; attualmente Java e Visual Basic) e tende ad esser associata alla programmazione orientata agli oggetti.

Quindi, riassumendo, quando un programmatore C vuole scrivere thisverylongname o this_very_long_name, la versione CamelCase di un programmatore Java sarebbe thisVeryLongName.

Per terminare ricordiamo che nella programmazione, il carattere di underscore è spesso usato come prefisso, ovvero è il primo carattere di una variabile: _listingNumber.

In quanti modi diversi è possibile scrivere una parola per renderla leggibile?

Ma quanti altri modi esistono di scrivere una parola o variabile (Letter case)? Ebbene sinora ne ho trovati ben 11 diversi, anche se non tutti possono essere applicati alle variabili. Non c’è nulla di rivoluzionario in queste tecniche e probabilmente le usate tutti i giorni, senza però conoscerne il nome.

Così avremo:

  1. CAPITAL o UPPER CASE: la parola è scritta tutta in maiuscolo

    VARIABILE

  2. lower case: la parola è scritta tutta in minuscolo

    variabile

  3. Start Case: la prima lettera di ogni parola (separate da spazi) di una frase è scritta in maiuscolo:

    This Is A Start Case

  4. Title Case: a differenza dello “Start Case” la prima lettera di ogni parola di una frase è maiuscola mentre le congiunzioni, le preposizioni e gli articoli sono sempre scritti in minuscolo. Un esempio sono i titoli delle canzoni o degli album: su iTunes li vedrete sempre scritti in Title Case.

    This is a Title Case

  5. Capitalization o Capitalisation: la parola ha solo la prima lettera maiuscola (upper case letter) e tutte le altre sono minuscole (lower case letters)

    This is a title case

  6. unicase: sono quelle lettere che non hanno una versione maiuscola e minuscola (presenti per esempio nell’alfabeto Arabico o Ebraico). Un esempio comune è la: @
  7. CamelCase o Medial Capitals: è la pratica di scrivere parole composte o frasi in modo che le parole siano unite tra loro senza spazi o segni di interpunzione ma ogni loro lettera iniziale è maiuscola. Molto usato laddove, specie nelle pratiche di programmazione, gli spazi non sono permessi (e l’uso di “-” e “_” risulta antiestetico)

    nomeVariabileDaAssegnare

  8. Pascal Case: è una pratica di scrittura (della vecchia guardia di programmatori Pascal) che è molto simile al CamelCase, ma si contraddistingue da essa perché anche la prima lettera della parola è maiuscola. E’ per questo che questo metodo è anche conosciuto con il nome di UpperCamelCase

    NomeVariabileDaAssegnare

    Bisogna anche dire che non tutti sono soliti fare distinzione tra CamelCase e Pascal Case, raggruppando le due categorie nella sola CamelCase.

  9. embedded_underscore: ogni segni di interpunzione o spazio è eliminato ed è sostituito dal carattere di underscore (“_”). Di solito le lettere o sono tutte maiuscole (UPPER_CASE_EMBEDDED_UNDERSCORE)

    NOME_VARIABILE_DA_ASSEGNARE

    o tutte minuscole (lower_case_embedded_underscore)

    nome_variabile_da_assegnare

    ma non mancano casi in cui si trovano scritti in forma mista.

    Nome_Variabile_Da_Assegnare

  10. StudlyCaps o StUdLyCaPs, o ancora StickyCaps: è una variazione del CamelCase in cui le ciascuna lettera di una o più parole, sono alternativamente scritte in maiuscolo e minuscolo. La sequenza maiuscolo-minuscolo può seguire uno schema predefinito (pattern) oppure può essere del tutto casuale (random). Usato soprattutto nell’ambiente hacker:

    L’oRiGiNe dEL sIgNiFiCaTo Di QuEsTa PrAtIcA e’ OsCuRa

  11. BiCapitalization o InterCaps: simile allo StudlyCaps e al CamelCase ma il suo ambito non è nell’ambiente hacker bensì in quello del marketing. Infatti la BiCapitalization è l’atto di creare un marchio leggibile e facilmente riconoscibile dagli altri. Ne sono esempi comuni loghi come:

    PostScript
    NeXT
    NeWS
    VisiCalc
    FrameMaker
    TK!solver
    EasyWriter

Suggerimenti d’uso

Sul sito Microsoft dedicato alle librerie MSDN vi è un interessato documento che descrive le regole di Class Naming Guidelines. Da qui si raggiunge la pagine delle Capitalization Styles, in cui si mette in luce che:

  • Pascal Case: si usa solo per identificatori di 3 o più caratteri in cui le prime lettere di ciascuna parola concatenata è maiuscola

    BackColor

  • CamelCase: la prima lettera è minuscola mentre le prime lettere di ciascuna parola concatenata è maiuscola

    backColor

  • Uppercase: tutte le lettere del identificatore sono maiuscole. In realtà si consiglia di usare questo metodo solo per identificatori di 2-3 lettere:

    System.IO
    System.Web.UI

Altri esempi di CamelCase

Nel capitolo precedente ho tentato di classificare tutti i possibile metodi di scrittura di una variabile o, in generale, di una parola o logo. In realtà, a conti fatti, ogni metodo tende a non essere unico in quanto tende coincidere parzialmente con altre pratiche di scrittura.

E così è un CamelCase “MicroSoft” (o più precisamente un “Pascal Case” o siccome siamo nell’ambito del marketing una BiCapitalization), che altro non è che il nome originario della odierna Microsoft.
Mentre è un CamelCase perfetto il nome “iMac” (anche se volendo si potrebbe anche dire che la parola “iMac” è un particolare caso di StudlyCaps Random)
Allo stesso modo la funzione GetURLBaseAddress non è un vero CamelCase, poiché URL è scritto tutto in maiuscolo: si può quindi dire che è scritto in StudlyCaps Random.

E per finire, una bella auto-citazione. Infatti, non tutti sanno che il nome originario del mio sito era LevySoft , ovvero era scritto in CamelCase (o in Pascal Case o, siccome era un brand, in BiCapitalization). In seguito, per semplificarne la scrittura e siccome non era essenziale disinguere le due parole, cominciai a scriverlo tutto minuscolo tranne l’iniziale, in perfetto stile Capitalization.

Post Correlati :

  • Come scrivere rapidamente la E maiuscola accentata su Windows, Linux, Mac OS X, Firefox e Thunderbird e la ragione per cui le lettere accentate maiuscole sono così rare

  • Le ricerche diacritiche e case insensitive dei motori di ricerca: cosa sono i segni diacritici e come non vengono usati correttamente nella lingua italiana

  • CEO e SEO: ma cosa significano?

  • Curiosità di una Apple eccessivamente meticolosa

  • Le ultime parole famose dei francesi

Condividi:

  • Facebook
  • Twitter
  • Tumblr
  • Google +1
  • LinkedIn
  • Pinterest
  • Email
  • Stampa
Tag:camelcase, caratteri, case, java, leggibilità, lowercase, pascal, pascalcase, programmatori, programmazione, uppercase, variabili

Comments (11)

Add a comment Top
  1. Luca
    20 giugno 2008

    Molto interessante! Pur usando alcune di queste convenzioni non ne conoscevo i nomi!

  2. Emanuele
    20 giugno 2008

    In Pascal Case è saltato il blockquote.
    Molto completo come articolo comunque… ;-)
    Ciao,
    Emanuele

  3. Attilio Viscido
    20 giugno 2008

    Concordo con Luca. Articolo molto ben fatto !
    Complimenti !

  4. Finalfire
    20 giugno 2008

    Mai visto un post come questo, bell’idea :P

  5. Antonio Troise
    20 giugno 2008

    Grazie a tutti :) Sono contento che sia stato di vostro gradimento!

  6. feboss
    20 giugno 2008

    Complimenti. un articolo ben fatto
    io utilizzo in java il camelcase, ma se devo dichiarare classi al posto di variabili utilizzo il pascal case.

  7. collodi
    21 giugno 2008

    l’underscore come prefisso ha un senso ben preciso: distinguere le variabili membro di un oggetto

  8. Alex
    21 giugno 2008

    Ma dove sei stato fino ad ora? Sono anni che sono sulle tastiere e non ti avevo mai incontrato! Blog interessantissimo, argomenti trattati con dovizia di particolari e piena padronanza della lingua italiana (cosa rarissima al giorno d’oggi! – leggi Geekissimo e l’Anti-Geekissimo = Lukychan-Fun-Club.blogspot.com)
    Insomma, una semplice ricerca google mi ha fatto approdare qui; ho dimenticato il motivo per cui ci sono entrato, ma son due ore che leggo i vecchi post….complimenti davvero!

  9. Andrea@BV
    22 giugno 2008

    Ora potrò dire con fierezza che il nome del mio blog è in PascalCase! :D

  10. Pingback: alessandrobondi | blog | alessandrobondi 25 settembre 2008

    [...] Questo post è interessantissimo… spiega un po’ il mondo del naming delle variabili, a partire dal CamelCase. [...]

  11. Mat
    21 febbraio 2009

    Odio l’underscore, e da buon programmatore Java adoro il camelCase che è molto più leggibile e meno dispendioso. Ottimo articolo.

Add a comment Fare clic qui per annullare la risposta.

Categorie

Commenti Recenti

  • Antonio Troise on Browseo: visualizzare le pagine web come un motore di ricerca
  • Cristian Castellari on Browseo: visualizzare le pagine web come un motore di ricerca
  • Analizziare le pagine web come le vede un motore di ricerca on Browseo: visualizzare le pagine web come un motore di ricerca
  • Antonio Troise on Firefox 19
  • Emanuele on Firefox 19

Meta

  • Collegati
  • Voce RSS
  • RSS dei commenti
  • WordPress.org

Friends Link

  • GamerTagMatch
  • SeguiPrezzi.it – Risparmia con Amazon.it
  • Trendy Nail

Seguimi su:

  • facebook
  • twitter
  • rss
Creative Commons License
Levysoft by Antonio Troise is licensed under a Creative Commons Attribuzione-Non commerciale 2.5 Italia License.
© Copyright 2004 - 2013 - Levysoft by Antonio Troise
loading Annulla
L'articolo non è stato pubblicato, controlla gli indirizzi e-mail!
La verifica dell'Email ha fallito, riprova per favore.
Ci dispiace, il tuo blog non consente di condividere articoli tramite email.