Нам нужен Java ++? [закрытый]

По какой-то причине ответ Кандиде не строился. Это было полезно, однако, поскольку это заставило меня найти это, которое отлично работало:

System.Windows.Threading.Dispatcher.CurrentDispatcher.Invoke((Action)(() =>
    {
       //your code here...
    }));
16
задан 6 revs 27 January 2009 в 20:22
поделиться

18 ответов

Попытка получить downvoted фанатами Java для этого, но как кто-то, кто пишет и Java и C#, я сказал бы, что C# как близко к Java ++, когда Вы собираетесь добраться.

C к C++ был сдвигом парадигмы от процедурного до Объектно-ориентированного, единственная причина, они сохраняют имя, состоит в том, чтобы добиться программистов C в размышление, что это был тот же язык, который привел к загрузке действительно плохого кода C, подменяющего C++.

Java постоянно расширяется, и Sun быстро включают все больше функций, таким образом, могло случиться так, что Java 7 или 8 является Вашим Java ++

20
ответ дан 30 November 2019 в 15:02
поделиться

C++ является объектно-ориентированным C. Java уже объектно-ориентирован, поэтому как мы пошли бы о другом сдвиге парадигмы, делая его Java ++?

В некотором роде я думаю, что это наоборот. Java является путем перед C++. Java имеет библиотеки высокого уровня и платформы, тогда как C++ очень часто все еще является низким уровнем и смешанный с ansi C (потому что мы можем).

Java имеет хорошие unittesting возможности и многочисленные сообщества, на которые все указывают на то же направление.

Наличие большего количества "функций" не делает язык лучше. Я думаю, что возможно сделать это хуже.

В конце, помещая один язык "перед" другим не собирается помогать. Выберите лучший инструмент для Задания. Я думаю Java, поскольку язык довольно в порядке как есть, C++ однако мог пользоваться некоторыми лучшими библиотеками, как порт Spring, например.

-1
ответ дан 30 November 2019 в 15:02
поделиться

Так же, как я действительно чувствую, что Java стал устаревшим, истина, я думаю, что все мы знаем, что как язык это все еще работает вполне прилично. Несомненно, много более нового материала, который мы можем найти на других языках, не там, но он все еще работает! Можно все еще сделать все, это просто иногда занимает больше времени и берет больше работы. Я определенно с нетерпением жду дня, когда он заменяется, но я просто думаю, что со всем существующим кодом и приложениями, которые записаны в Java, нет только никакого пути в данный момент, (почти) никто не сделал бы сдвиг к Java ++. Я думаю, что мы ожидаем на реальном сдвиге парадигмы, как C++ был к C. Возможно, функциональное программирование могло быть следующей большой вещью, и Scala будет следующим Java.

0
ответ дан 30 November 2019 в 15:02
поделиться

Я на самом деле действительно соглашаюсь с Вашим чувством, столкнувшись с проблемами с Java, который мог быть облегчен Вашими предложениями.

В принципе, Вы могли записать свой собственный javac, который работает на это и использует существующую Горячую точку JRE. Однако Вы действительно не можете сделать, которые происходят без справки Sun.

проблема является действительно двукратной: 1) Подход Sun должен поддерживать "платформу Java" и является стойким к новому стандарту, даже надмножеству и 2) для получения любого изменения в Java необходимо было выпустить JSR - и это обычно требует корпоративных спонсоров. Корпорации склонны иметь другие приоритеты.

С другой стороны, я убедил бы Вас стремиться к нему. В конце концов, до 2007 многие умные люди почти переделывали Java с нуля = путь к классу GNU. Таким образом, существует необходимый талант к "второму первоклассному языку JVM".

0
ответ дан 30 November 2019 в 15:02
поделиться

Проверьте информацию, это доступно на Java 7. Я думаю, что Вы найдете, что планируется добавить несколько опций, которые все просят, прежде всего закрытия.

0
ответ дан 30 November 2019 в 15:02
поделиться

Я предлагаю взглянуть на Вне Java.

Там польза обзор на Joel на программном обеспечении .

1
ответ дан 30 November 2019 в 15:02
поделиться

Java может и должен быть улучшен, но я не думаю, что должен быть один язык для установки всем потребностям. Это обычно - плохая идея, во многом как звезда смерти.

Много программистов просто лениво и не хочет изучать новые вещи. Они скорее придерживаются одного языка, который они использовали в течение прошлых 10 лет.

