Charakterystyka języka Python
https://pypi.org/
The Python Package Index (PyPI).
CECHY PYTHONA
-
Język skryptowy (interpretowany) wysokiego poziomu,
zorientowany obiektowo, dostępny za darmo.
-
Prosta i czytelna składnia ułatwiająca utrzymywanie,
używanie i rozumienie kodu.
-
Struktury danych wysokiego poziomu,
dynamiczny system typów zwiększające wydajność
i produktywność programistów.
-
Wsparcie dla modułów i pakietów, co zachęca do modularyzacji
programów i ponownego użycia kodu.
Możliwa budowa dużych aplikacji.
-
Przenośność - interpreter dostępny na wszystkie
główne platformy: DOS, Windows, Linux/Unix, Mac OS X.
-
Bogata biblioteka standardowa (baterie w zestawie)
oraz różne rozszerzenia.
-
Łatwa integracja programów w Pythonie z innymi częściami
aplikacji, napisanymi w innych językach. Różne implementacje
Pythona: CPython (język C), IronPython (platforma .NET),
Jython (Java), PyPy (Python).
-
Łatwość nauczenia się podstaw języka
i przyjemność z programowania.
-
Rosnąca społeczność skupiona wokół języka -
konferencje (PyCon), listy dyskusyjne (SIG),
nagrody dla twórców, repozytoria z oprogramowaniem
i dokumentacją, itd.
PROGRAMOWANIE W PYTHONIE
Możliwość programowania w różnych stylach (paradygmatach):
imperatywnym/proceduralnym, obiektowym, deklaratywnym/funkcyjnym.
Możliwość pracy w trybie linii poleceń lub w trybie skryptowym
(rozszerzenie nazw plików z poleceniami to .py).
Duże projekty napisane w Pythonie:
- system algebry komputerowej Sage, http://www.sagemath.org/,
- serwer aplikacji Zope, http://www.zope.org/,
- system zarządzania treścią (CMS) Plone, http://www.plone.org/,
- programy do grafiki wektorowej Sketch i Skencil.
Programy w Pythonie są zwykle krótsze od napisanych w C/C++
z kilku powodów:
- typy danych wysokiego poziomu (listy, krotki, słowniki, zbiory),
- grupowanie instrukcji przez wcięcia, a nie parę nawiasów,
- nie potrzeba deklaracji zmiennych czy argumentów.
STRUKTURA PROGRAMU W PYTHONIE
- Programy składają się z modułów.
- Moduły zawierają instrukcje.
- Instrukcje zawierają wyrażenia.
- Wyrażenia tworzą i przetwarzają obiekty.
WADY PYTHONA
Chyba jedyną wadą Pythona (nie zawsze istotną) jest to,
że prędkość wykonywania może nie zawsze być porównywalna
z prędkością języków kompilowanych, takich jak C czy C++.
W razie potrzeby można zastosować kilka sposobów przyspieszenia
kodu pythonowego:
- kompilacja kodu za pomocą kompilatora Cython, ewentualnie ze statycznym
typowaniem,
- wykorzystanie pamięci podręcznej (caching),
- kompilacja "just in time" z Numba (styl języka Julia),
- obliczenia numeryczne z wykorzystaniem operacji wektorowych z NumPy.
ZEN PYTHONA
>>> import this
The Zen of Python, by Tim Peters
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!