Другие языки программирования и технологии

Языки C++, C#, JAVA

Есть желание выучить один из этих языков. Если не в напряг, опишите сравнительную характеристику, достоинства и недостатки, сферы применения каждого.
Сергей Иванов
Сергей Иванов
6 850
С++

Компилируется в машинный код - обычно работает быстрее (+5% в прикладных, больше в ресурсотребовательных прогах)

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

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

Подходит для системного программирования - из-за быстрой работы и манипулирования памятью на нем можно писать драйвера, манипулировать системой на низком уровне (второе может и C#, но сложнее)

С#
Компилируется в промежуточный код, который во время запуска средой преобразуется в машинный. Небольшое (обычно до 5%) падение производительности.

Богатые возможности .NET Framework

Автоматическое управление памятью

Быстрая разработка (благодаря мощности языка, IntelliSense, Resharper)

В основном используется для программирования под Windows:
Консольные приложения
Приложения WinForms ( обычные окошки)
WPF приложения (окна с красивой графикой и мониторо-независимым дизайном)

Java (знаком поверхностно)
аналог C#,
Кросплатформенный,
Используется в основном на сервер-ориентированных программах, линукс системах, андроид-смартфонах
Из-за его кросплатформенности, создать программу для пользователя в Windows сложнее
ОО
Отдел Образования
22 045
Лучший ответ
Язык С++ хорош для создания программ на ПК
JAVA мое мнение неочемный устаревший язык активно используется только в браузерах.
С# самый лучший кросплатформенный язык, можно создавать программы как на пк так и на кпк и на любые .NET системы

С++ и C#
плюсы С# что у него уже есть готовые библиотеки.
то что в с++ писать 1 функцию надо 20-30 строк, тогда как в c# та же функция уже есть в библиотеке net и вызывается одной командой.
Юра Бондарь
Юра Бондарь
21 210
Алексей Киселёв #include, не?
И на линуксе нет масдай-С-шарп.
Artak Mailyan Java - устаревший? Он появился в 1995 году и активно развивается по сей день, в отличии от устаревшего С++, который создали в далеком 1883 году. Активно используется только в браузерах? Батенька, да вы не видите разницы между Java и JavaScript.
Ниочемный? Но первое место в рейтинге языков программирования намекает нам на обратное.

P.S. Вы действительно верите в кросплатформенность языка от майкрософта?
Валентин Топалов Не хочу блажить ужасным матом...но вы чувствуете разницу между плюссами и решеточкой?)
JAVA 100% всю не выучиш, на обучение одной жизни не хватит!! !
по времени 3500 классов сколько будеш изучать и это только API JDK7 я не говорю про продвинутые фрейм Ворки
JBOSS TOMCAT GWT GXT SmartGWT SPRING и т. д.
Алексей Власюк
Алексей Власюк
11 877
C# - только для винды, думаю стоит исключить вариант.

С++ может всё - на нём можно написать даже ОС (только прийдётся сначала пошаманить с асмой) . Быстрй, гибкий, есть почти везде. Область применения: от А до Я.

Java - имеет много всего от С++ (но далеко не всё), работает абсолютно везде. Имеет чуть меньшую скорость, нежели С++. Не нужна компиляция (но нужна виртуальная машина) . Область применения - прикладное ПО.

I ♥ C++.
Не хочу тебя разочаровывать, но ты не сможешь выучить ни один из этих языков, ибо не обладаешь Самым Главным Умением Программиста.
Руслан Власихин Что за умение? Работать молча?
Сергей Иванов Самоутвердился? Тебе хорошо?
Давай, я сейчас задам какой-то совсем тупой вопрос, чтобы ты кончил, отвечая?
С++ (и его подмножество C) - универсальный, относительно низкоуровневый. С ним можно все. Рекомендую изучить его как БАЗУ.

С# . Net сойдет для прикладного программирования под Windows. Полностью объектно-ориентированный, более переносимый (благодаря предварительной компиляции в MIL). Нет такого геморроя с управлением памятью как в С++ (плюс это или минус сказать сложно, прямой доступ к памяти иногда нужен, например, для написания драйверов) . Благодаря Microsoft у него 1000 и 1 применение. Вплоть до веб-программирования в купе с ASP . NET. Считается (субъективно) чуть более "медленным" по сравнению с С++ из-за необходимости перевода промежуточного кода MIL в машинные коды при запуске приложения.

С Java не знаком близко. Он выступает аналогом C#.
Руслан Власихин На самом деле C# выступает аналогом Java ибо появился позже, а причиной его появления послужила Java . По моему MS даже судилась толи с Sun толи с Oracle.
Руслан Власихин А память хорошо ковырять - делать читы и античиты, манипулировать HDD (смена ФС, проверки), указатели - тоже весчь.
Сергей Иванов Спасибо. Такого ответа я и ждал.
А не надувания щёк :)

Как думаешь, можно ли вначале выучить шарп, как более высокоуровневый и лёгкий, а потом, когда время подойдёт, заняться низкоуровневыми плюсами? Не испортит ли это облегчение дальнейшего моего знакомства с C++?
Всем респект за ответы!
C++ это правельная Java
Про C# забудь, тут необходимо ещё следить за переменными в памяти.

Если ты уже знаешь какой нить язык тебе будет проще выучить c++, но это будут долгий процесс пока ты станешь проффи. Дерзай.
Ко
Константин
1 306
Мерей Толепбеков "Про C# забудь, тут необходимо ещё следить за переменными в памяти."
Кажется кто-то спутал C# и C++ =) В шарпе нет прямого доступа к памяти. Возможно работать с указателями на переменные в памяти, но они имеют немного иную специфику.