Современное состояние языков программирования Ключевые слова: язык программирования,IDE,байт-код,виртуальная машина,NET,JAVA
В тексте встречаются термины:
IDE – среда разработки (Integrated Developer Environment)
Байт-код – код, который предназначен для выполнения не напрямую процессором, а через виртуальную машину, которая выполняет команды этого кода.
Кросс-платформенность – возможность запускать программу на разных операционных системах, как путем запуска, так и через перекомпиляцию проекта.
Виды языков
- по типизации - типизированные(С++, Pascal, Object Pascal, Java...) и не типизированные (Visual Basic, 1C, PHP, Java Script...). В типизированных языках переменная может принимать всегда значение только одного типа, в нетипизированных - разных.
- по типу трансляции - компиляторы, интерпретаторы и компиляторы в промежуточный язык, который выполняется на интерпретаторе(виртуальной машине) - это не типы языков, а способ исполнения программ написанных на них. Так для одного и тогоже языка (DBase) существовали интерпретаторы - DBase - и компилятор - Clipper.
Языки для виртуальных машин
Программы, написанные на этих языках, работают несколько меделенне, чем EXE-файлы, так как скомпилированы в байт-код для виртуальных машин.
Java
• не компилирует в EXE, есть утилиты для превращения классов в EXE-файлы (и еще много других способов получить исполнямый бинарник)
• требует для выполнения программ библиотеку основных классов Java Runtime Enviroment, объем 80 Мб.(на самом деле 15 - 20 мегабайт в зависимости от платформы)
• компилирует программу в байт-код, запускаемый на виртуальной машине (мягко говоря не совсем верно. Про JIT-компиляторы знаем?).
• позволяет использовать только язык JAVA, компилируемый в байт-код.(а еще jithon например)
• программы можно писать в любом текстовом редакторе, компилятор встроен в платформу.
• название IDE: не помню (eclipse, netbeans)
• кросс-платформенная – одна программа будет работать и в Windows, и в Linux, и в Mac OS
.NET
• целое семейство языков (сотни языков - можно привести хотя-бы пару десятков для примера?), рекламный слоган «приходи со своим языком» - а можно ссылку на источник слогана?.
• не компилирует в EXE
• требует для выполнения платформы .NET, объем тоже немаленький. - неужели так сложно воспользоваться первоисточником? 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 и Java скорее всего несовместимы.
Учитывая, что .Net не кросс-платформенна (не совсем верно - см.Mono), Java имеет некоторое преимущество.
PHP
Разработан для создания динамических Web-страниц. Сейчас на нем пишут и серьезные приложения. Наиболее используемые Web-магазины написаны на PHP.
PerlJava Script
Классические языки
Генерируют EXE-код.(не обязательно, см. Forth)
Нельзя перекомпилировать проект, чтобы он работал в другой операционной системе, нужно полностью переписывать программу.(утверждение далеко от истины)
Delphi (Borland)
• компилирует EXE
• язык:Паскаль
• IDE:встроена
C++ Builder (Borland)
• компилирует EXE
• язык:С++
• IDE:встроена
Visual C (Microsoft)
• компилирует EXE
• язык:С++
• IDE:встроена
Замечания
Следует заметить, что хотя Visual C и C++ Builder используют язык Си++, библиотека базовых классов у них разная и значительно отличающаяся друг от друга.
Зато библиотека классов Delphi и C++ Builder идентичны.
Не знаю, правда, годятся ли компоненты от Delphi для C++ Builder.
Резюме
Если требуется кросс-платформенность, имеет смысл обратить внимание на Java. Частичная совместимость обеспечивается и при использовании Delphi и Kilix.
Если критична скорость, можно использовать классические языки программирования (если критична скорость - есть ассемблер), чаще используют не объектно-орентированные языки - например С(а не С++).
Для shareware скорее всего подойдут только классические языки программирования, т.к. генерируют небольшой exe-код, и не требуют наличия платформы для выполнения байт-кода. - интересно, откуда такое утверждение? - http://www.pbus-167.com/nhc/nhc.htm
Прошу дописать статью.
Неплохо-бы удалить сию безграмотность и не позорить Книгу Знаний. Для ответов на все необходимые вопросы по языкам программирования и вяским фреймворкам достаточно иметь желание, Интернет и 1-3 часа Гугла. |