LINUX.ORG.RU

Какой язык выбрать из Java, C++, C#, Kotlin?

 , , ,


0

5

Всем привет! Я решил изучать программирование и посмотрел видео о языках. Мне понравились 4 языка: Java, C#, C++, Kotlin. C++ потому что он работает на уровне железа и на нём можно писать интересные и сложные штуки; Java потому что на нём можно писать банковские приложения и у него больше всего вакансий; C# потому что он похож на Java, но намного проще; Kotlin потому что если знаешь Java, то знаешь и Kotlin, и на нём можно писать под мобильные устройства. Что бы вы посоветовали выбрать?

Перемещено hobbit из general

Язык это инструмент. Под разные классы задач разные инструменты. Для забивания гвоздей нужен молоток, для закручивания шурупов отвёртка.

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

AntonI ★★★★★
()

Попробуй начать решать задачи с LeetCode на каждом из четырёх.

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

Bass ★★★★★
()
Ответ на: комментарий от mdilink

а какие есть направления там или как они называются?

  • Java - backend для Кровавого Ынтырпрайза. Раньше ещё мобильные приложения, но сейчас эту нишу плотно занял Kotlin.
  • C# - либо тот же backend для не менее Кровавого Ынтырпрайза, что и Java, либо игоры на Unreal Engine.
  • С++ - оптимизация багов для игор, либо приложения для x86, либо системное погроммирование, либо embeded, либо <любая_другая_хрень_которую_пишут_на_этом_языке_тысячи_их>.
  • Kotlin - преимущественно мобильная разработка. Пытается втиснуться в Кровавый Ынтырпрайз, но Java и C# его не пускают.
QsUPt7S ★★★
()
Ответ на: комментарий от QsUPt7S

С++ - оптимизация багов для игор, либо приложения для x86, либо системное погроммирование.

На Java и C# тоже пишут приложения для x86 в т.ч. околосистемные (через прослойку на C/C++).

MirandaUser2
()

Java, C#, C++, Kotlin.

В этом списке не хватает Dart/Flutter и Typescript+Javascript.

C++ потому что он работает на уровне железа и на нём можно писать интересные и сложные штуки

местами его заменяют на Golang.

Java потому что на нём можно писать банковские приложения и у него больше всего вакансий

на 1C ещё больше вакансий ;-)

C# потому что он похож на Java, но намного проще

одного уровня сложности.

Kotlin потому что если знаешь Java, то знаешь и Kotlin

Гм, Kotlin больше на C# похож по синтаксису.

MirandaUser2
()

Си и Java, потому что С++ сложный, C# нельзя скомпилировать компилятор из исходников (нечем, только опасным бинарником от НАТО). Про Kotlin не знаю, но наверное он не везде работает, библиотеки, то-сё.

Shushundr ★★★★★
()

Жавы, котлины и сишарпы тебя достанут своими тормозными проприетарными IDE и системами сборки с какими-то километровыми бессмысленными конфигами на ХМЛ, бесконечными индексациями непонятно чего в фоне, десятками зависимостей и т.п.

По С++ просто нет нормальной литературы, где тебе расскажут что такое хорошо и что такое плохо и не будут вместо этого пичкать тоннами трюков и рецептов, которые ты никогда не запомнишь.

В общем, если хочется начать с самых азов, то изучай Си. Если хочется пилить что-нибудь прикладное, изучай Go.

Lrrr ★★★★★
()

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

Тут даже не вопрос про «приличные» проекты. Просто вообще - это си.

Я последние трое суток вожусь с опусом. Глянул реализации в разных языках. В каждом по 2-3 реализации разной степени готовности. Все неюзабельны. Единственный приличный вариант - официальный на си. Хочешь «неприличных», их есть у меня, вот только в них половины функциональности нет, а то что есть - работает как попало.

Нашел рабочее не на си?! Поздравляю, но стандарты у него всеравно будут сишные. Подключать библиотеки ты будет по стандартам си.

Это боль… Си просто надо знать по дефолту. Просто потому что. Как я начинаю понимать это те самые объединяющие костыли мироздания в мире программирования. Даже если ты ни строки не собираешься писать на этом языке и выберешь вообще любой другой.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)

1C и php – точно найдёте работу в России. А вообще английский, очевидно же. Потом книжки читать. А уже потом между делом писать код. На С.

azsx
()
Ответ на: комментарий от mdilink

ну, мне бы выбрать какой-то один для начала что бы хотя бы на нем уметь писать

Субъективное моё мнение - бери C#. Под линуксом работает. Можно даже mono developer навернуть при желании.

tiinn ★★★★★
()

Про задачи тебе уже в первом посте все правильно написали, если тебе изучать программирование, то бери трёхтомник Столярова сэкономишь себе пару-тройку месяцев на бесполезном самостоятельном изучении ненужных штук и по крайней мере поймёшь что такое программирование, куда тебе двигаться дальше, а заодно с89 и с++98 освоишь.

Нормальных учебных пособий которые обучали бы программированию, кроме Столярова на хотя бы одном из рассмотренных тобою языков я не видел, везде требуется база из программирования и алгоритмов в той или иной мере.

Ygor ★★★★★
()
Ответ на: комментарий от QsUPt7S

C# - либо тот же backend для не менее Кровавого Ынтырпрайза, что и Java, либо игоры на Unreal Engine.

либо игоры на Unreal Engine.

Э… Ты с юнити перепутал. У Unreal Engine два стула – блюпринты точены или кресты дрочены, а C# у этих инопланетян только в системе сборки с целью обидного смеха. C# для сборки крестов, Карл!

anonymous
()

Java потому что на нём можно писать банковские приложения и у него больше всего вакансий; C# потому что он похож на Java, но намного проще

Не только. На java написан опенсорсный 4diac для запрягания железяк по IEC 61499

На C# тоже давно можно писать софт для малинок и репок под линукс с кросскомпиляцией искаропки, со SCADAой и велосипедными FBD блоками. Пишу для промки на C#, брат жив.

anonymous
()

Попробуй все 4 и сформируй свое мнение. Никогда не задавай подобные вопросы на лорах и реддитах - тебе понапишут чепухи типа

Шарп после ухода MS доживает в кровавом последние дни

а ты и знать не будешь

Midael ★★★★★
()

Я бы посоветовал выбрать облась, и уже для нее выбирать язык, а не тупо смотреть топы. Для каждой сферы есть свои инструменты, чего-то универсального для всего нет. Java -легаси помойка, C++ -сильно переусложненный с кучей концепций язык, это нужно с яслей начать его учить и лет через 10 можно уже считать себя более менее годным джуном, иначе просто не успеешь его освоить. Нафиг его, пожалей свое время. C# - практически копия Легаси помойки java от майкрософта, но тащит за счёт геймдева. Котлин если для мобилок считай стандарт, еще можножно посмотреть dart + flutter. Это как js + react, считай велосипед от Гугла. В общем сначала выбери сферу, а потом язык, иначе можно накидывать до бесконечности.

anonymous
()

Я решил изучать программирование и посмотрел видео о языках.

Забыл ещё гопоту спросить, щас это даже моднее, чем видео смотреть.

Что бы вы посоветовали выбрать?

Сначала надо основы, я не язык учить. Язык не важен, когда есть базовые знания.

Из этих всех выбор все равно будет субъективен, и опираться надо на то, что тебе нравится по ощущениям и не вызывает жопоболи. Я вот вообще с ассемблера начал…

Плюс ты сравниваешь немного несравнимые вещи:

  1. Java → классный язык, у меня он вызывает только приятные ощущения, причем на протяжении уже 20+ лет. Всегда хотелось взять джаву и написать на ней что-то. Причем выбор довольно велик, от вебни со спрингом до десктопных приложений с нормальным гуём.
  2. С# → лично у меня вызывает ощущения неправильности из-за корней, уходящих в винду. Да, кор сейчас есть и под линуксы, но…
  3. Kotlin → у него ИМХО довольно специфичная ниша в виде мобилок. Но могу ошибаться.
  4. С++ → это вообще уже другая область. Там надо чуть больше мозгов и понимания того, что происходит под каопотом. На первых трех это тоже нужно, но в меньшей степени что ли.
Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

З.Ы. Я сейчас вообще всё чаше пишу на Go. Даже то, что раньше писал бы на той же Java. Потому что по специфике работы с го чаще сталкиваюсь, да и зашёл он мне.

Zhbert ★★★★★
()
Ответ на: комментарий от Lrrr

