Походження назви мови C #


75

Я програміст на C і C ++ і зараз намагаюся вивчити C #. Я купив книгу Professional C # від Wrox публікацій.

Під час міграції з C на C ++ у мене виникли сумніви, чому ++його додали до C. Пізніше я зрозумів, що оскільки ++це оператор приросту, його додали до C просто для надання "об'єктно-орієнтованого розширення".

Яке значення в C # #?


26
Надати можливість людям, що ненавидять С-образ, назвати це D-плоским.
mmx

1
Походження плюсів у C ++ не пов'язане з оператором приросту. AFAIK Bjarne називав це "C з класами" на ранніх етапах, поки якийсь товариш не втомився і не почав називати це "C плюс плюс".
Сесіль має ім’я

2
Власне, спочатку це означало вимовляти C-хеш. Як і в тому, що ми намагалися вдосконалити C і зробили повний хеш ;-)
Чінмай Канчі

8
Власне, спочатку це означало вимовлятися як C-OCTOTHORPE, як у, як ми любимо говорити OCTOTHORPE. Спробуйте: октоторп октоторп октоторп!
Ерік Ліпперт,

Ця датована стаття добре аргументує - theregister.co.uk/2002/07/04/why_microsoft_makes_a_complete
Biswajeet

Відповіді:


118

Назва "C sharp" була натхненна музичними нотами, де різке вказує на те, що написана нота повинна бути на півкроку вищою за висотою. [6] Це схоже на назву мови C ++, де "++" означає, що змінну слід збільшити на 1. Різкий символ також нагадує лігатуру з чотирьох символів "+" (у сітці два на два), далі маючи на увазі, що мова є приростом C ++.

