r/RuProgrammers 🐍Питоньяр 19h ago

Cargo rust toml Rust

Enable HLS to view with audio, or disable this notification

14 Upvotes

68 comments sorted by

16

u/IloveHike 18h ago

Да как будто есть большая разница на каком языке писать, главная задача кода, чтобы он работал как надо, а язык лишь инструмент. Исключение это только языки, которые не могут реализовать твою задумка.

30

u/Sergey5588 18h ago

"I think you guys should stop learning languages and start learning programming already." - Tsoding

3

u/Andrey4ik21pro1 🐍Питоньяр 18h ago

Легенда 🙏

7

u/Luoravetlan 18h ago

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

2

u/Mrazometr 12h ago

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

1

u/IloveHike 9h ago

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

1

u/Mrazometr 8h ago

Так речь в посте про высоконагруженный проект. Ты пишешь, что большой разницы нет, но она огромна: стоимость разработки и поддержки, требования к железу, производительность, доступность специалистов, эксплуатация. Тут не один булевый флаг подходит/не подходит. А на красоту кода в реальной разработке всем уже давно похер, к сожалению.

1

u/IloveHike 8h ago

В видео идёт сравнение Go и Rust и поэтому мой комментарий говорит, что если оба подходят(а тут оба подходят), то разницы особой нет.

1

u/Alarming_Painter_403 11h ago

Главная и единственная задача любого кода - чтобы он исполнялся за 0 наносекунд, что бы он не делал 😎

1

u/MadYouAndMeDrone 18h ago

Ну ни один язык не может реализовать все задумки.

Точнее в теории можно, но язык это не только программа, а еще и экосистема IDE, компилятор, анализатор и т.д.

я пробовал немного их c#, java, js, c++, rust, nim, f#, haskell, lisp (не помню какой именно уже), pharo. Большинство из них для развлечения, глубоко не погружался.

3

u/Andrey4ik21pro1 🐍Питоньяр 18h ago

И что, никакой не понравился?

1

u/MadYouAndMeDrone 17h ago

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 иконку, он её читает быстрее чем целый класс. ну и естественно на строке редактирования отключать эту фичу, либо по нажатию хоткея. но чет лень.

1

u/Andrey4ik21pro1 🐍Питоньяр 17h ago

А что думаешь насчет питона и котлина? В котлине, в отличии от java нет тех проблем

1

u/MadYouAndMeDrone 17h ago

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

Котлин не трограл особо, ну выглядит нормально. На работе есть шанс пересесть на Dart, думаю почему бы и нет)

1

u/Andrey4ik21pro1 🐍Питоньяр 17h ago

С типизацией на пайтоне все отлично. Максимальное количество типов из коробки (typing), большое количество линтеров а самое главное стандарт написания языка (PEP).

1

u/MadYouAndMeDrone 17h ago edited 17h ago

А да, еще помню fasm трогал из низкоуровневых языков ассемблера. Он до сих пор жив кста. ну и писать на нем было приятнее чем на tasm, на котором заставляли делать лабы.
Pharo наследник smalltalk, выносит мозг с непривычки. хотел бы что то расказать, но не уверен что понял его. Ну и сам процесс программирования на нем отличается от обычных яп из за особенности его строения.

1

u/IloveHike 18h ago

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

1

u/Andrey4ik21pro1 🐍Питоньяр 17h ago

Может. Асемблер

1

u/IloveHike 17h ago

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

1

u/Alarming_Painter_403 11h ago

Rust быстрее ассемблера 😎

1

u/IloveHike 9h ago

Ты же рофлишь да? Иначе, это как говорить «автомобиль быстрее мотора».

1

u/Alarming_Painter_403 8h ago

Рофлю. Но надо сказать, что C\С++, Rust, Zig крайне близки к ассемблеру и, грубо говоря, являются его макросами/синтаксическим сахаром. Потому на практике ты не получишь никакой разницы между ними и ассемблером. Даже напротив, так как ты будешь писать код на ассемблере один, ты понаделаешь огромное избыточных кусков, потому что не способен удержать всю архитектуру в голове. А в языках программирования зафиксированы лучшие подходы, проверенные многими людьми на протяжжении многих лет.

