Ну, не знаю. Я-то не настоящий сварщик. Я пишу только если совсем припрет. Недавно нахакал дрочилку PPPoE-сессий для одного нагрузочного тестирования. Мне понравилось.
Рекорды слегка скрашивают ситуацию. Хотя и не полностью.
Но в динамической типизации есть и свои плюсы. Некоторые системы содержат кода заметно больше, чем обрабатывают одновременно данных. В этом случае теги данных занимают меньше памяти, чем занимал бы типизированный код. По этому VM иногда имеет смысл делать с динамической типизацией, даже если язык статически типизированный.
Но там tcp, где серверный и клиентский сокеты отличаются и на уровне операционной системы. То, что для приема пакетов, нужно было поосабенному сокет открывать, я не додумался.
Это и для tcp справедливо. Все сокеты открываются в активном режиме, т.е. прием будет не с помощью resv, а будут приходить сообщения - такая вот особенность эрланговской библиотеки. Если внимательно посмотришь на примеры в этом туториале, то везде заметишь опцию {active, false} в аргументах. К этому надо просто привыкнуть.
Comments 8
start() ->
case gen_udp:open(1717, [{active, false}]) of
{ok,Sock} ->
и т.д.
Reply
С inet_udp тоже этот прием помогает.
Вот только нехорошие мысли про разработчиков этого языка все равно не пропали :-)))
Reply
Reply
Но хорошие языки, бывает, создаются извращенцами... :-)
Reply
Ему строгой типизации а-la ocaml не хватает ;)
Reply
Но в динамической типизации есть и свои плюсы. Некоторые системы содержат кода заметно больше, чем обрабатывают одновременно данных. В этом случае теги данных занимают меньше памяти, чем занимал бы типизированный код. По этому VM иногда имеет смысл делать с динамической типизацией, даже если язык статически типизированный.
Reply
(The comment has been removed)
Но там tcp, где серверный и клиентский сокеты отличаются и на уровне операционной системы. То, что для приема пакетов, нужно было поосабенному сокет открывать, я не додумался.
Reply
Reply
Leave a comment