Article View: pl.comp.programming
Article #216707Re: Czemu Python jest jaki jest?
From: godek.maciek
Date: Sat, 04 Jan 2020 08:08
Date: Sat, 04 Jan 2020 08:08
99 lines
7058 bytes
7058 bytes
W dniu sobota, 4 stycznia 2020 02:35:03 UTC+1 użytkownik J-23 napisał: > >>>> Nie będę się tu rozpisywał bo to raczej większość piszących powinna > >>>> wiedzieć jak działają takie środowiska w językach typu .NET, Java i o > >>>> takie środowiska mi chodzi. Teraz czym się różni interpreter Pythona? I > >>>> tutaj zaczynają się schody :) jest to do wytłumaczenia ale jest to dość > >>>> zawiłe. > >>> > >>> I nie ma najmniejszego znaczenia. > >>> > >> > >> Ma bo zarówno .Net i Java są kompilowane do kodu pośredniego (i to > >> właśnie jest główna różnica od języków tzw skryptowych) > > > > No dobrze. I Python też jest kompilowany do kodu pośredniego. > > Zatem według Twojej definicji nie jest skryptowy? > Gdzie ty znalazłeś taką informację że jest kompilowany do kodu > pośredniego? Mam na myśli czystego Pythona. Chętnie poznam jakiś przykład Na przykład tutaj: https://docs.python.org/3/glossary.html#term-bytecode "Python source code is compiled into bytecode, the internal representation of a Python program in the CPython interpreter" > >>> Nie. Mówię właśnie o używaniu języka. > >> Nie bierzesz różnic w działaniu poszczególnych języków a to właśnie te > >> różnice sprawiają że jedne nazywamy skryptowymi a te drugie kompilowanymi > > > > Piszesz tak, jakby skryptowość była czymś przeciwnym do "bycia kompilowanym". > > A tymczasem nawet artykuł na Wikipedii, który podesłałeś, tak nie twierdzi. > > > Bo działą to odmiennie nawet sam przyznałeś cytuje "Proszę. Już sam > fakt, że istnieją dwa odrębne hasła dla "języków skryptowych" i "języków > kompilowanych" świadczy poniekąd o tym, że to nie są synonimy." Błędnie napisałem. Miałem na myśli "języków skryptowych" i "języków interpretowanych" (bo to było w kontekście tych haseł do Wikipedii) > > W pewnym sensie można mówić o opozycji "kompilowania vs. interpretacji". > > Ale to jakiś szczegół techniczny, który nie ma żadnego związku z samym językiem, a jedynie z narzędziami wykonawczymi. > No tych szczegółów jest kilka (Wymienie dwa ręsztę doczytaj) > - Wyizolowane środowiska pracy Jak uruchamiasz program w C w maszynie wirtualnej, to też izolujesz środowisko pracy. > - Brak kodu binarnego wynikającego bezpośrednio z twojego skryptu No to Python jest tutaj kontrprzykładem. > > Przykładowo, pierwsze implementacje JavaScriptu to były interpretery. > > Teraz przeglądarki mają swoje JIT-kompilatory, które generują kod maszynowy. > Widziałeś kiedyś taki kod maszynowy? Zakładając że twój skrypt będzie > wynosił 1% wielkości wynikowego pliku binarnego to 99% będzie się > powtarzać bo jest tam mówiąc w uproszczeniu środowisko uruchomieniowe. > Niech jako przykład posłuży .nodejs od JavaScriptu z Pythonem jest > prawie że identycznie. > > Mnie z punktu widzenia użytkownika języka (albo użytkownika programu) w ogóle to nie obchodzi. > Z punktu widzenia użytkownika programu zgoda ale z punktu użytkownika > języka (programisty) obchodzi bardzo bo musi być zgodność co do użytych > bibliotek i wersji pythona Zgodność musi być, ale jeżeli narzędzia to załatwiają, ja się nie mam czym martwić. > > A co jeżeli przed wykonaniem programu najpierw go skompiluje i zapisze w jakimś swoim cache'u i wykona wersę skompilowaną? > > (Tak np. robi GUILE) > > > Nie używałem tego nie wiem. Ale jak to działa jak JTL to to nic nie > zmieni, bo nadal będzie działać w odizolowanym środowisku. Rozumiem że > sugerujesz że to działa inaczej? Co to jest JTL? > > No to weźmy sobie takie coś: > > https://gitlab.com/zsaleeba/picoc > > To jest interpreter języka C. > > I teraz, czy istnienie tego interpretera sprawia, że C staje się językiem skryptowym? > > > Nie używałem ale już z opisu widać z tego co się domyśliłem, bo jak to > działa to bym musiał sprawdzić że działa to bezpośrednio na sprzęcie > więc domyślam się że nie tworzy żadnego izolowanego środowiska - w tej > chwili gdybam bo tak jak mowie tego nie używałem. No to załóżmy, że tworzy wyizolowane środowisko. To co wtedy? > Swoją drogą obejmuje to któryś pełny standard C? Załóżmy że tak. (Podejrzewam, że tak, bo C nie jest jakimś kosmicznym monstrum) > > Tzn. skryptowość jest "cechą interpretera języka"? > > Czyli czy wg Ciebie jest tak: > > 1. języki można podzielić na kompilowane i interpretowane > > 2. niektóre spośród języków interpretowanych są skryptowe, i to w jakiś sposób zależy od interpretera języka > > ? > A nie zauważasz takiej prostej zasady że języki nazywane "skryptowymi" > nie mają np kodu maszynowego i kod zawarty w skrypcie jest przetwarzany > na bieżąco po uruchomieniu prosto z "pliku" gdzie zawarty jest skrypt? Nie zauważam. Zauważam, że języki skryptowe służą do pisania skryptów. A to, czy te skrypty są przed uruchomieniem kompilowane przez środowisko, czy interpretowane, jest szczegółem, który jest dla mnie niewidoczny, i który bynajmniej mnie nie obchodzi.
Technical Details
Message-ID:
<b51256da-e6a2-417f-9e8e-8c8525d39ddf@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!g89no11066482qtd.0!news-out.google.com!w29ni693qtc.0!nntp.google.com!g89no11066475qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mailReferences:
<913ee55b-6577-46ef-8ef2-92c748a43610@googlegroups.com> <qukale$3o1$1@news.icm.edu.pl> <5e0e44da$0$525$65785112@news.neostrada.pl> <0d4a791d-c777-4c44-9541-88b51c7b8467@googlegroups.com> <5e0f9a57$0$17364$65785112@news.neostrada.pl> <66517b9b-d8a5-41fb-b9d0-b289e9dfba64@googlegroups.com> <5e0fcf1c$0$553$65785112@news.neostrada.pl> <b423f7d8-df8c-40cc-8381-71cf709b1285@googlegroups.com> <5e0feb24$0$501$65785112@news.neostrada.pl>Show Full Headers
Complete Article Headers
X-Received: by 2002:a37:851:: with SMTP id 78mr75368694qki.266.1578125313216; Sat, 04 Jan 2020 00:08:33 -0800 (PST) X-Received: by 2002:aed:3641:: with SMTP id e59mr66941842qtb.174.1578125313054; Sat, 04 Jan 2020 00:08:33 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!feeder1.feed.usenet.farm!feed.usenet.farm!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!g89no11066482qtd.0!news-out.google.com!w29ni693qtc.0!nntp.google.com!g89no11066475qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Sat, 4 Jan 2020 00:08:32 -0800 (PST) In-Reply-To: <5e0feb24$0$501$65785112@news.neostrada.pl> Complaints-To: groups-abuse@google.com Injection-Info: google-groups.googlegroups.com; posting-host=83.25.229.148; posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r NNTP-Posting-Host: 83.25.229.148 References: <913ee55b-6577-46ef-8ef2-92c748a43610@googlegroups.com> <qukale$3o1$1@news.icm.edu.pl> <5e0e44da$0$525$65785112@news.neostrada.pl> <0d4a791d-c777-4c44-9541-88b51c7b8467@googlegroups.com> <5e0f9a57$0$17364$65785112@news.neostrada.pl> <66517b9b-d8a5-41fb-b9d0-b289e9dfba64@googlegroups.com> <5e0fcf1c$0$553$65785112@news.neostrada.pl> <b423f7d8-df8c-40cc-8381-71cf709b1285@googlegroups.com> <5e0feb24$0$501$65785112@news.neostrada.pl> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <b51256da-e6a2-417f-9e8e-8c8525d39ddf@googlegroups.com> Subject: Re: Czemu Python jest jaki jest? From: godek.maciek@gmail.com Injection-Date: Sat, 04 Jan 2020 08:08:33 +0000 Lines: 150 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit