czwartek, 5 lutego 2009

Dlaczego Python? - czyli "programowanie z klocków" :)

Dlaczego w Pythonie pisze się tak łatwo szybko i przyjemnie?

Jedną z zalet Pythona jest super prosta składnia, która pozwala pisać bardzo zwięzły kod. Pamiętam taki argument: dlaczego znaki {, } w C są lepsze niż begin i end Pascala? - bo pozawalają każdorazowo zaoszczędzić 6 znaków :) Idąc tą drogą można napisać, że Python jest lepszy na przykład od Javy, bo oszczędza jeszcze te 2 znaki :)

Wymuszanie wcięć w kodzie skutkuje dobrymi nawykami - dotyczy to przede wszystkim początkujących programistów. Ale ma też swoje wady: trudniej jest przenieść fragment kodu na przykład do innej klasy, a zmiana głębokości wcięcia zazwyczaj zmienia działanie fragmentu kodu.
Python jest w pełni obiektowy, ale nic nie stoi na przeszkodzie, żeby pisać w nim strukturalnie - co kto lubi. A znam takie języki w których można pisać tylko i wyłącznie obiektowo ( żeby wypisać 'Hello World' na ekran trzeba napisać klasę, lol).

Spotkałem się z argumentem, że Python jest wolny. Jak na język skryptowy nie jest wcale taki wolny, choć porównywanie jego szybkości z C++ nie ma raczej sensu.

Przede wszystkim pisanie programów w Pythonie przypomina budowanie go z klocków - gotowych komponentów. Biblioteki tego języka w większości napisane są w czystym C dzięki czemu musi on być szybki.
Jak wiadomo, jest to język skryptowy tak jak Perl, PHP, Ruby czy wiele innych, wirtualna maszyna potrafi skonwertować sobie skrypcik do bytecode'u, a wszysto po to żeby działał czybciej.

Jednym z argumentów przemawiających za tym żeby uczyć/nauczyć się pythona jest fakt, że używa go Google( tylko mi nie mówcie: " ja używam Yahoo albo wyszukiwarki onetu" :) ) i NASA.

Każdy język programowania ma swoje zastosowanie, jednakże pole potencjalnego wykorzystania Pythona jest ogromne: począwszy od aplikacji webowych, a skończywszy na obliczeniach( w Pythonie nie ma zakresu liczb!!!, jedynym ograniczeniem jest fizyczna wielkość zasobów Twojego komputera). No może z wyjątkiem gier..., chociaż jest w końcu Pygame, VPython czy Ogre... :)

Ponadto łatwa konwersja typów, listy i kroki, a wszystko po to by ułatwić życie programiści.

Zresztą w sieci pojawia się wiele porównać typu C++ vs Java vs Python, w których nie wiedzieć czemu ;) Python zawsze wygrywa.

4 komentarze:

Marc pisze...

Trzeba jednak iść dalej - zapytać, jaki RODZAJ języka jest najlepszy (w kontekście zastosowania oczywiście) - deklaratywny, funkcjonalny, imperatywny, czy jakiś inny. Języki wymienione w ankiecie są wszystkie z tego samego worka ... Fakt, że jest to worek najpupularniejszy

Log_1 pisze...

Hm, zapewne chodziło Ci o paradygmaty programowania, ale w zasadzie są one mało istotne ponieważ istnieją języki w których pisać można stosując wiele paradygmatów. I o tej wszechstronności języka Python traktuje właśnie mój post.

Tak na marginesie nie włączałbym języka deklaratywnego do zbioru języków programowania, a bardziej do zboru języków zapytań.

Można również iść jeszcze dalej i rozpatrywać zastosowanie języka programowania w kontekście niezależności od platformy systemowej.

PS. ankieta nie dotyczyła tego posta.

Siegfried pisze...

a moglbys zamiescic taki link do porownania? jestem bardzo ciekawy...
pozdrawiam

Log_1 pisze...

Bardzo proszę:
Python & Java

Python vs. Perl vs. Java vs. C++ Runtimes

Ruby, Python vs Java,C++