Цитата:
Первоначальное сообщение от 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) нерасширяемость языка (перегрузка операций) - момент спорный, но я бы предпочёл, чтобы она была