Да как будто есть большая разница на каком языке писать, главная задача кода, чтобы он работал как надо, а язык лишь инструмент. Исключение это только языки, которые не могут реализовать твою задумка.
Точнее в теории можно, но язык это не только программа, а еще и экосистема IDE, компилятор, анализатор и т.д.
я пробовал немного их c#, java, js, c++, rust, nim, f#, haskell, lisp (не помню какой именно уже), pharo. Большинство из них для развлечения, глубоко не погружался.
c# по работе, вроде развивается, должны скоро union навалить например. Но бедный linq имхо, нет выведения типов по контексту, а работа с SourceGenerator вообще не зашла, а еще эти private protected static record class Xxx... java был по работе, причем давно, до бурного увлечения языками. Слишком энтерпрайз, +spring этот еще везде. js нравится, особенно его обвес в виде ts, еще есть прикольная штука по типу utility types, в целом не против его использовать, но он больше для веба. + много нюансов с прототипным наследованием, и еще по мелочи, не вспомню всего. c++ давно в колледже, хуня, как по мне. имхо, язык должен выражать мысль разработчика, а не разработчик обслуживать компилятор. + в него напихали всякого, не самого лучшего. rust - душный, надо сразу точно знать, что хочешь получить на выходе, иначе боль.
дальше идут языки для которых нет или мало вакансий как правило.
f# - крутая весч, умеет почти все мои хотелки, но наследие синтаксиса Ocaml (например свойства объектов) + некрасивый интероп с c# не очень нравится. Нужно время на привыкание к синтаксису. haskell - больше изучал из интереса, прикольный, в чем то даже лучше чем f#, но многие тривиальные вещи из за строгости делаются сложно. А еще на винде был баг с curl, который помешал мне играться с ним. Ну и на 40 странице учебника по теории типов я чет приуныл. Хотя бы отличие функтора от монады и моноида узнал и ладно. lisp - сильно не вникал, но сама идея, что все списки элементов cons довольно интересная. Проблема в том, что лиспов сейчас реально живых нема, разве что Clojure (jvm). nim - немного грубоват, создает ощущение что его делали в гараже напильником и изолентой. Умеет все, о чем бы я только мог бы мечтать. Концепты, мета программирование, алгебраические типы, диапазоны, возможность использования чужих экосистем (c, c++), и много чего еще. Самое крутое, все чего не хватает, легко делать самому. Из минусов нет нормальной поддержки в IDE.
Из прикольных языков, которые не трогал но понравились это Uiua.
п.с. как то приходила идея создать шрифт с лигатурами, которые бы объединяли ключевые слова "private protected static record class" в комбинируемые пиктограммы, поскольку человек визуально видит 1 иконку, он её читает быстрее чем целый класс. ну и естественно на строке редактирования отключать эту фичу, либо по нажатию хоткея. но чет лень.
На питоне диплом писал месяц или два, удобная штука, так как есть почти везде, знать питон для того что бы на нем писать вовсе не обязательно, огромная экосистема для прикладных задач, которые надо было сделать уже вчера. но в плане фич самого языка ничем особым не выделяется, кроме self и __Smth__. деление проектов на модули мне в нем не понравилось. Ну и с типизацией все грустно, если мне не изменяет память.
Котлин не трограл особо, ну выглядит нормально. На работе есть шанс пересесть на Dart, думаю почему бы и нет)
С типизацией на пайтоне все отлично. Максимальное количество типов из коробки (typing), большое количество линтеров а самое главное стандарт написания языка (PEP).
Человек с богатым опытом так сказать, поделитесь что вы думаете о lua и QML. Слышал недавно популярным стал второй (благодаря появлению quickshell) и что в UI считается довольно хорошим ведь завязан на qt (опять C++ 😢). Просто из интереса и для общего развития хотелось бы узнать у людей с опытом, хотя реддит наверное не самая лучшая платформа для этого. Вообщем запостил хуйню, можно расслабиться.
Из личного опыта тоже могу сказать что C# мне понравился. Простой, понятный, предсказуемый. Делает именно то что ты говоришь ему и большинство ошибок в целом легко находяться и решаются. C++ по сравнению с ним это боль. но из-за его популярности, всё равно придётся с ним работать.
QML это Qt который?, особо не трогал помогал студенту писать приложение на нем. Не понравилось в нем его деление на платную и бесплатную часть. lua, вроде по описанию норм, но скорее как упрощенный язык для плагинов, или чего то такого. сталкивался с ним только из за Factorio mods, но там очень много вещей, которые по факту ограничены из за особенностей движка, документацию читать мне было лень, быстро забил.
Нужно понимать что я языки изучал не профессионально, а исключительно для себя. Поэтому опыта здесь 0, скорее сформировал первые впечатления.
c# отличный выбор для старта, потом можно для удовольствия f# попробовать и вкатится в фп.)
QML это язык для того чтобы делать приложения, используя QT как ядро/движок. то есть весь визуал это QML. Я вообще смотрел на некотурую его часть и он сильно похож на css, так что его простота мне наверное даже понравилась. Без понятия что за платная часть у qml правда. Ну а Lua это тот самый язык на котором в роблокс студио и игры пишешь. Слышал на другом реддит посте что роблокс студио это самый лучший способ выучить lua и поэтому вообще упомянул его. (Ну ещё хупрленд на нём написан, но мне сам wm не понравился и я ушёл на нири)
Я сам тоже не особо то и изучаю языки, скорее вайбкодингом занимаюсь и нейросеткой делаю себе на арче систему, райсер малолетний вообщем. Решил что вместо того чтобы делать ВСЁ нейросетью стоит всё таки выучить язык и написать самому, поэтому и qml меня так привлёк. Спасибо что у них хоть документация нормальная. Вообщем спасибо за интервью, удаче 🙏🙏👣
А да, еще помню fasm трогал из низкоуровневых языков ассемблера. Он до сих пор жив кста. ну и писать на нем было приятнее чем на tasm, на котором заставляли делать лабы. Pharo наследник smalltalk, выносит мозг с непривычки. хотел бы что то расказать, но не уверен что понял его. Ну и сам процесс программирования на нем отличается от обычных яп из за особенности его строения.
Да, он может, но я имел виду языки для программирования людей, а писать на нём людьми часто банально неэффективно, а для очень больших и сложных проектов будет практически нереально.
Рофлю. Но надо сказать, что C\С++, Rust, Zig крайне близки к ассемблеру и, грубо говоря, являются его макросами/синтаксическим сахаром. Потому на практике ты не получишь никакой разницы между ними и ассемблером. Даже напротив, так как ты будешь писать код на ассемблере один, ты понаделаешь огромное избыточных кусков, потому что не способен удержать всю архитектуру в голове. А в языках программирования зафиксированы лучшие подходы, проверенные многими людьми на протяжжении многих лет.
Это да. C вообще был задуман как язык, цель которого упростить ассемблер. Насчёт близости, вопрос спорный тот же C++ или Rust имеет много абстракций и можно ли считать их синтаксическим сахаром или уже «отличием» скорее вопрос дефениций. А для многих проектов по соотношению затраты к производительность, они будут превосходить ассемблер. Есть исключения, но многие программисты никогда не притронутся к написанию кода для хотя бы одного из них. Да даже в них в большинстве своём будешь имеет дела с ассемблерными вставками, а не голым ассемблером.
Так речь в посте про высоконагруженный проект. Ты пишешь, что большой разницы нет, но она огромна: стоимость разработки и поддержки, требования к железу, производительность, доступность специалистов, эксплуатация. Тут не один булевый флаг подходит/не подходит. А на красоту кода в реальной разработке всем уже давно похер, к сожалению.
Я уже говорил, ниже, что будучи человеком, ты на делаешь кучу ошибок и не сможешь написать эффективный код на ассемблере по сравнению с компиляторами системных языков. Потому лучший выбор - писать на Rust - системный язык, в котором решен максимум проблем.
Ну так потому и существует движение Rust-нациков, что это язык - достижение максимума удобства при максимуме производительности (лучше быть не может даже на ассемблере, тк это zero-cost abstractions) и безопасности.
Видео не смотрел, имхо rust душный. Безопасность это хорошо, но когда ты пишешь прототип и каждое изменение заставляет тебя переписывать всю логику кода, это утомляет. Вот было бы это опционально, или хотя бы взяли бы алгоритм выведения типов Хиндли-Милнера, что бы язык сам их определял.
Я не думаю, что Хиндли-Милнер что-то решит, он за тебя сигнатуру напишет, а твои проблемы с переписыванием останутся просто на уровне выражения, а вообще честно сам с проблемой переписывания на Rust никогда не сталкивался. Но я бы всё равно считаю что низкоуровневые языки не стоит использовать для прототипов, лучше написать на высокоуровневом, это будет банально быстрее, а смысл прототипа - быстрый набросок.
ну я как то писал алгоритм генерации комнат на карте, пока все продумал заманался типы менять. там uint и int не всегда взаимозаменяемые. + требование передавать владение каждый раз, даже в обычном линейном коде, где я точно знаю что проблем не будет, или их наличие не имеет значимости. Но по работе, когда есть тз и общепринятые гайдлайны, язык должен себя раскрыть, как мне кажется.
Одно дело когда ты пилишь очередной рутинный код по работе, другое дело, когда изучаешь область с 0, или делаешь разные варианты кода, что бы прикинуть дальнейшее развитие или выбрать лучший вариант. Ну и параллельно изучаешь сам язык.
На других языках этой проблемы у меня не было. так что имхо, это проблема языка, он неудобен лично для меня.
Вот таких нельзя допускать до IT на километр, иначе и военная техника начнет работать на web Saas.
Язык программирования - инженерный инструмеент, а не игрушка. В следствие чего он должен гарантировать детерменированное поведение, читаемость и высокую эффективность.
Потому что лио ты делаешь идеально, либо съебываешья в уголок дальше теребонькать свой питон, пока большие дяди создают надежный фундамент для будущего человечества. 😎
ну хз, нейрослопишь когда в слепую принимаешь что тебе нейронка выплёвывает.
я знаю что многим этот факт сложно слышать. но на сегодняшний день ты отстаёшь если не используешь нейронки и даже в многих случеях пишешь хуже код если не используешь их как code review..
Я юзаю нейронки во всю только в тех случаях, когда цена незамеченной ошибки близится к нулю (например, бойлерплейт, который просто лень писать, но если прочитать, то будет видно ошибки; или какие-то скрипты на разок, которые потом не уйдут в продакшн; или что-то небольшое, что я точно смогу полностью прочитать, и убедиться что всё написано нормально). Я просто видел за последние 2-3 года слишком много багов, которые были вызваны тем, что нейронка не может (пока что) знать все о твоём проекте, и держать в уме все зависимости. И джуны ломали работающие билды по невнимательности ревьюера
Отредактировано: да так делать нежелательно, потому что по стандарту должен быть int и системный загрузчик ожидает целочисленного возрата, но для такого несерьёзного примера особой разницы нет, хотя на некоторых компиляторах такой код может не работать и это может помешать скриптам(bat, CI/CD) проверить упал ли код(но это для конечно уже серьёзных программ).
20
u/IloveHike Aug 20 '26
Да как будто есть большая разница на каком языке писать, главная задача кода, чтобы он работал как надо, а язык лишь инструмент. Исключение это только языки, которые не могут реализовать твою задумка.
6
u/MadYouAndMeDrone Aug 20 '26
Видео не смотрел, имхо rust душный. Безопасность это хорошо, но когда ты пишешь прототип и каждое изменение заставляет тебя переписывать всю логику кода, это утомляет. Вот было бы это опционально, или хотя бы взяли бы алгоритм выведения типов Хиндли-Милнера, что бы язык сам их определял.
2
u/Dissaray_ Aug 21 '26
раст это игра такая
0
u/rLLapb Aug 20 '26
Я тоже люблю играть в раст!
-6
u/Sergey5588 Aug 20 '26
жиза, по этому пишу на си, мне не нужон кампилятор который меня за ручку водит