Pull to refresh

Comments 62

будет являться кончено же JavaScript,

забавная опечатка)

может за это время что-то изменилось?

Учить язык можно только на реальных проектах. Причем, не pet проектах, а реальных коммерческих.

Близкая мне аналогия - горные лыжи. Есть "туристическое" катание - просто по подготовленному склону катаетесь так, как вам нравится. А есть спортивное - "по вешкам". Так вот в спортивном вы едете и поворачиваете не как вам хочется, а как вешки поставили. И вы никогда не научитесь "ходить трассу" не тренируясь кататься "по вешкам".

Так и тут - любой ваш pet проект это "туристическое" катание. А коммерческий - спортивное.

И вот. Выбор языка и инструментария будет определяться тем, в каком коммерческом проекте вы работаете. Так что выбирать нужно не язык, но область и проекты. А язык уже сам собой выберется под задачу. И лучше знать несколько разных языков, разной направленности. Тогда и круг задач, которые вы способны решать, будет шире.

Причем, не pet проектах, а реальных коммерческих.

"Затем я попал в реальный мир. Моей первой задачей было прочитать и понять фортрановскую программу емкостью 200000 строк, а затем увеличить скорость ее работы в 2 раза."

А еще бывает задача "разобраться в чужой библиотеке, в исходниках которой все названия функций и переменных - слова на немецком языке длиной 20+, а то и 30+ букв". Мой друг нарвался на такое лет 20 назад, когда никаких гуглопереводчиков не было. И у них в команде никто не знал немецкого языка.

ABBYY Lingvo с 1990 существует, так что слова и без гуглопереводчиков переводили.

Так-то да, но словари тогда были не то что очень, особенно технические. А еще бывало, что названия переменных были с сокращениями. Это по-английски довольно легко понять смысл чего-нибудь вроде fifochunkbufactsizebeforecompraudata, а по-немецки не факт.

Помню, в студенческие годы, лет в 18, для изучения английского взялся читать рассказы Стивена Кинга в оригинале и долго искал во всех словарях слово "sonofabitch".

Учить язык можно только на реальных проектах.

Очень странное утверждение.

Обычно на работу берут людей, которые хоть как-то знают нужный язык.

А ещё есть ВУЗы, курсы, и т.п.

Похоже, что сначала язык изучают в ВУЗе, и вместо реальных проектов используют курсовые работы. А потом уже те, кто решил поискать работу, используют изученное в реальных проектах.

Ну или я не понимаю смысла слов "реальный проект".

ЗЫ: Я изучал язык Си в институте, потом сам немного учил С++, потом (курсе на третьем) пошёл работать (видимо стажёром). И вот там уже начал писать на С++ те самые "реальные проекты". Если бы я не изучал Си в институте или сам, меня бы не взяли стажёром.

Обычно на работу берут людей, которые хоть как-то знают нужный язык.

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

Ну или я не понимаю смысла слов "реальный проект".

А чего понимать? У вас есть бизнес-требования (описание бизнес-логики процесса) и набор граничных условий (по ресурсопотреблению, быстродействию и т.п.). И есть сроки. Берете и реализуете заданную бизнес-логику в заданных граничных условиях и в заданные сроки.

Все очень просто.

Ну нет. На реальных проектах обложат, как волка флажками, вот это используй, вот то не используй, туда не ходи, сюда ходи, и ни в коем случае нельзя за флажки. В пет-проекте захотел - библиотеку другую попробовал, захотел - архитектуру перепидарасил, захотел - вообще язык сменил. На реальных проектах вряд ли этим будешь заниматься - на то они и "реальные проекты", там надо не язык учить, а дело делать.

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

Именно так. И платят именно за это. А не за

захотел - библиотеку другую попробовал,  захотел - архитектуру перепидарасил, захотел - вообще язык сменил

Такой подход приводит к тому, что проект может вообще никогда не завершиться.

Так может утверждать только тот кто не представляет из чего состоит большая программа. В реальных проектах необходимо уметь применять алгоритмические модели которые ранее изучены. Реальный проект это применение полученных знаний и навыков на практике. Одним словом все равно что утверждать, чтобы стать хирургом нужно сразу "резать" реальных пациентов.

Никто не даст вам сразу писать "большую программу". Все начинается в выполнения небольших задач (которые являются частью чего-то большего).

И большую роль будет играть не алгоритмы :это уже на более поздних этапах), но умение интегрировать вашу часть в общую архитектуру. Умение выполнить задачу в заданные сроки, соблюдя при этом все требования и ограничения. Умение выделить главное и отделить его от второстепенного - какой участок кода должен быть "вылизан" т.к. является критичным, а какой "лишь бы работало правильно" т.к. он второстепенный. Как соблюсти баланс между потреблением ресурсов и быстродействием. И еще множество подобных вещей.

Коммерческая разработка - это не задачки с литкода и не олимпиада.

В 2024 году Kotlin ворвался в топ-20 языков программирования

Главное что фортран и кобол из него не вырвались, так что старых знаний пока хватит )

Особенно доставило про умирание Java.

2024 год, а этот глупый вопрос всё еще задают.

Каждый язык нужно для разных вещей выбирать. Всё зависит от правления. Универсального нет языка.

Самый большой прирост сейчас у JavaScript. Он стал не только браузерным,.

Вы очень удивитесь, но вся разработка языков стремится именно к тому, чтоб сделать универсальный язык для всех задач. И неплохо это получается. Kotlin, охватил все фронтенд платформы и уверенно сидит на бэке. Go и Rust уверенно сидят на всех бэках и активно лезут на фронт.

Вы очень удивитесь, но вы пишите ерунду, Котлин в браузере есть? Может микроконтроллеры на нём программируют? Северные приложения популярные?

Раст это попытка заманить СИ с его недостатками.

Вот JavaScript это самый универсальный язык сейчас. На нём программируют сейчас всё, а если нужна производительность, модули пишут на Си++.

Вот JavaScript это самый универсальный язык сейчас.

а микроконтроллеры и ПЛК на нем программируют? Может трёхмерные игры популярные есть? или драйвера? Если нужна производительность просто берут другой язык.

Могу ошибаться, но что-то попадалось. Трехмерные игры с JS точно на UE5 есть.

Каждый современный язык стремиться стать как можно более универсальным. Даже на Python есть попытки залезть на фронт и в микроконтроллеры. Даже Java, не смотря на то, что отстает от Kotlin-JS, активно барахтается со своим GWT.

Есть Espruino на JS, интересный проект.

Вы очень удивитесь, но Котлин в браузере есть. Микроконтроллеры, смотря какие, на нем тоже неплохо программируют. Серверные приложения типа Тимсити, Ютрэк и прочие тоже написаны на Котлине.

Раст отлично заменил не только Си, но и Go.

JavaScript действительно универсальный, но не зря появились новые языки. У него есть серьезные недостатки.

Вот сейчас даже интересно стало. А можно какие-то источники, на которых вы обосновываете свое мнение? Примеры сайтов, сравнительная посещаемость к примеру, сайтов, у которых бэк на Расте и на Шарпах?

Причем здесь посещаемость? Мы вроде обсуждали тему универсализации.
Да, молодые языки на то и молодые, что мало известны сообществу. Все легаси на старичках написано.
Просто потому все новое и появляется, что старое чем-то не устраивает.
Конкретно Котлин позволяет на все платформы писать фронт - это вот ссылка https://www.jetbrains.com/lp/compose-multiplatform/. Но этому фреймворку года 3 всего. И он младше Flatter-а на года два-три.

Конкретно на Go и Rust я сам фронты не писал, но видел фреймворки для этого. Они явно не дотягивают до уровня Kotlin Compose, но движуха есть, я лишь про это.
Если говорить про производительность, то вот бенчмарки.
https://www.techempower.com/benchmarks/#section=data-r22&hw=ph&test=composite

Как за рекордное время проделать путь от "уверенно сидят на всех бэках" до "мало известны"
Прямо как в анекдоте про прапорщика и крокодилов :)

Не вижу связи между этими выражениями.

Могу сказать так: самые высокие зарплаты бывают именно на новых, более эффективных инструментах, хоть они и малоизвестны.

На досуге поглядите сколько получает rust-blockchain разраб.

Но какой язык использовать - это ваше дело

На досуге поглядите сколько получает rust-blockchain разраб.

И сколько таких вакансий на рынке?

И что-то мне подсказывает, что одного знания Rust там будет недостаточно, там еще попросят знание блокчейна и опыт работы с ним.

Знание алгоритмов, математики и архитектуры железа полезно независимо от языка.

Боюсь, там не просто математику знать надо, но и понимать и разбираться в конкретных технологиях. И платят в основном как раз за это. Т.е. кроме языка еще и технологии учить надо.

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

Очень плохо, что не видите. Как многие преподаватели, вы очень любите вещать, но при этом всегда разговариваете сам с собой, выдавая наружу какие-то обрывки мыслей. Возможно, хотели вы сказать что-то другое. Но получилось у вас буквально "Go и Rust уверенно сидят на всех бэках". Что является откровенной чушью.

