.NET - шаг в будущее?
Преимущества .NET не заканчиваются, а только начинаются. Visual Studio .NET поддерживает VB, C++ и новый язык С#, о котором далее. И эти языки не просто поддерживаются, но и в полной мере взаимодействуют между собой, используя ООП. Например, мы можем создать программный комплекс типа клиент-сервер, причем клиент будет написан на VB, а сервер на C#. Кроме того сторонними производителями создана .NET-компиляторы для других языков, из которых мне прежде всего интересны Pascal и Perl. Так что теперь языки программирования интегрированы между собой более тесно, чем в технологии COM.
Также в распоряжении программиста имеется система .NET Framework, представляющая собой богатейший набор стандартных классов. Кроме того, она обеспечивает автоматическую сборку мусора (имеется ввиду неиспользуемой памяти) и контроль версий. На мой взгляд это очень удобно, так как, переходя на другой язык программирования, не надо заново изучать иерархию классов.
C - это один из моих любимых языков программирования. Так что я не могу не сказать пару слов о новом языке программирования C# (читается "Си-шарп"), которому, надеюсь, посвятить отдельную статью. Не раз во времяя написания программы на C++, я долго выругивался по поводу того, как организована в этом языке модульность. Теперь всяким там заголовочным файлам пришел конец. Поддержку модульного программирования призваны обеспечить пространства имен (namespaces). Для работы с событиями служат делегаты, которые заменяют указатели функций, так как для безопасности от них пришлось отказаться. Также программисты Майкрософта отказались от множественной наследовательности в классах, хотя в интерфейсах данная возможность осталась. Но по сути этот язык является полностью объектно-ориентированнным: в нем со всеми типами можно работать, как с объектами. Больше не существует и главной функции main, зато появился статический метод Main, как в Java, который теперь является точкой входа в приложение.
Теперь ложка дегтя. А не пострадает ли от компиляции во время исполнения производительность программ. По заверениям Майкрософт, уменьшения производительности будет всего лишь 1-2% для офисных приложений. Хотелось бы верить... Но все-таки такая схема наводит на кое-какие сомнения.
Еще пару слов о чувстве дежавю. Майкрософт всегда славилась тем, что впитавала хорошие идеи своих конкурентов, хотя это, наверное, плюс. Идея виртуальной машины явна взята из идеологии Java, а новые версии языков VB и C# также смахивают на этот язык. Хотя опять же плюс это или минус можно спорить до потери голоса. А нормальное ООП для всех языков программирования это скорее исправление старых ошибок и недоделок в COM.
Вместо итога, хочется сказать, что .NET - это шаг в прошлое, но очень нужный и важный. В .NET доведены до ума многие моменты, которые вызывали многочисленную критику продукции Майкрософт в области разроботки программного обеспечения.