Как говорил Готфрид Вильгельм Лейбниц, 11010000 10010100 11010001 10000000 11010001 10000011 11010000 10110111 11010001 10001100 11010001 10001111 00101100 00100000 11010001 10000001 00100000 11010000 10110100 11010000 10111101 11010000 10110101 11010000 10111100 00100000 11010000 10111111 11010001 10000000 11010000 10111110 11010000 10110011 11010001 10000000 11010000 10110000 11010000 10111100 11010000 10111100 11010000 10111000 11010001 10000001 11010001 10000010 11010000 10110000 00100001 00100000 00111010 00101001!




В 2000 году группой разработчиков компании Microsoft был представлен новый язык программирования С#, который сочетал в себе всю выразительность объектно-ориентированных языков программирования, вроде Java, и мощность С++. Синтаксические конструкции нового языка в большинстве своем были позаимствованы из С++ (типы данных вроде структуры и перечисления) и из Visual Basic (использование свойств классов).

В этот праздничный 256-й день года мы решили вспомнить десять фактов о языке C#, которые вы могли не знать:

1. Идея создания языка C# зародилась в 1998 году и проект изначально назывался COOL (C-style Object Oriented Language).

2. Название языка произошло при проведении параллели между языками C# и C++. И этому существует два обоснования. Первое — знак «#» является составляющей из четырех «+»: C > C++ > C++++(C#). Второе — знак «#» является копией знака «диез» в музыкальной нотации, который обозначает повышение звука, соответствующего ноте, на полутон, по аналогии со знаком «++» в языке С++, который обозначает инкремент переменной.

3. Так как знака «диез» на клавиатуре нет, было принято решение использовать знак «#». Но, на печатных материалах Microsoft использует именно «диез».

4. После того как появился язык С#, на сайте The Daily WTF возник локальный мем и его начали называть «C-POUND», что вызвало путаницу среди разработчиков: «С-Sharp? C-Hash? C-Pound? C-WHAT?»

5. С# является первым компонентно-ориентированным языком программирования из семейства C.

6. В 2001 году Аннерс Хейлсберг, который считается «отцом» языка С#, был удостоен престижной награды «Programming Award» от журнала Dr. Dobb's за вклад в развитие разработки программного обеспечения.

7. До 2004 года у разработчиков C# был талисман по имени Andy.

8. В 2014 году был открыт исходный код компилятора C#.

9. Язык C# стандартизирован в ECMA (ECMA-334) и ISO (ISO/IEC 23270).

10. Существуют независимые реализации языка C#, самые известные из них: Xamarin, dotGNU и Portable.NET.

Помимо интересных фактов существует множество полезных ресурсов для разработчиков C#:

1. Курс на русском языке для начинающих разработчиков C#.
2. Бесплатная книга о создании приложений с использованием Xamarin.Forms.
3. Новое шоу на Channel 9, посвященное разработке на Xamarin.
4. Справочные материалы по ключевым словам, операторам, ошибкам и предупреждениям компилятора C#.
5. Ресурс со специфическими примерами кода на C#.

Присоединяйтесь к поздравлениям и оставляйте в комментариях свои ссылки на полезные ресурсы по языку C#!
Поделиться с друзьями
-->

