[erlang-questions] about the use of parametrized modules
Fri Jan 14 21:56:44 CET 2011
>> What prevent you add SockedPid to Req
>> It already contain socket and socket_mode, why not SockedPid?
> the fact that SocketPid shouldn't be used by developers, the rest, yes.
There is essentially no functional difference between 'Req:foo(bar, baz)' and 'req:foo(Req, bar, baz)'. In both examples Req is an opaque blob that we are calling a function on. The second, however, makes it much clearer at a cost of a few keystrokes. if you wish to hide state from users the correct abstraction is an opaque type or process - both of which have clearly defined interfaces - not a module.
The popularity of parameterized modules is that they look familiar to people coming from python and ruby and java. That is not sufficient reason to use them.
More information about the erlang-questions