2 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

История языков программирования: C# — впереди планеты всей

Для чего нужен язык C#

Вы навер­ня­ка слы­ша­ли о язы­ках про­грам­ми­ро­ва­ния, кото­рые начи­на­ют­ся на «Си»: про­сто «Си», «Си плюс плюс» и «Си шарп». Сей­час хоро­шее вре­мя, что­бы разо­брать­ся, что к чему.

Главное

  • C# — язык про­грам­ми­ро­ва­ния, кото­рый ком­па­ния Мик­ро­софт изна­чаль­но дела­ла для сво­их про­ек­тов.
  • Назва­ние чита­ет­ся как «си-шарп».
  • Мно­гие дума­ют, что это отдель­ная вер­сия язы­ка С, но на самом деле нет. В C# дей­стви­тель­но есть мно­го кон­струк­ций, похо­жих на С и С++, но точ­но так же в нём мож­но най­ти эле­мен­ты Пас­ка­ля и Java. Это не раз­ви­тие линей­ки С, а новый язык, создан­ный с нуля.
  • C# — объектно-ориентированный язык, а зна­чит, вся тео­рия про клас­сы, объ­ек­ты и насле­до­ва­ния рабо­та­ет и в нём, но с неко­то­ры­ми ого­вор­ка­ми.
  • Спрос на про­грам­ми­стов C# не шкваль­ный, этот язык слож­но назвать мод­ным в 2020 году. Но на нём мож­но делать всё, что нуж­но в 2020-м: от игр и при­ло­же­ний до веб-сервисов.
  • Осо­бен­но хоро­шо он соче­та­ет­ся с эко­си­сте­мой Microsoft.

Игры на DirectX

DirectX — набор ком­по­нен­тов, кото­рые исполь­зу­ют­ся для про­грам­ми­ро­ва­ния трёх­мер­ной гра­фи­ки и рабо­ты со зву­ком и видео. С помо­щью C# мож­но лег­ко под­клю­чить­ся к DirectX и напи­сать свой трёх­мер­ный шутер или любую дру­гую игру. Тех­ни­че­ски это выгля­дит так: C# отве­ча­ет за логи­ку и пове­де­ние игры, а DirectX — за гра­фи­ку и зву­ко­вое сопро­вож­де­ние.

Игры на Unity

Unity — это дви­жок для созда­ния дву­мер­ных и трёх­мер­ных игр. Он берёт на себя физи­ку, гра­фи­ку и мно­гие слу­жеб­ные шту­ки, что­бы вы мог­ли сосре­до­то­чить­ся на кон­тен­те и сце­на­рии игры. Всё бы хоро­шо, но без про­грам­ми­ро­ва­ния в Unity всё рав­но не полу­чит­ся, и быва­лые раз­ра­бот­чи­ки реко­мен­ду­ют для Unity выби­рать имен­но C#. Есть и дру­гие вари­ан­ты, напри­мер, соб­ствен­ный язык UnityScript или JavaScript.

Машинное обучение

Так как C# — это про­ект Мик­ро­соф­та, то у него всё в поряд­ке с под­держ­кой и с биб­лио­те­ка­ми. В мире C# биб­лио­те­ки есть прак­ти­че­ски для все­го, в том чис­ле и для рабо­ты с ней­ро­се­тя­ми и машин­ным обу­че­ни­ем — ML.NET.

Это зна­чит, что вы може­те исполь­зо­вать все воз­мож­но­сти ней­ро­нок в при­ло­же­ни­ях и объ­еди­нять их с помо­щью одно­го и того же язы­ка про­грам­ми­ро­ва­ния. А так как C# — муль­ти­плат­фор­мен­ный язык, то машин­ное обу­че­ние мож­но встро­ить прак­ти­че­ски во что угод­но, от мобиль­ных при­ло­же­ний до носи­мой элек­тро­ни­ки.

Игры и программы для разных мобильных платформ