при необходимости в скорости и большем количестве управления аппаратными средствами Вы используете что-то как C. При необходимости в задачах системного администрирования Вы, probabely заканчиваются со сценариями оболочки или языком сценариев как жемчуг, Python или рубин. Если Вы делаете много математики определенный материал, Matlab является хорошим выбором. И т.д. стр

Использование лучший инструмент для задачи, каково язык это могло бы быть. Хороший программист должен смочь работать с любым языком (Что касается меня, я все еще работаю над этим).

1
ответ дан 30 November 2019 в 15:02
поделиться

Поскольку Java становится открытым исходным кодом, можно взять источник (если это все доступно), и сделайте собственную версию Java. Если это получает широкое принятие масштаба, затем большое, если не затем это не может быть ряд функций, которые необходимы.

1
ответ дан 30 November 2019 в 15:02
поделиться

Не был бы такое усилие Sun просто быть названным Java 7 (или 1.7 или 2.0)? Не был бы такое усилие некоторого другого человека/группы быть названным чем-то другим, чем Java?

2
ответ дан 30 November 2019 в 15:02
поделиться

Если Вы добавляете поддержку тех структур к JVM (в случае необходимости, например, закрытия), и затем создаете необходимый синтаксический сахар на письменном языке и компиляторе. Конечно, если Вы хотите сохранить назад совместимость затем, у Вас есть проектные решения сделать, который является, почему Дженерики Java не были так хороши, как они, возможно, были. Вы хотели бы освободиться от этого для получения более идеального Java, я думаю, но было бы очень мало спроса, потому что совместимость состоит в том, где это в.

И 7 может немедленно пойти. Мы не сталкиваемся с пределами файла FAT12 на гибкий диск здесь.

2
ответ дан 30 November 2019 в 15:02
поделиться

Теми вещами является главным образом пух.

необходимо решить некоторые большие проблемы как создание параллельного кода, легкого разработать и рассуждать о.

3
ответ дан 30 November 2019 в 15:02
поделиться

Если бы Вы собирались внести большие изменения, то разве Вы не хотели бы запускаться снова? Существует много вещей, которые могли сделать с фиксацией/удалением в Java. Вы не можете рассмотреть функции индивидуально - они действительно взаимодействуют неожиданными способами. Большой и сложный язык является, вероятно, сквернословием (см. C++).

4
ответ дан 30 November 2019 в 15:02
поделиться

В настоящее время в Java существуют обходные решения для многих из них, который действительно мешает представлять более естественные способы сделать эти вещи.

  1. функции Первого класса, делегаты.

Большинство случаев короче использует отражение. (Но менее естественный)

.4. Структуры как значение вводят отличный от классов, как C# и D.

Это я согласился бы с.

.5. Свойства.

Это может быть сделано теперь, но некоторое усилие требуется. Надлежащая встроенная поддержка была бы лучше.

.6. Опция проигнорировать контролируемые исключительные ситуации.

можно сделать это теперь, но это - взлом.Примечание: контролируемые исключительные ситуации являются функцией времени компиляции.

я довольно скептичен, что это - действительно хорошая идея, если люди действительно не понимают исключения. Часто людям, которые предлагают это, не нравится вынуждаться думать о состояниях ошибки, документируя или обрабатывая их.

.7. Способность объявить больше чем один класс в файле.

можно сделать это теперь. Всего не больше чем один общедоступный класс верхнего уровня.

.8. Более мощные встроенные массивы, которые позволяют вещи как добавление.

Посмотрите свободное городское население ArrayUtils. Массив, который имеет нормальный toString () был бы запуском.

.9. Лучшие дженерики / реальные шаблоны.

я соглашаюсь, в зависимости от того, что Вы имеете в виду. Я думаю, что они должны заставить текущую реализацию работать сначала, прежде, чем улучшать его. например, Таким образом, API Java могут быть скомпилированы без предупреждений непроверенных.

.10. Что-то как динамическое ключевое слово для C# 4.0, который позволяет утиный ввод при необходимости на обычно статическом языке.

Снова, отражение делает это, но его относительно ужасное.

.11. Так как Java является, прежде всего, языком VM, возможно, некоторые жесткие функции метапрограммирования как генерирование кода на лету для определенных вещей.

Как JavaCompiler (В java 6), Пишущий сценарий поддержки (В java 6), JCI или BeanShell.

6
ответ дан 30 November 2019 в 15:02
поделиться

Вопрос состоит действительно в том, как Вы решаете то, что входит в "следующий язык". Просто добавление/удаление функций по частям приведет к набору дерьма. Намного лучше думать о том, как дополнение или удаление тех функций (часто работающий в комбинации) изменяют способ, которым Вы программируете согласно новым принципам. Например, я думал, что было интересно что предложения по закрытиям Java, перенесенные во многих отношениях от необходимости иметь дело со статическим контролем типов без богатого вывода типа. Существуют обильные примеры динамических языков с симпатичными закрытиями - они подходят вместе. И Scala и другие языки показали, что статический контроль типов плюс богатый вывод типа может также сделать закрытия симпатичными. Моя точка - то, что взятие языка X и создание языка X ++, вероятно, не настолько интересны. Более интересно видеть проблемы в X и сделать новый язык Y.

нет, конечно, ничего препятствующего тому, чтобы Вы разветвили Java теперь и превратили его в то, что Вы хотите (как долго, поскольку Вы не называете его Java или хотите передать набор тестов). Как упомянуто выше, уже существует ряд захватывающих высококачественных языков, делающих просто это и поддерживающих совместимость с Java теперь. Я думаю, прежде всего, о Groovy, Scala, Clojure, и Fan и меньшем количестве портов предшествующих языков к JVM как JRuby, Jython и Носорог, которые имеют тенденцию иметь более сложное время, реализовывая чистую интеграцию Java.

довольно вероятно, что JSR 292 функции прибытие в JVM в Java 7 обеспечит еще более богатую детскую площадку для разработки языка на уже превосходной основе JVM. И CLR+DLR также раздвигают много интересных границ.

[еще 115], я думаю, что будущее собирается отклониться к выбору правильного языка для задания. Это или собирается произойти на языках со смешанной традицией (Scala является хорошим примером FP / OO, например), или в виртуальных машинах (JVM, CLR, ЛУЧ, Попугай, безотносительно), что приемная чистая интеграция между несколькими языками. Или скорее всего, оба из них. Я думаю, что мы НЕ отклоняемся ни к какому Следующему Большому Языку, который является производной Java (или что-либо еще).

6
ответ дан 30 November 2019 в 15:02
поделиться

Я думаю ответ на", нам нужен Java ++? " зависит от того, кто" мы " (и я не уверен, что" мы " являемся всеми экземплярами одного класса ;-). Этот вопрос был обсужден больше чем в одном случае Отряд Java .

у Крупных корпоративных пользователей Java есть тенденция быть более консервативными. У них есть многочисленные сотрудники разработки и большие тела существующего кода. Как следствие существует высокая воспринятая стоимость и риск для изменений на языке или библиотеках (обучение, обслуживание, поломка существующего кода, и т.д.).

, С другой стороны, существует много маленьких, light-on-their-feet команды разработчиков (открытый исходный код или иначе), которые всегда готовы фиксироваться на Следующую Прекрасную идею в программировании. Мне не ясно, что единственный ответ оставит всех достаточно удовлетворенными.

я предполагаю, что растущая экосистема основанных на JVM языков может помочь обратиться к этой силе. Если более новые языки (Scala, Поклонник, JRuby, JavaFxScript, и т.д.) обеспечивают письменные функции (и новинка), которого вторая группа требует при поддержании совместимости с существующим Java (который может переместиться в более уравновешенный темп), возможно, у обеих групп может быть своя выбранная разновидность пирога.

я немного экранирован градусом, до которого некоторые люди, кажется, хотят Один Истинный Язык. Назад в день, было довольно распространено услышать идею, что каждый язык (нотация) имел "зону наилучшего восприятия" применимости; иногда правильное решение состояло в том, чтобы записать каждую часть системы на соответствующем языке и соединить их.

Назад к будущему, кому-либо?

18
ответ дан 30 November 2019 в 15:02
поделиться

Как, скажем, Scala или еще лучше Groovy, который счета сам как динамическая версия Java?

29
ответ дан 30 November 2019 в 15:02
поделиться

Большинство функций уже существует.

, Что язык:

groovy
(источник: codehaus.org )

=

Что касается:

способность объявить больше чем один класс в файле.

Это присутствовало в Java с начала.

3
ответ дан 30 November 2019 в 15:02
поделиться

Java ++ уже здесь ...: D

4
ответ дан 30 November 2019 в 15:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: