🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#345119
From: zpksoft
Date: Sat, 27 Aug 2016 13:54
65 lines
5104 bytes
W dniu sobota, 27 sierpnia 2016 09:06:04 UTC+2 użytkownik arivald napisał:
> W dniu 2016-08-27 o 08:46, zpksoft pisze:
> > W dniu piątek, 26 sierpnia 2016 18:24:55 UTC+2 użytkownik arivald napisał:
> >> W dniu 2016-08-26 o 17:36, Mikołaj 'Virion' Milewski pisze:
> >>> W dniu czwartek, 25 sierpnia 2016 22:54:14 UTC+2 użytkownik kamel...@gmail.com napisał:
> >>>
> >>>> JavaScript odpada u mnie z definicji :)
> >>>> 1. Jest za wolna
> >>>
> >>> Wolna czy za wolna? ;-) Firefox, Thunderbird i szereg aplikacji systemowych Windowsa
> >>> 8/10 jest napisane w JS.
> >>
> >> Eeee... nie całkiem. Firefox, Thunderbird i inne aplikacje na Gecko są
> >> napisane głównie w C++, a JavaScript jet rodzajem kleju pomiędzy
> >> komponentami. Tak, sporo logiki biznesowej jest w JS. Szacuję że
> >> aplikacja spędza nie więcej niż 5% czasu w JS, resztę w natywnych binarkach.
> >>
> >> I JS jest jednym z powodów dlaczego Firefox czy Thunderbird jak się
> >> zawiesi to wszystkie okna na raz ... brak wielowątkowości w JS.
> >>
> >> A najbardziej wkurza jak skrypt na stronie WWW zawiesza całą aplikację...
> >>
> >
> > Widać że nie używasz JS. Wielowątkowość jest w tym języku i to bardzo ładnie opakowana
> > bez kombinacji jak np w Delphi. Wielowątkowość tqorzy się sama. Trzeba mieć tego
> > świadomość. Na przykład (pseudokod):
> >
> > pobieram obrazek
> > coś z nim robię
> >
> > ^ powyższy kod jest błędny bo pobieranie obrazka nie zakończy się a już wywoływana
> >  będzie instrukcja "coś z nim zrobię".
> >
> > Powinno być w "pobieram obrazek":
> >
> > obrazek.onLoad=function{
> >   coś z nim robię  //zostanie wywołane dopiero po pobraniu obrazka
> > }
> 
> Ale tu mówisz nie o wielowątkowym kodzie JS. Mówisz o asynchronicznym 
> API używanym przez JS. A to ogromna różnica.
> Sam JS nie ma żadnego wpływu na to jak i kiedy i czy w ogóle obrazek się 
> załaduje. To jest domena nawet nie silnika JS, a przeglądarki.
> 
> Podobnie ze wszytkimi asynchronicznymi API, jak np. XmlHttpRequest.
> 
> > Kolejna kwestia to szybkość działania JS. Od zawsze mówiło się o tym że języki
> >  interpretowane są wolniejsze od kompilowanych.
> > Teraz przeglądarka po wczytaniu strony dokonuje kompilacji JS i kod działa jak należy.
> >
> > Co do Javy- nie używam. Bo nie działa natywnie w przeglądarce :P
> >
> > Paweł
> >
> 
> -- 
> Arivald

Albo ja Ciebie nie rozumiem albo Ty mnie. Piszesz że JS nie ma kontroli nad tym czy obrazek się załaduje. Właśnie podałem przykład na to że ma. I jest to typowe w programowaniu w JS. Jeżeli się tego nie uwzględnia to aplikacja działa tak jak napisał to bodajże wloochacz "roszypuje się i blokuje przeglądarkę". 
Ale tak się dzieje tylko wtedy gdy nie rozumie się wielowątkowości JS. Możesz to nazwać "asynchronicznym API" ale na jedno wychodzi: kilka czynności jest wykonywanych w tym samym czasie niezależnie.
To w Delphi musimy stosować się do odpowiednich zabiegów żeby stwierdzić czy dany wątek zakończył się. W JS jest to proste i naturalne.

I żeby nie było że dołuję Delphi. Nie. Programuję równocześnie w obu językach (i nie tylko tych). Każdy ma swoje miejsce i cechy.

Paweł
Technical Details
Message-ID: <80ae63a7-3ca9-4971-ae34-ed3d17d70835@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!x131no407122ite.0!news-out.google.com!d68ni40678ith.0!nntp.google.com!j128no408121ith.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!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> <8006a142-764b-4de4-806f-92b487d40a75@googlegroups.com> <npre4r$som$1@gioia.aioe.org>

Show Full Headers
Complete Article Headers
X-Received: by 10.36.250.67 with SMTP id v64mr2975205ith.0.1472306062440;        Sat, 27 Aug 2016 06:54:22 -0700 (PDT)
X-Received: by 10.157.9.106 with SMTP id 97mr660427otp.7.1472306062403; Sat, 27 Aug 2016 06:54:22 -0700 (PDT)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!news.glorb.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!x131no407122ite.0!news-out.google.com!d68ni40678ith.0!nntp.google.com!j128no408121ith.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
Newsgroups: pl.comp.lang.delphi
Date: Sat, 27 Aug 2016 06:54:22 -0700 (PDT)
In-Reply-To: <npre4r$som$1@gioia.aioe.org>
Complaints-To: groups-abuse@google.com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=83.27.85.71; posting-account=8ND_mgoAAAD5J9y9fnaTB1Kcu7xKWk7Q
NNTP-Posting-Host: 83.27.85.71
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> <8006a142-764b-4de4-806f-92b487d40a75@googlegroups.com> <npre4r$som$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <80ae63a7-3ca9-4971-ae34-ed3d17d70835@googlegroups.com>
Subject: Re: Czy nowe wersje Delphi nadają się do
 tworzenia stabilnych mobilnych Aplikacji ?
From: zpksoft <zpksoft@op.pl>
Injection-Date: Sat, 27 Aug 2016 13:54:22 +0000
Lines: 96
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit