Article View: pl.comp.programming
Article #216681Re: Czemu Python jest jaki jest?
From: godek.maciek
Date: Thu, 02 Jan 2020 20:58
Date: Thu, 02 Jan 2020 20:58
55 lines
4991 bytes
4991 bytes
W dniu czwartek, 2 stycznia 2020 20:30:52 UTC+1 użytkownik J-23 napisał: > W dniu 02.01.2020 o 09:46, slawek pisze: > > Jest wiele mitów: > > > > 1. "Python to język skryptowy" - mit - podział na języki skryptowe > > i nie-skryptowe wymagałby zdefiniowania "skryptowości" - jak > > dotąd nikomu nie udało się tego dobrze zrobić. Czy Lua to język > > skryptowy? A Basic? Czym różni się semantycznie for z Javy, C++ i > > AWK? A taki Postscript to jest jaki?! > > Skoro tak zadajesz pytanie to kompletnie albo nie wiesz co się dzieje w > momencie kompilacji albo udajesz że nie wiesz - stawiam na to drugie :) > > https://pl.wikipedia.org/wiki/Kompilator > > Już prosta definicja z wiki (która jest uproszczona) pokazuje że zadanie > pytania cytuje: "czym różni się for z javy, C++.." jest to nie właściwe > pytanie. Bo odpowiedz jest bardzo prosta - sposobem wykonania tej > instrukcji - efekt pozostaje taki sam w obu przypadkach ale sposób ich > wykonania jest zupełnie różny. To właśnie dany sposób wykonania > poszczególnych instrukcji sprawia że te instrukcje w danym języku będą > wykonane szybciej inne wolniej... bardziej po chłopsku już się tego nie > da chyba napisać :) Bo i rozumowanie jest raczej "chłopskie". > Podział na języki skryptowe i kompilowane jest raczej prosty. Bardziej > skomplikowane jest rozróżnienie języka skryptowego i języka który działa > na maszynie wirtualnej - tj Java .NET które są świetne ale potrzeba do > nich środowiska uruchomieniowego. A do których języków nie potrzeba środowiska uruchomieniowego? "Podział" na "języki skryptowe i kompilowane" z logicznego punktu widzenia nie jest podziałem dychotomicznym. 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) 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). 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ć. Prototypowe języki skryptowe to języki powłoki (np. bash albo DOSowe batche albo skrypty w PowerShellu). 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. W dalszej kolejności mamy języki takie jak Perl czy AWK, które są uznawane za skryptowe, bo są podobne do skryptowych. 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". Znam ludzi, którzy woleliby do tych samych celów użyć Haskella (który jest "mocno kompilowany"). 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żą). 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). No, a PostScript jest oczywiście stosowy.
Technical Details
Message-ID:
<0d4a791d-c777-4c44-9541-88b51c7b8467@googlegroups.com>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!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no6680322qtd.0!news-out.google.com!w29ni523qtc.0!nntp.google.com!g89no6680318qtd.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>Show Full Headers
Complete Article Headers
X-Received: by 2002:aed:2f45:: with SMTP id l63mr63065015qtd.221.1577998713540; Thu, 02 Jan 2020 12:58:33 -0800 (PST) X-Received: by 2002:a37:2e43:: with SMTP id u64mr63146775qkh.387.1577998713315; Thu, 02 Jan 2020 12:58:33 -0800 (PST) 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!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no6680322qtd.0!news-out.google.com!w29ni523qtc.0!nntp.google.com!g89no6680318qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail Newsgroups: pl.comp.programming Date: Thu, 2 Jan 2020 12:58:33 -0800 (PST) In-Reply-To: <5e0e44da$0$525$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> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <0d4a791d-c777-4c44-9541-88b51c7b8467@googlegroups.com> Subject: Re: Czemu Python jest jaki jest? From: godek.maciek@gmail.com Injection-Date: Thu, 02 Jan 2020 20:58:33 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit