Тема: "java" Vs. "c"
Показать сообщение отдельно
Старый 25.10.2003, 10:59     # 27
rg_software
Newbie
 
Регистрация: 14.10.2003
Сообщения: 25

rg_software Путь к славе только начался
Цитата:
Первоначальное сообщение от RaZEr
С процессорами вроде разобрались ... есть конструктивная критика по Java ?
Знаете, вообще в подобных дискуссиях главное - не перейти в религиозную войну

Если не затрагивать вопросы компиляции/интерпретации/переносимости/etc., а рассматривать Java именно как язык, то на мой взгляд, он не лишён синтаксических и семантических проблем.

1) В языке Java слабая типизация. С одной стороны, это увеличивает гибкость, с другой - провоцирует ошибки. К примеру, я могу положить в массив любой объект, не заботясь о его типе. А вот когда я его буду вынимать - контроль типов лежит на мне, а не на компиляторе (как в С++).

2) как следствие - постоянные скобки, вызывающие уродливый синтаксис. В С++ "выемка" элемента из хорошего класса массива выглядит естественно:
MyObject c = thearray[i];
навряд ли меня кто-то убедит, что синтаксис Java удобнее:
MyObject c = (MyObject)(thearray.get(i));

3) язык Java менее выразителен. Т.е. существуют хитрые философские концепции, которые можно выразить на С++, но нельзя выразить на Java (к примеру, так называемое "наследование реализации" без наследования интерфейса)

4) язык Java порою оказывается непоследовательным в определениях операций над объектами (например, string в ряде случаев ведёт себя как встроенный тип, а в других случаях - как класс).

5) отсутствие шаблонов (templates) трудно понять

6) нерасширяемость языка (перегрузка операций) - момент спорный, но я бы предпочёл, чтобы она была
rg_software вне форума