🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216707

Re: Czemu Python jest jaki jest?

#216707
From: godek.maciek
Date: Sat, 04 Jan 2020 08:08
99 lines
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-mail
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>

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