Źmićer
Или по твоему есть либо c++ либо дактайпинг?
Lama
Lama
Я говорю о том, что и раст и кресты в компайле выглядят либо как ебля через темплейты/систему типов, либо как препроцессоры
Źmićer
Видимо у меня не хватает каких-то знаний чтобы продолжать этот разговор
Źmićer
БЫло бы не плохо если бы ты привел пример охуенности хаскеля там или чего вместо него
Lama
Ты пишешь скрипт, который собирает тебе программу с маленьким рантаймом
Lama
Но numpy специализирован на тензорах
Źmićer
В расте какбы даже вывод типов работает
let elem = 5u8;
let mut vec = Vec::new();
vec.push(elem);
Źmićer
и нулевой рантайм
Lama
А вот язык общего назначения такого вида это terra
У тебя в компайле очень сильная lua, которая собирает тебе программу чуть ли не из инструкций
Или, например, питонячий miasm примерно с такой же идеей работает
Tharin
Есть ещё Crystal
Tharin
Там тоже всё удобненько
Źmićer
Хуйня это все.
Я лично последний месяц ебался с релизом GIL в мультитредовом Питоне с “тонким мл биндом”.
И код, который я в результате написал настолько хуевый, что лучше бы я руками генерики писал.
Źmićer
Copilot за тебя напишет все mutы и типы уже через пару лет.
Źmićer
А питон как был говном неспособным к нормальному проду - так и останется
Lama
Не-не, ты не понял
Питон в компайле собирает тебе программу
Lama
Типа, сейчас мы пишем программы, которые компилятор превращает в бинарный код. Это как если рисовать картины в Photoshop
А я предлагаю писать скрипт, который пишет программу. Это как написать программу, которая генерит тебе картины
Tharin
Źmićer
Lama
Źmićer
Я могу сказать, что я пишу скрипт на расте, который генерирует программу на llvm, которая потом компилируется в машинный код
Lama
На питоне очень просто выражать свои мысли, но он не эффективный.
Тащить эту неэффективность в рантайм не хочется. Рантайм хочется эффективный
Писать программы на растах/крестах это душно, потому что это сложные языки
Źmićer
Количество слоев не имеет значения
Tharin
Źmićer
Ну ты просто говоришь что появятся языки ещё более высокого уровня
Źmićer
Вот только я ставлю на copilot
Lama
Нет, я говорю:
Хватит писать описания программ. Эта декларативность раздувает компилятор и приводит к тому, что всем нам приходится учить неочевидиные хаки в компиляторе
В компайле нужно быть более императивным. Это сложнее, но это вернёт полный контроль над конечным кодом. Хватит делать вид что у нас тут функции или классы или объекты. Комьютер работает с инструкциями, и эффективность и правильность нашей программы зависит от того какие инструкции окажутся в конечном бинаре
Lama
Тот же weld так работает. Ты императивно пишешь мол "сгенерь вот тут код, который перемножает такие вот матрицы". Или "сгенерь вот тут код, который делает такой вот map" и так далее. И это получается ультраэффективно и сильно
Źmićer
И эти скрипты работают в рантайме
Źmićer
Там конечно есть jit - только weld написан на расте
Źmićer
Фишка в том, что я могу написать такой код на самом расте с zero cost
Źmićer
Вообще говоря раст - поразительно эффективен для клепания говноскриптов
Źmićer
Там есть заебись стандартаная либа, итераторы и вот это все
Źmićer
Паттерн матчинг, работа с файлыми, обработка ошибок
Lama
Не, раст очень душный в разработке
Lama
Źmićer
Вкатиться видимо сложно
Źmićer
Но я пишу код который компилируется с первой попытки
Źmićer
И я не сказал бы что там много бойлерплейта
Lama
Lama
Даже самые матерые растоманы среди моих знакомых таким не могут похвастаться
Źmićer
Скажем так - компилятор исправляет мои ошибки и у меня “ага, точно! я проебался!” а не “бля, хуле он ругается”
Źmićer
D:
А я не запускю компайлер пока rls не перестает ругаться, так что формально - с первой Ж)
Lama
Źmićer
Bogdan
Попробовать чтоли раст уже наконец
Bogdan
Дока какая-то там совсем маленькая
Bogdan
А во нашёл
Vitaly
я задолбался, 2 часа не могу Tabnine на спейсмакс поставить, это какая-то жесть
Lama
Vitaly
Zucchini
Zucchini
@emacs_en
Zucchini
только сразу говори что у тебя спейс
Vitaly
а там и по спейсмаксу?
Zucchini
кого-нибудь попробуем найти
Vitaly
спасибо)
Vitaly
tabnine поставил, теперь сниппеты повылетали...
Vitaly
Lama
Vitaly
да, а что?
Lama
Для чего?
Vitaly
я даже знак пайпа через сниппет ставлю
Vitaly
или в фениксе особенно
Vitaly
<%= form_for ___, Routes.____path(@conn, ___)}, ___, fn f -> %>
Vitaly
ff
Lama
Vitaly
настоил сниппеты, теперь оказывается табнине не работает с лсп...
Vitaly
либо то, либо другое
Vitaly
незакрытые
Lama
Может там есть другие LSP клиенты?
Vitaly
не, там просто табнине через company-mode работает, а lsp через lsp-mode