Монолог о ..... (с самокомментариями)
Но Java стал таким, какой он есть под влиянием синтаксиса C
(это мнение почти официально). В SUN
все время говорят, что главное достоинство Java в возможности загружать модули
(классы) динамически, и поэтому, они не собираются делать компилятор
"Java->Native_code" (один хакер из SUN помимо всего прочего убедил меня в
том, что SUN - это не "солнышко", а S(?-забыл) University Network).
Управление памятью в среде Java.
- Массивы.
- Отсутствие возможности объявлять не просто
целый, а интервал_целых не позволяет
выявлять часть ошибок индексации еще в процессе трансляции, более того,
приходится при каждом обращении к элементу проверять соответствие границам.
Последнее теоретически неизбежно лишь в случае динамических массивов
(которых большинство). (странное, но довольно интересное замечание)
- Указатели.
- Концепция указателей возникла еще до создания
C, придумана модель безопасных указателей, которые при этом не умаляют
производительность программы. (это серьезно; критика в сторону языка C?
Но почему бы и нет? - почти все, что я сделал написано на C, позже
C++)
Мусор. Хорошо бы иметь возможность часть мусора удалять самому
(огромные, заведомо ненужные массивы), а часть (например стороки) пускай
собирает себе GarbageCollector.
(Сказка ложь, да
в ней намек, доброму молодцу урок .....)
Я о том языке, который имеет по крайней мере следующие свойства:
- Он надежнее Java (субъективно)
- Быстрее C (фанатическое замечание ;-) )
- По которому куча документации и книг на русском (Изд. МИР-1982,1987)
(чистая правда)
- который можно транслировать в NativeCode многих процессоров(x86,etc.),
а также JAVA-Virtual_mashine(!) (лично я пробовал на x86(
Linux,
windoze_95
(the stolen source code of
windows_nt /
window_98 ;-) )),
о Java VM byte_code'е - сами понимаете, что
конечно есть ограничения, но пишут, что это действительно возможно, во что
я охотно верю (см. примечание ко второму пункту))
- Который объектно ориентирован (можно спорить о том, быстро ли
это; скажу лишь, что в SmallTalk(читал), и LISP(писал для emacs, но мало) в
этом вопросе куда более красивы)
- который позволяет программировать на уровне ниже C (прямое
обращение к регистрам,etc.) и выше C++/Java (прямые операции с
массивами,etc.).
(пустая реклама, однако что-то такое в нем сделано (хотели
сделать))
- Язык в котором идея пакетов развита глубже, чем в Java.
(Без dynamical binding - а жаль)
(это и впрямь очень удобно,
в C/C++ для windoze_95 я помню
подобные вещи звались precompiled-headers, в описываемом языке
объявления (interfaces) могут компилироваться отдельно от модуля, их
реализующего)
- На этом языке здорово писать переносимые
win32(MFC)/
X Window
(xwindows.c) программы на GTK+
(действительно здорово)
- Потоки (задачи) в нем встроенны в язык и не по-старому как в Java, а
с использованием куда более разумной (мнение экспертов ;-) )
концепции - рандеву (randevous). (По началу непривычно, но почитав книг
(особенно старых-198х) мне стала понятна удивительно разумная суть этой
идеи +[]8=Q - "профессор")
- Создан целый ряд разумных IDE(правда в основном под win32)
- www.enemy.org ;-) не
имеет к нему никакого отношения.
(о чем это я здесь ? ;-) )
- И наконец он был специально создан как язык для программирования систем
реального времени (интересно.....)
- Он напоминает PL/2 и Modula2 (кому напоминает?)
Смотрите
ADA95 :
Старина C:
Yaroslav Volovich (yaroslav_v@mail.ru)
P.P.S. Страница была написана для прогона html-parser'а,
to be released very soon .....