🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #345114

Re: Czy nowe wersje Delphi nadają się do tworzenia stabilnych mobilnych Aplikacji ?

#345114
From: arivald
Date: Sun, 28 Aug 2016 11:25
69 lines
4452 bytes
W dniu 2016-08-27 o 21:19, Mikołaj 'Virion' Milewski pisze:
> W dniu sobota, 27 sierpnia 2016 20:17:27 UTC+2 użytkownik arivald napisał:
>
>> Utrzymanie spójności danych globalnych to też problem - po każdej
>> zmianie trzeba by wysyłać message do każdego workera który tej danej używa.
>>
>>
>> W większości języków z wielowątkowością wątki mają wspólną pamięć, to
>> program dba o synchronizację. Zmienne globalne, serwisy, cache, etc bez
>> duplikatów.
>> Przesyłać pomiędzy wątkami można wydajnie, po prostu wskaźnikami czy
>> referencjami.
>
> No i spójrzmy, do czego to prowadzi:
> 1. Globalne zmienne / globalny stan aplikacji - antywzorzec, który nader
> ciężko wybić z głowy sobie / pracownikom

Antywzorzec, ale niezbędny. I nie mówię tu o zmiennych w globalnej 
przestrzeni nazw, globalnym scope, bo np. statyczne pola i metody w 
klasach takze są globalami.

Nadużywanie zmiennych globalnych to jest dopiero problem.


> 2. Konieczność jawnej synchronizacji każdego współdzielenia danych między
> wątkami - deadlocki, bottlenecki i wszystkie tej maści ścierwa, które
> każdemu z nas niejedną godzinę z życia zeżarły, bo debugowanie tego to koszmar

E, jaki tam koszmar. Wystarczy parę zasad (dane są albo stałe, każdy 
wątek może czytać, albo dane należą do danego wątku i tylko on może je 
czytać i zmieniać, używać odpowiednich mechanizmów do przesyłania danych 
z wątku do wątku), i problemy znikają.


> 3. Organiczny wzrost couplingu (zna ktoś jakiś zgrabny polski odpowiednik?),
> bo przecież łatwo i się da, to czemu nie

IMO sprzęganie.

Naprawdę nie widzę czemu akurat wielowątkowość ma na to jakiś wpływ.
To raczej zależy od zadań i architektury aplikacji. Wystarczy zastosować 
pośrednika, np kontener IOC, do komunikacji jakiś szyna komunikatów albo 
slot-signal, etc., żeby osiągnąć luźne sprzeganie komponentów.


> Myślę, że asynchroniczne podejście JSa promuje budowę software'u bardziej
> na zasadzie mikroserwisów, niż złożonych struktur.

Owo "asynchroniczne podejście JSa" jest wymuszone przez jego 
jednowątkowość. I nie jest to tyle podejście JS co podejście API których 
z JS się używa, żeby zapewnić w płynne działanie aplikacji.

Dokładnie tak samo da się sterować aplikacją w każdym języku.
Np kolejka komunikatów w Windows (i w wielu innych) jest bardzo podobnym 
rozwiązaniem, zamiast eventów JS są komunikaty.


> Separując developera od
> problemów, które 'starzy natywni wyjadacze' zwykli bohatersko rozwiązywać,
> w gruncie rzeczy ułatwia pracę. Sam w to kiedyś nie do końca wierzyłem,
> ale czy gdyby tak nie było, to czy ten ekosystem uzyskał by takie momentum?

IMO to jest związane raczej z rosnącym znaczeniem, ilością i 
skomplikowaniem aplikacji przeglądarkowych.
JS ma swoje nisze i zastosowania, ale nie jest to język na którym 
bazował bym aplikację.

-- 
Arivald
Technical Details
Message-ID: <npuhno$18g9$1@gioia.aioe.org>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.mixmin.net!aioe.org!.POSTED!not-for-mail
References: <f598bc71-3997-4916-b6e2-4668a1845a7b@googlegroups.com> <nphfk8$1a1n$1@gioia.aioe.org> <57bca64b$0$15209$65785112@news.neostrada.pl> <463bdc36-6971-4080-a437-84944c62249c@googlegroups.com> <e27cf067-438a-408f-97c4-e5df166f9dc6@googlegroups.com> <577275ed-0aa6-4638-b786-14ab65f86538@googlegroups.com> <80d4b314-94b5-4571-a718-a54fd3466dfb@googlegroups.com> <nppqgi$j9q$1@gioia.aioe.org> <57c08238$0$15192$65785112@news.neostrada.pl> <nprcln$qsu$1@gioia.aioe.org> <e4a7e8b3-b45d-408c-80d7-4758d96335b4@googlegroups.com> <npslfj$qdd$1@gioia.aioe.org> <04bbf0f7-c9b3-4bdb-8db1-4d7df251dba7@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.mixmin.net!aioe.org!.POSTED!not-for-mail
From: arivald <arivald@nowhere.interia.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Czy nowe wersje Delphi nadają się do
 tworzenia stabilnych mobilnych Aplikacji ?
Date: Sun, 28 Aug 2016 13:25:45 +0200
Organization: Aioe.org NNTP Server
Lines: 70
Message-ID: <npuhno$18g9$1@gioia.aioe.org>
References: <f598bc71-3997-4916-b6e2-4668a1845a7b@googlegroups.com> <nphfk8$1a1n$1@gioia.aioe.org> <57bca64b$0$15209$65785112@news.neostrada.pl> <463bdc36-6971-4080-a437-84944c62249c@googlegroups.com> <e27cf067-438a-408f-97c4-e5df166f9dc6@googlegroups.com> <577275ed-0aa6-4638-b786-14ab65f86538@googlegroups.com> <80d4b314-94b5-4571-a718-a54fd3466dfb@googlegroups.com> <nppqgi$j9q$1@gioia.aioe.org> <57c08238$0$15192$65785112@news.neostrada.pl> <nprcln$qsu$1@gioia.aioe.org> <e4a7e8b3-b45d-408c-80d7-4758d96335b4@googlegroups.com> <npslfj$qdd$1@gioia.aioe.org> <04bbf0f7-c9b3-4bdb-8db1-4d7df251dba7@googlegroups.com>
NNTP-Posting-Host: 0bU75bhJ8rIBB/efsa6WUg.user.gioia.aioe.org
Mime-Version: 1.0
X-Complaints-To: abuse@aioe.org
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0
X-Notice: Filtered by postfilter v. 0.8.2
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit