Некоторые функции из стандартной библиотеки erlangs действительно используют записи в своих интерфейсах (я не могу вспомнить, какие из них, прямо сейчас - но их немного), но, по моему скромному мнению, основной недостаток заключается в том, что пользователь придется использовать ваш заголовочный файл, просто чтобы использовать вашу функцию.
Это кажется мне не эрлангичным (вы никогда не делаете это нормально, если вы не используете упомянутые функции из stdlib), создает странные взаимозависимости и сложнее использовать из оболочки (я бы не стал я не могу понять, как загружать и использовать записи из оболочки - я обычно просто "обманываю", создавая кортеж вручную ...)
Кроме того, обработка записей немного отличается от того, что вы обычно делаете, поскольку их ключи по умолчанию принимают атом «неопределенный» в качестве значения, что противоречит тому, как вы обычно делаете это с проплистами, например (значение, которое не было не устанавливается), это может вызвать путаницу у людей, которые обычно не работают с записями.
Итак, в общем, я бы предпочел проплист или что-то подобное, если только у меня нет очень веской причины использовать запись. Однако я обычно использую записи для внутреннего состояния, например, gen_server или gen_fsm; Это несколько проще обновить таким образом.