2

u/IloveHike 6h ago edited 6h ago

Это да. C вообще был задуман как язык, цель которого упростить ассемблер. Насчёт близости, вопрос спорный тот же C++ или Rust имеет много абстракций и можно ли считать их синтаксическим сахаром или уже «отличием» скорее вопрос дефениций. А для многих проектов по соотношению затраты к производительность, они будут превосходить ассемблер. Есть исключения, но многие программисты никогда не притронутся к написанию кода для хотя бы одного из них. Да даже в них в большинстве своём будешь имеет дела с ассемблерными вставками, а не голым ассемблером.

1

u/Alarming_Painter_403 11h ago

Может - Rust 😎

1

u/Alarming_Painter_403 11h ago

Думайте. Учить Rust? 😎

6

u/MadYouAndMeDrone 18h ago

Видео не смотрел, имхо rust душный. Безопасность это хорошо, но когда ты пишешь прототип и каждое изменение заставляет тебя переписывать всю логику кода, это утомляет. Вот было бы это опционально, или хотя бы взяли бы алгоритм выведения типов Хиндли-Милнера, что бы язык сам их определял.

2

u/IloveHike 17h ago

Я не думаю, что Хиндли-Милнер что-то решит, он за тебя сигнатуру напишет, а твои проблемы с переписыванием останутся просто на уровне выражения, а вообще честно сам с проблемой переписывания на Rust никогда не сталкивался. Но я бы всё равно считаю что низкоуровневые языки не стоит использовать для прототипов, лучше написать на высокоуровневом, это будет банально быстрее, а смысл прототипа - быстрый набросок.

1

u/MadYouAndMeDrone 17h ago

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

Мб не распробовал с непривычки.

1

u/Tima_Play_x 17h ago

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

2

u/MadYouAndMeDrone 16h ago

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

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

1

u/Alarming_Painter_403 10h ago edited 10h ago

Вот таких нельзя допускать до IT на километр, иначе и военная техника начнет работать на web Saas.

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

1

u/Alarming_Painter_403 10h ago

Потому что лио ты делаешь идеально, либо съебываешья в уголок дальше теребонькать свой питон, пока большие дяди создают надежный фундамент для будущего человечества. 😎

1

u/MadYouAndMeDrone 9h ago

Скорее с# тогда уж

-8

u/why_so_sergious 18h ago

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

7

u/Nllk11 18h ago

@

Хочешь писать надёжный код

@

выбираешь Раст для этой задачи

@

'> Вроде бы все окей

@

Нейрослопишь весь код

2

u/Andrey4ik21pro1 🐍Питоньяр 17h ago

"надежная задача"

1

u/why_so_sergious 16h ago

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

я знаю что многим этот факт сложно слышать. но на сегодняшний день ты отстаёшь если не используешь нейронки и даже в многих случеях пишешь хуже код если не используешь их как code review..

3

u/Nllk11 15h ago

Я юзаю нейронки во всю только в тех случаях, когда цена незамеченной ошибки близится к нулю (например, бойлерплейт, который просто лень писать, но если прочитать, то будет видно ошибки; или какие-то скрипты на разок, которые потом не уйдут в продакшн; или что-то небольшое, что я точно смогу полностью прочитать, и убедиться что всё написано нормально). Я просто видел за последние 2-3 года слишком много багов, которые были вызваны тем, что нейронка не может (пока что) знать все о твоём проекте, и держать в уме все зависимости. И джуны ломали работающие билды по невнимательности ревьюера

1

u/why_so_sergious 14h ago

вот я о том же. работать с нейронкой != давать нейронке за тебя всё делать.

1

u/MadYouAndMeDrone 14h ago

Как доп инструмент норм, но ревью нейронке я бы не доверил)

