LINUX.ORG.RU

Про статическую типизацию и безопасный доступ к памяти

 , , ,


3

2
★★★★★

Последнее исправление: RazrFalcon (всего исправлений: 1)

Ответ на: комментарий от Aber

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

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

q0tw4 ★★★★
()
Ответ на: комментарий от anonymous

Это ты просто из строны поней в которой ни один менеджер не говорил «К черту тесты, на них нет времени, пилите фичи.»

Deleted
()
Ответ на: комментарий от Deleted

В моей практике обычно никто вверху даже не знает, что такое тесты. void* во все поля, русский героизм и <censored> в продакшон.

q0tw4 ★★★★
()
Ответ на: комментарий от q0tw4

Видел живого человека, который на ежедневной основе фигачит на Coq и это его работа.
А haskell с нашлепками чем тебя не устраивает?

Deleted
()
Ответ на: комментарий от Deleted

Хаскель он как С++. Кучу всего в него запинали, сверху попрыгали, но всеравно фич не хватает. То то запрещено, то это компилятор не умеет. К использованию такого языка может побудить только специфика задачи, да и то альтернативы всегда будут пытаться отжать задачу.

q0tw4 ★★★★
()
Ответ на: комментарий от RazrFalcon

Ну тогда не пользуйся этими «опциям» рантайма: подсчет ссылок, списки, деревья, графы. Потому что это управление памятью в рантайме.

anonymous
()
Ответ на: комментарий от q0tw4

ее больше

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

bread
()
Ответ на: комментарий от bread

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

q0tw4 ★★★★
()
Ответ на: комментарий от q0tw4

Если программа чистая (не зависит от ввода), а язык (компилятор) настолько хороший, что может сразу вывести результат, то много чего не нужно в рантайме.

anonymous
()
Ответ на: комментарий от RazrFalcon

Примени эту гипотезу (и другие свои гипотезы) к себе. Потом можешь экспериментировать на других.

anonymous
()
Ответ на: комментарий от q0tw4

Это претензия к тому, что что-то может быть опционально, или «опции» надо сравнивать в равных условиях? А то, понимаешь ли, ява приложение можно запустить так, что так называемое «управление памятью» может не сработать за время жизни приложения.

anonymous
()
Ответ на: комментарий от anonymous

Это если конь сферичен и в вакууме

это к

Если программа чистая ... может сразу вывести результат

q0tw4 ★★★★
()
Ответ на: комментарий от q0tw4

Все вычислимые алгоритмы сферичны и в вакууме. А про остальные нельзя давать никаких гарантий.

anonymous
()
Ответ на: комментарий от anonymous

Все вычислимые алгоритмы сферичны и в вакууме.

«Матан доказуем». Вы про это? А что делать с integer overflow и погрешностями дробных чисел?

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Сперва с рантаймом разберись. Сразу перешел на лепешечные бомбардировки по площадям.

anonymous
()
Ответ на: комментарий от anonymous

ОС будущего; хром тоже хейтили (да и сейчас хейтят) за памятеобжирание, но расширять оперативку экстенсивно нынче проще всего. Жаль только, банки вряд ли закотируют, им жабку подавай и хоть тресни.

Moondancer
()

Проблема тут в том что 1) микрософт годами в своем кривом апи провоцировала говнокодить; 2) микрософт компилятор жрет любой говнокодят который ты ему скормишь.

invy ★★★★★
()
Последнее исправление: invy (всего исправлений: 1)
Ответ на: комментарий от invy

микрософт компилятор жрет любой говнокод

Я как-то попробовал врубить аналог -Wall -Werror в майкрософтном компиляторе на существующем проекте. И быстро вырубил обратно, так как сделать его компилируемым стало абсолютно невозможно.

q0tw4 ★★★★
()
Ответ на: комментарий от bread

Мне кажется, половина лора просто решила не сливаться в едином порыве экстаза от Раста вместе с РазрФальконом. Эх, тяжела и неказиста жизнь растопрограммиста.

goto-vlad
()
Ответ на: комментарий от RazrFalcon

Хо-хо. На хабре на каждую статью про типы - треть комментов в стиле «зачем ограничивать себя типами в настолько мощном языке».

Shadow ★★★★★
()
Ответ на: комментарий от Harald

Это всё потому, что у вендузятников valgrind-а нет.

Intel Inspector, Parasoft Insure++, Dr.Memory, AppVerifier.

В моём линуксе мои программы на C после valgrind-а работают с памятью правильно, а волосы гладкие и шелковистые

Иногда замедление в 20x раз ломает взаимные задержки так, что баги просачиваются. AddressSanitizer не спасает, потому что не всегда всё можно пересобрать им. Ну и задержки он тоже двигает туда-сюда.

i-rinat ★★★★★
()
Ответ на: комментарий от Shadow

И большинство макак их не принимают.

Как будто говнокодеров кто-то спрашивать будет, чесслово.

oldstable
()

38% багов в Airbnb из-за динамической типизации

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

seiken ★★★★★
()
Ответ на: комментарий от RazrFalcon

Вы-то сами пробовали его использовать, или только слышали звон?

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

seiken ★★★★★
()
Ответ на: комментарий от seiken

Особенность в том, что фаззер будет генерировать «мусор». Он ничего не знает о конкретном формате. Поэтому никакие сложные ситуации он спровоцировать в принципе не может.

RazrFalcon ★★★★★
() автор топика
Ответ на: комментарий от RazrFalcon

Особенность в том, что фаззер будет генерировать «мусор». Он ничего не знает о конкретном формате. Поэтому никакие сложные ситуации он спровоцировать в принципе не может.

У тебя очень далекое представление о том, что из себя представляет фаззинг.

Впрочем, как обычно.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.