• Партнер

  • Язык С после своего появления завоевал сердца многих кодеров. Программирование развивалось, задачи усложнялись тем самым увеличивая размер кода. Возникла необходимость в новом подходе к программированию...

    Возникает новое направление – объектно-ориентированное программирование. Его особенность заключается в использовании виртуальных функций и классов, что увеличивает гибкость динамической организации программы в виде отдельных модулей; а также активное преднамеренное использование таких свойств как наследование, полиморфизм, инкапсуляция. Разработан объектно-ориентированный язык программирования C++, соответствующий практически всем аспектам данного направления. Данный язык является основным во многих операционных системах, и почти вся нами горячо любимая Windows (почему почти?
    - потому что без ASMa никак в системном программировании). Короче в С++ писали почти все
    (и чуть меньше пишут сейчас). Также широко используется сочетание его с другими языками. Проги в С/C++ компилируются в бинарные исполняемые файлы или в бинарные динамические библиотеки (dll). 

    Но как известно многим нам – программистам и юзерам, существует один страшный монстр в этом компьютерном мире, и называет он себя гордо – Microsoft. Базару нет - он управляем, и управляет им отважный
    праотец миллионов дыр в своих операционках, его дырявое величество, Билл Гейтс, мать его так!
    Решил Билл удивить мир и сказал своим апостолам:

    - Вот С++ - хорошая концепция, а мы мутим, типа, самую лучшую реализацию этой концепции под самую глючную, самую дырявую, короче, самую конченную операционную систему во всем этом, из-за наших систем, неидеальном мире! Мы гребанные молодцы!!! Надо создавать свой язык программирования и заставим пользоваться им всех владельцев новых версий Visual C++ 7. Вот это будет тема, типа!

    И то ли он что-то недосказал, то ли апостолы что-то прослушали... Сделали, в общем, вещь толковую. А назвать ее решили C#. Я считаю, красивый понт. А Билл, сам того не желая, сделал в своей жизни хоть что-то толковое, а не очередную покупку у лохов прав на DOS или подписывание контрактов с IBM, где последняя расписывается в том, что является лохушкой!
    C# имеет двух родителей – это С++ и Java, легко учится при наличии небольшого опыта хоть в одном из этих двух языков.
    В последние годы много шуму наделал язык JAVA от Sun Microsystems. Его можно назвать внуком С++. Программы JAVA компилируются не в бинарный исполняемый файл, как в С/C++, а в так называемый байт-код, выполняемый виртуальной машиной JAVA. Так был решен вопрос о переносимости. Но, по мнению Microsoft, у JAVA ест один серьезный недостаток – отсутствие прямой поддержки Windows. Код JAVA не совместим с кодом C/C++, но синтаксис явно
    заимствован из С++, но конечно есть некоторые изменения.

    Интересный факт:
    Язык программирования JAVA – это детище Sun Microsystems, можно сказать, гордость этой компании. Хотя еще какие-то 2 недели назад моя матушка скачивала Java Virtual Machine(среду выполнения JAVA-приложений) с сайта Microsoft. Однако, по решению суда от 3.02.2003, зловещий производитель Windows не имеет прав на распространеие JVM. 

    И вот тут Microsoft решает внести свою лепту... В конце 90х разрабатывается язык С# для создания кода Net Framework. В 2000 году появляется первая бета-версия. Мне не известно, на чем сделан Net Framework, но это не мешает мне рассказать о том, что это и зачем надо.

    Итак, Net Framework – это среда, в которой могут выполняться программно-независимые приложения. В данной среде поддерживается совместная работа в приложении разных языков программирования. Net Framework определяет библиотеки классов, используемых в C#. Любая примитивная программа C# основана на использовании библиотек классов Net Framework. И, пожалуй, самое главное – Net Framework не ограничивается Windows! Я не знаю, существует ли реализация данной среды под другие системы, но уверяю вас, что скоро это все будет. 

    Net Framework содержит в себе не зависящую от языка среду выполнения. Программы C# не компилируются в бинарный исполняемый файл, а компилируются в промежуточный язык (MS Intermediate Language, MSIL). MSIL можно назвать переносным ассемблером, но это псевдо-ассемблер. Среда переводит MSIL в машинный исполняемый код, который в последствии и выполняется. То есть, Net Framework содержит интерпретатор MSIL. А кто сказал, что интерпретаторы плохи? Я с ним не согласен (ну без базару, небольшой проигрыш во времени при запуске), и вот мой аргумент:
    интерпретируемость – это идеальное решение проблем переносимости прог. В это же время не возникает никаких ошибок при переносе (если же конечно не глючная версия Net Framework 🙂 ).
    Кто знаком с PERL, вспомните, как просто переносятся скрипты в разные ОС. 

    По традиции, сейчас мы вместе напишем первую прогу на С# - “Hello
    World!!!”. Если вы являетесь счастливым обладателем MS Studio Net, можете набрать прогу в файле с расширением .сs (пусть его имя Hello.cs), затем в командой строке набираете csc Hello.cs в директории содержащей исходник. В результате получается файл Hello.exe, и запустится он только при наличии Net Framework.

    Листинг:

    using System; //Это называется определением пространства имен, об этом я буду говорить 
    //позже 
    class Hello //Определение класса

    public static void Main() //любая C#-программа начинается с вызова функции Main()
    {
    Console.WriteLine(“Hello World!!!”);//метод вывода строки класса Console
    }

    ИТОГ... В вышеприведенном листинге ярко видны 2 отличия от С++:

    • мы определили пространство имен, использовав новое ключевое слово’using’, которого в С++ не было;
    • функция Main() содержится прямо в классе, как в
      JAVA;

    А вот еще одно не очень яркое:

    • в С++ для вывода строки в консольном режиме, мы использовали оператор
      cout (в принципе, это целый класс) из iostream.h.

    Несмотря на все, С# не утрачивает возможности использования динамических библиотек. Успешно комбинируется с ASP.net. Кроме разработки обычных приложений C# может быть использован для автоматизации работы программ, в частности офисных приложений Microsoft, а также других важных направлениях информационных технологий и сферах деятельности человека. С# имеет
    нововведение, тип decimal, используемый в финансовых вычислениях. Об этих и других возможностях этого концептуально нового языка я расскажу позже, в следующих статьях.

    Объектно-ориентированная модель C# куда более совершенна модели C++. Об этом пойдет речь в следующей статье. 

    I’ll be back!!! See ya!

    Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии