🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216681

Re: Czemu Python jest jaki jest?

#216681
From: godek.maciek
Date: Thu, 02 Jan 2020 20:58
55 lines
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-mail
References: <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