Сообщение от
Ia_zhuk
Ребята, напишите маленькое faq по языкам, т.е. какой язык и для чего. Если где такое есть дайте пожалуйста ссыль... Заранее благодарен.
Если рассматривать языки из данного раздела, то здесь представлены универсальные языки.
Универсальность выражается в том, что
все они могут применяться для написания любых программ из любой предметной области.
По
типу выполнения данные языки делятся на
1)Полностью компилируемые (C, С++, ASM, Delphi Pascal) - означает то что программа преобразуется в машинный код, который поннимает непосредственно процессор компьютера.
2)Работающие на виртуальной машине (Java, C#, Python) - для выполенения программ на таких языках необходимо что бы на компьютере было установлено специальное ПО, называемое виртуальной машиной (JVM, MSIL).
3)Интерпретируемые (Python) - то есть те, которые могут выполняться покомандно, специальной программой - интерпретатором.
Например, язык командной строки MSDOS - типичный интерпретируемый язык, выполняемый интерпретатором Command.com.
Соответсвенно, быстродействие программ разное - на компилируемых самое высокое, на интерпретируемых - самое низкое.
Традиционно, языки также делятся на
мультиплатформенные(С, C++, Java, Python) и
моноплатформенные(C#, Delphi).
Хотя такое деление относится не к языкам, а к традиционной среде проектирования для языков. Например, на C# пишут обычно в MS VisualStudio, а ее копилятор генерирует код только для windows. Поэтому C# считается моноплатформенным языком.
Также языки можно поделить по
1)
Уровню - низкого уровня (ASM), высокого уровня (С, C++, Delphi, Java, C#, Python).
2)Поддержке
парадигм программирования - поддержка структурного программирования (все, ASM- частично), поддержка ООП (все, кроме ASM и C). Есть также языки , поддерживающие функциональное и логическое программирование (в данном разделе не представлены - Lisp, Prolog).
Далее расмотрим каждый язык в отдельности (по мере увеличения уровня):
1)
ASM - ассемблер. Язык низкого уровня - фактически каждая операция представляет собой команду процессора. Применяется очень редко, в основном - для написания драйверов и других системных утилит, где требуется либо очень высокое быстродействие, либо работа с железом на низком уровне. В прикладном программировании - практически не используется из-за неудобства для прикладных задач.
2)
С - язык структурного программирования. В настоящее время применяется для написания ОС, системных утилит, и небольшого числа прикладных программ. Простой синтаксис, высокое быстродействие, эффективность. Из недостатков - недостаточный контроль типов данных, неявные преобразования, неподдержка соверменных парадигм (ООП).
3)
С++ - расширение языка C для использования в ООП. Несмотря на близкий к C синтаксис, очень сильно от него отличается стилем программирования. Совмещает в себе эффективность низкоуровнего С и мощь ООП. Широко применяется в прикладном программировании. Однако, в настоящее время уступает языкам более высокого уровня (C#, Java). Из недостатков (по сравнению с C#, Java) - недостаточный контроль типов, отсутствие сборки мусора, и др.
4)
Delphi Pascal - язык высокого уровня, поддерживает структурное и ООП. Популярен для написания прикладного ПО, особенно ПО связанное с разработкой БД. Используется также для обучения. В настоящее время сильно сдает позиции C# и Java. Из недостатков - громоздкий синтаксис, нет сборки мусора, моноплатформенность.
5)
C#, Java - схожие по структуре и синтаксису языки выского уровня. Полная поддержка ООП. Работают на виртуальной платформе и используют боблиотеку с большим функционалом (т.н. фреймворк) что существенно повышает скорость разработки ПО. В настоящее время широко применяются в прикладном ПО. Из недостатков (по сравнению с C++, Delphi) - требуют наличия фреймворка на машине пользователя, более низкое быстродействие, моноплатформенность (для C#).
6)
Python - ООП язык высокого уровня. Пока относительно мало распространен. Из недостатков - низкое быстродействие, динамическая типизация (хотя для некоторых - это преимущество

). Как на мой взгляд - скорее скриптовый язык, мало пригодный для написания прикладного ПО десктоп или корпоративного уровня.