Что­бы один и тот же C#-код рабо­тал на раз­ных плат­фор­мах, исполь­зу­ют Mono и Xamarin — про­дук­ты для кросс-платформенной раз­ра­бот­ки под раз­ные опе­ра­ци­он­ные плат­фор­мы.

  1. Вы пише­те про­грам­му для одной плат­фор­мы, напри­мер Windows.
  2. Берё­те Mono, загру­жа­е­те туда свой код и выби­ра­е­те новую плат­фор­му — напри­мер iOS.
  3. Mono смот­рит и гово­рит — вот тут нуж­но под­клю­чить дру­гую биб­лио­те­ку, вот здесь немно­го пере­пи­сать код, а это место вооб­ще мож­но уда­лить и напи­сать зано­во, что­бы всё рабо­та­ло.
  4. В ито­ге про­грам­мист не пишет софт с нуля для каж­дой опе­ра­ци­он­ной систе­мы, а пра­вит его так, что­бы он соот­вет­ство­вал её тре­бо­ва­ни­ям.
  5. Это сокра­ща­ет вре­мя раз­ра­бот­ки в несколь­ко раз, пото­му что осно­ва кода одна и та же, а раз­ни­ца толь­ко в дета­лях.
Читать еще:  Как просматривать на компьютере изображения WebP

Программы и сервисы для веба

C# мож­но исполь­зо­вать для созда­ния веб-приложений. Рабо­та­ет так:

  1. У вас есть компьютер-сервер, на кото­ром рабо­та­ет сер­вер­ный софт Microsoft.
  2. Сер­вер­ный софт уме­ет испол­нять код на несколь­ких язы­ках, сре­ди них — C#.
  3. Где-то из интер­не­та в этот сер­вер при­ле­та­ет запрос, напри­мер «выдай мне глав­ную стра­ни­цу».
  4. Сер­вер­ный софт ком­по­ну­ет веб-страницу и пуля­ет обрат­но поль­зо­ва­те­лю. Как и из чего ком­по­ну­ет­ся эта стра­ни­ца — это и есть то, что нуж­но раз­ра­бо­тать в веб-приложении.

Тео­ре­ти­че­ски вы може­те напи­сать при­ло­же­ние для п. 2 на любом язы­ке, кото­рый под­дер­жи­ва­ет сер­вер­ные реше­ния Microsoft, в неко­то­рых слу­ча­ях это может быть и PHP. Но экс­пер­ты гово­рят, что для соф­та Microsoft есть смысл писать на их язы­ке C#.

Сра­зу ска­жем: в боль­шин­стве быто­вых и люби­тель­ских про­ек­тов вам будет доста­точ­но даже не при­ло­же­ния на C# (или Python, Ruby или PHP), а уже гото­во­го реше­ния. Напри­мер, если нужен блог, луч­ше запу­стить его на хостин­ге WordPress и про­сто начать им поль­зо­вать­ся. Это не самый быст­рый софт и не самый гиб­кий, но его запуск зай­мёт у вас 15 минут, а не 15 недель.

А вот на слож­ных высо­ко­на­гру­жен­ных сай­тах WordPress уже не потя­нет — нуж­ны дру­гие тех­но­ло­гии. И тут уже тре­бу­ют­ся глу­бо­кие зна­ния: на одном желе­зе и с одним сте­ком тех­но­ло­гий луч­ше все­го будет рабо­тать C#, на дру­гом — PHP, на тре­тьем — Ruby и т. д.

Исходные коды программ и игр

Программирование — работа и хобби

  1. В начало
  2. Все статьи
  3. История программирования
  4. История языка программирования C#

История языка программирования C#

Рождение C#

Язык C# появился на свет в июне 2000 г., в результате кропотливой работы большой группы разработчиков компании Microsoft, возглавляемой Андерсом Хейлсбергом (Anders Hejlsberg). Этот человек известен как автор одного из первых компилируемых языков программирования для персональных компьютеров IBM — Turbo Pascal. Наверное, на территории бывшего Советского Союза многие разработчики со стажем, да и просто люди, обучавшиеся в той или иной форме программированию в вузах, испытали на себе очарование и удобство использования этого продукта. Кроме того, во время работы в корпорации Borland Андерс Хейлсберг прославился созданием интегрированной среды Delphi (он руководил этим проектом вплоть до выхода версии 4.0).

Для новых задач — новый язык программирования

Появление языка C# и инициативы .NET отнюдь не случайно пришлось на начало лета 2000 г. Именно к этому моменту компания Microsoft подготовила промышленные версии новых компонентных технологий и решений в области обмена сообщениями и данными, а также создания Internet-приложений (COM+, ASP+, ADO+, SOAP, Biztalk Framework). Несомненно, лучшим способом продвижения этих новинок является создание инструментария для разработчиков с их полноценной поддержкой. В этом и заключается одна из главных задач нового языка C#.

