Современное состояние языков программирования Ключевые слова: язык программирования,IDE,байт-код,виртуальная машина,NET,JAVA
В тексте встречаются термины:
IDE – среда разработки (Integrated Developer Environment)
Байт-код – код, который предназначен для выполнения не напрямую процессором, а через виртуальную машину, которая выполняет команды этого кода.
Кросс-платформенность – возможность запускать программу на разных операционных системах, как путем запуска, так и через перекомпиляцию проекта.
Виды языков
- по типизации - типизированные(С++, Pascal, Object Pascal, Java...) и не типизированные (Visual Basic, 1C, PHP, Java Script...). В типизированных языках переменная может принимать всегда значение только одного типа, в нетипизированных - разных.
Неверно. В Delphi (строго типизированный язык) есть тип вариант.
- по типу трансляции - компиляторы, интерпретаторы и компиляторы в промежуточный язык, который выполняется на интерпретаторе(виртуальной машине) - это не типы языков, а способ исполнения программ написанных на них. Так для одного и тогоже языка (DBase) существовали интерпретаторы - DBase - и компилятор - Clipper.
Языки для виртуальных машин
Программы, написанные на этих языках, работают несколько меделенне, чем EXE-файлы, так как скомпилированы в байт-код для виртуальных машин.
Java
• не компилирует в EXE, есть утилиты для превращения классов в EXE-файлы (и еще много других способов получить исполнямый бинарник)
• требует для выполнения программ библиотеку основных классов Java Runtime Enviroment, объем 80 Мб.(на самом деле 15 - 20 мегабайт в зависимости от платформы)
• компилирует программу в байт-код, запускаемый на виртуальной машине (мягко говоря не совсем верно. Про JIT-компиляторы знаем?).
• позволяет использовать только язык JAVA, компилируемый в байт-код.(а еще jithon например)
• программы можно писать в любом текстовом редакторе, компилятор встроен в платформу.
• название IDE: eclipse, netbeans, JBuilder и много других - платных и бесплатных.
• кросс-платформенная – одна программа будет работать и в Windows, и в Linux, и в Mac OS
.NET
• целое семейство языков (сотни языков - можно привести хотя-бы пару десятков для примера?), рекламный слоган «приходи со своим языком» - а можно ссылку на источник слогана?.
• не компилирует в EXE
• требует для выполнения платформы .NET, объем 22 Мб (скачать можно здесь http://www.microsoft.com/downloads/details.aspx?familyid=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en)
• компилирует программу в байт-код, запускаемый на виртуальной машине .NET (мягко говоря не совсем верно. Про JIT-компиляторы знаем? - тема пока не раскрыта) .
• программы можно писать в любом текстовом редакторе, компилятор встроен в платформу.
• название IDE: не помню - Microsoft Visual Studio 2005 в разных вариациях, а также MS Visual Studio .NET (см. сайт MS)
• IDE от Microsoft для одного языка стоит 100$, для всех языков: 1000$ - это ложь. Пример: http://msdn.microsoft.com/vstudio/express/
• программа будет работать только под Windows(и это тоже неправда)
• есть сторонние разработки для запуска .NET программ под другими ОС, но они пока еще не доработаны
• Пакет .NET для разработчика работает на W2K и выше, однако приложения .NET могут запускаться на ОС, начиная с Win95. Для этого используется специальный дистрибутив, который устанавливает компоненты .NET, необходимые только для исполнения .NET-приложений, соответственно, меньшего размера, чем весь пакет .NET. Приведите его название, я не помню.
Замечания
Байт-коды .Net и Java скорее всего несовместимы.
Учитывая, что .Net не кросс-платформенна (не совсем верно - см.Mono), Java имеет некоторое преимущество.
PHP
Разработан для создания динамических Web-страниц. Сейчас на нем пишут и серьезные приложения. Наиболее используемые Web-магазины написаны на PHP.
PerlJava Script
Классические языки
Генерируют EXE-код.(не обязательно, см. Forth)
Нельзя перекомпилировать проект, чтобы он работал в другой операционной системе, нужно полностью переписывать программу.(утверждение далеко от истины)
Delphi (Borland)
• компилирует EXE, DLL
• язык:Паскаль
• IDE:встроена
C++
• компилирует EXE, DLL
• язык:С++
• IDE:Builder (Borland), Visual C
Замечания
Следует заметить, что хотя Visual C и C++ Builder используют язык Си++, библиотека базовых классов у них разная и значительно отличающаяся друг от друга.
Зато библиотека классов Delphi и C++ Builder идентичны.
C++ Builder позволяет не только использовать скомпилированный код от Delphi, но и исходники...
Кроме того версии Delphi начиная с 8.0 могут компилировать и использовать библиотеки под .Net
Здесь можно указать на время связывания - раннее (EXE) и позднее (DLL).
Резюме
Если требуется кросс-платформенность, имеет смысл обратить внимание на Java. Частичная совместимость обеспечивается и при использовании Delphi(Windows) и Kilix(Linux).
Если критична скорость, можно использовать классические языки программирования (если критична скорость - есть ассемблер), чаще используют не объектно-орентированные языки - например С(а не С++).
Для shareware скорее всего подойдут только классические языки программирования, т.к. генерируют небольшой exe-код, и не требуют наличия платформы для выполнения байт-кода. - интересно, откуда такое утверждение? - http://www.pbus-167.com/nhc/nhc.htm
О языках программирования можно писать бесконечно...
Огромная просьба к автору Гению1С - не сбиваться в классификации - в 1-ой половине одна, во второй - другая. Так сравнить ничего не получиться!
Прошу дописать статью.
Неплохо-бы удалить сию безграмотность и не позорить Книгу Знаний. Для ответов на все необходимые вопросы по языкам программирования и вяским фреймворкам достаточно иметь желание, Интернет и 1-3 часа Гугла. |