Convenzione dei casi: perché la variazione tra le lingue?

1

Provenendo da uno sfondo Java, sono molto abituato a CamelCase. Quando scrivevo C, l'uso del trattino basso non era un grosso aggiustamento, dal momento che veniva usato con parsimonia solo quando si scrivevano semplici app Unix. Nel frattempo, sono rimasto fedele a CamelCase come al mio stile, così come la maggior parte della classe.

Tuttavia, ora che sto insegnando a me C # in preparazione per la mia prossima lezione di Usability Design in autunno, la convenzione PascalCase del linguaggio mi sta davvero facendo impazzire e devo fare affidamento su intellisense molto per per assicurarsi che venga utilizzato il metodo API corretto. Per essere onesti, il passaggio al layout di PascalCase non è ancora completamente affondato nella memoria muscolare, e questo è frustrante dal mio punto di vista.

Poiché C # e Java sono considerati come lingue fratello, poiché entrambi sono derivati da C ++, perché la variazione nelle convenzioni linguistiche? È stata una decisione personale dei creatori in base al loro livello di comfort, o è stato solo per giocare a giochi di mente con nuove introduzioni alla lingua?

    
posta Jason 25.06.2011 - 00:44
fonte

5 risposte

8

La differenza culturale ha avuto origine molto prima di C # o Java.

Tutte e tre le convenzioni sono coesistite dalla fine degli anni '60 o dai primi anni '70 e sono state popolari in diversi gruppi. (Così come altre convenzioni, inclusa la notazione unlamented ungherese che Microsoft ha inflitto a tantissime per così tanto tempo.)

In particolare, gli inventori di Java erano presenti a Sun e molti erano coinvolti con StrongTalk , che è una forma di Smalltalk. La community Smalltalk ha utilizzato camelCase per un tempo molto, molto lungo.

Gli inventori di C # vennero da Microsoft. StudlyCaps è stata una delle principali convenzioni di Microsoft ed è vista in posti come Visual C ++.

Questi stili di originatore appaiono in tutta la documentazione di base, che influenza i gruppi che prendono la lingua, e quindi ha causato la suddivisione in convenzioni di maiuscole tra due linguaggi molto simili.

    
risposta data 25.06.2011 - 01:12
fonte
3

DIMENTICHI FORTRAN, IL PRIMO LINGUAGGIO DEL COMPUTER DI LIVELLO SUPERIORE. INDIETRO IN QUESTI GIORNI NON C'E 'MAI LETTERE DI CASO INFERIORE, E QUINDI TUTTO ERA IN CASO SUPERIORE. PIÙ TARDI ABBIAMO EBCDIC MA ANCORA LE KEYPUNCHES NON HANNO SUPPORTATO LE LETTERE DI CASI INFERIORI, QUINDI TUTTI I PROGRAMMI ERANO ANCORA TAPPATI IN LETTERE MAIUSCOLE. COBOL STESSO COME FORTRAN; AFAIK SAME PER ALGOL INDIETRO POI.

Poi sono arrivati ASCII e terminali e improvvisamente lettere minuscole erano dappertutto.

Quando vuoi nominare qualcosa "prossimo numero seriale" è naturale volerlo suddividere in tre parole. Ma con una sola eccezione disastrosa, nessuna lingua che abbia mai usato consente spazi nei nomi. Quindi puoi scrivere next_serial_number o NextSerialNumber o nextSerialNumber o qualcosa di simile a seconda dei tuoi gusti.

Personalmente non vedo alcun motivo per cui la prima parola dovrebbe essere minuscola e il resto delle parole in maiuscolo: "nextSerialNumber" non ha alcun senso per me.

E PUOI ANCORA TIPO IN MAIUSCOLO SE DESIDERA.

    
risposta data 25.06.2011 - 11:15
fonte
1

La convenzione sui nomi, come ho appreso nel corso di ingegneria del software, è di rendere il codice coerente e autodocumentante.

Le convenzioni di denominazione delle lingue potrebbero avere più a che fare con la timeline utilizzata più frequentemente nella lingua e le convenzioni di denominazione che erano importanti al momento. Quindi quelle convenzioni di denominazione che venivano usate al momento di un particolare linguaggio erano famose e rimaste incastrate.

Non ci sono restrizioni sulle convenzioni di denominazione che usi finché il tuo codice è coerente e autodocumentato per ragioni di manutenibilità.

    
risposta data 25.06.2011 - 01:09
fonte
0

Per quanto ne so, nessuna delle lingue che hai menzionato applica alcuna convenzione di denominazione.

Per quanto riguarda la convenzione di denominazione delle librerie standard - devi ricordare che C è venuto prima, C ++ voleva essere retrocompatibile con C migliorandone alcuni, e Java e C # sono stati sviluppati per competere l'uno contro l'altro (mentre imparano le lezioni da C e C ++, entrambi). A volte la migrazione da una lingua a un'altra non è nell'interesse degli sviluppatori di lingue.

Nel tuo codice personale puoi utilizzare qualsiasi convenzione di denominazione che desideri, non esistono restrizioni.

    
risposta data 25.06.2011 - 01:02
fonte
0

Anders Hejlsberg è l'architetto principale di C #. Viene da uno sfondo Pascal e questo ha influenzato C # in vari modi.

    
risposta data 25.06.2011 - 06:56
fonte

Leggi altre domande sui tag