Смекни!
smekni.com

Исторический обзор классификация и характеристика языков программирования (стр. 8 из 8)

Абстракции Переменные экземпляра
Методы экземпляра
Переменные класса
Методы класса
Да
Да
Нет
Нет
Инкапсуляция Переменных
Методов
Открытые, закрытые
Открытые, закрытые
Модульность Разновидности модулей Пакет
Иерархии Наследование
Шаблоны
Метаклассы
Нет (входит в Ada9x)
Да
Нет
Типизация Сильная типизация
Полиморфизм
Да
Нет (входит в Ada9x)
Параллельность Многозадачность Да
Сохраняемость Долгоживущие объекты Нет

Табл. 6 Основные характеристики Eiffel.

Абстракции Переменные экземпляра
Методы экземпляра
Переменные класса
Методы класса
Да
Да
Нет
Нет
Инкапсуляция Переменных
Методов
Закрытые
Открытые, закрытые
Модульность Разновидности модулей Блок (unit)
Иерархии Наследование
Шаблоны
Метаклассы
Множественное
Да
Нет
Типизация Сильная типизация
Полиморфизм
Да
Да
Параллельность Многозадачность Нет
Сохраняемость Долгоживущие объекты Нет

Приложение

Таблица«популярностиязыковпрограммирования» (TIOBE Programming Community Index for December 2006)

Position
Dec 2006
Position
Dec 2005
Delta in Position Programming Language Ratings
Dec 2006
Delta
Dec 2005
1 1
Java 19.907% -2.36%
2 2
C 16.616% -1.75%
3 3
C++ 10.409% -0.39%
4 5
(Visual) Basic 8.912% +1.33%
5 4
PHP 8.537% -2.24%
6 6
Perl 6.396% -0.74%
7 8
Python 3.762% +1.00%
8 7
C# 3.171% -0.11%
9 10
Delphi 2.569% +1.11%
10 9
JavaScript 2.562% +0.68%
11 20 9 *
Ruby 2.334% +1.90%
12 11
SAS 2.232% +1.06%
13 12
PL/SQL 1.345% +0.28%
14 27 13 *
D 0.971% +0.67%
15 17
ABAP 0.903% +0.35%
16 15
Ada 0.661% +0.07%
17 13
Lisp/Scheme 0.645% -0.12%
18 14
COBOL 0.601% -0.13%
19 16
Pascal 0.566% -0.01%
20 37 17 *
Transact-SQL 0.472% +0.31%

Заключение

Выделим некоторую общую тенденцию в развитии языков программирования: языки развиваются в сторону все большей и большей абстракции. И это сопровождается падением эффективности. Но это стоит того: повышение уровня абстракции влечет за собой повышение уровня надежности программирования. С низкой эффективностью можно бороться путем создания более быстрых компьютеров. Если требования к памяти слишком высоки, можно увеличить ее объем. Это, конечно, требует времени и средств, но это решаемо. А вот с ошибками в программах можно бороться только одним способом: их надо исправлять. А еще лучше — не совершать. А еще лучше максимально затруднить их совершение. И именно на это направлены все исследования в области языков программирования. А с потерей эффективности придется смириться.

Целью данного обзора была попытка дать представление о всем многообразии существующих языков программирования. Среди программистов часто бытует мнение о всеобщей применимости того или иного языка (C, C++, Pascal и т.п.). Это мнение возникает по нескольким причинам: недостаток информации, привычка, инертность мышления. Настоящий профессионал должен постоянно стремиться повышать свои профессиональную квалификацию. А для этого нужно не бояться экспериментировать. Разумеется, прежде чем приниматься использовать новый язык, нужно внимательно изучить все его особенности, включая наличии эффективной реализации, возможности взаимодействия с существующими модулями и т.п., и только после этого принимать решение. Конечно, всегда есть риск пойти не тем путем, но не ошибается лишь тот, кто ничего не делает.

Часто проводятся дискуссии вида <язык A лучше, чем язык B>. Прочитав этот обзор, можно убедится в бессмысленности таких споров. Максимум, о чем может идти речь — это о преимуществах одного языка над другим при решении той или иной задачи в тех или иных условиях. Вот здесь действительно иногда есть о чем поспорить. И решение подчас отнюдь не очевидно.

Этот обзор языков программирования задумывался как ответ тем, кто кричит <язык X MUST DIE>. Надеюсь, что ответ получился достаточно адекватным и убедительным.


Литература

1.Информатика под редакцией Е.К. Хеннера, М.,Академия,2004г.

2.Информатика.Базовый курс под ред. С. В. Симоновича, С.-П «Питер» 2005г.

3.Языки программирования. Обзор-ликбез. Хакер №4,с.36-40.

4.Р.Богатырев, Природа и эволюция сценарных языков, Мир ПК, №11,2001

5.Г.Буг, Объектно-ориентированный анализ и проектирование

6.http://citforum.ru

7. http://school.keldysh.ru/sch444/MUSEUM /LANR/evol.htm

8. http://ru.wikipedia.org

9. http://www.levenez.com/lang

10. http://tiobe.com