Через технічні обмеження дисплея (стандартні шрифти, браузери тощо) та той факт, що різкий символ (♯, U + 266F, МУЗИЧНИЙ ЗНАК РЕЗКОСТІ) відсутній на стандартній клавіатурі, цифровий знак (#, U + 0023 , NUMBER SIGN) було обрано для подання чіткого символу в письмовій назві мови програмування. [7] Ця конвенція відображена у специфікації мови ECMA-334 C #. 3 Однак, коли це практично робити (наприклад, у рекламі чи в бокс-арту [8]), Microsoft використовує передбачуваний музичний символ.

З Вікіпедії .

Також в цьому інтерв’ю Андерс Хейлсеберг каже:

"Ми хотіли мати в назві посилання на спадщину мови C і нарешті зупинилися на C #. Деякі інші кандидати, яких я пам'ятаю, були eC, Safe C, C-квадрат, C-куб, C-прем'єр, C-зірка та цезій ... Дивлячись, і зараз я цілком задоволений нашим вибором ".

Нарешті, Наомі Гамільтон прямо поставила Андерсу Хейлсебергу запитання :

[NH] Чому мову спочатку називали Cool, і що сприяло зміні на C #?

[AH] Кодовою назвою було Cool, що розшифровувалось як "C як об'єктно-орієнтована мова". Нам якось сподобалось це ім’я: всі наші файли називались .cool, і це було якось круто! Ми серйозно подивились на те, щоб зберегти назву кінцевого продукту, але це просто було неможливо з точки зору торгової марки, оскільки там було занадто багато цікавих речей.

Тож комітету з іменування довелося приступити до роботи, і нам начебто сподобалось поняття, що там є власне посилання на C, і трохи слів на C ++, оскільки ви можете сортувати різкий знак як чотири плюси, тож це C ++++ . І музичний аспект теж був цікавим. Так що C # це було, і я насправді був дуже задоволений цим ім’ям. Це послужило нам добре.


10
Названий C #, оскільки "Місячна соната" Бетховена, улюблена Біллом Гейтсом та Андерсом Хейлсбергом, написана донорною. Датчанин Андерс також міг бути в курсі академічних дебатів щодо того, чи був король Данії Фредерік VI одним із десяти "королівських судів", які підписалися на "Міссу Солемніс" Бетховена, "Опус 123": можливо, він знав, що нещодавно академічні дослідження підтвердили, що датська передплата існує в архіві Копенгагена. Коли C # було названо, Джон Скіт все ще був лише у "сплячій людській формі;" ще не метафізично перетворений на Ієрофанта DotNetVerse. :)
BillW 02

8
До речі, каталог у джерелах C #, що містить тестові набори для реєстрації, все ще називається "safec". Ніхто ніколи не намагався це змінити.
Ерік Ліпперт,

1
Я в основному погоджуюся з Андерсом, але C-prime - це досить приємно.
Michael Petrotta

Я таємно сподівався, що був правильним у своєму припущенні, що вони йдуть на C ++ ++ (отже, C ++ ще раз збільшився, але це виглядає дурним), тому вони розташували знаки + у сітці 2 на 2. Чудово, щоб підтвердили мої підозри!
Mike Devenney

7

У 1991 році Ел Стівенс представив D-Flat в журналі "Доктор Доббс" (DDJ); DOS-заснована на події структура для побудови користувальницьких інтерфейсів (див. http://www.ddj.com/184408553 ). У той час D-Flat писався на мові C, оскільки Ел Стівенс писав колонку програмування C для DDJ. Ім'я C ++ вже було прийнято, і він розглядав C-Sharp, але був впевнений, що хтось уже про це думав (див. Http://www.ddj.com/184410858 ). На мою думку, Ел Стівенс давно думав про назву C-Sharp, тому що D-Flat не був примхою, і він має стільки мовного досвіду.


7

Враховуючи, що це веб-сайт програміста, можливо, цікаво перерахувати "справжні імена", імена, якими користувалися програмісти Microsoft, працюючи над проектами. Ці імена, як і археологічні записи, зазвичай відображаються у вихідному коді для CLR (ротора), файлів заголовків SDK та довідкового джерела.

C # починався як COOL (C-подібна об'єктно-орієнтована мова). Файли макетів ротора показують, що ранній код C # міг бути написаний у файлах із розширенням імені файлу .cool. Однак є також кілька місць, де його називають COOLC.

CLR мав кілька назв. Він розпочався як проект всередині групи, яка працювала над COM + Windows 2000, у вихідному коді CLR є багато посилань на "ComPlus". Код виключення для керованого винятку - 0xe0434f4e, 0xe0 + "COM" +1. У файлі WinError.h коди помилок CLR використовують "URT", "Universal Run Time". Скорочення "Cor" з'являється в багатьох місцях в інтерфейсах хостингу "COM Object Runtime". Вихідний код CLR дуже часто використовує абревіатуру EE, відмінну від COR, скорочення від Execution Engine та частину змін у базі коду CLR, щоб змусити його виконувати керований код.

Внутрішні назви проектів, які я бачив:

  • Реньє: Visual Studio 2002
  • Еверетт: Visual Studio 2003
  • Whidbey: Visual Studio 2005
  • Косатки: Visual Studio 2008
  • Гаваї: Visual Studio 2010 (дуже рано)
  • Ротор: Спільна вихідна версія CLR
  • Авалон: WPF
  • Індіго: WCF
  • Юкон: SQL Server 2005
  • Katmai: SQL Server 2008
  • Strike: спеціальне розширення налагоджувача, що використовується для налагодження першої версії CLR, що перетворилося на SOS (Son of Strike).

3
EE не є "механізмом виконання" в компіляторі C #, хоча, можливо, він знаходиться в CLR, я б не знав. У компіляторі C # EE є "оцінювачем виразів" - матеріали EE у компіляторі є частинами компілятора, які реалізують поведінку вікна "watch" та "local" у налагоджувачі; ви надаєте йому вираз під час налагодження, і EE обчислює його у контексті стану запущеної програми. Я був би (м'яко) здивований, якби це означало щось інше у джерелах CLR.
Ерік Ліпперт,

2
Властивість опису файлу для інформаційного ресурсу версії файлу у файлі mscoree.dll - "Microsoft .NET Runtime Execution Engine".
Ганс Пассант,


2

"#" Насправді покликаний бути музичним різким символом - оскільки ++ вказує, що C ++ збільшується до C, # позначає C ++, збільшений, або C ++++; мова з C-синтаксисом, що пропонує функціонал вищого рівня.

Перегляньте статтю Вікіпедії про це.


1

Це просто назва. Символ # взято з нотного запису, що означає, що C # (C різкий) на пів ноти вище C.

C # частково базується на C / C ++, але також на Java та Pascal (Delphi). Як і Java, C # є об'єктно-орієнтованою мовою, тоді як C ++ та Pascal є процедурними мовами з доданими можливостями для об'єктної орієнтації.


1

C # - це музично натхненне ім'я, а також є Polyphonic C #


1

"#" Насправді покликаний бути музичним різким символом - оскільки ++ вказує, що C ++ збільшується до C, # позначає C ++, збільшений, або C ++++; мова з C-синтаксисом, що пропонує функціонал вищого рівня.


1
Зачекайте, це не просто копія відповіді, доданої @ljs за 14 місяців до цього?
Mike Devenney

1

На додаток до музичних посилань, зазначених в інших місцях, зауважте, що '♯' та '#' виглядають як два символи '+', що перекриваються.

Зрештою, хоча це було маркетингове рішення, а не технічне.

(Окрім того: тоді ми вважали, що це був поганий вибір, оскільки пошукові системи ігноруватимуть „спеціальні” символи, і ви отримаєте результати для „С“. Зараз пошукові системи розумніші.)


3
це +фактично перекриваються 4 символи :)
Грегорі Пакош

2
@GregoryPakosz: Лише два, хоча вони асиметричні, і незрозуміло, де вони знаходяться. Це може бути один a верхній лівий край, який простягається далі праворуч і вниз, ніж вгору і ліворуч, а інший вниз і праворуч від нього, який простягається далі вгору і вліво, ніж вниз і праворуч, або два символи можуть бути в нижній лівий і верхній правий.
supercat

-1

добре, хоча c ++ є c з "Об'єктно-орієнтованим розширенням", c # з іншого боку не базується лише на синтаксисі c, а повністю об'єктно орієнтована і компілюється в msil, тоді як рідна c ++ компілюється в рідний двійковий код ...


1
все міститься в якомусь програмному забезпеченні класу / структури
Петро,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.