Когда вас попросили как-то обосновать эту странную идею, в частности, на каких бэках плотно сидит Раст, вы опять продолжили разговор с голосами в своей голове, и начали рассказывать про "молодые языки", которые "мало известны сообществу". Что является, на минуточку, диаметрально противоположным предыдущему утверждению. Впрочем, вы честно признались, что не видите связи между двумя своими утверждениями. Это хороший признак, и со временем, возможно, вы научитесь говорить так, чтобы эта связь появилась.

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

Котлин позволяет на все платформы писать фронт

И где универсальность? Где те же микроконтроллеры, разработка кода ядра, математические библиотеки, инструменты для программиста (компиляторы, дебаггеры, профилировщики), ну или хотя бы (если вернуться к прикладному софту) базы данных, веб сервера, САПР? Есть там Котлин?

Да, молодые языки на то и молодые, что мало известны сообществу. Все легаси на старичках написано. Просто потому все новое и появляется, что старое чем-то не устраивает.

Формально все так. Но попробуйте взглянуть на легаси как на нечто проверенное временем и доказавшее свою надежность.

Аналогия с музыкой - Моцарт, Бах, Бетховен - это "легаси". А Стас Михайлов и прочие "певцы ртом" - "современный технологический стек".

Вопрос в том, сколько лет продержатся эти "современные языки". Смогут они по количеству десятилетиями эффективно и стабильно работающего кода сравнится с легаси? Тут только время покажет. Но когда покажет, все это "новое и современное" само превратится в легаси. И апологеты "переднего края технологий" отвернутся от него в пользу чего-то еще более модного. А тех, кто не отвернется заклеймят пнями замшелыми.

Вы точно уверены, что правильно понимаете значение слов “все платформы“?

Ну сбацайте на Kotlin какой-нибудь фронтенд для терминала 5250 на IBM i. Или на Go и Rust бекенд там же.

Кстати, было бы интересно как себя поведет программа на раст, запущенная в задании, у кторого в jobd не разрешена многопоточноть :-)

,

Ещё Nim старается занять все ниши, для этого тоже есть траспиляция в JS, как у Котлина. В Котлине хоть и есть приятный DSL, но в Nim он гораздо мощнее.

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

-- Папа, а в чем разница между "теоретически" и "практически"?
-- Теоретически у нас на десктопе JavaScript Oxidation "Compieler", а практически примеры приложений, написанных на тормозном Electron

В веб-разработке мы лёгким движением руки смешиваем фронтенд с бэкендом и выводим победителя. Так уж и быть кидая кость Питону. А потом идем на ха-ха смотреть вакансии: пых - 1500, шарпы - 1500, нода - 500. Ну-да, ну да, "Ничего не будет. Ни кино, ни театра, ни книг, ни газет – одно сплошное телевидение яваскрипт"

Рейтинги популярности языков явно стимулируют обучение разрабочиков больше, чем спрос на них. Поэтому у популярных (перспективных, трендовых) языков баланс смещается в сторону переизбытка специалистов (как сейчас у Python после ккурсов), а у бесперспективных (как умирающих типа Кобола, так и нишевых типа языка 1С) всё наоборот, нехватка кадров. Так что выбирая языка стоит ещё и это учитывать и "не покупать на хаях".

На С# написаны Microsoft Visual Studio, GitHub Desktop, Skype, Paint.NET и многие игры.

Так много знаменитых игр, что проще paint указать)

Любая юнити игрушка, имя им легион

Даже удивительно, что в конце статьи нет ссылки на телеграм-канал.

Эта моя первая статья, начиная свой путь, я понял, каким он будет тяжелым…(если, конечно, я его не заброшу)

Можно для начала поизучать уже имеющиеся статьи на Хабре про выбор языков программирования. Отнюдь не новая тема.

И без рекламы в конце ((

Увидев очередное "Какой язык выбрать...", на ум сразу пришло "английский".

Чё ж не китайский?

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

Есть старый анекдот:

18-19 века, Россия учит французский... ввалил Наполеону...

20 век, Россия учит немецкий... ввалили Гитлеру

21 век, Россия учит английский... какое широкое поле для эксперементов!

Занимаюсь олимпиадной программированием

Вот человек, казалось бы, умными вещами занимается, а такую чушь пишет.

Какой язык программирования учить, чтобы работать с нейросетями? И, как не крути, ответ один - это Python. Хотите ли вы или нет, любите ли вы его или ненавидите, но это ничего не изменит, так как в нейросетях Python - царь горы, на нем здесь работает все!

Нет, не все! Мы будем писать на том, что нам нравится. Python поощряет писать ужасные программы. Виной этому низкий порог. На C или C++ вы не напишете программу, если вы не знаете язык хорошо и не разбираетесь в программировании. Ибо она у вас просто не запустится. Чтобы писать программы на C / C++ вам нужно много знать.

К счастью, физики в основном всё ещё пишут на Fortran. Но многие биологи и и биоинформатики, увы, пишут на Python. Поэтому мы имеем кучи ужасно написанных бибилиотек, написанных учёными, не умеющими программировать, не понимающими ничего в программировании.

Итак, для разработки ПО смело учите JavaScript, он и популярен и эффективен, и отрицать это было бы очень глупо.

Oh, boy, here we go! Как вообще можно написать серьёзную программу типа научных программ, фото-, видео-, аудиоредакторов и компьютерных игр на JavaScript? Ещё есть и системное программирование! Похоже, что он считает, что разработка ПО ограничивается вебом и ботами.

Но многие биологи и и биоинформатики, увы, пишут на Python. Поэтому мы имеем кучи ужасно написанных бибилиотек, написанных учёными, не умеющими программировать, не понимающими ничего в программировании.

Если бы не было Python, то библиотека Х, написанная на нём, не стала бы шедевром разработки, написанным на чистых сях -- скорее всего, её бы просто не существовало, потому что значительной доле биологов не до того, чтобы вникать в тонкости С++.

Эх...низкий порог - это PHP, как то была задача набрать команду на PHP... жуть. Но сам язык позволяет создавать проекты решающии сложные, высоко нагруженные задачи, в том числе в финансовой сфере. Так и с Pyton, на нем можно много полезного делать!

компьютерных игр на JavaScript

Ну так есть огромное кол-во декстопных игр которые использую js. Из того что сразу в голову приходит CrossCode, огромное кол-во игр сделано на RPG Maker который так же использует JS,

Если бы у меня встал такой вопрос в 2024 году, то я бы посмотрел на чарты типа "100 самых модных!" и "50 которые учат больше всех в мире" и "топ 25 самых простых которые все хотят учить" и выбрал бы самый галимый, самый непопулярный, тот который меньше всего хотят учить.

Потому что если оно есть все же, то значит определенно где-то нужно.

А больше всего платят за то, что мало кто умеет/может и хочет делать.

Ну если б вопрос стоял о том, чтобы зарабатывать этим и быть ценным.

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

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

Может это именно и есть хидден гем.

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

Могу дать наводку - RPG

Язык живой, развивается. Но. Существует (в настоящее время) только на платформе IBM i

Автор, а можно я буду и дальше на сишке обычной писать? Мне для микроконтроллеров другого не надо.

И даже ассемблерные вставки не нужны ? )

Э...мне казалось, что Ассемблер все равно нужен для микроконтроллеров :-). Хотя, сейчас, наверное, оптимизаторы компиляторов лучше человека работают... :-)

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

Прежде нужно определится - что понимать под яп. Если синтаксис, то большой разницы нет. Функции, методы, переменные, ооп и тд и тп.

Технолгии, уже важнее. Фронт, бэк, геймдев, безоп и проч.

SQL без вариантов мастхев практически во всех случаях.

Также интересно смотреть на востребованность. Джава - тонны существующих проектов. Го модно, но больше стртапы - конкуренции меньше, но и вакансий меньше. Питон интересно, но в нынешних реалиях это предел бэкэнд. Нейросети аргумент, но как попасть в контору, где их создают. И проч, проч.

главная проблема JS заключается в том, что он очень медленный, язык программирования не дает писать быстроработащие приложения, и дело не в разработчиках, а именно в JS. И здесь в дело выходит The JavaScript Oxidation Compieler, в результате тот же самый ESlint работает в 50-100 раз быстрее. На Javascript уже создали такие известные приложения, как Discord, клиенты Netflix и Facebook, редактор кода Visual Studio Code

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

У вас много смелых заявлений: про смерть Java (кстати в мобильной разработке тоже используется!), про гиперактуальность Python. Чем подкрепите? Рейтингом TIOBE? Явно недостаточно, писали уже про это.

Не обижайте зря разработчиков, не раздражайте жителей хабра такими статьями. 7 раз подумайте, потом уже пишите.

Итак, для разработки ПО смело учите JavaScript, он и популярен и эффективен, и отрицать это было бы очень глупо.

Ничего себе! Очень интересно, что у Вас входит в понятие «ПО», раз предлагаете для его разработки смело учить JavaScript.

Sign up to leave a comment.

Articles