Комментарии (71)


  1. ice2heart
    12.09.2016 15:20
    +1

    Может 10 фактов об С#?


    1. Schvepsss
      12.09.2016 15:25
      -3

      Да, это и подразумевается. Как раз описано во втором факте.


  1. Source
    12.09.2016 15:24
    +3

    С# является одним из двух чистых объектно-ориентированных языков программирования

    Хм, даже интересно стало увидеть ваше определение чистого ООЯП и какой же ещё 1 язык под него подпадает?


    1. Schvepsss
      12.09.2016 15:45
      -1

      Спасибо. :) Исправила этот факт.


    1. LexS007
      12.09.2016 17:20
      +1

      Вот кстати автор Ruby назвал свой язык «истинно объектно-ориентированным», из-за того что в нем не было простых типов.


      1. Source
        12.09.2016 17:42
        +1

        Таких языков очень много, Smalltalk, Self, Io, etc. Однако, Ruby, как и C#, не является чистым ООЯП, т.к. поддерживает и другие парадигмы «из коробки».


  1. crackedmind
    12.09.2016 15:24
    +2

    > 10. Существуют независимые реализации языка C#, самые известные из них: Xamarin, dotGNU и Portable.NET.
    DotGnu давно уж мертв, и можно не считать


    1. Nagg
      12.09.2016 18:54
      -1

      Да и xamarin уже не назвать независимым ;-)


      1. crackedmind
        12.09.2016 20:32

        Ну и xamarin не реализация, а платформа вокруг моно для кроссплатформенности.


        1. Nagg
          12.09.2016 20:46

          Ну по сути mono=xamarin, т.к. основные контрибьютеры все — из компании :-).


    1. strapony
      14.09.2016 11:56

      Алсо, не Xamarin, а mono, которая у него внутри.


  1. ittakir
    12.09.2016 15:29

    7. Не смог найти ни одной фотографии Andy.


    1. Schvepsss
      12.09.2016 15:38
      +2

      image


    1. Source
      12.09.2016 15:46
      +1

      В оригинальной статье была такая картинка:


      Ссылка на Web Archive: http://web.archive.org/web/20060208020139/http://msdn.microsoft.com/vcsharp/art/csharp_team.gif


      1. LexS007
        12.09.2016 17:28
        +1

        Там похоже еще 3 картинки с талисманами были, но они кануть в лету.


        1. Source
          12.09.2016 17:34
          +1

          Остальные картинки изображали Spuds Mackenzie, Morris the Cat, McGruff, судя по названиям файлов. Изображения этих персонажей найти совснм не сложно.


  1. maaGames
    12.09.2016 15:47
    +4

    Название C# произошло при проведении параллели между языками C# и C++. Рекурсивненько.


  1. bentall
    12.09.2016 16:07
    +4

    Для меня тут (кроме маскота) новым оказался один факт:
    > 5. С# является первым компонентно-ориентированным языком программирования.
    я-то считал, что это был [пост]Виртовский Component Pascal, а нет, до-диез вышел на год раньше. Впрочем и у того, и у другого были предшественники в виде Borland Object Pascal/Delphi и Oberon-2 соответственно.


    1. rv82
      13.09.2016 09:20
      +1

      Насколько я знаю, любители Component Pascal считают именно его истинным компонентно-ориентированным языком.


  1. SerafimArts
    12.09.2016 16:30

    del


  1. ArtyomIsFlash
    12.09.2016 16:34
    +3

    Я думаю, что C# означает «чуть более высокоуровневый C»


    1. Varkus
      12.09.2016 17:04
      +5

      Для меня С# означает: скачайте еще 250-300 мегабайт dotnet, чтобы этот helloworld заработал.


      1. Nagg
        12.09.2016 19:00
        +5

        вы живете стереотипами из 2007ого.


        1. NeoCode
          12.09.2016 19:19
          -5

          Как бы то ни было, но helloworld должен занимать несколько десятков байт, не более. На любой архитектуре, любой ОС и в любом году. Если это не так — это проблемы архитектуры и ОС, а не стереотипы из какого-то там года,


          1. Nagg
            12.09.2016 19:47
            +4

            Кому должен? Вы пишите хеллоу ворлды в продакшн? Или вы пишите большие rich интерфейс приложения, где одних ассетов может быть на пару мегабайт? Всё зависит от контекста.


            1. khim
              12.09.2016 20:57
              -2

              200-300 мегабайт рантайма типа незаметны на фоне пары мегабайт ассетов?

              Проблема в том, что офигительный процент этих «Rich приложений» не делают ничего такого что какой-нибудь FoxPro или Clarion не могли сделать этак 20 лет назад.

              К сожалению это проблема всеобщая: современный C++ тут от C# недалеко ушёл:

              $ cat test.cc
              #include <iostream>
              
              int main() {
                std::cout << "Hello, world!" << std::endl;
              }
              $ g++ -O3 -static -s test.cc -o test
              $ size test
                 text	   data	    bss	    dec	    hex	filename
              1304583	  27276	  92776	1424635	 15bcfb	test
              

              В своё время в примерно такой объём влазили компилятор, линкер и даже интегрированная среда. Сегодня — Hello, World. Но, конечно, это всё ещё на порядок (а то и на два) меньше, чем в случае с C#…


              1. Nagg
                12.09.2016 21:14
                +3

                Я написал выше комментарий про то, что 200-300мб — это стереотип из 2007ого, а вы опять повторяете. Сейчас там модульный дотнекор, а у нас на андроиде весь дотнет(моно) со всем добром простым интерфейсом занимает мегабайта 2-3. Но опять же как только вы начнете делать что-то сложнее Hello world (ну знаете, этим занимаются обычные прикладные программисты на работе, а не теоретики, которые меряются размерами хеллоу ворлдов) с добавление 3rd party, ассетов под разные аспекты — на этом фоне небольшая прокладка для шарпа теряется. LTE, 128гб телефоны, недорогие терабайтные диски (а то и ссд)… а мы до сих пор будем вспоминать зеленую траву из юности?


            1. LAutour
              13.09.2016 09:28
              +2

              Borderlands 2, Unigine Heaven — в основном коде использования C# нет, как-то обошлись классическим С++. Но на C# написаны там простенькие лаунчеры (в случае Unigine, размер требуемого dot-net для лаунчера заметно превышает основное приложение.).


          1. Source
            12.09.2016 23:19
            +6

            Как бы то ни было, но helloworld должен занимать несколько десятков байт, не более. На любой архитектуре, любой ОС и в любом году.
            На правах человека, который для прикола реально писал программу, размером меньше 1 кб, замечу, что Вы несёте чушь…
            Для примера возьмём Windows, как наиболее распространённую ОС… Даже если взять 32-битную версию, то есть определённый формат исполняемых файлов, есть импорт kernel32.dll, чтобы хоть что-то осмысленное сделать… есть длина строки и имени вызываемой функции в конце концов. Всё это занимает гораздо больше нескольких десятков байт. Даже если насиловать компилятор кастомными размерами секций, то меньше 512 байт у Вас небитый exe-файл сделать не получится. А helloworld будет занимать уже не меньше 768 байт. А если прибавить к этому размер самой kernel32.dll, то уже на мегабайты счёт пойдёт.


          1. kaiZer_dragomir
            13.09.2016 09:28

            А когда Вам надо забить гвоздь в стену вы вызываете специальную бригаду строителей с отбойными молотками? Можно конечно, но не лучше ли использовать обычный молоток и самому вбить гвоздь?

            Шарп разрабатывался не что бы «с миром здороваться» и для своих целей очень и очень удобен.


          1. zhaparoff
            13.09.2016 09:28

            Можно пример в студию?
            Только если мы уже заговорили про неиспользование фреймворков по 100-200-300 Мб, чур и средства ОС тоже не использовать.
            Да и драйвер видеокарты тоже весит 100 метров. Его тоже в топку.
            А ну и БИОС — тоже фреймворк можно сказать. Прерывания нельзя.
            Удачи!


            1. iandarken
              13.09.2016 14:02
              +3

              Почему средства ОС не использовать? Давайте так. Не использовать то, чего не стоит по-умолчанию на свежей системе. Я не против дотнета, но когда продукт на двадцать строчек хочет 40 мебагайт 4.5 дотнета — это меня пугает.

              Впрочем, дегенеративная привычка ВизуалСтудиостов не менять свойства проекта, из-за чего он потом требует редистры разных версий — такое же раздражение вызывает. Вот честно, я лучше полуторамеговый экзешник скачаю, чем 150-килобайтный, который еще и msvcr120.dll будет требовать на пустой машине.


              1. zhaparoff
                13.09.2016 14:34

                Ок, у меня Windows 8.1, там уже есть .NET 4.5 из коробки. Helloworld занимает у меня меня 4,5 Кб. Он будет работать на любой современной версии винды без дополнительных танцев (Современная в моем понимании — официально поддерживаемая вендором). При этом хеловорлд на C# осилит даже ребенок, я бы классе в 5 точно осилил. Предложите свой пример. Только давайте без встроенных в ОС скриптовых языков, мы сейчас говорим о компилируемом приложении.

                В ответ предлагаю встречный вашему «размер хеловорлда» тест. Я на .NET смогу тасклист с вебмордой накидать за пару часов. И задеплоить его в продакшен на ажур в тот же день. Следуя вашей логике — любой язык должен позволять сделать то же самое за сопоставимое время. Возьмите язык, который по-вашему превосходит C# в написании хеловорлдов, и сделайте то же самое за сутки.

                Вообще, как правильно высказались коллеги выше, не стоит сравнивать теплое с мягким. Есть разные задачи, разные цели и разные инструменты. .NET в первую очередь создавался для ускорения сложной разработки, для уменьшения ошибок, связанных управлением памятью. То что до полноценной модульной структуры добрели только сейчас — плохо конечно, но добрели же. В любом случае, закон сохранения всего подряд никто не отменял — чтобы в чем-то выиграть, нужно где-то уступить.

                Кроме того, время не стоит на месте тоже. Даже ребята-электронщики уже забили на ассемблер и, тем более, двоичные коды, и вовсю пилят прошивки для микроконтроллеров на Си и даже JS. Хотя это тоже требует каких-то уступок: будь то эффективность, быстродействие или размер прошивки.


                1. iandarken
                  13.09.2016 16:20
                  +2

                  Речь не о том, чтобы «не использовать C#», речь о «не использовать его для приложений на 10 строк».

                  А насчет «хелловорлда на для 5 класса» — так паскаль же! Вон, Хеловорлд на 4 строчки, на 31 килобайт, который не требует установки ничего лишнего ;) И тасклист на FPC в веб-мордой я не смогу за пару часов, но если поменять FPC на дельфы — вполне. Правда, там бинари, «не требующие ничего» будут не по 500кб, а в пяток мегабайт, но, если честно, для меня приоритетней «ничего не ставить» чем «лишний мегабайт бинаря»


                  1. Source
                    14.09.2016 11:43

                    если честно, для меня приоритетней «ничего не ставить» чем «лишний мегабайт бинаря»
                    Подход «ничего не ставить» подходит для очень ограниченного круга простых задач… Для мало-мальски сложного клиентского приложения всё равно придётся делать инсталлятор/деинсталлятор, из которого уже не проблема установить всё что нужно, если это отсутствует.
                    В конечном итоге, использование виртуальных машин и разделяемых библиотек позволяет сократить место суммарно занимаемое всеми установленными программами. Обратный пример можно видеть на примере Electron, где каждое приложение встраивает в себя под 100 Mb браузерного движка, вместо того, чтобы устанавливать его отдельно и единоразово.


                    1. iandarken
                      14.09.2016 12:55

                      Я вообще имел в виду не энтерпрайс, а утилиты. Но ладно, возьмем «взрослые» продукты.
                      No Man's Sky. Отбросив проблемы с AMD — первый выкаченный билд не запускался у некоторых потому, что требовал MSVCR какой-то там версии, которая стояла не у всех. Блин, да поменять один флаг компилятора — и не нужны будут никакие редистры. Да, ДЛЛки и бинарь вырастут на стописят килобайт каждый, но в современных продуктах PEшек мало, главное место жрут ресурсы.
                      KIS17. Перед тем как поставиться на Win7 он попросил Дотнет45. И пойдет качать много мегабайт. А потом его ставить. А зачем там нужен дотнет? Для гуев. И все.


                      1. Source
                        14.09.2016 20:49

                        первый выкаченный билд не запускался у некоторых потому, что требовал MSVCR какой-то там версии, которая стояла не у всех.
                        С MSVCR я тоже не понимаю смысла отдельно его устанавливать, особенно для игр, которые сами по себе порядка Гб занимают… Подозреваю, что там какие-то лицензионные заморочки от MS.

                        KIS17. Перед тем как поставиться на Win7 он попросил Дотнет45. И пойдет качать много мегабайт. А потом его ставить. А зачем там нужен дотнет?
                        Ну и в чём проблема? 1 раз установится Дотнет45 и всё на этом, остальные программы уже не будут его качать.

                        P.S. Вы ещё про JRE забыли ;-)


                  1. svboobnov
                    15.09.2016 00:02

                    Тасклист с веб-мордой можно приготовить на FreePascal, на D (dlang.org), на бейсике (Gambas) и на множестве других компилируемых языков. Можно даже на Java, не обвешивая программу полноценным стомегабайтным рантаймом (применяем либо Avian JVM (вес исполняемого файла ~3Мб), либо скомпилировать при помощи gcj — компилятора из набора gcc (~3Мб), либо с помощью ExcelsiorJet (~1Мб) ).


                    1. zhaparoff
                      16.09.2016 12:34

                      Тасклист с веб-мордой можно приготовить на FreePascal, на D (dlang.org), на бейсике (Gambas) и на множестве других компилируемых языков. Можно даже на Java,

                      Не спорю, можно. На ассемблере, вероятно, тоже можно. Вопрос затрат времени и усилий.

                      Напоминаю, весь холивор начался со слов:
                      Как бы то ни было, но helloworld должен занимать несколько десятков байт, не более. На любой архитектуре, любой ОС и в любом году.

                      А вы предлагаете JVM, хоть и по 3 Мб…


              1. Source
                13.09.2016 14:35

                Так, справедливости ради, дотнет стоит по умолчанию на свежей системе, начиная с Windows 7 SP1, емнип.


                1. Varkus
                  14.09.2016 16:51

                  ЁМНИП какая версия dotnet стоит на win7sp1?
                  Несчастный конфигуратор для охранно-пожарных приборов требует, не менее 4.0.
                  Качаю -> ставлю, т.к. моя неполноценная win7sp1Pro не имеет на борту dotnet 4.0 и более.
                  http://superuser.com/questions/298025/does-windows-7-have-net-4-installed-by-default
                  В картинках
                  http://stackoverflow.com/questions/909516/what-version-of-net-ships-with-what-version-of-windows
                  Обязательно вики
                  https://en.wikipedia.org/wiki/.NET_Framework#Release_history

                  В моём субъективном понимании — C# любят те, кто не понял С++. Ничего личного.


                  1. red75prim
                    14.09.2016 18:17

                    С++ — здоровенный швейцарский нож в составе: кремневый нож, каменный ударник, классный скальпель, почти функциональная пилка, программируемый синтезатор материи. Дополнительно можно купить изоленту, чтобы кремневый нож и скальпель не раскладывались во время программирования синтезатора.


                  1. Source
                    14.09.2016 21:06

                    ЁМНИП какая версия dotnet стоит на win7sp1?
                    Из коробки 3.5, остальные должны были приехать с обновлениями, если Windows Update не отключён.

                    В моём субъективном понимании — C# любят те, кто не понял С++.
                    Вы знаете о существовании только двух языков программирования? По-моему у C# и C++ из общего только буква C в названии. В остальном, языки из разных групп, с разной областью применения и т.п.


                  1. zhaparoff
                    16.09.2016 12:01

                    Давайте не страдать геронтофилией. Win7 уже все. Даже если она и стоит до сих пор на куче компов по всему миру, это не значит что нужно разрабатывать софт под устаревшие платформы. В вебе давно этот вопрос решили: Убогая фича? В топку, deprecated! Не поддерживается браузером и делай что хочешь.

                    А насчет любви, на мой взгляд, C# любят те кому надоели:
                    — 5 страничные скрипты сборки
                    — 4 вложенных цикла чтобы всего лишь освободить память из под указателя на массив массивов указателей на массивы указателей.
                    Те, кому нравится:
                    — объявление массива строк 1 строкой
                    — освобождение памяти из под него 0 строками.
                    — уверенность в том, что int это всегда int32, на любой платформе, после любого компилятора.

                    Я не хочу никого убедить, что С# идеален, а C++ нет. У обоих есть свое применение и свои сильные-слабые стороны. Как и у множества других языков. Я вот не понимаю Java, хотя вроде бы задумка неплохая. Но я не кричу на каждом углу — «джава для тех кто не смог C#».


        1. Varkus
          14.09.2016 16:39

          мажу лицо фэйспалмовыл маслом, «хэлоуворлд» это же сарказм, извините что тэг забыл добавить.

          Но масса приложений, прошедшие через мои руки, в частности по видеонаблюдению, могли бы СПОКОЙНО обойтись без этого «поделия», т.к. функционал и так не изобилует чем-то сверхгениальным.
          Меня просто субъективно раздражает подход контор разработчиков ПО: С++ хорош, но программеры дорого берут, возьмём студента на С#.
          А в результате страдает пользователь:
          — вот вам программа на 20 мегабайт, она всё может.
          — хм, 30 метров и прямо всё может?
          — ну да, это же C#
          прошло 5 минут
          — парни, ваша поделка просит dotnet, что делать?
          — как что? скачать dot net и радоваться жизни(а в это время за глаза: вот ламерюга, такие вопросы тупые задаёт)
          — так оно 300 метров весит, я со своим инетом неделю качать это буду! Мало того что за ОСь заплатил, следом за вашу поделку заплатил, теперь еще и за трафик платить?
          — ну извините, что в вашем Мухосранске нет оптики, давайдосвидания!

          Вы думаете я чушь несу? Нет! Это реальность из-за третьего транспортного кольца :(


          1. Source
            14.09.2016 21:14

            Видимо, в Мухосранске до сих пор сидят на Windows XP, но при заказе разработки забыли об этом упомянуть… CD/DVD-приводов и USB-разъёмов на местных компах тоже сроду не водилось, поэтому доставка ПО возможна только через интернет и только с оплатой за трафик 2 руб/Мб или сколько там оно было 10 лет тому назад…

            С++ хорош
            Это C хорош, а не С++, не путайте )))


            1. svboobnov
              15.09.2016 00:17
              -1

              CD/DVD-приводов и USB-разъёмов на местных компах тоже сроду не водилось, поэтому доставка ПО возможна только через интернет и только с оплатой за трафик 2 руб/Мб

              А как же Вы, простите, собираетесь Windows Update без интернета организовать?
              А вот есть такие системы видеонаблюдения, для которых софт существует только под Windows XP, и всякие ненужные разъёмы на системном блоке залиты эпоксидкой.
              На этот же компьютер начальство желает поставить охранно-пожарную морду, написанную на этом вашем дотнете. И интернет к охранно-пожарке подключать нежелательно. Какой выход? Правильно — подключить сотовый модем и долго-нудно скачивать 300Мб .NET.


              1. Source
                15.09.2016 21:18

                А как же Вы, простите, собираетесь Windows Update без интернета организовать?
                А причём тут это? .NET можно и напрямую поставить…

                P.S. Вас кто-то из программистов, использующих .NET, обидел что-ли?
                Разъёмы залиты, ethernet-доступа нет, интернета нет… Ну достаньте HDD из этого несчастного компа, подключите его к нормальному и скопируйте туда эти 67 Mb (именно столько занимает инсталлятор .NET 4.5.2) xD


                1. svboobnov
                  15.09.2016 23:05

                  Никто меня не обидел. И более того: среди виденных мною разработчиков я могу выделить трёх очень грамотных и вдумчивых людей, и все трое, по странному стечению обстоятельств, работают с .NET.
                  Просто у меня дух противоречия бурлит, и не нравится идея таскания большого рантайма вслед за крохотным приложением.


                  1. zhaparoff
                    16.09.2016 12:28

                    Не понимаю я вас, вот честно.
                    У меня на телефоне, просто вдумайтесь, 4 Гб оперативной памяти. В ТЕЛЕФОНЕ!
                    На планшете за 3 доллара в месяц — 10 Гб 3G трафика. Это не опечатка, 10 ГИГАБАЙТ.
                    А вы все жметесь скачать 100 метров из тырнета…
                    21 век на дворе, е-мае! Виртуальная реальность на подлете!

                    Если трудно с инетом — скачал, принес на флешке (Нормальные девелоперы просто делают сетап и туда вкладывают msi дотнета, сетап делается за 15 минут в студии)
                    Если один раз поставить — легче простого.
                    Если много — есть замечательные штуки типа WSUS/SCOM и тому подобных корпоративных раздвалок софта.
                    При этом ставится 1 раз, а не так как C++ рантайм: минорная версия различается — и все, нужно рядом ставить 5 штук одинаковых, но не совсем.

                    Извините за излишнюю эмоциональность, но и в правду, хватит.

                    Если это «наколеночная» утилита, то не стоит ждать от нее удобства развертывания. Небось, кряки для игр, включающие 10 пунктов (включая правку реестра вручную и прочие увеселения) вас так не раздражают.
                    Если продакшен утилита — то должен быть сетап и все ставится одной кнопкой. Если сетапа нет — значит вы наняли не тех людей.


                  1. Source
                    16.09.2016 13:21

                    Просто у меня дух противоречия бурлит, и не нравится идея таскания большого рантайма вслед за крохотным приложением.
                    Так в том то и дело, что ни .NET, ни JVM не таскают большой рантайм за крохотных приложением. Рантайм ставится системно, а не в рамках приложения. Сравните, например, с Electron-based приложениями, вот там действительно рантайм засунут в приложения. И если Вам нужно 5 приложений на Electron, то Вы 5 раз вынуждены будете скачать рантайм и иметь в системе 5 его копий.


  1. umnijdrug_com
    12.09.2016 17:06
    -1

    Всех с днем программиста!!!
    C# — мой основной язык. Работаю на международном проекте. И хотелось бы сказать:

    11 факт. Как бы не был крут язык, найдутся индусы, которые испоганят его в своем *овнокоде.


    1. khim
      12.09.2016 17:18
      +2

      После общения с достаточно большим количеством программ от разных компаний могу сказать: хватить катить баллоны на индусов. Они, по сравнению с китайцами — молодцы вообще.

      Во всяком случае программ на C# для Android'а с добавлением библиотек на Objective C скопилированных под ARM и нативных процедур «для ускорения» C# кода под x86 в одном продукте я у индусов не видел. У китайцев — легко.


      1. Redwan
        12.09.2016 18:17
        +1

        Я бы стал различать индийцев и индусов. Первое — национальность, второе — призвание.


  1. LexS007
    12.09.2016 17:09

    10. Существуют независимые реализации языка C#, самые известные из них: Xamarin, dotGNU и Portable.NET.

    Разьве Xamarin это реализация C#? реализация C# это компилятор mcs в Mono.


  1. iqiaqqivik
    12.09.2016 17:23
    +6

    > проект изначально назывался COOL (C-style Object Oriented Language)
    Жаль, не C-style Object Best Oriented Language.


    1. Schvepsss
      12.09.2016 17:32
      +1

      Видимо тогда возник бы вопрос об авторских правах к аббревиатуре.


      1. KvanTTT
        12.09.2016 17:48
        +4

        Ну вообще-то язык Cool тоже существует.


        1. Schvepsss
          12.09.2016 21:02

          Шах и мат.: О


        1. QtRoS
          12.09.2016 23:23

          Ееее, я знал, что кто-то тут проходил замечательный курс Compilers и познакомился с COOL'ом!


          1. KvanTTT
            13.09.2016 00:15
            +1

            Да, в свое время даже опубликовал статьи по разработке компилятора для этого языка :) Благодаря первой получил инвайн на хабр.


  1. LookingAhead
    12.09.2016 17:27
    +3

    Эх, я обманулся заголовком дважды:
    1) Подумал, что внутри что-то про день программиста;
    2) Что-то про C++;
    И ещё поздравление в двоичном коде -> из вашего сообщения у меня получилось «Друзья`pсpднемpпрограммистаqp?» (UTF-8)
    Если исправить то:
    11010000 10010100 11010001 10000000 11010001 10000011 11010000 10110111 11010001 10001100 11010001 10001111 00101100 00100000 11010001 10000001 00100000 11010000 10110100 11010000 10111101 11010001 10010001 11010000 10111100 00100000 11010000 10111111 11010001 10000000 11010000 10111110 11010000 10110011 11010001 10000000 11010000 10110000 11010000 10111100 11010000 10111100 11010000 10111000 11010001 10000001 11010001 10000010 11010000 10110000 00100001
    «Друзья, с днём программиста!»


    1. Schvepsss
      12.09.2016 17:31
      +1

      Получился сюрприз. :)

      Проверила еще раз. Вроде все верно про двоичный код. Надпись выглядит так: «Друзья, с днём программиста! :)»


      1. LookingAhead
        12.09.2016 18:13

        Вы правы! Поспешил с сообщением и не заметил, что первый 0 сделал число восьмеричным)


        1. red75prim
          12.09.2016 21:23
          +1

          Это тоже входит в один из плюсов C#.


    1. 3axap4eHko
      12.09.2016 23:18

      21 век а все еще ascii используете
      0000010000010100 0000010001000000 0000010001000011 0000010000110111 0000010001001100 0000010001001111 00000000101100 00000000100000 0000010001000001 00000000100000 0000010000110100 0000010000111101 0000010001010001 0000010000111100 00000000100000 0000010000111111 0000010001000000 0000010000111110 0000010000110011 0000010001000000 0000010000110000 0000010000111100 0000010000111100 0000010000111000 0000010001000001 0000010001000010 0000010000110000 00000000100001


      1. LookingAhead
        13.09.2016 10:50

        там UTF-8, а не ASCII, а у вас UTF-16. поэтому всё в порядке, мы в 21 веке)


  1. svboobnov
    13.09.2016 01:49
    +1

    В 5 пункте (про

    5. С# является первым компонентно-ориентированным языком программирования.
    ) брехня:
    Платформа .NET (и её родной C#) опубликована в 2002 году,
    см. .Net Framework
    Язык «Компонентный Паскаль» опубликован в 1999 году,
    см. Компонентный Паскаль


    1. PaulIsh
      13.09.2016 02:50
      +1

      Более того,

      Синтаксические конструкции нового языка в большинстве своем были позаимствованы из С++ (типы данных вроде структуры и перечисления) и из Visual Basic (использование свойств классов).
      тоже на мой взгляд были позаимствованы именно из Delphi. Да и Аннерс Хейлсберг получил награду не за один C#, а за создание Turbo Pascal, Delphi и C#.


      1. Schvepsss
        13.09.2016 09:39

        Кстати, на Channel 9 есть видео (3 минуты) с Аннерсом о том, что его вдохновило на создание C#.


    1. Schvepsss
      13.09.2016 09:25

      Да, стоит уточнить, что это первый компонентно-ориентированный язык из семейства С. Спасибо!