Często mi zadają pytania: Co to jest Python? Czym się różni od innych języków programowania? Czy jest łatwy i prosty?
Chcę w punktach wyjaśnić specyfikę tego języka.
Punkt 1 zasada "Scope":
Zasadnicza różnica Python od języków od innych języków programowania:
Najważniejszym pojęciem w programowaniu jest pojęcie "Scope" - Zasięg widoczności. To znaczy fragment programu (np. obszar lub blok kodu). Każdy program dzielimy na fragmenty każdy, z których ma swoje zadanie. Na przykład kod sortowania w C++:
Fragment od linijki 4 do 17 to jest fragment kodu, wewnątrz którego są inne fragmenty 5-16 w 5-16 fragment 7-14 w 7-14 fragment 8-13, takich 'wkładów' jeden blok w drugim może być znaczniej więcej. Początek bloku oznaczany znakiem: "{", koniec: "}". To są granicę "scope". Taki sam syntaks występuję w C, C++, C#, Java, Java Script, PHP i td., w większości języków.
Teraz zobaczymy jak to wygląda ten sam algorytm w Python:
Jak widać:
W języku Python nie ma specjalnego znaku dla zaznaczenia początku i końca bloku programowego.
Początek bloku określany jest niewidzialnym i niedrukowanym znakiem Tab na klawiaturze od lewej stronie od Q.
Wystarczy przesunąć komendę, na przykład tak:
I program przestaję działać.
W C++ programista może formować kod w dowolny sposób. Tu tabulator służy tylko do kosmetyki i estetyki i jest dla compilatora nieznaczący. Jak widać:
Ten kod wykonywany tak samo jak jego poprzednia wersja.
Bardzo ważny moment:
Python też niema znaku końca komendy. W C++ to znak: ";" Powoduję to że nie można napisać kilka komend z rzędu
Konkluzja: Brak wyraźnego znaku początek i koniec logicznego bloku obniża czytelność kodu (szczególnie w druku) i sprawia kłopoty przy tworzeniu i modyfikacji kodu.
Punkt 2 "Popularność":
U.S. Department of Education wprowadził język programowania Python jako rekomendowany dla wszystkich uczelni w Stanach Zjednoczonych. Automatycznie powoduję to popularność tego języka we wszystkich uczelniach świata. Chcę zaznaczyć, że szkolnictwo i produkcja to różne rzeczy.
Punkt 3 "Python i aplikacje internetowe":
Wyraz: "Ten portal napisany jest w Python-ie" w zasadzie jest 'częściowo prawdziwy'. Każda aplikacja internetowa składa się z
1) Front-End: po stronie użytkownika: obsługa ekranu, klawiatury, myszki i td.
2) Back-End: po stronie serwera: Dysk serwera i Bazy danych
Front End - obsługiwany jest przez HTML, CSS i Java Script w które uzbrojona jest każda przeglądarka. To jest zestaw standardowy. Bez tej trójki po prostu nic w internecie nie zrobisz. Projektant front end skazany jest na te języki.
Back End - Tu projektant ma do wyboru różne możliwości wyboru języka programowania. C#, Java, PHP, Python. W bazach danych dominuję SQL i jego realizacje (DB2, Oracle, Microsoft SQL, MySQL). (Osobna uwaga będzie dotyczyła Node.js, ale to na później - specjalny temat).
Dla pracy w Back End używane są tak zwane frame worki. Dla Python to: Django, Flask, Bottle, Tornado, CherryPy, Hug.
Żeby używać Pyton po stronie serwera trzeba nauczyć się odpowiedniego framework i w przypadku Django - szablonów które określają znaczniki bloków {% block <nazwa> %} i {% endblock %}. Przykład:
Następnie Python odczytuję lub zapisuję dane na dysk serwera i zapisuję i odczytuję dane z-do Bazy Danych.
W przypadku internetowych aplikacji widzimy że Python nie obejmuję 100%, a część kodu. I zajmuję swoje miejsce w łańcuchu HTML-CSS-JS-Django/Python-(SQL)
Punkt 4 "Python dla nauczania":
Większość młodych ludzi, którzy myślą o wybraniu zawodu programisty pytają o Internetowe aplikacji Front End. O Back End pytają dziesięć procent, o Bazy Danych może każdy trzydziesty.
Jeżeli chodzi o Front End to oczywiste, że w związku z powyższym muszę poradzić nauczenie Java Script, tym bardziej że z niego stosunkowo łatwo (w związku z podobną składnią) przejść na C++, C# i nawet Javę, nie mówić już o Node.js.
Jeżeli chodzi o Back End, to też tu Python zajmuję na pewno nie 100%, bo jest duża rodzina ASP.NET i PHP, nie mówiąc już o Node.js.
Co dotyczy prostoty - nie widzę tego.
Co dotyczy czytelności - też kwestia dyskusyjna.
WR 2023.02.26
Materiał będzie rozbudowywany.