Názor k článku Clojure aneb jazyk umožňující tvorbu bezpečných vícevláknových aplikací pro JVM (3.část - funkcionální programování) od SB - OOP nečlení úlohy na kroky, ale na podproblémy. Dále...

  • Článek je starý, nové názory již nelze přidávat.
  • 31. 8. 2012 14:40

    SB (neregistrovaný)

    OOP nečlení úlohy na kroky, ale na podproblémy.
    Dále mícháte do sebe 2 věci - deklarované chování (třeba objektu v OOP) a realizaci výpočtu (např. v Erlangu). Koexistence objektů je už ze své podstaty asynchronní (posílání zprávy je synchronní, ale o tom tu řeč není), komunikovat spolu můžou teoreticky NAJEDNOU různé páry. Abstrakce objektů NEZNÁ vlákna a nijak s nimi nesouvisí! Teprve realizace na nižší úrovni používá jedno nebo několik vláken, která chování objektů realizují, často sekvenčně, protože každý objekt by jinak musel mít své vlákno, které by čekalo na zprávu. Případná exkluzivita přístupu je věcí návrhu (vyplývá až z úlohy, ne z podstaty paradigmatu) a je zajištěna dalšími abstraktními mechanismy jako např. semafory ap. Dle vašeho popisu exkluzivitu zajišťuje Erlang (neznám ho) na nižší úrovni spouštěním sekvenčně závislých operací vždy v rámci vlákna. Neboli abstraktnější semafor nahrazuje systémovým prostředkem. Neříkám, že je to špatně, ale je to na jiné systémové úrovni, přičemž nelogičnost v asynchronnosti objektů žádnou nevidím, naopak se to podobá realitě, kterou často modeluje.
    Objekt v žádném případě není kuchařkou (ve smyslu předpisu)! Objekt je samostatně existující a asynchronně pracující entitou. Jak může být Erlang „objektovější“, když právě to je principem objektového paradigmatu?