Ничто в этом мире не трогает сердца программистов больше, чем инструменты программирования. VC, DELPHI, JAVA... эти ослепительные имена не только занимают жизнь программистов, но и, кажется, стали своего рода убеждением. Однако с наступлением нового столетия эти убеждения снова столкнулись с серьезными проблемами. Microsoft, лев, измученный и раздраженный судьями и хакерами, поклялся сохранить корону на голове, приложил все усилия и разработал свою особую стратегию — .NET. В качестве основного языка разработки .NET естественным образом появился C#. Программистам предстоит сделать мучительный выбор: за кем следовать? Чтобы узнать ответ, нам придется провести некоторые сравнения и прогнозы.
Если отбросить все нетехнические факторы, C#, несомненно, является лучшим языком программирования, когда-либо созданным на этой планете. Он содержит почти все последние результаты в области разработки программного обеспечения и исследований в области программной инженерии. Объектно-ориентированная, типовая, компонентная технология, автоматическое управление памятью, кросс-платформенная обработка исключений, контроль версий, управление безопасностью кода... Все эти функции невозможно найти на другом языке. Хотя, как многие заметили, когда я перечисляю вышеперечисленные возможности, люди всегда думают о JAVA, но C# идет дальше. Но реальность такова, что нетехнические факторы часто определяют будущее продукта. Особенно в истории компьютерного программного обеспечения технически выдающиеся продукты, такие как OS/2, Mac OS, UNIX и т. д., потерпели поражение от красоты. из окон. Под щекой. Но на этот раз роль Microsoft, похоже, изменилась с революционера с голыми руками на запугивающего старого домовладельца. Если ситуация действительно изменится, не окажется ли этот ребенок, работающий с C#, не тем ребенком? Возможно, ситуация не так уж и плоха. В конце концов, тощий верблюд больше лошади, а C# был передан в организацию по стандартизации. Как только он станет международным стандартом, неизвестно, будет ли какой-нибудь зудящий герой (возможно, сама Microsoft). перенесу его на другие платформы. В этом случае у JAVA будут проблемы. Поскольку пользователи JAVA в основном являются разработчиками сетевых служб и разработчиками программного обеспечения для встраиваемых устройств, программное обеспечение для встраиваемых устройств не является тем местом, где C# вступает в игру. С точки зрения сетевых служб, C# обеспечивает своевременную компиляцию и локальное кэширование кода. более мощный, чем виртуальная машина JAVA. Имеет абсолютные преимущества в производительности. Более того, как только C# станет общедоступным стандартом, как C++, разработчики программного обеспечения смогут сэкономить на лицензионных сборах JAVA и не беспокоиться о том, что станут рабами Microsoft. та же проблема. Какие мнения. Возможно, это именно то, что ищет Microsoft.
Если конкуренцию C# и JAVA в сфере сетевых сервисов сравнивать с конкуренцией за господство в воздухе в будущем, то конкуренция C# с традиционными средствами быстрой разработки общего назначения - VB, DELPHI и т.п. будет явным преимуществом. рукопашный бой. Пожалуй, самый несчастный программист — это программист VB. В Microsoft VB похож на Клинтона, который покинул свой пост. Он не только потерял всю свою славу, но и испытывает проблемы. Подумайте об этом: проекты, написанные на VB6, должны быть преобразованы в код на основе .NET с помощью инструмента преобразования, прежде чем их можно будет перенести в VB7, который практически неузнаваем. Поскольку VB7 следует спецификации общего языка (CLS), созданной для обслуживания .NET, в него были добавлены почти все функции, которые изначально были доступны только в C++, JAVA и других языках, но синтаксис совместим с оригиналом. Если вы впервые видите преобразованный код вашего старого проекта VB6 в VB7, будьте осторожны со своим сердцем! Так что действуйте и не говорите мне, что собираетесь уйти на пенсию. Ситуация с DELPHI ненамного лучше. Изначальная специальность заключалась в том, чтобы создавать приложения быстро и хорошо, но теперь, взглянув на последнюю версию VS.NET Beta 1, вы почувствуете себя настолько знакомой, с многочисленными списками свойств, компонентами... Кто делает? ты бедный, даже главный конструктор не может тебя поддержать.
Фактически, настоящим повелителем среди языков программирования уже много лет является C++. Все операционные системы и большинство коммерческого программного обеспечения используют C++ в качестве основного языка разработки. Подавляющее большинство JAVA-программистов также являются энтузиастами C++, и успех PHP также обусловлен синтаксисом, похожим на C++. В области операционных систем, драйверов устройств, видеоигр и т. д. C++ еще долго будет занимать доминирующее положение, а в разработке наибольшего количества прикладного программного обеспечения C#, вероятно, заменит C++. Прежде всего, C#, как и JAVA, просто копирует часть синтаксиса C++. Поэтому большому количеству программистов C++ его легко изучить и начать работу. Кроме того, он проще, чем C++, для новичков. Во-вторых, Windows в настоящее время является монопольной платформой, и при разработке приложений для Windows, конечно, нельзя игнорировать голос Microsoft. Самое главное, что по сравнению с C++ использование C# для разработки прикладного программного обеспечения позволяет значительно сократить цикл разработки, и в то же время вы можете использовать исходный код C++, за исключением кода пользовательского интерфейса.
Однако у C# есть и слабые стороны. Прежде всего, программы C# пока не могут работать на большом количестве существующих платформ Windows, поскольку для программ C# требуется библиотека времени выполнения .NET в качестве основы, а библиотека времени выполнения .NET будет выпущена как часть нового поколения Windows (Whistler ), или как пакет обновления предоставляется пользователям Windows Me и Windows 2000. Так что в ближайшем будущем C# будет в основном использоваться на сервере. Во-вторых, существует лишь несколько компонентов или библиотек, которые могут использоваться C#, например библиотека времени выполнения .NET, и нет доступных богатых сторонних программных библиотек. Для этого требуется процесс и поддержка различных разработчиков программного обеспечения. тоже очень важно. В-третьих, некоторые факторы успеха JAVA рекламируются в лагере противников Microsoft. Хотя «напиши один раз, работай где угодно» — это всего лишь лозунг, в конце концов, это уже зрелая технология. В настоящее время единственным сторонником C# является Microsoft, у которой плохая репутация, и он может работать только в Windows. На самом деле эти два языка не являются незаменимыми. С рациональной точки зрения, для разработчиков программного обеспечения лучшим инструментом является тот, с которым они лучше всего знакомы. Специально для пользователей C++ C# не приносит ничего нового, поскольку библиотеку времени выполнения .NET также можно использовать в C++, и нет абсолютной причины для ее изменения.
Подводя итог, я лично считаю, что в последние годы C# неизбежно поднимется и станет главным героем на платформе Windows, в то время как JAVA станет доминирующим игроком на UNIX, Linux и других платформах, а C++ продолжит демонстрировать свои мускулы на платформе Windows. область системного программного обеспечения. Что очень интересно, синтаксис этих языков чрезвычайно близок, поскольку и JAVA, и C# были разработаны на основе C++. Другие инструменты разработки, конечно, продолжат свой путь еще долгое время, но неизбежно пострадают с точки зрения доли рынка.