Это копия, сохраненная 20 декабря 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
ИТТ мы можем объяснить базовые и продвинутые концепции языка, и
программирования в целом, поможем вкатывающимся, подскажем что
выбрать для веба, игр или спасибо абу блокчейна.
https://www.rust-lang.org
> Пачиму helloworld весит как моя мамка?!1й
https://lifthrasiir.github.io/rustlog/why-is-a-rust-executable-large.html
Читать
Оф. книга, она же растбук
https://doc.rust-lang.org/book/
https://rustbyexample.com/
Очень хорошая книга, отлично зайдет после растбука:
http://shop.oreilly.com/product/0636920040385.do
Список интересных проектов
https://github.com/rust-unofficial/awesome-rust
Писать
IDE
https://areweideyet.com/
Вебня
http://www.arewewebyet.org/
Игры
http://arewegameyet.com/
Etc
https://wiki.mozilla.org/Areweyet
Новости
Компиляция всего, что произошло за неделю
Иногда постят вакансии
https://this-week-in-rust.org/
Сколько вешать в лайках
https://github.com/trending/rust
Оп рекомендует:
https://www.amethyst.rs/
https://go.googlesource.com/proposal/+/master/design/go2draft.md
Каждый раз когда речь заходит про go 2, то подчеркивают, что не хотят повторять успех python 2/3 и perl 5/6.
https://github.com/golang/go/wiki/Go2#compatibility
другие не стоят на месте
пока тут раст пытается быть убийцей си и крестов, его самого может прикончить то же goвно
Главное чтобы было куда приходить.
> How many lines of rust code are you using in production?
About 60k of our own, about 300k incl crates.
> What drove the move to Rust precisely? Most of the players in the industry are somewhat reluctant about moving to Rust.
Well, we basically needed C++, but:
1) Dropbox doesn’t have a strong C++ ecosystem on the backend, and it takes a lot of work to build one.
2) Given (1), we had basically a blank slate, and our team is C++ and Haskell type folks, we decided to use Rust so we could get C++ with better type safety and fewer sharp corners.
Потому что ты их ищешь в отсталой стране 3 мира.
для байтоёбства раст слишком жирный, поэтому он находится в той же категории, где и языки с gc
Это круто и я обязательно попробую это, но мне бы понять как это делается в ванильном Расте. То что я описал - это и есть стандартное решение?
По сути да. Ты пробрасываешь один енум и реализуешь конверсию из нужных тебе ошибок. Туда же можно присобачить backtrace
Спасибо, пойду попробую тот крейт, что ты скинул.
я мидлом C++ OpenGL немного больше получаю
аллоцировать строку какого-то размера, отдать ее на заполнение сишной функции, которая сделает ее нуль терминейтед и вернет размер.
https://pastebin.com/eS3W3ynh
ну логика простая, есть фукнция проверки скомпилился ли шейдер или нет, если нет, то надо вернуть строку с описание ошибки, если все збс, то функция вернет None
fn check_problem(shader_id: u32, status_type: ShaderStatType) -> Option<String>
Чего только не придумают, лишь бы исключения не делать.
Зачем нам простое и понятное управления ошибками? Давайте лучше сделаем Result, panic, и монады, с помощью которых будем хуево имитировать функции исключений! Так же веселей, правда?
>для байтоёбства раст слишком жирный
Ты сейчас серьезно? Никак вы, блять, не научитесь.
А если серьезно, расскажи, почему ты так считаешь, даже интересно.
Для раста есть какой-нибудь фреймворк или библиотека для написания сетевых приложений по типу Netty из Java? Нужна такая либа, чтобы можно было удобно писать сетевой код, чтобы все было нонблокинг и т.д.
уххх, нишшштяяяяк, спасибо!
>Зачем нам простое и понятное управления ошибками?
Насчет вас не знаю, а нам - чтобы писать работающие программы.
>Так же веселей, правда?
Конечно, с гото, нулл поинтерами и эксепшнами веселей! Вот только насчет вас не знаю, а нам не веселиться, а работать надо.
Маня, паника от исключений отличается примерно всем.
язык вроде позволяет байтоебство, использование сишного кода, обернутого во враперы, а на деле, проводим шершавым по клавиатуре. Чет байтоебить не очень то и удобно получается.
так он и не нужен.
Конечно нет. Если таких проектов будет несколько то получится что раст убивает ссд.
Щас бы из-за ссд парится.
>Безопасный код
>Зиро кост абстракции
>inb4 ехал RefCell через RefCell
как же ору с ржавых дурачков
>языку 8 лет
>нет нормальной IDE
авторы этого поделия сами относятся к нему не более, как к игрушке
C++ безопасен настолько, насколько ты сам этого хочешь (путем использования слоев абстракций). Раст безопасен настолько, насколько это кажется его авторам.
Очевидно, что С++ лучше и гибче.
С чего это ты применяешь разные правила для одних и тех же вещей?
>Когда хочешь сделать безопасный статический анализатор, но слишком тупой чтобы сделать это правильно
Почему раст не дает скомпилировать этот совершенно безопасный код?
Статический анализатор в расте слишком тупой и больше вредит, чем помогает.
>Почему раст не дает скомпилировать
>на пике русским английским, блядь, языком написано, почему
Дети с аутизмом обучаемы.пнг
Лул. Сразу видно дауна, который никогда не дебажил сутками из-за какой совершенно нелепой мелочи, которую оставили по невнимательности. Которую не отлавливает memcheck, asan и msan вместе взятые
>мам, я не использую smart pointer потому что сегодня я оптимизатор
>мам... мам, папу позови. срочно!!!11
Покажи мне того, кто не использует smart ptr в c++, блядь. Выучил новое слово и пихает его всюду
Суть в том, что безопасности в программе на С++ будет столько, сколько ее туда вложит автор. Почему то эту простую истину так сложно понять многим.
Проблема не в том, что С++ небезопасный, а в том, что погромисты пишут небезопасный код. Это язык программирования. Можно внутри этого языка написать свой безопасный диалект языка, в котором вся работа с памятью, например, вообще будет скрыта за стеной безопасного интерфейса, и писать программу уже на этом языке. Нет, хотим писать на голом С++, жаловаться на баги и просить чтобы нас били по рукам за плохо написанный код.
Суть в том, что качество языка зависит от того, насколько программист страдает от своих ошибок. Если в расте ты ошибку вообще не допустишь, либо она такая, что ты легко ее найдешь, то в плюсах есть некислая вероятность, что из-за сегфолта ты будешь страдать несколько часов просто комментируя строчки, потому что иных инструментов найти ошибку у тебя нет.
Можно сколько угодно пиздеть, что у тебя такого не бывает, но ты ебаный кожаный мешок, поэтому ты полюбому ошибешься и словишь happy debug.
если попробуешь опять пиздануть аргумент про кривизну рук, то сразу задумайся о факте, что в гугле asan и msan писали не от хорошей жизни
Я вот тоже раньше думал что, например, многопоточное программирование - это что-то ужасное и сложное. Пока не открытл для себя акторы. И оказалось, что многопоточное программирование не только не сложное, а даже увлекательное. Нужно только найти правильный слой абстракции.
Так может все дело в незнании архитектуры?
>Покажи мне того, кто не использует smart ptr в c++,
упоротые растобои и не используют, например. они очень любят показывать какой-нибудь ебанутый пример с поинтерами и говорить как хорошо, что в расте такого нет.
классический strawman fallacy
Как знание архитектуры защитит тебя о того, что где-то из-за опечатки попортилась память и это вызвало баг в вообще не связанном куске кода? Или где-то по запарке забыл проверить, открылся ли файл и какая-то структура осталась заполненной нулями.
то есть правила будут еще сложнее и вообще осмыслить работу компилятора будет невозможно?
лол раст это такая машина голдберга от мира языков программирования. хороший пример как не нужно делать языки
Блять, какой же ты тупой, пиздец просто.
https://play.rust-lang.org/?gist=a1fea50926499707b7117916af5db261&version=stable&mode=debug&edition=2015
Да знаю я это. Я имел ввиду то, что сейчас проверка слишком тупая и ограниченная. Твой пример включает новую фичу, который делает проверку умнее, но делает невозможным любые попытки рассуждать о коде.
Блять, с одной стороны упрощенный до примитивизма го, с другой искуственно усложненный раст с невменяемыми правилами статического анализатора и туевой хучей мелких, специализированных типов придуманных специально для обхода этих правил.
Почему они ушли оба в какие-то крайности? Почему нету нормального низкоуровневого, практического языка, ОБЛЕГЧАЮЩЕГО задачи?
Есть D
c++ уже давно не тот, каким его рисуют евангелисты раста.
это современный безопасный язык. С++ 14 и 17 не оставляют камня на камне от раста.
раст просто не нужен, он не дают программисту ничего, кроме искусственной сложности.
Слишком толсто. Давай на примере. С++17, у тебя бьется память, проявляется 1 раз из 30 в виде сегфолта. Длительность теста, где баг проявляется, составляет 4 минуты. Asan тебе показывает heap-use-after-free, но место вообще левое, потому что это следствие битой памяти. В дебаге баг проявляется еще реже - 1 к 50.
Твои действия?
Речь не об этом. Чтобы понять код на расте, нужно НУЖНО ЗНАТЬ КОНТЕКСТ КОДА, НУЖНО В УМЕ КОМИЛИРОВАТЬ ПРОГРАММУ, НУЖНО ПОНИАТЬ УСТРОЙСТВО КОМПИЛЯТОРА, нельзя просто посмотреть на строчку кода и делать какие-то выводы о ней.
Эта хуйня в виде статического анализатора и control flow еще в kotlin мне не нравилась. В rust это можно смело удесетерять.
Это создает лишнюю когнитивную нагрузку при чтении и написании программ.
Еще детали: код написан охуенно. Отличная архитектура, аккуратный менеджмент памяти с продуманным владением, естественно со smart ptr, код очень сильно покрыт тестами, юнит-тесты проходят 100% запусков, с многократным повторением тоже.
>control flow еще в kotlin мне не нравилась
>Это создает лишнюю когнитивную нагрузку при чтении и написании программ.
Отлавливание NullPointerException тебе лишнюю когнитивную нагрузку не создаёт?
Перегрузка операторов является плохой практикой.
>>60380
У тебя может не быть ошибок памяти в расте (весьма сомнительно), но ты проиграешь в другом (в том числе и во времени).
При разработке любого языка делается ряд компроммисов. Просто для меня компромиссы раста не стоят того, чтобы им пользоваться. Все плохое намного перевешивает то немногое хорошее, что раст предлагает.
Не пользуйся. Приходи когда поймешь на своей шкуре, почему люди не хотят писать на крестах, раз ты не способен учится на чужом опыте.
>почему люди не хотят писать на крестах
кто эти люди? по моему наоборот не хотят писать как rust.
>Rust
>Smalltalk
>TypeScript
Клоунский список. Мертвый язык и переводимая в js скриптопараша в топе.
Как видно, совершенство достигается не тогда, когда уже нечего прибавить, но когда уже ничего нельзя отнять.
Я тебе уже написал реальный случай, когда дебажили проект около недели, чтобы локализовать одну ебучую ошибку. Да, анон, я не хочу писать на плюсах.
мимо-сеньер-перешел-на-джаву
>Клоунский список.
Каждый раз смеюсь, когда вижу такие важные мнения от безымянных школьников с сосача.
никогда. потому что написать васянский аддон к llvm с очередным революционным языком легче, чем сделать нормальные инструменты разработки.
в этом основная проблема языков-вкатывальщиков.
Сразу видно, что на крестах интырпрайз писал
Мертвый тред мертвого языка
Нет ты.
Так-то язык неплохой как замена морально разложившемуся С++, но этот форс ко-ко-ко безопасности и неюзабельность языка мешают.
Дауны пишут на голых поинтерах и прочих низкоуровневых примитивах, а потом у них язык виноват, понимаешь ли.
>Какой смысл в расте без борроу чекера
современный низкоуровневый язык, cargo, это все.
Я наоборот не вижу смысла в расте с чекером.
Безопасность путем ограничения - дурацкая идея.
Какая глупость. Во-первых, раст ограничивает управление памятью только RAII. Во-вторых, он использует read write lock для доступа к любым переменным. Это вполне конкретные ограничения, которые для многих задач не оставляют никаких решений, кроме некрасивых хаков и unsafe.
Правильнее следовало бы говорить, что раст не безопасный, а ограниченный.
Не очень то соответствует системному языку
Половина стандартной библиотеки написана с unsafe. Это просто смешно. Безопасный раст это неполноценный язык
Купили как-то суровым сибирским лесорубам японскую бензопилу.
Собрались в кружок лесорубы, решили ее испытать.
Завели ее, подсунули ей деревце.
«Вжик» — сказала японская пила.
«У, бля...» — сказали лесорубы.
Подсунули ей деревце потолще. «Вж-ж-жик!» — сказала пила.
«Ух, бля!» — сказали лесорубы.
Подсунули ей толстенный кедр. «ВЖ-Ж-Ж-Ж-Ж-Ж-Ж-ЖИК!!!» — сказала пила.
«Ух ты, бля!!» — сказали лесорубы.
Подсунули ей железный лом. «КРЯК!» — сказала пила.
«Ага, бля!!!» — укоризненно сказали суровые сибирские лесорубы! И ушли рубить лес топорами…
Мимо крестовик.
Ушёл бы в раст, но работы нет
Ну это ж хуйня. Ну в смысле, на языке программирования пи эйч пи можно делать.
Можно. Но никто не хочет писать на кривом говне без нормальной системы типов.
>Безопасность путем ограничения - дурацкая идея.
Действительно, какие идиоты придумали статическую проверку типов? Настоящим ковбоям это дурацкие ограничения не нужны. Как же вы заебали, все как под копирку одинаковые, лол.
Под эту же копирку идут вскукареки про ГИБКОСТЬ, ЧТО ХОЧУ ТО И ДЕЛАЮ, ПРЯМЫЕ РУКИ и А ТЕСТЫ ДЛЯ КОГО? Ситуацию усугубляют всякие Боб Мартины, заливающие говно адептам в головы.
Да не, это совсем из другой оперы. Наверняка эти кукаретики про дядю боба даже и не слышали. Это из тех, кто не понимает, что борроу чекер - это часть системы типов, и думают, что это типа какой-то линтер непонятный прям в язык встроили и не дают им теперь байты в жопу ебать.
Ебать, о гитхабе слышал?
Я лучше пойду писать программы на нормальном, практическом языке.
А ты сиди читай свои маня-папиры и воображай как ограничения раста делают твой (несуществующий) код безопасней.
Что угодно, лишь бы не думать.
>Rust is a systems programming language focused on safety, speed, and concurrency.
Кормят целевую аудиторию сладкими баззвордами прямо со входа
Занимаюсь блокчейнами. Работается неплохо, хотя иногда сказывается некоторая сырость экосистемы, например, очень неудобно отлаживать код (если ты, конечно, не мастер gdb через консоль).
Поповоду вакансий: вбей на hh rust, там есть несколько вакансий.
Вопрос, вроде бы, снят. Сделал это тупо через .to_string().as_bytes().
Безопасный раст это неполноценный язык ни для чего кроме hello world не годящийся. Пора бы уже это запомнить.
Можно просто превратить u16 в массив u8 и запихнуть в write (код хуевый и с unwrap'ами, но идея, думаю, понятна):
use std::{
fs::File,
io::{Write, Read}
};
const FILE_NAME: &str = "/tmp/test";
fn main() {
// write to file
let data = 1488u16;
File::create(FILE_NAME).unwrap().write(&[data as u8, (data >> 8) as u8]);
// read from file
let mut buffer = [0, 0];
File::open(FILE_NAME).unwrap().read(&mut buffer);
let new_data: u16 = buffer[0] as u16 + ((buffer[1] as u16) << 8);
println!("{}", new_data);
}
Я очень люблю игры Блоу, The Witness просто божественен, рекомендую всем любителям нестандартных головоломок.
Но Rust я тоже люблю, хоть и слишком тупой для него.
К сожалению он слишком тупой чтобы осилить ООП.
Так и должно быть? Это же какой-то ад, а не обработка ошибок, особенно учитывая, что тут еще нет почти никакой абстракции.
Я знаю, что есть разные крейты для нормальной обработки ошибок, но неужели без них нельзя нормально обрабатывать ошибки в Расте?
Да, это норма для тех языков, авторы которых не осилили исключения.
На кой хуй мне твой expect? Я знаю, что я могу хуй забить на обработку ошибок и просто высирать сообщение, но тут я panic! написал как заглушку. На том месте у меня, например, будет создаваться этот файл, и заполняться какими-то значениями.
https://habr.com/post/183150/
Но не слушай этого. Как по мне в расте обработка ошибок будет поприятней.
Ох блять, эта статья.
Помню изучал Хаскель, так и не смог разобраться с монадами нормально.
С ним у меня было прям как с Растом. Нравиться, но я слишком тупой.
мимокрокодил
Если не вдаваться в детали, то самое важное что тебе дают монады это по сути and_then
https://doc.rust-lang.org/std/result/enum.Result.html#method.and_then
который в хачкеле называется =>> или bind и там это тайпкласс.
По сути, and_then позволяет создавать цепочки, из функций, которые на вход принимают какое-то значение (String), а на выходе дают результат завернутый в некую структуру (монаду), например Result или Option (Either/Maybe в хаскеле)
Поддержу анона выше, можешь забить на теорию и подходить чисто с практической точки зрения. У тебя есть цепочка функций, каждая из которых берет результат предыдущей функции, обрабатывает его и передает на вход следующей. При этом в каждой из функций может возникнуть ошибка, и тогда нужно вернуть эту ошибку, не выполняя оставшихся далее в цепочке функций. Вот распиши это в чистом функциональном стиле без всяких монад, у тебя получится много бойлерплейта с ифами\матчами. Монады и абстрагируют этот паттерн, чтобы не нужно было писать бойлерплейт. То есть это как ООП паттерны, только в ООП "паттерн" подразумевает копипаст похожего кода (потому что языки невыразительные и не могут абстрагировать повторяющийся бойлерплейт код), а в программировании здорового человека паттерны как раз служат ровно обратной цели, то есть позволяют не повторять один и тот же код, а переиспользовать его.
Точно так же как filter/map/fold это абстракция рекурсивных паттернов.
>result и panic
>слайсы для строк и слайся для массивов
>cargo.toml и объявление структуры модулей внутри самого кода
факинг хелл. столько наивных ошибок. раст писал первокурсник?
Сам по себе результат завёрнутый в структуру - это не монада, не наебывай человека
И bind в хачкеле это >>= а не =>>
Я сказал что это тайпкласс. Говорить "структура для которой реализован тайпкласс монад" это ебучее пижонство.
Мелкобуквенный унтерменш, цыц. Этот загон называется /pr, тут обсуждают программирование (в том числе МОНАДЫ). Тебе здесь не место.
Ты узнал слово монады и теперь пихаешь его везде? Успокойся уже. Хочешь блеснуть, расскажи лучше эволюцию подходов к монад-трансформерам и какие плюсы/минусы есть.
Нет, я вообще другой анон, чини детектор.
Кто там говорил, что не может раст осилить? Вот держите карпа - простой как три рубля, с борроучекером и мультимедиа либой а-ля processing искаропки:
https://www.youtube.com/watch?v=BQeG6fXMk28
https://github.com/carp-lang/Carp
Ой, эти лисповские скобочки, функциональщина, лучше Jai поучить
https://github.com/BSVino/JaiPrimer/blob/master/JaiPrimer.md
Там нет борроу чекера. И вообще ничего нет, компилятор пока существует только в манямирке автора ютуб-видосах. Ну и в целом это набор костылей, а не полноценный язык, так что в образовательных целях его учить - так себе идея, неинтересно.
Карп не функциональщина, кстати.
> нет борроу чекера
Языку, претендующему на роль современного Си, не нужен борроу чекер.
>существует только в ютуб-видосах
Зато выйдет сразу с игровым движком.
> это набор костылей, а не полноценный язык
Набор костылей - это С++. А что по-твоему полноценный язык, чего jai не хватает?
>Языку, претендующему на роль современного Си, не нужен борроу чекер.
Хм, так не, я про то, что запостил ссылку анону, который выше говорил, что хотел выучить раст, но сломал мозг. Мол вот, в карпе то же самое, но проще, мозг не сломаешь. А ты такой - лучше джай учить. Вот я и говорю, что для цели плавного вката в раст - не, не лучше.
А насчет современного си - ну, хуй знает. По-моему времена ковбоев и дикого запада все-таки проходят.
>Зато выйдет сразу с игровым движком.
Или не выйдет)) Ну ты сам-то в это веришь? Чувак по факту написал один только ванильный хуинди-платформер, зато уж следующий его проджéкт точно будет УБИЙЦЕЙ ЮНИТИ, ага)) Не то что кармаки там всякие, которые на свои хачкели надрачивают, тут пацан ПЛАТФОРМЕР написал, дело серьезное))
>Набор костылей - это С++.
Капитан, мое почтение.
>чего jai не хватает?
Блядь, дело даже не в этом. На самом деле довольно трудно это вербализовать коротко. Просто я читаю их диздоки и вижу, что джон - дилетант, если прямо (по части создания языков). Видно, что у него нет опыта, нет четкой общей картины, все делается по принципу "вот я писал на си, и вот подумал что прикольно было бы фичу Х прикрутить, и еще вот тут у меня в проекте часто код повторялся, можно тоже это в язык вкрутить, и еще нескучные обои сделать))" - как-то так. Ну и сам факт того, что он не ведет разработку в открытую, говорит очень о многом. Впрочем, если доведет до релиза - ну и слава богу, может какие-то интересные фичи перекочуют в другие языки (да и к тому же богу убийц крестов нужно больше убийц крестов, аххахахаха)
>я про то, что запостил ссылку анону, который выше говорил
Это я не заметил
>времена ковбоев и дикого запада все-таки проходят
Но Си же до сих пор занимает ведущие позиции в рейтингах, значит ниша у него своя остается.
>Чувак по факту написал один только ванильный хуинди-платформер
Не только платформер. Сейчас, как я понял, третью игру как раз на своем движке и пилит.
>значит ниша у него своя остается.
Ну так и у Фортрана своя ниша остается как бы. Но все понимают, что в 2k!8 фортран - это, ну, фортран.
>Сейчас, как я понял, третью игру как раз на своем движке и пилит.
Вроде пилит, да. Ок, инди-платформер и недоделанная - что там? Паззл-бродилка с мультяшной графикой? Кармак нервно курит в сторонке, ага.
В TIOBE 2018 Си на 2-м месте, Си++ на 4-м, Фортран на 29-м. Так что аналогии с фортраном не уместны, на нем ничего не пишут, кроме некропроектов. На чем сейчас писать операционные системы, движки AAA игр, кроме C/C++, не на Go же.
>Вроде пилит, да. Ок, инди-платформер и недоделанная - что там? Паззл-бродилка с мультяшной графикой? Кармак нервно курит в сторонке, ага.
Не кукарекай, The Witness - божественный пазл с уникальной подачей.
Но к технологиям и треду это отношения не имеет.
Он нигде не нужен.
borrow checker, объявленые задним числом trait'ы, очень много имплицитных вещей в коде делают написание кода сложным, а чтение чужого кода еще сложнее.
Авторы языка тупо не принимали в расчет эргономику языка. У Джоната Блоу по этому поводу кстати есть много интересных замечаний.
Например, пример идеального языка для программистов - java. Код легко пишется, легко читается.
Авторы go тоже думают в правильном направлении. Они понимают, что язык - это в первую очередь инструмент программиста, который не всегда умный.
Какая разница сколько фич в твоем языке и какие гарантии он дает, если на нем тупо нельзя писать программы эффективно?
>вижу, что джон - дилетант
Но опыт показывает, что языки, созданные учеными, не становятся особо популярными: языки Вирта, Haskell, SmallTalk...
Ну во-первых хаскель вполне себе популярен.
А во-вторых все перечисленные языки оказали влияние на рабоче-крестьянские инструменты.
>Ну во-первых хаскель вполне себе популярен.
Занял свое почетное место у параши рядом с прологом.
Как ты думаешь, феррари популярный автомобиль? Если сравнивать с жигулями? Думаю в абсолютных числах очевидно кто рядом с парашей. Но это не означает что феррари не популярен среди богатых и успешных.
Феррари - это типичная машина для понтов.
https://www.youtube.com/watch?v=sPxZLq5ajYQ
Неудобная, с хуёвым обзором, зато с шильдиком и мотором.
Что, сука, характерно, в проводимых гоночных из всей линейки феррари принимает участие онли ихний болид.
В различных кузовных дисциплинах есть вся японщина, есть мерседесы, есть бехи, а феррари - нет.
Собственно с хачкелем так же. Язык для кидания понтов, на практике неприменим.
Окей, ролс-ройс. Устраивает?
Человек на знает раст, никогда на нем не писал и рассуждает вообще непонятно о чем. Нахуй ты это говно сюда принес?
Ему в первом комменте уже объяснили почему он несет хуйню. Жаловаться на то что компилятор не читает его мысли. Классика.
Да это проблема учОных и инженеров. Ученый пороха не нюхал, клавиатуры никогда в руках не держал и выдумывает какую-то абстрактную неюзабельную академическую хуиту. А погромисту просто нужно ебашить код как можно проще и быстрее. Два совершенно разных видения.
Особенно в этом смысле убил ответ одного долбоеба с растоконфернции, на вопрос про поддержку IDE: А ЧО, Я ПОЛЬЗУЮСЬ VIM МНЕ НИКАКОГО IDE НЕ НУЖНО
Ну так фортран и появился в 50-ых, в отличие от. Я про динамику говорю.
>>66421
Согласен, статическая типизация вообще зло, настоящие мужчины месят байты на голом железе.
>>66427
>>66428
>Например, пример идеального языка для программистов - java. Код легко пишется, легко читается.
Лол. Перетолстил чуток, бро.
>>66479
Ну вот джава (вроде самый популярный язык на планете) была создана "учоными" (и инженерами) - автор спеки джавы - гай стил, известный лиспер, автор Scheme и один из авторов имакса. Джавскрипт (нет, вот этот самый популярный) как концепция (язык в браузере) тоже был сделан лиспером и комплюктер сайентистом (изначально там должен был быть как раз scheme, но маркетолухи настояли, что вместо нормального языка должна быть маняджава для домохозяек). Алсо, тот же смолток в свое время был дохуя популярен, благодаря ему по сути появилось такое понятие, как графический пользовательский интерфейс (GUI). Так что на практике твое утверждение не соответствует действительности, анон.
Ты не поверишь, но большинство действительно крутых разработчиков, которые ездят по конфам и чьи токи ты потом слушаешь, юзают вим (и имакс), а не кидаются за очередным хайпом на редакторы на джаве\в браузере, потому что по функциональности они ничем не отличаются.
Последнее время емакс с этими вашими lsp начал тормозить как какой-нибудь вонючий эклипс. Эх.
забавно что сраное говно на electron за пару лет достигло функционала и популярности больше, чем все швабодные редакторы вместе взятые.
Оно и близко не умеет того, что умеет емакс. Популярность говна вполне закономера. Например даунское говно https://www.youtube.com/watch?v=cwQgjq0mCdE посмотрели пиздец сколько раз, а например божественный plaid https://www.youtube.com/watch?v=bfjpo4WbK00 хуй целых ноль десятых раз.
>Оно и близко не умеет того, что умеет емакс
и vs code и emacs - оба программируемые текстовые редакторы. только если для первого сразу сделали человеческий интерфейс и полезные для программистов, удобные плагины повышающие продуктивность, то emacs так и остался консолькой с тетрисом.
Вот такой парадокс.
Если бы оно еще не тормозило на топовом железе, и умело хотя бы в org-mode, можно было бы подумать.
Зарепортил мамкиного хацкира!!11
Cерьезно.
Объясните дауну, почему я для создания своей говноОС должен выбрать Ржавчину, а не старенького Си?
Кто выдаст нормальный список советов, если я напишу Vac:: ?
Под винду.
Emacs!
intellij idea с плагином. в остальных автокомплит работает через раз.
Это что-то уровня использования linux, emacs. Чем хуевее - тем лучше. Зато потом, когда попердолился с конфигами, есть (бесполезное) чувство какого-то достижения. С растом похожая история.
Никогда. Автор го болеет синдромом Дауна. Пощади его.
Нихуя не понятно, что ты написал.
Они живы?
Манямирки и петушню обсуждай в /b, тут раздел о программировании.
По-моему это такой common wisdom - ставить фронтендом везде нгинкс (как минимум для раздачи статики), хотя имхо это уже скорее ритуал, чем реальная необходимость
Да, не нужен. Для разработки очень удобно.
Кстати, лучше выбери что-то другое. Актикс оказался не самым удобным вариантом.
А что ты можешь посоветовать вместо него? Рокет брать не хочу из-за того, что они запихали туда еще серверсайд рендеринг, насколько я понял, а я собираюсь писать REST API на Расте.
Нет там ничего такого. Рокет в каком-то смысле тоже не подарок. Привязыватся к nightly для продашн кода — плохая идея. Тем более что он постоянно ломается из-за этого.
Посмотри вот эту штуку: https://github.com/tomaka/rouille
> Посмотри вот эту штуку: https://github.com/tomaka/rouille
>364 звёзды
>388 коммитов
Вот это напрягает. Не загнётся ли он?
Ну загнется и загнется. Он настолько простой, что там особо нечего допиливать.
Можно. Более того в синтетических тестах раст быстрее всех. Только какой от этого толк?
Сделаю супербыстрый серв
Иные инструменты есть valgrind, google sanitizers, статические анализаторы кода. В конце концов отладчики с нормальной поддержкой. Clang-tidy. С интсрументами в С++ как раз ситуация на порядок лучше, что впрочем не удивительно.
Есть движения в сторону интеграции в какой-то мере подхода с лайфтаймами, по крайней мере об этом вскукарекивают седые мужи, которые заседают в комитете.
https://pastebin.com/B0F3dKsR
Да, там так и сделано. Сначала делал без pub, но потом пробовал еще и с pub в main.rs. Вообще хуй знает куда думать.
Хз, выложи код куда-нибудь.
Стало бы киллинг фичей языка, базарю.
Говно. Просто говно. С++ с кочергой в жопе.
Возиться стоит
скоро в .net добавят сборку в wasm и C# станет оффициальным языком веба, вместо javascript. советую начинать учить C# прямо сейчас, пока еще не поздно.
не понимаю, почему майкрософт не сделала этого с самого начала. они там со своим blazor'ом уже третий год маятся.
Попробовал на досуге Rust. В целом впечатления положительные, язык с большим потенциалом, хоть пока и есть небольшие недоделки (если говорить про стабильную версию)
1. Для молодого языка - развитая и хорошая инфраструктура. Для языка подходящего для системного программирования - вообще лучшая.
2. Шустрый компилятор с разумными сообщениями об ошибках.
3. Хороший инсталлятор, разумный пакетный менеджер и работа с проектами.
4. Хотя и есть в нём странные вещи, типа индекса cargo на github'е. (Что? Зачем? Почему так делать?)
5. Сам язык приятный, как по возможностям, так и по общей эстетике, хотя к читаемости и логичности некоторых элементов синтаксиса есть вопросы. (Почему типы у параметров через двоеточие, а возвращаемое значение через ->)
6. Очень интересна сделана система ссылок и borrowing'а. Достаточно интуитивна и логична, чтобы с ней в большинстве случаев не особо бороться. Конечно, иногда она чересчур параноидальна, но это лучше, чем если бы она была не достаточно безопасна.
7. Собственно, данная система позволяет обходиться без GC и при этом в большинстве случаев делать это без ошибок.
8. При желании, конечно же, есть unsafe, где можно радостно стрелять себе в ноги, в лучших традициях C/С++
9. Хорошо сделаны системы местных trait'ов и дженериков. В чём-то напоминают typeclass'ы и concept'ы, хоть и более ограничены,чем первые.
10. HKT, увы, нету, но есть надежды, что реализуют.
11. Нормальный набор стандартных коллекций. Есть весь базовый набор, есть удобные стандартные методы, типа map, filter и т.д. Но вот генераторов в стабильной ветке компилятора пока тоже нету.
12. Из типов есть привычные структуры и АТД, что тоже хорошо.
13. По ADT есть паттерн-матчинг, но вот, увы, кастомных матчеров нет вообще.
14. В стандартной библиотеке, внезапно, оказалось, что нет вообще типа для времени, что весьма удивило.
15. Прилично сделаны треды, есть библиотеки с футурами и грин-тредами. Borrow checker умеет проверять и данные передаваемые между тредами, есть каналы.
16. Есть стандарнтый набор их веб-фреймворков и серверов.
17. Бинарники более-менее шустрые и небольшие получаются.
18. Удивило, правда, отсутствие в стабильной версии компилятора SIMD инструкций, что для низкоуровневого языка странновато.
19. Из очень хорошего - есть достаточно грамотно сделанные, пусть и не супер мощные (до лиспов или немерля, конечно, не дотягивают) макросы.
20. Много интересного с их помощью сделано как в стандартной билиотеке, так и за её пределами.
21. Понравились местные ORM'ы. Разумные языки запросов и описания схем.
22. Обработка ошибок делается обычно не через исключения (хотя panic тут тоже есть), а через Result (аналог Either по сути) и Option. Что правильно.
23. Если нужно, то есть возможность задать кастомный аллокатор, что важно. Хотя эта возможность вроде бы тоже пока не экспериментальном уровне, если мне не изменяет память.
Вообще rust - это реальный кандидат на новый язык для системного программирования. И в отличие от того же го, подходит не только для относительно мелких утилит, но и для программ любых размеров и требований. Достигает этого тем, что имеет как и важные для производительности возможности (borrow checker, отсутствие GC, unsafe код, no-std вариант), так и важные для написания сложных программ и библиотек фичи (дженерики, trait'ы, макросы, разумный набор стандартных коллекций и т.д.)
Предлагаю всем влиться в конфу треада @hcdevs
Попробовал на досуге Rust. В целом впечатления положительные, язык с большим потенциалом, хоть пока и есть небольшие недоделки (если говорить про стабильную версию)
1. Для молодого языка - развитая и хорошая инфраструктура. Для языка подходящего для системного программирования - вообще лучшая.
2. Шустрый компилятор с разумными сообщениями об ошибках.
3. Хороший инсталлятор, разумный пакетный менеджер и работа с проектами.
4. Хотя и есть в нём странные вещи, типа индекса cargo на github'е. (Что? Зачем? Почему так делать?)
5. Сам язык приятный, как по возможностям, так и по общей эстетике, хотя к читаемости и логичности некоторых элементов синтаксиса есть вопросы. (Почему типы у параметров через двоеточие, а возвращаемое значение через ->)
6. Очень интересна сделана система ссылок и borrowing'а. Достаточно интуитивна и логична, чтобы с ней в большинстве случаев не особо бороться. Конечно, иногда она чересчур параноидальна, но это лучше, чем если бы она была не достаточно безопасна.
7. Собственно, данная система позволяет обходиться без GC и при этом в большинстве случаев делать это без ошибок.
8. При желании, конечно же, есть unsafe, где можно радостно стрелять себе в ноги, в лучших традициях C/С++
9. Хорошо сделаны системы местных trait'ов и дженериков. В чём-то напоминают typeclass'ы и concept'ы, хоть и более ограничены,чем первые.
10. HKT, увы, нету, но есть надежды, что реализуют.
11. Нормальный набор стандартных коллекций. Есть весь базовый набор, есть удобные стандартные методы, типа map, filter и т.д. Но вот генераторов в стабильной ветке компилятора пока тоже нету.
12. Из типов есть привычные структуры и АТД, что тоже хорошо.
13. По ADT есть паттерн-матчинг, но вот, увы, кастомных матчеров нет вообще.
14. В стандартной библиотеке, внезапно, оказалось, что нет вообще типа для времени, что весьма удивило.
15. Прилично сделаны треды, есть библиотеки с футурами и грин-тредами. Borrow checker умеет проверять и данные передаваемые между тредами, есть каналы.
16. Есть стандарнтый набор их веб-фреймворков и серверов.
17. Бинарники более-менее шустрые и небольшие получаются.
18. Удивило, правда, отсутствие в стабильной версии компилятора SIMD инструкций, что для низкоуровневого языка странновато.
19. Из очень хорошего - есть достаточно грамотно сделанные, пусть и не супер мощные (до лиспов или немерля, конечно, не дотягивают) макросы.
20. Много интересного с их помощью сделано как в стандартной билиотеке, так и за её пределами.
21. Понравились местные ORM'ы. Разумные языки запросов и описания схем.
22. Обработка ошибок делается обычно не через исключения (хотя panic тут тоже есть), а через Result (аналог Either по сути) и Option. Что правильно.
23. Если нужно, то есть возможность задать кастомный аллокатор, что важно. Хотя эта возможность вроде бы тоже пока не экспериментальном уровне, если мне не изменяет память.
Вообще rust - это реальный кандидат на новый язык для системного программирования. И в отличие от того же го, подходит не только для относительно мелких утилит, но и для программ любых размеров и требований. Достигает этого тем, что имеет как и важные для производительности возможности (borrow checker, отсутствие GC, unsafe код, no-std вариант), так и важные для написания сложных программ и библиотек фичи (дженерики, trait'ы, макросы, разумный набор стандартных коллекций и т.д.)
Предлагаю всем влиться в конфу треада @hcdevs
>Осилю, если для плюсов слишком тупой?
Скорее нет, чем да. Но точно осилишь, если для плюсов слишком ленивый (не любишь задрачивать ненужное говно, которое можно перепоручить машине).
Запили сам.
>Вообще rust - это реальный кандидат на новый язык для системного программирования.
Системный язык по определению должен быть небезопасным и нейтральным.
У раста нет смысла существования. Он пытается усидеть на двух стульях.
На с++ ты можешь писать безопасно, можешь использовать сырые указатели. Язык никак не ограничивает свободу программиста. Раст же пытается быть безопасным в одной определенной узкой области за счёт ограничения свободы программиста.
Реальная свобода это goto. Если ты используешь что-то кроме goto — ты жалкий раб, а не Свободный Программист.
>Эх, вот бы в Раст запилили нормальную компиляцию в wasm и удобную экосистему вокруг этого.
>Стало бы киллинг фичей языка, базарю.
Уже есть в Го
Можешь использовать goto, можешь не использовать. На то это и системный язык, программист имеет полный контроль.
Слабак. Нормальные мужики пишут на ассемблере.
К плюсам надо move семантику приколачивать и что-то со стойкой делать, тогда можно более менее жить. Ещё бы нахрен выпилить хидеры.
*Строкой.
Кстати да, как вы там потомки в 2018 с хэдерами, без модулей и прочей дристней из 70ых?
фу
Как будто что-то плохое.
https://github.com/rust-lang/rust/blob/stable/RELEASES.md
Что за определение такое?
Есть биндинги к gtk и qt. Есть кривые и/или недоделаные реализации с нуля. В целом нормального гуя под раст особо и нет. Если тебе всё равно, что брать, то бери relm. Он выглядит удобным. Или пили под электрон. С wasm это даже относительно поворотливым будет. Если тебе под мобилки, то ВНЕЗАПНО бери flutter ибо это лучшее, что случалось с гуем на мобилках.
Биндинги не хочу, электрон тоже. Потому что билд потом много весит. Мне нужен простенький гуй, чтобы данные с апишки забрать и отрисовать. В идеале картинку и видео показать.
Алсо можешь ещё https://github.com/rust-unofficial/awesome-rust#gui чекнуть.
>>84540
Ну охуеть теперь.
Вообще было бы неплохо запилить песочницу поверх webrender с wasm и шлюхами. Это с одной стороны будет нормально работать, а с другой стороны не сильно то и кушать. Можно https://github.com/DenisKolodin/yew прикрутить туда и заебись ящитаю.
Я говорю как есть из того, что знаю. С одной стороны я к гуям не сильно прикасаюсь, а с другой я это чекал Вообще я сейчас oni пишу. Это (в теории) быстрый протокол джля MMOG..
Серьёзно. Во всех немейнстримных ЯП бида с полностью работоспособным GUI в остальных тоже хуйня, а не либы ящитаю. Ибо действительно нормальный гуй - это сложно. Просто ровно до тех пор, пока тебе не надо сложный текст рисовать. А дальше дофига ёбаного пиздеца со всяким азиатским текстом начинается. И производительность начинает давать о себе знать.
по жирности с Дэлфи сравним только твой пост
Не обижай дельфи. Он даёт намного меньшие бинарники и требует установки намного меньше барахла для своей компеляции.
Если ты на колене в соло пытаешься наговнокодить, то ты безусловно прав. А если ты работаешь над нормальным проектом то надо писать максимально единообразно с минимальной вероятностью ошибок.
> Язык никак не ограничивает свободу программиста.
Да, потом в компиляторы приходится пихать код, компиляторах который пытается сворачивать развернутые вручную циклы и тому подобное дерьмо, чтобы говнокод этих свободных программистов хоть как-то ворочался.
Как по мне, все такие сайты в качестве изучения языка бесполезны.
>>1289838 (OP)
>>1289838 (OP)
>>1289838 (OP)
>>1289838 (OP)
>>1289838 (OP)
>>1289838 (OP)
Сто раз уже обсуждали. Д не нужен.
rg (grep)
fd (find)
bat (cat+less+code highlighter)
exa (ls)
dutree/diskus/sn (du)
tokei (cloc)
Ну и конечно remacs
Это только то что я вспомнил навскидку.
А ну, напомните-ка мне, почему раст не ВЗЛЕТЕЛ?
>Жирный, раст очень даже взлетел.
Что-то я его нигде не вижу. Юзается онли в мозилле, в других вакансиях чтобы прям был раст и все - нет. Минимум еще кресты надо знать.
Ну до снг все с запазданием доходит, что поделаешь. Ну и мерить успех языка количеством вакансий это очень однобокий подход.
С таким же успехом можно считать что с++ не нужен, потому что большая часть вакансий это месить говно за 30к/месяц.
> Ну и мерить успех языка количеством вакансий это очень однобокий подход.
А вот тут ты шконка не прав. Спрос рождает предложение. Так что я не вижу чтобы раст прям таки взлетел.
10 причин почему мне стоит бросить оплачиваемую работу чтобы пересесть на нео-язык и соснуть? Даже котлин или свифт, которые еще моложе твоего говно-раста выглядят на порядок лучше, даже при запросах на SO.
Вот вам пример конторы которая нанима(ла/ет) на раст: https://github.com/exonum/exonum/tree/master/exonum
Ржавым больше делать нечего, чем переписывать велосипеды?
Или раст кроме как на скрипты не на что не годиться?
Что за контора маняконтора, которая сорцы свои держит на гитлабах и гитхабах и не может свой сервер поднять внутри?
Оно работает намного быстрее и имеет более человеческий интерфейс.
>>90749
https://about.gitlab.com/pricing/#self-managed
Лишь бы что-то прокукарекать, да?
Наверное около месяца. Сейчас бороу-чекер вообще не мешает, а наоборот.
>Оно работает намного быстрее и имеет более человеческий интерфейс.
Какой человеческий интерфейс у микро-утилит линукса может быть?
Вообще это был стёб, мне интересно когда раст-мены осилят чуть более сложные код чем скрипты и перестанут заниматься онанизмом линуксовских утилит? или осознают, что на этом чуде трудно писать масштабный код
Хотя не важно, у нас есть D и GCC
Тебе мало того что делает мазила?
Интерфейс может быть охуенным, ты просто попробуй.
find -name pizda
vs
fd pizda
>Тебе мало того что делает мазила?
Ты про серво? Они его сделали хоть?? Этот серво уже становится мемом.
>Интерфейс может быть охуенным, ты просто попробуй
Я уже завтра забуду, что за rg, fd и прочее gg. Самое глупое что можно придумать при существующем автокомлите терминала - это сокращать говорящие названия. Более того, теперь из-за стремления малобуквенности эта херня будет "глушить" автокомплит, если префикс совпадет с какой-то утилитой (в том числе и пользовательской).
Другое, они могли бы просто сделать подобие
rgrep
rfind
rls
чтобы не забивать народу голову бестолковыми базвордами, особенно rg и fd - ппц.
Третье, ну нахер это не надо, все на зубок знают линуксовые простые утилиты, которых за глаза хватает. А когда надо что-то сложнее, то быстро на-питонячат скрипт.
У вас совсем какой-то другой мир. Какой нафиг удобный интерфейс, когда вы делаете неведомую херню.
Такое ощущение, что у вас там где-то есть пророк, который постоянно заливает говно в уши и у вас происходит какая-то подмена восприятия мира.
Добавь D к графику.
Мань, с тобой скучно разговаривать, потому что ты не читал, но осуждаешь.
Гитлаб можно хостить у себя, блядь. Говорю же, переставай раздувать щеки и срать в штаны.
У нас кстати ultimate версия вроде. Эту хуйню на раби лучше не трогать ни при каких обстоятельствах.
>CI же. Не тупи блядь.
А кто будет отвечать, когда утекут сорцы проекта, а вместе с ними потом и база клиентов?
"За то мы могли писать друг дружке ишью и ставить смешные аватарки для аккаунта"
Что утечет, куда утечет, наркоман?
Судя по тому как клепают к нему либы, го это новый топовый язык
https://github.com/search?l=Go&q=stars:>1000&type=Repositories
Раст же останется топовым гуманитарным языком программирования.
https://github.com/search?l=rust&q=stars:>1000&type=Repositories
У D конечно печальные позиции, да отсутствие маркетинга сказывается, но буст в виде gcc думаю все же скажется.
Конечно, абсолютный победитель это вот этот парень
https://github.com/search?l=JavaScript&q=stars:>1000&type=Repositories
Такими темпами, скоро буду насмехаться, если твой очередной язык не будет компилироваться в javascript.
То твоей логике количество говна в npm — показатель успешности.
Я счита что раст это лучшая инвестиция сегодня, если ты хочешь делать интересные вещи на хорошем языке, а не месить говно на го или жс.
Но я не буду больше холиварить, или скорее помогать бамбать тред, спрошу лишь одно, как системщики смотрят на kotlin-native - это же звездец да или тема?
>если ты хочешь делать интересные вещи на хорошем языке
откуда вы этих абстрактных слоганов набираетесь?
Меньше что бы мне хотелось это контролировать руками память и обертывать <все <в <угловые <скобки>>>>.
>говна в npm — показатель успешности.
там по 1К звезд, но в целом да, я бы завидовал такому количеству npm с 1000 звезд. Это показатель, даже если внизу спика будет куча говна говно можно и на расте написать, вон всякие юникс утилиты понаделали
> и обертывать <все <в <угловые <скобки>>>>.
только внезано сейчас в тренде писать на TS со строгой типизацией и дженериками, ибо ошибки вроде undefined is not a function без контроля типов будут преследовать тебя везде
>только внезано сейчас в тренде писать на TS со строгой типизацией и дженериками, ибо ошибки вроде undefined is not a function без контроля типов будут преследовать тебя везде
1) Заливаторская-буллшитница, весь дрочь на статику это автокомплит слов и все, он же решался обычным jsdoc в том числе и подстветом ошибок писал еще на phpDoc 10 лет назад так, очень нравилось что редактор подсвечивал и типы и ошибки и не было говна в виде дженериков
2) Другой буллшит в том, что большая часть js кода, в большом проекте это передача объекта, именно объекта вида foo({hui: "пчела", pizda: "колбаса"}) а не класса, поэтому нахера там с типами возиться, я хз.
Опять же jsdoc все решает это.
3) Кому-то правда статика по душе и он будет дрочить в ts, кто-то накатит flow, но в реале разница между ts и современным js уже небольшая, ts скорее останется просто мелким ответвлением для гурманов
4) С другой стороны - ts это прокси js, поэтому противопоставлять их глупо, любые победы js или ts - это победы в обе копилки.
> весь дрочь на статику это автокомплит слов и все
WAT? Я тебе про согласованте типов, ты мне про автокомплит. Каким хером jsdoc будет гарантировать типобезопасность? Он не для этого.
> это передача объекта, именно объекта, а не класса
Ты видимо не в курсе про то что interface и class в TS это разные сущности? И не обязательно создавать класс для описания типа объекта.
>WAT? Я тебе про согласованте типов, ты мне про автокомплит. Каким хером jsdoc будет гарантировать типобезопасность? Он не для этого.
Подсвечивает ошибки тоже, написал же, тупенький.
>Ты видимо не в курсе про то что interface и class в TS это разные сущности?
Ты о чем вообще? Я тебе про то, что там в крупных проектах таскают эти "хэш мапы"объекты и описывают их в jsdoc. Какие нафиг интерфейсы в динамическом языке? Полиморфизма захотелось?
> подсвечивает
Понимаешь разницу между подсвечивает ошибки (иногда если повезет) и проект не собирается если ты, тупенький, проебал обязательное поле у объекта?
В ts на практике интерфейсы описывают данные, те самые хешики. Иди учи матчасть:
https://www.typescriptlang.org/docs/handbook/interfaces.html
>(иногда если повезет)
Сам придумал?
>Понимаешь разницу
понимаешь разницу, что тесты все равно писать,
понимаешь разницу, что doc все равно писать,
понимаешь разницу, когда не нужно дрочить компиляцию,
понимаешь разницу, когда тебе IDE все ровно так же подсвечивает
понимаешь разницу, когда код у тебя становится чище и нет говно-типов и говно-джериков на пол страницы, что аж сигнатуру функции приходиться построчно писать.
<не<понимаешь<ты<совсем>>>>.unwrap()
> IDE все ровно так же подсвечивает
Рукалицо. Толку от твоих сраных тестов, от твоего жсдока, от твоей доки? Ты же в IDE смотришь, у тебя CI нет.
А что если чел из твоей команды пишет в виме? А что если IDE от джетбрейнсов проебала кеш и не подсветила ошибку? Так и закоммитишь?
ты по-моему кроме синтаксиса доебаться ни к чему не можешь, на синтаксисе минусы статиктайпинга закончились?
>пишет в виме?
Он уже выбрал путь страдания, чем я ему еще помогу?
>А что если чел из твоей команды
А что если чел из моей команды человек-паук?
Одаренных я в команду не беру, слишком он будет умнее всех нас, ему будет с нами скучно.
>Рукалицо. Толку от твоих сраных тестов
Действительно - рукалицо братюнь. Тесты ничто - компилятор все!
>и не подсветила ошибку?
Да никто не рассчитывает на подсветку ошибки вылезай уже из каменного века своего vim'а, это просто удобная фича по принципу - пишу и тут же вижу.
Для ошибок есть тесты - юнит и регрессивка.
Твои ошибки типов это 1-2% всех реальных ошибок в приложение (при покрытие doc)
>IDE от джетбрейнсов
В док-подстветку умели IDE еще 10 лет назад, даже такое чудо как netbeans, бросай уже свой vim.
>ты по-моему кроме синтаксиса доебаться ни к чему не можешь
Если ты про ts, то у него кроме синтаксиса ничего и нет.
А так статическая типизация это не панацея, как показывает опыт - современная IDE и nameDoc делают ровно тоже самое, при этом не засоряя код, при этом и подсвечивая типы и прочее.
Мне кстати вот, автовыведение типов бесит в статик языках, открываешь какой-нибудь гитхлам и хер пойми что там функция вернула. Так что все это говнище бро, какое-то постоянное колебание между прекрасным и говном.
В итоге получаешь "ту же" статическую типизацию, только хуёвую и игрушечную.
>автовыведение типов бесит в статик языках, открываешь какой-нибудь гитхлам и хер пойми что там функция вернула
Какое нахуй автовыведение? Ты ебанулся?
Вот же, положила.
> Он уже выбрал путь страдания, чем я ему еще помогу?
> Одаренных я в команду не беру, слишком он будет умнее всех нас, ему будет с нами скучно.
>Да никто не рассчитывает на подсветку ошибки вылезай уже из каменного века своего vim'а, это просто удобная фича по принципу - пишу и тут же вижу.
> Твои ошибки типов это 1-2% всех реальных ошибок в приложение (при покрытие doc)
Боже, ну почему динамикопетухи такие ебанутые?!
>Действительно - рукалицо братюнь. Тесты ничто - компилятор все!
Речь шла за CI + хуки. Не передёргивай, я лишь указал что без грамотной инфраструктуры и регулярного запуска на каждое изменение толку от тестов нет. А петушки которые только в IDE их запускают и им в линукс команды сложно вызывают смех.
> Для ошибок есть тесты - юнит и регрессивка.
Давай раскажи мне про юниты на фронтэнде, много ошибок отловил? А как насчет кнопочки с pointer-events: none отловит твой юнит? Хуйца ты потестишь без selenium, а если еще учесть что у браузеров есть свои особенности...
>Боже, ну почему динамикопетухи такие ебанутые?!
Пишу на работе на статике более 9 лет, дома динамичу по праздникам (почти не кодю).
Когда большие дяди с опытом выбирают динамику против статики, значит в этом что-то есть но ты еще этого не понял
>Речь шла за
не маневрируй, как сказано, так и понято.
Если сравнить что лучше - покрытие тестами или компилятор, даже с самым лучшим анализом - чаща весом упадет на тесты. И ты это прекрасно знаешь.
И вот ответь нахрена тогда эта срань с компиляцией, с высраной портянкой в командной строке, когда тебе IDE прям тут же подчеркивает ошибку?
Нахера это древнее страдание с высером после компиляции?? Потому что ты особенный, да?
https://habr.com/company/livetyping/blog/324506/
Оказывается, что TS это не воплощенный в былом js, тк микрософт постарался. И js ни на что не пригодный, кроме хелловордов, куча транспайлеров и фреймворков тому подтверждение.
>IDE прям тут же подчеркивает ошибку?
Он даже автокомплит не в состоянии осилить.
>традание с высером после компиляции?
С учётом того что фронт собирается вебпаками с бабелями,
то и потребность в динамопараше постольку-поскольку.
Разработчики делятся на два типа: на тех, которые понимают необходимость статической типизации, и других, кому не исполнилось 20.
Я понимаю, что ты пишешь пхп и прочий изи-веб, но что ты в расте забыл?
> >>91166
> Если сравнить что лучше - покрытие тестами или компилятор
И то и то юзать религия не позволяет? Ты покрываешь тестами все все все вариации? До тебя глупенького не дойдет что тайпчек и тестирование выявляют разные по природе ошибки.
>но что ты в расте забыл?
Потыкать палочкой в бывших питонистов/рубистов, которые пересели на раст и возомнили себя тру-программистами но мозгов хватило только на перепись скриптовых утилитк для консоли
>Оказывается, что TS это не воплощенный в былом js, тк микрософт постарался.
Чего??? У тебя обострение?
>С учётом того что фронт собирается вебпаками с бабелями,
>то и потребность в динамопараше постольку-поскольку.
Чего??? Тут требуется "Капитан-Логика".
Но ты прав и так это жопа медленна и жрет памяти, а ты еще хочешь прокси язык с компиляцией добавить на самом деле, если мозги есть, можно для dev делать без сборки, если юзаешь чистые CSS
Проблема прокси языков в том, что ты думаешь что избавился от старого языка, но в действительности ты просто прибавил еще сверху проблем.
Вот мне тоже так кажется. Потому что, то упорстве, с которым они отстаивают свою, очевидно, глупую позицию, поражает.
>Эффект Даннинга - Крюгера, бро.
Забавно, но чел реально говорит частично правильные вещи.
Программирование - это процесс разработки какого-то продукта (даже для себя). Если в конечном итоге результат продукта такой же, то какая разница как ты его там строил, главное насколько меньше ты потратил усилий и времени.
Нынешние программисты же (в том числе и вы) пишут код ради кода, а не продукта. Поэтому восприятие (Эффект Даннинга - Крюгера) как раз таки у вас.
Вы выглядите как мужики, которые меряются дорогой фирменной дрелью и прочим инвентарем, но при это я не слышу действительно вещи связанные с ремонтом или строительством.
мимо тимлид
Но типы как раз помогают тратить меньше усилий и времени. Это настолько очевидный факт, что любой, кто утверждает обратное выглядит упоротым калекой, которому вырезали половину мозга.
Думаю что те кто думают что типы это хуйня которая мешает "делать дело", на самом деле просто не осилили инструмент, и поэтому считают что он мешает, а не помогает. Точно так же как люди по началу считаю что борроу-чекер не нужен и мешает.
> насколько меньше ты потратил усилий и времени
Если написал сдал и забыл - ок. Пиши говнокод, не парься.
А если тебе это поддерживать, не год, не два?
> мимо тимлид
Тимлид про команду и людей, про разработку больше техлиды.
Можешь начать с того, чтобы выложить код.
>Тимлид про команду и людей, про разработку больше техлиды.
Я бы сказал я менеджер. Тимлид это какая-то придуманная адаптация для программистов, чтобы не почуяли подвоха. Я давно уже код не пишу.
>>91298
>Но типы как раз помогают тратить меньше усилий и времени. Это настолько очевидный факт, что любой, кто утверждает обратное выглядит упоротым калекой, которому вырезали половину мозга.
Типы есть и в динамическом языке, проблема в том, что человек звучит убедительнее, а ваши ответы больше похожи на выкрики:
>Это настолько очевидный факт, что любой, кто утверждает обратное выглядит упоротым калекой
Смотри, ты не говоришь "почему", ты убежден в своих знаниях как в абсолютной истине, но это и есть показатель эффекта Даннинга - Крюгера
...Это приводит к возникновению у них завышенных представлений о собственных способностях... или знаний.
Так что без обид, статика конечно рулит, но эффект не у него.
Ну вот тебе хотя бы это:
https://pleiad.cl/papers/2014/hanenbergAl-emse2014.pdf
Алсо что ты скажешь на счет того, что ребята которые занимаются CS топят за типы, в отличии от веб-макак?
>Алсо что ты скажешь на счет того, что ребята которые занимаются CS топят за типы
А за что им еще топить, если динамика просто работает и диссертаций поверх этой хуйни не навернешь, в отличие от какой-нибудь бессмысленной хуйни с применением теории категорий?
Вся беда систем типов в том, что примитивные спасают только он примитивного класса ошибок уровня опечаток в имени переменных, а сложные очень времезатратны и с сомнительным профитом.
>ребята которые занимаются CS
Эти ребята не пишут ПО и занимаются они не программированием а CS. CS, к слову, по-русски - информатика.
Эти ребята выясняют как делать это лучше. Если ты посмотришь по сторонам, то выяснишь, что то что они придумали 30 лет назад, меееедлено приходит к тем, "кто пишет ПО".
является ли раст си-подобным языком? вроде и curly braces есть, вроде и не похоже
язык, который запилили под влиянием с/с++.
похожий синтаксис управляющих структур, типов, переменных, функций, классов и тп. Более-менее общие идеи ООП.
Примеры: java, scala, php, swift, javascript, c#
А как же небо и Аллах?
Судя по этому списку: https://en.wikipedia.org/wiki/List_of_C-family_programming_languages ответ на твой вопрос — нет.
Но как по мне, это последнее что интересно при сравнении языков.
>А как же небо и Аллах?
говно уровня BASIC
>это последнее что интересно при сравнении языков.
А мне вот это кажется довольно интересным, хуй знает почему. Только от си-подобных получаю удовлетворение при написании кода, так уж устроен я.
>Эти ребята выясняют как делать это лучше.
У науки нет задачи выяснить как лучше. У нее есть задача просто выяснить. В CS рождается куча говна, из которой до мейнстрима доходит мало что.
>на самом деле, если мозги есть, можно
На самом деле, можно и в блокноте разрабатывать, и разметку на таблицах делать, что мы хуже дидов?
>ты просто прибавил еще сверху проблем
Мало того что мне jsdoc ручками прописывать пришлось, так ещё vscode ошибок в упор не видит.
Что насчет преимуществ производительности, которые достигаются компиляцией и мощной системой типов? На том же расте возможны оптимизации, которые никак в компиляторах С++ не реализуешь.
Не только скрипты писать ведь
В теории да, на практике пока что хз.
>Но как по мне, это последнее что интересно при сравнении языков.
Серёж, а что по твоему си-подобный язык?
Без понятия. Какая-то субъективная хуита, вероятно про использования фигурных скобок для блоков.
Потому что в Раст треде это common knowledge, а перед одним шизиком ему очевидно распинаться не хотелось.
Не непосредственно связано с растом, но всё же.
https://twitter.com/eroc/status/1061049330574884864
Капец они медленные, оказывается.
Кто тебе сказал что раст быстрее си?
Своей ржавчиной они вдохнули в него новую волну развития. А хоронят его ебучие манагеры, которые пытаются его монетизировать тупыми методами.
Проблема,я думаю не в самом расте, создание хорошего инструмента - это благородная цель. Другое дело, это просрать в кадрах и нанять людей, которые за твои деньги вместо продукта тупо поиграются в инженеров. Сделав самую безопасную утечку памяти поверх LLVM (и сфига он вообще будет быстрее си?)
>Своей ржавчиной они вдохнули в него новую волну развития
Хуйня, нужно было переписывать на Си, тогда бы были вне конкуренции.
>но все разы обосрались
Щито поделать
>А на расте получилось
Что в этом хорошего?
>перетекают
Не перекатают, поскольку два раза никто окунаться не будет
как сложен раст для понимания по сравнению с другими языками? Например си, питон, жс (это то, с чем у меня есть опыт). При условии что я гений и не долбоёб.
Что-то среднее между сишечкой и хаскелем. Если умеешь в типы, то в целом не сложно.
П#зже была старя опера в которой было 100500 встроенных механизмов, а не пустые окошки с плагинами, где чтобы даже прописать масштаб страницы приходиться качать какой-то сомнительный плагин. И при этом верить, что авторы этих плагинов не захотят чего намудрить.
Но мы люди культурные, поэтому спрошу, что там у тебя пизже в новой лисе стало?
Мое мнение, лисе сейчас надо не кишки там растом обмазывать - а делать реально видимые и нужные вещи (например как опера делала vpn или другие явные преимущества).
Не удивлюсь, если в скором времени их купит мс или гугл, а раст улетит в чистый опенсорс и займет достойное место рядом с D, который ржавые называли "ненужным".
>Дум 1 и 2 были на раст переписаны, легко гуглится на гитхабе
Очередной хоум-пет-прожект от скуки, чтобы набрать классы на редите/гитхабе
Есть ли геймдев на расте?
@
Дум 1 и 2 были на раст переписаны
Чот орнул слегка. Жду теперь херетик и кваку
>Напомню что опера была кривым говном
Да срать, мне на ней что ли код писать, для меня она не была пустым окошком. Пускай даже рендер тормозит в два раза, мне как потребителю будет пофиг, мне фичи нужны.
Всякие инди-студии начали использовать. Что там ААА делают хуй их знает. Я лично собираюсь вкладываться сейчас, чтобы через 3-5 лет, когда все поймут что это стало популярно, быть уже с охуенным опытом.
>Хуйня, нужно было переписывать на Си
>Они несколько раз пытались, но все разы обосрались
И нет бы запилить новый удобный си, но они сделали симбиоз С++ и хаскеля.
"Новый удобный си" от создателей оригинала называется го. Как видишь, у них тоже не вышло.
>Я лично собираюсь вкладываться сейчас, чтобы через 3-5 лет, когда все поймут что это стало популярно, быть уже с охуенным опытом.
Где-то я уже это слышал, у тебя случайно вклада кэшбери нет?
А если серьезно, у языка такой порог вхождение и он так вставляет новому разработчику палки в колеса, что через 3-5 лет в нем буду только самые упоротые, которые повелись на маркетинг (то есть не специалисты С++ уж точно).
Зато ты представляешь как устроен мир, что начинка не нужна, нужен продукт. И я кстати разницы не заметил.
Интересно, памяти стал жрать больше? LLVM нас порадует тут?
Стал жрать меньше хрома.
>"Новый удобный си" от создателей оригинала называется го. Как видишь, у них тоже не вышло.
Новый си, это как минимум неуправляемый язык, низкого уровня
>от создателей оригинала называется го
Какое отношение Пайк имеет к Си? Го пидерский только за :=
Такое же как и Томпсон, опосредованное. Но все-же, имеет.
>У тебя уже есть си. Зачем тебе еще один такой же?
Чтобы даже у разработчиков фаерфокса получалось писать на нем браузеры, раз раньше на си не получилось.
У меня кстати большие сомнения что на расте будет легко поддерживать крупный проект крупнее doom 2!.
Быть может я ошибаюсь, но реально ждут расцвет чего крупного, чтобы подтвердить или опровергнуть мысль переписка утилит линукса или дума, меня реально удручают
400к строк на расте в фаерфоксе это большой проект или нет?
Вообще твой поверхностный подход не приводит к интересной дискусии.
Проблема в том, что у тебя нет мысли. По крайней мере мы её еще не слышали.
>https://hacks.mozilla.org/2017/10/the-whole-web-at-maximum-fps-how-webrender-gets-rid-of-jank/
Бегло пробежался, завтра осилю наверно, но выглядит как натягивания маркетинга на пользователя. Ну типа мы исследовали и на-иследовали вот такую штуку GPU рендер походу, да?.
Я рад за раст, хоть и не нашел упоминание 400к, но у меня пока нет ответа, что программист на раст будет продуктивнее чем С++ в большом проекте, может они пилят потому что деваться некуда или по фану, может на С++ это было бы практичнее как минимум за счет того что не надо с нуля писать многое
В общем, если будет не лень и будут реально большие продуктивные проекты не от команды самого раста, засуньте упоминания в шапку хочется уже историй успеха
android же
Кстати, а что теперь с оригинальным растовским компилятором на ocaml, совсем забросили?
Открой https://github.com/rust-lang/rust/graphs/contributors и посмотри поименно кто где работал или работает. Топы это Mozilla.
За llvm надо сказать спасибо Apple, это они в свое время решили запилить комплиятор C++ без GNUсной лицензии и взяли llvm за основу. До этого llvm был академической разработкой.
>llvm
Со стороны кажется, это для тех кто не может осилить свой компилятор/рантайм. Или я ошибаюсь?
Ну в рамках утопической мечты да, а вот в рамках бизнеса, ты себе добавляешь крайне критичную бизнес зависимость. Причем твой продукт, скорее всего уже обошел, по цене этот LLVM
Какую зависимость, у него MIT/BSD-подобная лицензия, ты авторам фактически ничем не обязан, кроме как указать их копирайт где-то в окне about. Собственно поэтому Apple и взялась за это, ей нужен был компилятор для своей системы, который не требовал бы открывать исходники все подряд, как gcc.
Даже если, в теории, llvm пойдет в развитии куда-то не туда, ты всегда можешь форкнуться и остаться на старой версии.
Это такая классика и вера в опенсорс. Типа все форкается, всем все платится...
Есть X-библиотека, которая является частью основы (очень сильно влияет на архитектуру, фреймворк). Код долго разрабатывается, кто его создал уже не знает никто. X-библиотека меняет API (например уходит на мажорную версию, старую казнит со временем)
Или другая ситуация, когда нужна какая-то поддержка, а авторы тупят, или код заброшен...
В общем, приходит час икс, час форка! Вы начинаете копошиться в сорцах, сорцы начинают проникать глубоко в мозг, вызывая лютую боль и ужас от многолетнего чужого кода.
В итоге, навернув говна, у вас появляется выбор - чуть пострадать и навернуть следующую версию чудо X-фреймворка и отложить очередную попоболь на будущее или же слезть с этой иглы, переписав все с нуля под текущий проект.
В итоге, в проекте со временем начинают выпиливаться все модные и молодежные штуки, понимая что чужие человеко-часы это хорошо, но лишние стек говна - это очень сомнительная вещь для крупного проекта.
Вот раст как раз такой проект и им придется подстраиваться под этот LLVM
Он написал пустой пиздеж ни о чем в стиле руслана карманова. Если убрать залежи гуманитарного говна для школьников, то остается одно по определению беспруфное утверждение: код любого опенсорс проекта является говном, а код компании, пораженной синдром NIH лучше.
Это, очевидно, не так. Llvm является одим из лучших образов С++ кода, и переплюнуть его невозможно.
Многие дурехи еще и на линукс полагаются. Очевидно, что доверять опенсорсу нельзя и нужно писать ядро внутри компании, чтобы не было таких пиздецовых зависимостей.
>все форкается
да, всё форкается, если что-то пойдёт не так
так что впустую твоё кукареканье о том, что с эппловской иглы не слезть, не переписывая всё с нуля
форкнут llvm, если понадобится
>Llvm является одим из лучших образов С++ кода
я бы не стал превозносить, код как код https://www.viva64.com/ru/b/0446/
вообще, по-хорошему нужна диверсификация - запилить для gcc фронтенд раста - задача интересная, можно даже на этой теме диплом или диссер защитить
для Goвна и D уже запилили, чем раст хуже
Вполне реальный опыт.
А что ты хотел от этого текста, вставки кода и формул? съ#бись на свой хабр
сам ты дурёха
компании/сообщества по сути давно форкают ядро линукса, чтобы обеспечить стабильность, бэкпортируют туда патчи и выкладывают свои наработки на kernel.org в виде longterm
>Status
>Very early and out of date
>Latest commit 349ea0a on Jul 17, 2015
это называется "запилен"?
кстати, люди на это дело готовы задонатить через Patreon/Kickstarter
Ну и? Тебе не плевать на какой площадке статью опубликовали?
>Ты же не будешь отрицать что Quantum сделал фурифокс намного пизже?
Они наконец-то сделали "дублировать вкладку", вы представляете!!! Теперь не нужно тянуться до ctrl и тащить вкладку или устанавливать 100500 плагинов, теперь можно серфить инет одной мышкой, как все нормальные люди!
Слава Quantum, 400 код раста, было написано не зря!
Жду теперь когда в буфер картинку научаться копировать и масштаб нормально делать.
Какая связь между интерфейсом, который сделан на html/js и css-движком? Впрочем можешь не отвечать.
Что у тебя там в буфер не копируется и не масштабируется тоже непонятно.
Зачем ты делишь продукт на части, мы говорили о релизе Quantum фурифокса? Мне все равно из каких он там вдохновенний состоит, если в нем нет базовой функциональности.
>Это растотред, и мы говорим о расте.
Забавно то, что если бы не хейтеры и тролли, раста треда то и не было (как и го треда). Так что зря ты бомбишь, пускай выглядит так, как-будто раст кому-то интересен.
Хотя, ладно, я отписался от треда. Не понимаю зачем нужен системный язык, без прямого управление памяти, который мудренее чем С++ и по производительности медленнее чем тот же С или С++.
Ну и раскройте мне уже тайну, почему хипстеры ненавидят for(;;) и придумывают какие-то кривожопые рэнжи, лишь бы обойти классический счетчик? самое забавное, в пидоне раньше, по-дефолту, создавался огромнейший массив, который потом перебирался, это же верх гуманитарного гения!
>Ну и раскройте мне уже тайну, почему хипстеры ненавидят for(;;)
Потому что язык новый и должен быть (по этой моде) не таким как все. Ему просто необходимо на чем-то выехать, например на безобидных сишных конструкциях.
Другое мнение, что новичками классический for кажется сложным или нелогичным.
В любом случаю хорошо, что мода на хипстеров, коворкинг, лофт, барбершоп вымирают быстрее чем успевают выстрелить их пузыри.
>Rust — невероятно быстрый язык для системного программирования
А на нем можно написать что-то вроде __declspec(naked) void shellcode_begin() {}
__declspec(naked) shellcode_end() {}
И скопипастить байтики от адреса begin до end в нулевые выравнивающие байты кодовой секции?
А то весь тред в сраче с хейтерами для которых функции высшего порядка это слишком хипстерство, нужно как диды использовать только for. И похуй что в языке обычный for тоже есть, нужно высрать своё охуенно важное мнение. И насколько я помню в растбуке приводят пруфы того что производительность не сильно-то различается.
Пасаны, я тыкал ваш раст около года назад.
Ощущения странные.
Есть приятные моменты с выводом типов иммутабельностью и безопасными тредами.
Но напрягает:
-отсутствие нормальных тулов, по крайней мере под окошки. Не понял как нормально отлаживаться. Или нинужно?
-с целью обучения попытался реализовать связанный список. И охуел, когда увидел почти полноценнную книгу на эту тему.
-отсутствие ООП, зато целая тележка новых, ни на что не похожих, конструкций и понятий, которые, хер пойми во что компилируются.
Как сейчас дела со всем этим говном?
>Не понял как нормально отлаживаться. Или нинужно?
Как-то, в каком-то го-загоне чате я спросил про отладку, кто-то мне сказал, что нужно принты ставить, кто-то сказал что вообще это мне "нинужно". Я попробовал настоять на том, что мне все-таки это нужно и меня забанили. Оказалось потом, что просто отладки нет или есть такая, что лучше бы и не было. Забавно, но ответа "нет", мне бы хватило в тот момент.
Я не думаю что и тут тебе чем помогут, я теперь пытаюсь избегать такие "фан-кружки", я уверен что больше половины сидят в vim и про тулинг даже не слышали.
>>96907
>отладка
https://areweideyet.com/
Поддерживают дебаг:
VS Code, Eclipse, IntelliJ IDEA, Visual Studio
Кстати, а как ты отлаживаешь проблемы, которые случаются в проде? Там тебе отладчик не поможет.
>Там тебе отладчик не поможет.
Понятно, код скомпилированный же.
Как и всегда - локализуешь проблему, воссоздаешь на дев-машине.
Никто на проде, даже в скриптах код не трогает (откатывают код только)
В связи с этим у меня вопрос, чем тебе помогает отладчик?
Логи нормальные в любом случае нужны, чтобы если все пойдет по пизде на проде, по ним можно было понять что происходит. Часто поймать нужную инфу в отладчике сложнее, чем воткнуть нужный принтф с условием, как по мне. Особенно если ты отлаживаешь какие-нибудь безумные циклы.
>Я попробовал настоять на том, что мне все-таки это нужно и меня забанили
Ты бы задумался, почему неглупые люди с опытом в программировании больше, чем тебе лет, не стремятся делать как тебе хочется, а делают так, как надо.
Ньюфаги пользуются отладчиком неправильно - а именно, как хуевым способом посмотреть лог в конкретной точке программы, чтобы отладить их лабу в 15 строчек построчно. Как только ты получаешь код из реальной жизни, который будет чем-то из:
1. Асинхронным
2. Мультитрединговым
3. Рекурсивным
4. Со сложными структурами данных, требующих грамотных pretty print'ов, а то и визуализации в графиков
То отладчик сосет - он начинает требовать сложных условных брейкпоинтов, разного рода плагинов для отображения твоих структур и т. д. И при этом все равно он дает тебе стейт в точке. А для отладки всего этого нужны трейсы во времени - чтобы узнать, когда именно что-то пошло не так. А для этого может потребоваться и грепать многомегабайтные файлы.
В целом чем сложнее у тебя код, тем бесполезнее отладчик. Ну а алгоритмы в 15 строчек тоже отлично отлаживаются принтами - если, конечно, ты не печатаешь 100 символов в минуту.
>>97591
>Понятно, код скомпилированный же.
Лол. А отладчики по-твоему с исходниками работают что ли?
Как раз та редкая ситуация, когда отладчик нужен - это редкий баг где-то в проде, от которого у тебя есть корка упавшего приложения. Тогда ты берешь корку, грузишь в отладчик, и смотришь детальный стектрейс.
Еще отладчики хороши для реверс-инжиниринга.
>>97601
>В связи с этим у меня вопрос, чем тебе помогает отладчик?
Ты серьезно? Я знал что тут львиная доля "пет-скрипт программистов", но ты серьезно это спрашиваешь?
Логи на проде нужны чтобы локализовать ошибку, а отладчик на деве нужен, чтобы понять текущие состояние программы при определенных условиях (и посмотреть как это состояние меняется). Не принтами же выводить каждый объект/переменную.
Есть критический минимум, если программист говорит что отладчик не нужен, то значит он не специалист, а простой кустарь, который больших проектов и не щупал.
>Лол. А отладчики по-твоему с исходниками работают что ли?
>Как раз та редкая ситуация, когда отладчик нужен - это редкий баг где-то в проде, от которого у тебя есть корка упавшего приложения
Еще один момент, когда понимаешь что эти люди даже не программисты. Чтобы отладчик отлаживал, ему нужно вставлять свои ништяки в код, никто в прод не релизит дебаг-сборку!
>Не принтами же выводить каждый объект/переменную.
В 90% случаев это удобнее, если программа не ёбнулась с сегфолтом, но Раст от этого, как правило, защищает.
>Не принтами же выводить каждый объект/переменную.
Именно выводить принтами каждый объект. В чем проблема, бумага в принтере закончится?
>Есть критический минимум, если программист говорит что отладчик не нужен, то значит он не специалист, а простой кустарь, который больших проектов и не щупал.
Наоборот. Это ведь ты школота, которая пытается выглядеть охуенно опытным анонимусом, выдумывая себе какие-то большие проекты. Если точнее, ты жертва эффекта Даннинга-Крюгера.
Чем больше проект, тем бесполезнее тебе отладчик. Потому что, встав в точке останова, ты ничего о состоянии большого проекта не поймешь - за минуту могут происходить миллионы событий, и твои попытки трейсить вручную ни к чему не приведут - кратковременная память в мозгах переполнится. В больших проектах помогают только многомегабайтные трейсы и их вдумчивый анализ в текстовом редакторе.
>Еще один момент, когда понимаешь что эти люди даже не программисты. Чтобы отладчик отлаживал, ему нужно вставлять свои ништяки в код, никто в прод не релизит дебаг-сборку!
Опять наоборот.
Это не "ништяки", а debug symbols. Их не нужно поставлять юзеру, они генерируются отдельно в релиз-сборке и подключаются при отладке корки. Дальше при получении корки от юзера, ты берешь бинарник, корку, символы и все видишь. Естественно, с учетом того, что у тебя скомпилировано с -O2 и какие-то вещи могут быть заинлайнены, например, но в целом и так норм.
Но и без них можно загрузить корку под отладчиком.
Я ни разу не раст-программист, но думаю тут большинство не только на расте пишет.
Напиши тест кейс на рейс кондишн который возникает каждую четвертую пятницу если фаза луны отличается от предыдущей.
Думаю, можно написать, если замокать получение даты/времени.
А как в этом случае дебаггер поможет?
>В 90% случаев это удобнее
Кому ты будешь звездеть? Удобнее чем поставить маркер и получить высер всех состояний в методе (причем подставленные визуально для всех выражений)?
Вы с какого языка такие перебегаете?
Не, окей, у меня на работе проект на плюсах - ебаный пиздец, где ни про какое MVC и паттерны проектирования не слышали, и там единственный способ что-то протестировать - это поставить брейк на обработчик определенной кнопки, но я ёбаный романтик и хочу верить в то, что есть проекты, где такого дерьма не больше 50%.
Еще 14 лет назад, в пхп, скидывали все данные в один мега массив, чтобы не дрочиться с принтами на каждый чих в dev-режиме все это печаталось в тхт файл, потом запилили красивый html со спойлерами и всякой статистикой. Там данных было на 2-3 листа A4. Несмотря на эту партянку, это было реально удобнее чем навтыкать принты, а потом еще забыть про них и забывали, даже в регресс-тестах чекали где, какой обмудок забыл удалить. Тупо человеческий фактор.
Но и это не помогало, ставили свои принты обертки, отключающиеся на prod, чтобы проследить состояния от одной точки до другой, чтобы понять где логика крашнулась.
Похожий подход "в одну кучу" видел в IPB форумах 2.x.x версий, может даже и в 3 было.
Людей реально за..бывало принтить пачку говна, они хотят видеть текущие состояние и как оно меняется.
Поэтому в крупном приложение (я такие видел на жабе), ты еще минут 30 будешь пошагово "искать место, где надо начать искать", а только потом уже принтить состояния.
О каких принтах и логах можно там говорить вообщелоги уровня debug и ниже - шумом засирают весь вывод к х..ям
Ну и в дебагере удобно изучать исполняющийся код
Ага, а ещё в ML-фемели.
>Мутабельная парашу в 900 строк что так что этак заебно отлаживать.
Можешь пойти и сделать её иммутабельной и получить еще 7200 строк клонированных данных по всем уголкам программы.
Пхп не хранит состояний, после окончания все начинается заново, надо быть одарённым программистом чтобы делать там иммутабельные состояния потому что ты у нас вумненький и прочитал это в очень вумной книге, значит надо без разбору пихать этот дроч везде
Мань, пхп настолько даунское говно, что я даже не понимаю зачем ты сюда это притащил.
Хватит фантазировать. Иммутабельность позволяет избавится от огромного класса проблем.
Например?
Да, да, ты еще скажи что жава с добавлением лямбд стала нормальным языком.
Вкатился в работу на раст, имея год опыта на питоне (скорее стажировка, чем работа) + знания плюсов и, собственно, раста чуть выше уровня лаб в универе. Даже пока не уволили. Так что даже ньюфагом можно, если постараться.
>>98944
Это не совсем так. Скорее требуется или знание раста (и немного мозга), или более серьезное знание любого языка, реально применящегося на практике (у нас есть люди, перекатившиеся с разных языков: C, C++, Java, Python, Scala). Из плюсов, что скорее всего от тебя кроме языка ничего особо требовать не будут, ибо нет каких-то must have фреймворков (типа Boost, Spring, Django), которые надо знать.
>от огромного класса проблем
Ну-ка, ну-ка расскажи из вумной книжке, как это в пхп поможет, в котором не хранятся состояния??? обосрался же
rustup target list
Может быть у тебя сессии нет на каждого юзера? Или в бд ты не ходишь по ходу сборки страницы? А хоть какие-то long-running задачи у тебя есть, или ты сложнее todo-списков ничего не делаешь?
exercism?
>Может быть у тебя сессии нет на каждого юзера? Или в бд ты не ходишь по ходу сборки страницы?
Каким боком внешние данные относятся к иммутабельности языка? Ты туп и обосрался и вообше эти данные, между запросами, для языка - будут новыми, пхп не хранит состояния и ему в принципе не нужна иммутабельность, потому что все данные, даже копии иммутабельные, буду сквозными, "на раз". То есть, основная проблема глобального состояния, не решается (модульность будет мнимой).
Блохчейн. Тащемта большая часть вакансий (в москве так точно) на расе почему то так или иначе с этим связана. Хотя вроде была вакансия от Netcracker, там что-то другое.
Это копия, сохраненная 20 декабря 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.