Moduly a objekty mi pripadaji jako totez.
Jako totéž to může připadat právě kvůli tomu zparchantělému OOP, co se rozšířilo jako mor a které považuje za normální lézt do jednoho objektu z víc vláken, takže pojem objektu jako entity, která něco dělá, začíná ztrácet smysl.
Pro zjednodušení si stačí představit, že každý objekt má vlastní vlákno. Když objektu Kuchař pošlu zprávu [vař: pizzu], tak vaří pizzu a těžko může zároveň vařit omáčku. Zparchantělé OOP udělalo z objektu Kuchař jenom KuchařskáKniha, ve které si listuje kdo chce, co chce si
sám uvaří a ještě ke všemu si stav uvařeného všichni zapisují na jedno místo, o které se perou. Naprosto něco jinýho než původní myšlenka ("objects being like biological cells").
Alespon v erlangu je objekt nejaka isolovana vypocetni jednotka (actor, agent, proces, vlakno, apod.) a ne pouze obycejny dict v prestrojeni.
Právě proto, že v Erlangu[1] je to
přesně naopak, než píšeš, je Erlang původní myšlence OOP paradoxně blíž než ty slavné "OOP jazyky".
V Erlangu:
modul = množina funkcí, nástroj pro organizaci kódu do souvisejících celků, tj. "neživá věc", předpis
proces (v tomhle smyslu ekvivalent objektu) = entita, která drží stav, přijímá zprávy a provádí výpočet, tj. "žije", je to "organismus" (viz biologická inspirace původního OOP)
Jo, občas dává smysl mít modul mapovaný na proces 1:1 (často je to obdoba patternu "singleton"), ale pořád jsou to dvě totálně rozdílné věci s naprosto jiným účelem a dobře to pochopit je pro programování v Erlangu naprosto klíčový, bez toho nedá člověk ani ránu.
[1] tady a všude níž můžeme s/Erlang/Elixir/
=====
P.S. Hele, bez urážky, mám pocit, že ten Erlang a Elixir moc neznáš, bylo by imho lepší, kdybys o nich moc nepsal, nebo aspoň vždycky připsal aspoň "IIRC". Těma chybnýma kategorickýma tvrzeníma zbytečně mateš lidi...