"Является ли Java языком, который вы разработали бы, если бы вам не нужно было быть совместимым с C?
Нет. Ява даже не близко. Если люди настаивают на сравнении C ++ и Java - как они, кажется, делают - я предлагаю прочитать «Дизайн и эволюция C ++ (D & E)», чтобы понять, почему C ++ такой, какой он есть, и рассмотреть оба языка в свете критериев проектирования. набор для C ++. Эти критерии, очевидно, будут отличаться от критериев команды Sun по Java. Несмотря на синтаксическое сходство, C ++ и Java очень разные языки. Во многих отношениях Java кажется ближе к Smalltalk, чем к C ++.
Большая часть относительной простоты Java - как и для большинства новых языков - частично иллюзия и частично функция его незавершенности. Со временем Java значительно увеличится в размерах и сложности. Он увеличится в два или три раза и увеличит зависящие от реализации расширения или библиотеки. Так развивался каждый коммерчески успешный язык. Просто посмотрите на любой язык, который вы считаете успешным в больших масштабах. Я не знаю исключений, и для этого явления есть веские причины. [Я написал это до 2000 года; теперь (2012) языковая часть спецификации Java 7 немного длиннее в плане количества страниц, чем языковая спецификация ISO C ++ 11.]
Я прокомментировал (отрицательно) об ажиотаже Java и приписал большую часть успеха Java маркетингу. Например, см. Мою статью HOPL-3. Сегодня (2010) заявления о Java больше основаны на реальности и менее беспристрастны в отношении альтернатив. Это было не всегда так. Например, сравните оригинальный технический документ по Java 1995 года с версиями, которые вы найдете в Интернете (иногда с пометкой «оригинальный технический документ Java»); страница 69 будет хорошим местом для начала.
Java не зависит от платформы; это платформа. Как и Windows, это проприетарная коммерческая платформа. То есть вы можете писать программы для Windows / Intel или Java / JVM, и в каждом случае вы пишете код для платформы, принадлежащей одной корпорации и настроенной для коммерческой выгоды этой корпорации. Было отмечено, что вы можете писать программы на любом языке для JVM и связанных с ними возможностей операционных систем. Однако JVM и т. Д. Сильно склоняются в пользу Java. Это далеко не общая разумно нейтральная к языку ВМ / ОС.
Лично я буду придерживаться достаточно переносимого C ++ для большинства видов работ, о которых я больше всего думаю, а для остальных буду использовать различные языки".