Профита от того, что читать меньше не будет никакого, если это потребует большей внимательности. И ты не учитываешь человеческий фактор, в твоей логике разраб всегда опытный и непогрешимый, а в реальности всё оказывается ровно наоборот.
А чем проще язык, тем сложнее, многословнее и разнообразнее может быть решение нетривиальной задачи
Безусловно, но эту проблему успешно решают библиотеки.
Как высоко ты оцениваешь шансы в таком запутаться, если там будет нечно нетривиальное?
зависит от настроения и от того, насколько нетривиальное
скажем, если там будет какой-нибудь хитрый неблокирующий многопоточный алгоритм, то вполне можно пропустить ошибку и потом ещё и тестами не поймать, в общем-то, как и в любом другом языке
Уже проходили, все давно поняли, что у тебя очень высокие требования к удобству языка.
У меня другая перспектива просто. Мне часто приходилось писать на разных языках одновременно (переодически ловя баттхёрт с «уникальных фич» конкретного языка), а ещё я успел погнить занимаясь поддержкой чужого легаси. Плюс усталость от крайне высокоурового херак-херака в проде, когда общий мотив «лишь бы быстрее запилить», а я потом за голову хватаюсь, видя чего там нахерачили. Что для тебя ограничения, то для меня благо, ибо не придётся в итоге подчищать за другими, а возможность размять мозги велосипедя и костыляя меня скорее развлекает.
Смотря что за задача конечно, но в продуктовой разработке, коей большинство, почти любая задача сводится к дёрганью чего-то готового из библиотек. Их читать не надо при наличии хорошей доки и отсутствии багов. А когда сам либу пишешь, о том как бы проще да покороче написать ты не думашь, возникают мысли об архитектуре и качестве реализации.
Вы повторяете фанбоев сишки, что не удивительно. Либы не расширяют язык. Вы не можете добавить ADT либой. Или async. Или исключения. Есть вещи, которые должен уметь сам язык.
Для меня благо - это жесткие гарантии компилятора. Go их не имеет в принципе. Прям как сишка, которую я ненавижу ещё сильнее. Мой типичный код просто нельзя портировать на Go.
Смотря что за задача конечно, но в продуктовой разработке, коей большинство, почти любая задача сводится к дёрганью чего-то готового из библиотек.
Естественно, если своего кода писать не нужно, а просто подергать библиотеки, которые уже умеют всё, что нужно, требования к языку ниже.
А когда сам либу пишешь, о том как бы проще да покороче написать ты не думашь, возникают мысли об архитектуре и качестве реализации.
Мысли об архитектуре мало зависят от языка. А вот качество реализации зависит от выразительности языка непосредственно. Условные «простые» языки (Си, Go) тупо кладут соблюдение всего, что не выразимо в языке, на программиста.
Это ручками надо. Хотелось бы ошибку компиляции. Для чисел вот есть у gcc/clang, а на счет строк не уверен. Ну и для кастомных типов никак не запретить.
Потому что в темы про Rust сбегается большое количество фанатиков, которые проповедуют то, чем Rust не является.
Да брось, давно уже их всесторонне обоссали и они не сильно то набегают. Ну и школьники же растут, приходится добывать доширак более приземленными методами, некогда уже набегать.
Статические бинарники на Rust можно и в несколько десятков килобайт делать. Остальная часть дискуссии ни о чём. (Почему в игнор нельзя поставить, кстати?)
Удобный подход. Не использовать фичи Rust, использовать unsafe, дергать функцию из libc и внезапно говорить, что итоговый результат каким-то образом характеризует Rust с хорошей стороны.
Типичная шиза фанатиков.
К чему libc не прилинкуй статически, всё будет большое (или нет с lto).
Как выше отмечает RazrFalcom — не все. При использовании musl статические исполняемые файлы действительно небольшие.
Не использовать фичи Rust, использовать unsafe, дергать функцию из libc и внезапно говорить, что итоговый результат каким-то образом характеризует Rust с хорошей стороны.
Так ты же сейчас хеловорд на сишке написал, только ректальным способом. Вот примерно так и пишут мамкины растофаны-системщики. А растофаны-вебельщики так же ректально пишут питоно-подобную шнягу, а потом считают миллисекунды выигрыша и трясут типами (которые им только мешают).
C++ — один из худших ЯП в этом мире (хотя последний стандарт мне даже почти нравится). С ним разве что Rust может сравниться в уродстве, но я бы его для сравнения все равно не брал.
#include <cstdio>
int main() {
printf("Hello, world\n!");
return 0;
}
$ clang++ test.cpp
$ du --apparent-size -hcs a.out
14K a.out
14K total
Размер бинарей в современном мире не имеет почти никакого значения. Мне очень странно слышать, когда люди придумывают себе ограничения вида «бинарник должен быть очень маленьким», хотя речь далеко не о stm32.
Deleted ()
Последнее исправление: Deleted
(всего
исправлений: 1)