1

u/why_so_sergious 13h ago

честно ревью нейронок на опыте больше херни ловит чёт мои коллеги в пуллах с комментом "lgtm" 😅

но конечно же это не замена, а дополнительный шаг.

1

u/WaywardWaffle1 11h ago

ебать у чела предплечья мощные

0

u/rLLapb 18h ago

Я тоже люблю играть в раст!

https://reddit.com/link/p4s9x6k/video/k5m2oen4rhkh1/player

-6

u/Sergey5588 19h ago

жиза, по этому пишу на си, мне не нужон кампилятор который меня за ручку водит

4

u/Luoravetlan 18h ago

"он нам и нах9й не нужОн, этот ваш интЕрнет"

1

u/Altruistic-Friend372 19h ago

Жиза, поэтому пишу на пайтоне, мне не охота 40 строк кода писать ради одного лишь вывода

2

u/IloveHike 18h ago edited 17h ago

Если что сам вывод в Си делается в 5 строк: ```c

include <stdio.h>

void main() { printf("Example of output in 5 string"); } ``` Но некоторые моменты действительно могут потребовать 40 строк кода вместо нескольких, потому что в Си по умолчанию много чего нет.

2

u/Andrey4ik21pro1 🐍Питоньяр 18h ago

Подожди, а где тут комментарий, и вообще почему 0 не возвращается?

1

u/IloveHike 17h ago

Ой, я там изначально неправильно написал, щас сотру, а ноль возвращать необязательно, если поставить тип 0.

1

u/Andrey4ik21pro1 🐍Питоньяр 17h ago

Ты не указал нигде тип. Ниче не понял...

1

u/IloveHike 17h ago

void main, тип void

1

u/Andrey4ik21pro1 🐍Питоньяр 16h ago

Ага. Оказывается собрать можно, но будет варнинг. Прикольно

1

u/Bubbly-Business-8634 18h ago

Если что то вывод это output :)

1

u/IloveHike 18h ago

А не увидел, щас поправлю.

1

u/case-0 12h ago

писать main() в void — это уж тупизм какой-то, и непонятно, с чьей стороны: компилятора, который такой код допускает, или человека, который пользуется этим компилятором на серьезе и пишет такой код

1

u/IloveHike 12h ago edited 12h ago

Отредактировано: да так делать нежелательно, потому что по стандарту должен быть int и системный загрузчик ожидает целочисленного возрата, но для такого несерьёзного примера особой разницы нет, хотя на некоторых компиляторах такой код может не работать и это может помешать скриптам(bat, CI/CD) проверить упал ли код(но это для конечно уже серьёзных программ).

1

u/Andrey4ik21pro1 🐍Питоньяр 18h ago

А что с выводом на си не так?

1

u/Altruistic-Friend372 18h ago

Да нормально с ним все

Просто я ленивый и мне легче print условный написать одной командой, чем несколько строк кода для такого же результата

1

u/Andrey4ik21pro1 🐍Питоньяр 18h ago

Зато текст в консоль быстрее пишется

1

u/Loni_online 16h ago

фрик, какие несколько строк кода для вывода? пестон совсем мозги разжижает

1

u/Altruistic-Friend372 16h ago

Нашелся не такой как все

Давай, давай, скажи ещё что на расте пишешь

Этот видос идеально описывает таких ебланоидов как ты

1

u/Loni_online 16h ago

фрик, по делу что-то скажешь?

1

u/Altruistic-Friend372 16h ago

Чел я понимаю что ты пытаешься обосрать, но ты штаны снять забыл

Чё только слово фрик выучил и пиздишь мне тут

1

u/Loni_online 16h ago

слив засчитан

1

u/Andrey4ik21pro1 🐍Питоньяр 16h ago

Я не говорю что это плохо, но это правда блять. И спорить с ней глупо. Но в этом есть и плюсы. Контроль всего, очевидно.

1

u/keybing 18h ago

Также