🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #216676

Re: Czemu Python jest jaki jest?

#216676
From: M.M.
Date: Thu, 02 Jan 2020 20:51
79 lines
5551 bytes
On Thursday, January 2, 2020 at 9:46:39 AM UTC+1, slawek wrote:
> 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?!

Hmmm w sumie tak na szybko z rękawa nie umiem rzucić takiej definicji, aby
nikt się nie przyczepił. Może chodzi o to, że do 'języków skryptowych' nie
warto pisać kompilatora który zamieniałby go na kod maszynowy, bo wymagałoby
to wkompilowania interpretera? Każdy specyficzny element języka skryptowego
wymagałby call do interpretera, albo wstawienia ogromnej ilości kodu inline.

> 2. "Nie ma sensu robić programów z GUI w Pythonie" - mit - bo
>  takie programy jest łatwiej zrobić niż w C++. 

Nie przepadam za Pyhonem, ani nie mam doświadczenia w pisaniu aplikacji w
Pythonie, ale zgadzam się, że interfejs GUI w językach typu Python robi się
łatwiej, szybciej i w ogóle lepiej się do tego nadają. Po co w C++ się uganiać 
za wskaźnikami i martwić czy domyślny konstruktor wywoła się szybciej i
przydzieli pamięć pod listę z danymi do wyświetlenia w GUI... Ale nie
popadajmy w skrajność, dla kogoś kto ma wprawę takie uganianie w C++ jest 
nawet przyjemne i też robi się szybko. Podobno główną zaletą Pythona jest
to, że po zaledwie małym kursie można szybko pisać duże aplikacje. W C++
bez solidnego kursu i praktyki programować się zdecydowanie nie da. Czasami tu i
ówdzie można przeczytać, że Python jest dla naukowców. Jeśli chodzi o to, że
naukowiec żyje w swoim świecie, a od czasu do czasu musi szybko napisać 
jakiś programik sprawdzający jego teorię w praktyce - to się zgadzam. Po co
naukowiec miałby część swojej intelektualnej twórczości marnować na opanowywanie
ogromnej ilości szczegółów języka takiego jak C++? Natomiast gdy już naukowiec
zwraca się do programisty ze swoim problemem, to bardziej normalne 
wydaje się, że programista zaproponuje naukowcowi rozwiązanie uszyte na miarę
problemu i na miarę dostępnego sprzętu właśnie w C++ a nie w jakimś skrypciaku.

>  Choćby w tym sensie
>  że biblioteka Qt wymaga w przypadku C++ gimnastyki z
>  metakompilatorem, 

Jeden podpity do drugiego:
 - na rynku zrobili taką dziurę, wkłada się tam głowę i samo goli twarz.
 - no ale przecież każdy ma inną gębę!
 - ale tylko za pierwszym razem ;-)

Więc ta gimnastyka jest tylko za pierwszym razem gdy ktoś nie opanował 
metakompilera, kompilera zasobów, itd. Poza tym istnieje IDE o nazwie
QTCreator w którym (dziś, bo kiedyś się wywalało co rusz) można zbudować
naprawdę dużą aplikację i duże GUI nie rozumiejąc jak działa metakompiler a
nawet kompiler c++... w regularnym kodzie produkcyjnym nastawionym na 
stosunek funkcjonalności do nakładu pracy nawet nie jest wskazane rozumienie
szczegółów z qmake. Oczywiście gdy ktoś chce wycisnąć maksimum możliwości z
tych narzędzi to musi rozumieć jak one działają, ale taka konieczność 
zachodzi tylko w specyficznych aplikacjach.

>  a Python tego nie potrzebuje. Osobną sprawą
>  jest kwestia czy każdy program powinien mieć GUI ? - ale
>  odpowiedź na to nie zależy od języka.

No nie zależy od języka.


> 3. "Python nie kompiluje się" - mit - są kompilatory Pythona.

Słyszałem że jak się podaje typy i pisze w odpowiedni sposób to
można Pythona skompilować do C i potem do kodu maszynowego. Ale
to pisanie w odpowiedni sposób chyba oznacza rezygnację z wygód
jakie niosą kacze interpretowane języki ?

>  Ponadto podział języków na interpretowane (translatory) i
>  kompilowane (kompilatory) jest dziś głupotą - mamy JIT i podobne
>  techniki. A DLL dla Pythona są w natywnym.

Tak, ale nawet (bez sarkazmu) w wydajnej Javie JIT nie może wiele
zrobić gdy jest wirtualny call po nazwie i overloading na podstawie 
dynamicznych typów - w przypadku każdego wywołania.


Pozdrawiam
Technical Details
Message-ID: <f2052965-09a7-41a1-bc49-e806997cc2c9@googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!news2.arglkargh.de!news.mixmin.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no6664387qtd.0!news-out.google.com!w29ni523qtc.0!nntp.google.com!g89no6664378qtd.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>

Show Full Headers
Complete Article Headers
X-Received: by 2002:ae9:e907:: with SMTP id x7mr69233205qkf.298.1577998291253;        Thu, 02 Jan 2020 12:51:31 -0800 (PST)
X-Received: by 2002:a0c:e408:: with SMTP id o8mr66397129qvl.236.1577998291066; Thu, 02 Jan 2020 12:51:31 -0800 (PST)
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!2.eu.feeder.erje.net!news2.arglkargh.de!news.mixmin.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!g89no6664387qtd.0!news-out.google.com!w29ni523qtc.0!nntp.google.com!g89no6664378qtd.0!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: pl.comp.programming
Date: Thu, 2 Jan 2020 12:51:30 -0800 (PST)
In-Reply-To: <qukale$3o1$1@news.icm.edu.pl>
Complaints-To: groups-abuse@google.com
Injection-Info: google-groups.googlegroups.com; posting-host=159.205.34.176; posting-account=xjvq9QoAAAATMPC2X3btlHd_LkaJo_rj
NNTP-Posting-Host: 159.205.34.176
References: <913ee55b-6577-46ef-8ef2-92c748a43610@googlegroups.com> <qukale$3o1$1@news.icm.edu.pl>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f2052965-09a7-41a1-bc49-e806997cc2c9@googlegroups.com>
Subject: Re: Czemu Python jest jaki jest?
From: "M.M." <mmarszik@gmail.com>
Injection-Date: Thu, 02 Jan 2020 20:51:31 +0000
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit