Приветствую.
Учусь на 1 курсе технического вуза. На 1 курсе у нас C. Я на него забил, просто написал программу на C++, предъявил преподу, мол я шарю, и все.
Для работы избрал Python/Django. Интересует удаленка, желательно на Европейского или Американского работодателя.
Под собственные задачи не хватает нормального языка программирования.
Что значит нормального?
Python держится на библиотеках. Динамическая типизация просто? Увольте.
Я не рискнул бы писать крупный (не веб) проект на Python. Почему? Потому что большинство ошибок вылавливаются во время работы самого кода. Вот вам и динамическая типизация, и интерпретация.
Посмотрите, как используется язык. В веб проектах, потому что Django надежен. Как по мне Python+Django много лучше PHP, да хотя бы и из-за Django Rest.
Но кроме веба, Big data, машинного обучения и автоматизации, Python нигде не применяется.
Игры, крупные приложения, как правило, Python страхует C++. А скорее, он работает внутри него.
Ладно, окей, под Windows игру написать можно. Но вдруг пришла идея запрограммировать что-то под Android.
Смотрим. Kivy. Пробуем и убеждаемся, что тут и выходит, молотком вкручиваем лампочку, никак иначе.
В общем, нужен второй язык. Язык, где якобы больше кода и т.д, но который по факту надежнее, и работать будет производительнее, и ошибки отдавать на компиляции.
Понятно, что C++/C#/Java. Иного не дано.
Посидев, повздыхав, я выкинул C++ в помойку.
Причины:
- Когда делал на C++ работу для универа, 6 часов убабахал на это. На установку VS, на подключение QT, на изучение возможностей для написания простого текстового редактора с менюшкой, где открыть, сохранить и выход, потом еще это не компилировалось из-за ошибок, связанных с библиотекой… В общем, 6 часов. Если такое будет каждый раз с новой библиотекой…
- Пообщался с C++ разработчиками. Если проект, который на C#/Java пишется за неделю/две, на C++ я буду пилить 3 месяца…
- Удовольствие от разработки самого алгоритма программы. Логики программы. Но никак не от работы с памятью и прочими заморочками на низком уровне. Пусть компилятор сделает, как надо, нежели я где-то допущу ошибку, в одном месте, а потом из-за нее будет ошибка на несколько окон, и за ней многочасовой поиск места с ошибкой.
В итоге, C# vs Java. Учитывая, что ранее я работал с C#, начал читать всякие статьи «C# vs Java». На форумы тоже писал. Но моя главная цель была заработок. Сейчас же разработка приложений по моим интересам.
Почитав понял, что никакого четкого вывода нет. Прошло время, когда C# был лишь под Windows.
С одной стороны, C# круче. Развивается, Microsoft кидают туда все, что нужно и не нужно.
С другой стороны. Давайте посмотрим правде в глаза. Где сейчас применяется C#? Под Windows. Все сервера на Windows Server.
Какие приложения (не игры) разработаны под Android с C#? Я не знаю таковых.
Исследуя рынок понимаем, что по Java и вакансий больше, и зарплаты выше. Естественно, зарплаты то у синьоров. У джунов и мидлов примерно одинаково, но Java таки немного выше.
А открывая вакансии я понимаю, что меня не ожидает с C# карьера. Ибо не сдался мне ASP.NET, если я уже на Django. Других вакансий нет.
У Java тут все, что хочешь. И веб, и сервера, и приложения под Android.
Но есть еще 2 момента: - .NET Foundation. Кроме того, планируется объединить .NET и .NET Core. Выстрелит ли это? Возможно. Но я не думаю, что все сразу бросятся переписывать сервера с Java на .NET, а кто сидел на Windows Server будут переписывать под Linux;
- Kotlin. Всей душенькой ненавижу этот язык, и не спрашивайте, почему. А сейчас много где его используют наравне с Java, и вместо Java.
Открываем сравнения производительности, и понимаем, что по производительностью C# давно обогнал Java.
В общем. Уважаемые девелоперы. Желательно те, кто знаком и с той и с той технологией. Озвучьте пожалуйста ваше мнение по вопросу «C# vs Java в 2020. Что выбрать?».
Как следует делать выбор? На что ориентироваться? На что обратить внимание?
В общем все возможное и не возможное по этой теме. C# и Java очень и очень схожи, но хочется для себя провести между ними различие, дабы выбрать нужный инструмент.
Заранее благодарен!