Article View: pl.comp.programming
Article #216704Re: Czemu Python jest jaki jest?
From: J-23
Date: Fri, 03 Jan 2020 23:32
Date: Fri, 03 Jan 2020 23:32
192 lines
10616 bytes
10616 bytes
W dniu 03.01.2020 o 21:27, godek.maciek@gmail.com pisze: > W dniu piątek, 3 stycznia 2020 20:48:15 UTC+1 użytkownik J-23 napisał: > >>> A do których języków nie potrzeba środowiska uruchomieniowego? >> Chyba inaczej rozumiemy środowiska uruchomieniowe. > > Ja rozumiem dosłownie. Jako kontekst, w którym program jest wykonywany, oraz zasoby, które ma do dyspozycji w momencie działania. I to jest tylko połowa prawdy. Druga połowa jet taka że programy odpalane w tzw. środowiskach uruchomieniowych nie mają dostępu np do sprzętu wszystko odbywa się w izolowanym środowisku zwanym właśnie środowiskiem uruchomieniowym > >> 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) >>> Kiedyś mówiło się o "językach kompilowanych i interpretowanych". >>> Ale to, czy dany język jest "kompilowany czy interpretowany", nie jest kwestia samego języka, tylko narzędzi. (Np. istnieją interpretery języka C) >> >> Jeżeli bierzesz sam kod pod uwagę "bez próby jego wykonania" To owszem >> masz 100% racji i nawet wtedy pokuszę się o powiedzenie ze 100% kodu - >> niezależnie w jakim języku jest napisane będzie niczym więcej jak tylko >> "skryptem" > > Nie. To też nie. > Kod źródłowy UNIXa możesz studiować z dala od jakiegokolwiek komputera. I on nie jest skryptem, tylko złożonym systemem. > Kod napisany w czymkolwiek (moze być nawet Notatnik) bez przepuszczenia go przez kompilator lub Interpreter jest co najwyżej kodem złożonego systemu niczym więcej (Kupa znaków) >> Ale jeżeli o tym rozmawiamy to nie ma sensu też wtrącać różnic między >> językami typu szybkość wykonania czy wydajność pod względem np użycia >> ilości pamięci > > No bo nie ma sensu. > Ma sens mówić o różnicach w wydajności pomiędzy implementacjami różnych języków. > > Kiedy mówi się, że C jest szybsze od Pythona, ma się na myśli, że powszechnie dostępne implementacje C są szybsze od powszechnie dostępnych implementacji Pythona. > Tutaj pełna zgoda >>> Określenie "język skryptowy" nie ma związku z tym, jaka jest technika implementacji. Z definicji jest to "język służący do pisania skryptów" >>> (albo - bardziej pedantycznie: język, o którym myśli się jako o języku, w którym pisze się skrypty). >> Mylisz trochę pojęcia tzn. masz racje ale mylisz skrypt który wykonuje >> pewne zadania np w systemie jak np. cron który ma za zadanie >> w "uproszczeniu" uruchomić określone programy by wykonać określone zadanie > > Cron nie jest skryptem. Cron jest aplikacją (Interpretatorem) w postaci demona i to właśnie na podstawie skryptu który mu się poda on działa Jest > <grzmoty i pioruny> > demonem. > >>> I znów, to, czy język służy, czy nie służy do pisania skryptów, nie jest cechą samego języka, tylko tego, w jaki sposób ktoś postanowi go użyć. >> >> I znowu mówisz o języku jak o "suchym tekście" który można by zapisać na >> kartce papieru i zamknąć w zeszycie. > > 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 > >>> >>> Prototypowe języki skryptowe to języki powłoki (np. bash albo DOSowe batche albo skrypty w PowerShellu). >> To prawda ale z jedną uwagą bash czy PowerShell są interpretatorami tego >> co zostanie im dostarczone w postaci skryptu i to co napisałeś poniżej >> ma sens tylko "połowicznie" Ogólnie zasada działania jest ta sama jak w cron czyli działa na podstawie dostarczonego skryptu (Kodu) inaczej nie działa > > Nie rozumiem. > (Ale - gwoli ścisłości - interpreterami. Interpretator to osoba.) Zgadza się mój błąd rozpędziłem się :) > >>> Są one "skryptowe", bo pełnią funkcję "end-user programmingu" - tzn. ich autorzy nie muszą rozumieć szczegółów implementacji systemów, a wystarczy, że znają zasady korzystania z tych systemów. >>> >> >> "Połowicznie" jest to prawda. Bo o ile do napisania "skryptu" nie jest >> potrzebna wiedza o implementacji jakiegoś elementu systemu. To nie to >> decyduje o "skryptowości" danego języka. >> >> Tak pokrótce o tym czy dany język jest skryptowy czy nie decyduję kilka >> czynników: (skrócę do trzech bardzo ogólnych) >> - sposób wykonania kodu > > Skąd ten pomysł? Interpreter języków skryptowych wykona kod który mu dostarczysz i to w chwili wykonania programu. Ponadto kod języków skryptowych pozostaje pisany tekstem bez zamiany na kod maszynowy > >> - sposób dostarczenia kodu > > Czyli jak przekazuję kod źrodłowy programu w C, to język C staje się skryptowy? > Jaki przekaz masz konkretnie na myśli? Wynikiem wykonania kodu w C jest plik binarny tyle i tylko tyle. Ten plik binarny żyje bez kodu. Jego kod jest zamieniony w postać binarną i jest wykonywany zupełnie w inny sposób niż kod tzw języków skryptowych odbywa się to w zupełnie innych warunkach >> - wyizolowanego środowiska uruchomieniowego uniezależnionego od >> systemu/sprzętu > > Czyli C# jest skryptowy? > C# jest kompilowany do kodu pośredniego. Java podobnie a to sprawia że wykonuje się w innych warunkach jak kod języka skryptowego i kompilatora pliku binarnego Są pewne podobieństwa np wyizolowane środowiska uruchomieniowe ale zasady działania są odmienne >>> Ponieważ zakres zastosowań Pythona pokrywa się z zakresem zastosowan Perla, a niekiedy i języków powłoki, czasem i o nim mówi się, że jest "skryptowy". >> >> Błędne założenie ale już tu tyle napisałem że chyba da się zauważyć - >> wspólną cechy dla języków skryptowych (interpretowanych) - zresztą to >> jest do znalezienia w sieci. Wiki nie jest wyrocznią tutaj ale ma to >> dość obrazowo przedstawione. >> >> https://pl.wikipedia.org/wiki/J%C4%99zyk_interpretowany >> https://pl.wikipedia.org/wiki/J%C4%99zyk_skryptowy > > 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. > Dokładnie tak ja to twierdze od samego początku > Zresztą Wikipedia potwierdza to, co napisałem: > > "Teoretycznie każdy język może być kompilowany i interpretowany, dlatego rozróżnienie to polega na najczęściej stosowanych rozwiązaniach, a nie zależy od cech samego języka" > > Zupełnie tak jak pisałem wcześniej! "Nie jest cechą języka!" > A to nie złapałeś że autorowi całego wątku nie chodzi i samą składnie języka? Jemu chodzi przecież o to dlaczego Python nadaje się do "pewnych" rzeczy a do innych nie > a w drugim artykule: > > "Języki skryptowe są to najczęściej języki interpretowane" > > Zwracam uwagę, że "najczęściej" nie oznacza "zawsze" ani "z konieczności". A wiesz co to znaczy język jest interpretowany? Widzę po poniższej odpowiedzi ze skrypt według ciebie jest "sposobem używania" niestety ale to nie jest tak > >>> Swego rodzaju "opozycją" do języków skryptowych są języki systemowe - czyli takie, które służą do pisania dużych, skomplikowanych systemów (czy raczej: o których się myśli, że do tego służą). >>> >> Dobrze że dodałeś nawias bo aż się chciało napisać co oznacza - tzw. >> "języki systemowe" ale już mówisz o zastosowaniu języka a to zupełnie >> inna para butów >>> Ale to nie jest twardy podział. Języki takie jak PHP czy JavaScript można w tym duchu nazwać "webowymi", bo się ich używa do opracowywania stron (choć nic nie stoi na przeszkodzie, by pisać w nich skrypty). >>> >> Mówisz o sposobie zastosowania nie zmienia to faktu że są to języki >> skryptowe > > Nie. "Skryptowość" nie jest cechą języka, tylko sposobu używania go. Nie sposobem używania a sposobem wykonania się kodu tzw skryptu przez zaimplementowany interpreter który go wykonuje. Nigdzie nie napisałem że jest to cecha języka jest to cecha interpretatora danego języka. > To nie one są "skryptowe", tylko my, używając tej nazwy, przemycamy informację o tym, w jaki sposób zazwyczaj z nich korzystamy. > Podobnie gdy mówimy np. że jakaś dziewczyna jest piękna, to tak naprawdę nic nie mówimy o tej dziewczynie, tylko o naszych gustach. Albo gdy mówimy, że jakiś czyn jest haniebny, to nie mówimy o tym czynie, tylko o naszym systemie wartości. > >>> No, a PostScript jest oczywiście stosowy. >> >> Szczerze powiem:) nie wiem nigdy nie miałem potrzeby tego używać :) > > Pewnie używałeś nawet o tym nie wiedząc, np. otwierając dokument PDF. > Tak ale nigdy bezpośrednio nic nie skrobałem w PostScript Pozdrawiam
Technical Details
Message-ID:
<5e0fcf1c$0$553$65785112@news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!border2.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!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>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!3.eu.feeder.erje.net!feeder.erje.net!weretis.net!feeder7.news.weretis.net!border2.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-02.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail Subject: Re: Czemu Python jest jaki jest? Newsgroups: pl.comp.programming 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> From: J-23 <Baczeklu@poczta.fm> Date: Sat, 4 Jan 2020 00:32:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <66517b9b-d8a5-41fb-b9d0-b289e9dfba64@googlegroups.com> Lines: 192 Message-ID: <5e0fcf1c$0$553$65785112@news.neostrada.pl> Organization: Telekomunikacja Polska NNTP-Posting-Host: 188.146.100.11 X-Trace: 1578094365 unt-rea-a-02.news.neostrada.pl 553 188.146.100.11:32354 X-Complaints-To: abuse@news.neostrada.pl Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit