2010-10-28 3 views
1

Я разработчик C/C++.Переход на Java

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

Зная только C++ и немного java, как вы думаете, можете ли вы убедить разработчика C++ перейти на java? Если нет, зачем придерживаться C++?

+0

Ну, вы спросили их? Что они сказали? –

+0

Я думаю, что ключ - это концепции программирования и ООП. – zengr

+2

В Java нет проблем [object-slicing] (http://en.wikipedia.org/wiki/Object_slicing), о которых нужно беспокоиться. Все объекты собирают мусор, поэтому нет необходимости выполнять собственную очистку или подсчет ссылок или * не очень-умный * [умные указатели] (http://en.wikipedia.org/wiki/Smart_pointer). Наконец, «интерфейс» - замечательное ключевое слово. Это, как и многие другие, делает его более чистым. И всемогущая (относительно говоря) стандартная библиотека. – rwong

ответ

2

Там нет никаких веских причин, чтобы переключиться на Java. C++ лучше, чем Java для систем и/или встроенного программирования, и есть много лучших альтернатив для быстрого прототипирования.

Теперь вы отметили свой вопрос MFC, даже если он не отображается в основном тексте. Я бы порекомендовал переключиться с MFC на один из более современных интерфейсов пользовательского интерфейса C++, потому что MFC мозг мертв, нестандартен, хрупок и очень трудно настроить.

+0

«современными CII-интерфейсами UI», вы имеете в виду что-то вроде QT? – Owen

+2

@Ben Voight - Это зависит от того, что он развивает. Как вы говорите, если это низкоуровневое программирование, то C++ лучше, но для корпоративных приложений Java намного лучше. –

+0

@Petar: Даже если Java >> C++ для корпоративного программирования, это не означает переход на Java. Другие языки оставляют Java в пыли при таких задачах. –

0

Причины торчат с C++:

  1. Старых C++ базового кода трудно/слишком много работы порта
  2. требуют использования специализированных библиотек третьих сторон C++.
  3. Низкий уровень (драйвер устройства) требует контроля. C считается лучшим языком для этого.
  4. Невозможно запустить JVM на целевой целевой платформе.

В противном случае, я бы выбрал для Java, как:

  1. язык гораздо «чище» (это не обязательно быть вниз совместим с C)
  2. Использование ссылок вместо указателей сделать ваша жизнь проще, а тем более необходимость писать «деструкторы».
  3. Мой опыт перехода на java/eclipse заключается в том, что инструменты рефакторинга делают вашу жизнь намного проще. (Отказ от ответственности: я не совсем знаком с последними IDE C++).
  4. мне очень нравится количество готовых к использованию библиотек, а не только в JDK, но и на Apache и т.д.
+0

@Roalt Добавить переносимость;) –

+0

«Без деструкторов» - это полный миф. Сборщик мусора управляет памятью и только памятью. Другие ресурсы все еще нуждаются в очистке, и убедить эти сборщики мусора, чтобы сделать это в нужное время, это ад по сравнению с C++ RAII. –

+2

@Petar: ANSI C и ISO C++ имеют гораздо лучшую переносимость исходного кода, чем Java. –

0

По моему мнению, нет веских оснований для перехода на JAVA, если программирование предназначено только для академических целей. Но если вы хотите использовать язык программирования для личного использования или создания коммерческого приложения, вам следует попробовать C# .NET, python или другие фреймворки.

Смежные вопросы