Начал учить Java, до того неплохо знал C++. Сейчас вот интересует вопрос, какой язык сейчас больше актуальнее для распространенных задач? Какой более нужен и приветствуется больше?
Знаю C++ мощный, но и возможности Java интересны. Надеюсь, кто-то сможет расставить "За" и "Против" насчет каждого, чтобы уже не сомневаться, на каком языке ставить акцент и больше развиваться.
12
Ответы
(10)
Сортировать по:
-
1Графики langpop.com/,
если на википедии не забанили то еще сравнение
А вообще решите что именно писать собираетесь, просто учить язык смысла немного. А имея задачу в голове можно и язык под нее подобрать поудобней, я до сих пор всякие кодогенераторы на perl пишу, потому что для части задач он удобен.
Для просто для развлечения можно и brainfuck выучить.21.03, в 00:41Пожаловаться -
4смотря что считать "распространенными задачами" ...
первое что нужно понимать что для каждой задачи свой инструмент, и особенно нужно помнить что инструмент можно применять не по назначению.
скажем отвёрткой можно забивать гвозди, ей даже можно пользоваться как стамеской или долото, но она для этого не предназначена и используя нормальный инструмент вы будете куда производительнее.
так например на Java в сравнении с C++ проще и быстрее писать кросс платформенные приложения или много поточные приложения и при этом они будут работать быстрее C++, но зато когда дело касается железок или объёмной работы над памятью то на С++ писать быстрее и проще и работать будет быстрее чем Java.
а весь цимес в том что не надо говорить "Java" или "C++", надо говорить "Java" и "C++", за счёт того что есть JNI вы спокойно можете вынести все нагруженные вычисления в С\С++, а в Java оставить всё остальное, и получить лучшее из двух миров.21.03, в 00:43Пожаловаться -
1Все зависит от задач. Наверное, которые больше интересуют.
C++ хорош для работы, в которой очень критична производительность, выделяемаяя память. Как примеры, когда надо работать с железом, игры, сложные математические расчеты.
Из минусов - писать на С++ сложнее. Намного больше способов "выстрелить себе в ногу".
Java проще в изучении и скорости написания. Из коробки, кросс платформенный (запустится на windows, linux и mac без дополнительных колнудств). Примеры задач на Java - энтерпрайз, бекенды для веба, андройд.
Из минусов - немного проигрывает в производительности, сильнее - в потребляемой памяти.21.03, в 01:28Пожаловаться -
3Всякие кодеры нужны, всякие кодеры важны.
Советую посмотреть на каком-нибудь хэдхантерском сайте, каких спецов более разыскивают и за что.21.03, в 00:19Пожаловаться -
1Проблема С++ в том что он уже давно не рекламируется на каждом шагу, про него итак все знают, а из-за этого создается ощущение, что язык мертв\забыт\ненужен, а если учесть на всяких hh обычно нормальных вакансий не постят, а весь смак всегда впервую очередь расходится по знакомым, так вообще кажется что нет ни одной причины юзать С++, а еще и вечная критика. Для начинания есть QT, весьма неплохая вещь. Это я к тому что в таком вопросе конечно победит как всегда Жава, а про С++ ничего хорошего как всегда не скажут.21.03, в 00:32Пожаловаться
-
1Для саморазвития? Учите все что нравится. Любые знаний это не только информация, но еще и идеи, мысли, концепции и др. ваших предшественников.
Для работы? Какую работу хотите - такой стек технологий и выбирайте. Сравните вакансии и выберите тот набор, что вам по душе. Слишком много незнакомого? Попробуйте всего по немного и вы сами поймете к чему у вас душа лежит.
Фриланс? Еще проще. Берите Java или C# для программ настольных компьютеров или приложений под Android и Windows Phone. Эти языки и технологии похожи. Если хотите веб, то тут немного по другому. Если цель - заработать денег - то начните с PHP и быстрее придете к конверсии ваших усилий в деньги. Если хотите саморазвитие + фриланс. Можете писать на PHP и не стеснятся этого, но параллельно учите еще один язык. Можно Python / Ruby или те же C++ / Java.
Работа над какой-то задачей? Выберите тот язык, который больше подойдет.
Преимущества, которые выделил я для C++:
1. ООП вместе с преимуществами Си;
2. Компиляторы под все платформы;
3. Скорость.
Преимущества, которые выделил я для Java:
1. Кроссплатформенность;
2. Удобство;
3. Схожесть на C# (точнее наоборот, много пишу на C#);
Из последнего. Под Windows написал программу под Mac не имея оного. Поправил пару строчек и все работает. -
8Про Java не знаю, но я расскажу про C++ и C#, даром что последний сравнивают с Java.
Макросы, нетипизированные шаблоны, частичная реализация этих самых шаблонов, указатели, константные ссылки, константные методы, перегрузка унарных операторов, разделение памяти на стек и кучу, - это только часть того, по чем я скучаю, программируя на C#.
С помощью плюсов можно написать программу любой сложности и при этом всегда есть путь, на котором можно выбрать логичный стиль и придерживаться в ходе всей разработки, в C# увы этого нету.
Также стоит заметить, что C++ не заканчивается на голом синтаксисе и STL, после того как вы познакомитесь с ними перед вами откроется целый мир различных библотек. От того обилия высококласных математических библиотек, что есть на C\C++ (а первый вы совершенно спокойно можете подлинковать к проекту и использовать без проблем) у меня слюны все клавиатуру заливают. А Qt с его сигналами и слотами.... И да, не верьте, что многопоточные приложения сложны плюсах, Qt и C++11 упрощают до предела.
А когда баловство закончится и вы поймете, что вам надо решать задачи по-серьезнее, то перед вами откроется новый мир: вы начнете изучать компилятор и узнаете много нового о его ключах и возможностях оптимизаций. вы узнаете как можно ускорить свою прогу с помощью SSE, что такое OpenMP и OpenCL.
Да, C++ строг и беспощаден, его изучение сравни с игрой в шахматы с превосходящим по силе соперником, где любая мелкая ошибка может оказаться фатальной. Но работая на C++ (работая, а не кодя так, чтоб отвязались) вы получите гораздо больше в понимании того, как устроены It-технологии, на чем зиждются и в чем их ограничения.вчераПожаловаться -
1Я год занимался С++\Qt, но потом свалил с него в пользу Java, несмотря на выход С++11.
Заработать можно и там и там, С++ хорош но всё-таки он устаревает. Выберете Джаву - не пожалеете! -
2По своему опыту могу сказать что Java лучше для начала карьеры. Год назад после вуза активно искал работу для начала карьеры программистом, хотел писать на C/C++. В основном везде хотели джависта. Помыкался пару месяцев, плюнул, устроился на интересную работу с обучением по Java. Сейчас лишь иногда решаю небольшие задачки на плюсах, Java очень радует.
-
3Удивляюсь почему в сравнении Java vs C++ многие упоминают, что Java кросс-плафторменна. Си++ тоже кросс-платформенный ЯП. Программа написанная на нем может быть скомпилирована практически под любой платформой. Да, программу на си++ нельзя перенести на уровне бинарников, но часто ли вы видели универсальные бинарники?
Для Си++ есть множество очень полезных библиотек позволяющих писать красивый и быстрый GUI ( единственная известная мне хорошая GUI программа написанная на Джаве - Eclipse ). Большинство же десктопных приложений пишется именно на плюсах.
В новом стандарте появилась нативная многопоточность ( впрочем раньше никто не мешал использовать одну из множества кросс-платформенных библиотек для достижения тех же целей ).
Из основных недостатков си++ скажу что первые 2 года работы с этим языком программист больше вредит, нежели помогает. Это учитывая что он неплохо уже знает синтаксис и уже пишет на нем какие-то программы. Огромное количество скрытых ям, граблей, заряженный ружей - заботливо разложены создателями нескольких версий стандартов, в безумной мечте об обратной совместимости языка ( что конечно очень круто ).вчераПожаловаться
Написать ответ
Похожие вопросы