Жавы, котлины и сишарпы тебя достанут своими тормозными проприетарными IDE и системами сборки с какими-то километровыми бессмысленными конфигами на ХМЛ, бесконечными индексациями непонятно чего в фоне, десятками зависимостей и т.п.

А, ну да. То ли дело такой же мейкфайл, где без стакана не разберёшься :)

Zhbert ★★★★★
()
Ответ на: комментарий от Ygor

если тебе изучать программирование, то бери трёхтомник Столярова сэкономишь себе пару-тройку месяцев на бесполезном самостоятельном изучении ненужных штук и по крайней мере поймёшь что такое программирование, куда тебе двигаться дальше, а заодно с89 и с++98 освоишь.

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

Zhbert ★★★★★
()

Странный набор языков. Из перечисленных лично мне нравится только C++, и то, относительно.

Java - можно любить или ненавидеть, но это всё-таки уже legacy. Я очень сильно удивлюсь, если услышу, что в какой-нибудь компании решили делать новый проект в 2025-2026 году, и для реализации взяли Java. Ну только если компания уже пишет на Java много лет, накоплены компетенции, все сотрудники знают исключительно Java…

Банковские приложения… Насколько я знаю, банки - это действительно те места, где встречается либо Java, либо C# (а за рубежом ещё и COBOL). Но банк - интересно звучит только, если нравится звон монет. В остальном же, банки, по инсайдам участников, это жуткое занудное легаси.

Из того, что сейчас востребовано на рынке, я бы приблизительно назвал: Java, Python, Go, C#, C/C++, Scala, Kotlin.

Про Kotlin и Scala я почти ничего не знаю. Go - лично мне не заходит, хотя пописываю на нём изредка. Но есть ощущение, что Go позволит зарабатывать на хлеб с маслом следующие 10-20 лет. То есть, с точки зрения обеспечить себя заработком на довольно продолжительный срок, подходит.

Python - у меня субъективное ощущение, что сейчас на пике популярности. Позволит заработать на хлеб с маслом ещё на 20 лет вперёд, да и сам язык мне нравится, но чувстую интуитивно, что популярность потихоньку начнёт спадать. Сейчас очень много вакансий требуют знание Python и какого-нибудь другого языка. Чаще таким тандемом идут Python/Go. Подозреваю, что в микросервисах, если где-то не хватило производительности Python, переписывают сервис на Go. Лично у меня тоже есть такой опыт.

Есть ещё язык не из списка, вызывающий у многих присутствующих сильные эмоции - Rust. Мне кажется, что он станет популярным, но в РФ вакансии появляются раз в 2-3 месяца. Уверен, что количество вакансий будет расти со временем. Да и сам язык, который лично знаю только по верхам, кажется очень интересным и универсальным.

Chiffchaff
()
Ответ на: комментарий от Zhbert

Сначала надо основы, я не язык учить. Язык не важен, когда есть базовые знания.

Ну практиковаться-то на чём-то надо в процессе учения основ. Чтение основ без практики — деньги на ветер.

Когда основы будут усвоены в контексте выбранного недоязычка — эти знания можно будет легко перенести на любой другой язык, и язык действительно станет не важен.

Но это значит, что к выбору первого недоязычка стоит подходить с осторожностью — чтобы минимально путался под ногами в процессе освоения основ.

(Тут я должен был бы порекомендовать божественную кложу, но после неё любой другой язык — это боль и страдания, я же не изверг, в конце концов. Так что рекомендую жопаскрипт. )

Nervous ★★★★★
()
Последнее исправление: Nervous (всего исправлений: 2)

Из этого списка я бы C++ сейчас уже не учил бы. Он окончательно скатывается в нишу Just for fun.

Rust для системного программирования. C#/Java для backend и enterprise. Kotlin для мобильной разработки.

dnf83
()
Ответ на: комментарий от Lordwind

Шарп после ухода MS доживает в кровавом последние дни

Шарп опен-сорц с MIT лицензией. Что там он «доживает» кукаретиков забыли спросить.

Остается жава

С вендорлоком и новыми лицензионными ловушками от дяди Ларри «скачал – плоти, собачье жало», который все выносят за скобки по старой памяти, времен проданных санок, авторов жабы дядя Ларри первыми выкинул на мороз. Она уже не то, чем кажется.

anonymous
()