Кроме того, Microsoft не могла больше расширять все те же инструменты и языки разработки, делая их все более и более сложными для удовлетворения конфликтующих между собой требований поддержки современного оборудования и обеспечения обратной совместимости с теми продуктами, которые были созданы в начале 1990-х гг. во время первого появления Windows. Наступает момент, когда необходимо начать с чистого листа для того, чтобы создать простой, но имеющий сложную структуру набор языков, сред и средств разработки, которые позволят разработчику легко создавать современные программные продукты.

С# и .NET

С# и .NET и являются той самой отправной точкой. Если говорить упрощенно, то .NET представляет собой новую платформу, новый API для программирования в Windows, а С# есть новый язык, созданный с нуля, для работы с этой платформой, а также для извлечения всех выгод из прогресса сред разработки и нашего понимания принципов объектно-ориентированного программирования в течение последних 20 лет.

Читать еще:  SoundCloud (звуковое облако) — онлайн-платформа и сайт для распространения оцифрованной звуковой информации

Необходимо отметить, что обратная совместимость не потеряна. Существующие программы будут выполняться, а платформа .NET была спроектирована таким образом, чтобы она могла работать с имеющимся программным обеспечением. Связь между компонентами в Windows сейчас почти целиком осуществляется при помощи СОМ. С учетом этого .NET обладает способностью создавать оболочки (wrappers) вокруг существующих компонентов СОМ, так что компоненты .NET могут свободно общаться с ними.

C# это мощь С++ и простота Visual Basic

Авторы C# стремились создать язык, сочетающий простоту и выразительность современных объектно-ориентированных языков (вроде Java) c богатством возможностей и мощью C++. По словам Андерса Хейлсберга, C# позаимствовал большинство своих синтаксических конструкций из C++. В частности, в нем присутствуют такие удобные типы данных, как структуры и перечисления (другой потомок C++ — Java — лишен этих элементов, что создает определенные неудобства при программировании). Синтаксические конструкции С# унаследованы не только от C++, но и от Visual Basic. Например, в С#, как и в Visual Basic, используются свойства классов. Как C++, С# позволяет производить перегрузку операторов для созданных вами типов, Java не поддерживает ни ту, ни другую возможность). С# это фактически гибрид разных языков. При этом С# синтаксически не менее (если не более) чист, чем Java, и так же прост, как Visual Basic, но обладает практически той же мощью и гибкостью, что и C++.

Особенности С#

  • Полная поддержка классов и объектно-ориентированного программирования, включая наследование интерфейсов и реализаций, виртуальных функций и перегрузки операторов.
  • Полный и хорошо определенный набор основных типов.
  • Встроенная поддержка автоматической генерации XML-документации.
  • Автоматическое освобождение динамически распределенной памяти.
  • Возможность отметки классов и методов атрибутами, определяемыми пользователем. Это может быть полезно при документировании и способно воздействовать на процесс компиляции (например, можно пометить методы, которые должны компилироваться только в отладочном режиме).
  • Полный доступ к библиотеке базовых классов .NET, а также легкий доступ к Windows API (если это действительно необходимо).
  • Указатели и прямой доступ к памяти, если они необходимы. Однако язык разработан таким образом, что практически во всех случаях можно обойтись и без этого.
  • Поддержка свойств и событий в стиле VB.
  • Простое изменение ключей компиляции. Позволяет получать исполняемые файлы или библиотеки компонентов .NET, которые могут быть вызваны другим кодом так же, как элементы управления ActiveX (компоненты СОМ).
  • Возможность использования С# для написания динамических web-страниц ASP.NET.

Ограничения C#

Одной из областей, для которых не предназначен этот язык, являются критичные по времени и высокопроизводительные программы, когда имеет значение, занимать исполнение цикла 1000 или 1050 машинных циклов, и освобождать ресурсы требуется немедленно. C++ остается в этой области наилучшим из языков низкого уровня. В С# отсутствуют некоторые ключевые моменты, необходимые для создания высокопроизводительных приложений, в частности подставляемые функции и деструкторы, выполнение которых гарантируется в определенных точках кода.

Почему языки C, C++, C# так называются?

На фоне таких названий языков программирования, как Prolog, Pascal, Python названия из одной буквы или буквы со знаками выглядят странно. Но в них есть свой смысл. В этой статье мы узнаем, как эти языки получили свои названия.

1. C это следующая буква после B

В 1969 в компании Bell Labs Кен Томпсон и Деннис Ритчи решили написать язык B, чтобы улучшать операционную систему UNIX.

Кен Томпсон

Изначально ОС UNIX была написана на ассемблере, что сильно замедляло ее доработку.

Читать еще:  Сводные таблицы в Excel для чайников: примеры, как сделать

Деннис Ритчи

Дальше произошла история, которую некоторые считают легендой. Сотрудники Bell Labs Брайан Керниган и Деннис Ритчи любили одну компьютерную игру. Но она запускалась на сервере. Они решили перенести эту игру на компьютер, который стоял у них в офисе. Попытка перенести игру кончилась неудачей, так как операционная система была написана на ассемблере и машинные коды компьютеров не совпадали.

Брайан Керниган

Тогда им пришло в голову, что нужно написать операционную систему на языке более высокого уровня. За основу взяли язык B и назвали новый язык New B. Но это было неудобно и поэтому позже переименовали этот язык в язык C, взяв следующую букву алфавита.

В 1973 язык С уже стал достаточно развит и на нем переписали операционную систему UNIX. С того момента язык С становится основным языком системного программирования.

2. C плюс единичка

В конце 67-х годов появился язык Simula 67, в котором были впервые сформулированы принципы объектно-ориентированного программирования. В 1980 году сотрудник всё той же компании фирмы Bell Labs Бьёрн Страуструп писал на языке Simula программу моделирования телефонных вызовов. Но Simula очень медленно работал. В то время как язык С был намного быстрее.

Бьёрн Страуструп

Тогда Страуструп решил добавить принципы ООП в язык C. Получившийся язык сначала был назван «C with classes» («Си с классами»). Название «С++» придумал Рик Мэсчитти. В название использован оператор «++», что на языке С означает добавить единичку. То есть к множеству возможностей C добавлена еще одна.

При этом в самом начале этот язык не имел собственного компилятора. Сначала текст программы обрабатывался препроцессором, а потом передавался компилятору C.

Первый коммерческий выпуск язык C++ состоялся в октябре 1985 года.

3. C плюс половинка

В 2000 году компания Microsoft подготовила инструментарий для разработки приложений – платформу .NET. Одним из компонентов этой платформы стала технология активных серверных страниц ASP.NET (Active Server Page). Она была написана на языке C#. Читается С Sharp (от англ. sharp — диез). Или на программистском сленге — «Си диез».

Авторами языка программирования C# стали четыре человека. Руководил группой Андерс Хейльсберг, который до этого разработал Turbo Pascal и Delphi.

Андерс Хейлсберг

Возможности C# копируют возможности языка Java, который был выпущен в 1995 году и стал очень популярным.

Основное отличие между C# и другими языками программирования, особенно Java, заключается в том, что мы постарались остаться как можно ближе к С++

Ключевым отличием от C++ (как и в языке Java) стало следующее изменение. Так как в C++ есть множественное наследование, которое приводит к проблеме «Алмаз смерти«, то в C# множественное наследование было убрано. Таким образом, к языку С добавлена уже не единичка, а половинка. В музыке знак # (диез) как раз и означает означает повышение звука на полтона.

Но есть и другая трактовка. Если присмотреться, то диез состоит из четырех маленьких плюсиков. Поэтому C# — это сокращенное название C++++.

После появления этих вариантов языка C каждый из языков стал развиваться самостоятельно. Но популярности С клоны так и не достигли. Это можно посмотреть в рейтингах языков программирования.

4. Существует ли язык C минус единичка?

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

В 1992 году компания Nombas начала разработку встраиваемого скриптового языка Cmm (Си-минус-минус). Этот язык потом был переименован в ScriptEase. В апреле 1995 года Брендан Эйх доработал этот язык и назвал его Mocha.

Брендан Эйх

Затем этот язык переименовали в LiveScript, а в декабре 1995 этот язык получили свое окончательное название — JavaScript.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector