Przejdź do głównej zawartości

Krótkie podsumowanie, czyli "w odpowiedzi na komentarz..."

Przyzwyczaiłem się już do sytuacji, że pod moimi wpisami w blogach nie ma komentarzy. Wynika to albo z braku zainteresowania Internautów moimi wypocinami, albo z nikłej kontrowersyjności tekstów (nikogo nie wnerwiam). Stawiam na to pierwsze - przypomnina mi się koszulka z napisem: "Nobody reads your blog!" ;-) Jednak czasem komentarz się pojawia, a ja go całkowicie nie zauważam (patrz: pierwsze zdanie o przyzwyczajeniu). Muszę pogrzebać w konfiguracji bloga - może jest jakieś informowanie mailem, czy coś w tym rodzaju?

Ostatnio odkryłem, że użytkownik demikaze napisał komentarz pod moim wpisem testowym, opublikowanym przez jedną z pierwszych wersji programu BlogTweetProject (był to jednocześnie mój pierwszy program napisany w Pythonie). demikaze zastanawiał się, jakie jest moje spojrzenie na Pythona, jeśli dotychczas programowałem w "klasycznych" językach, jak Java, C++ czy C#. Zastanawiał się też, od którego momentu można potraktować dany język programowania jako poważne narzędzie (czytaj: do wykorzystania w celach produkcyjnych i zarobkowych).
Postaram się teraz napisać parę słów w odpowiedzi (spóźnionej) na ten interesujący komentarz.

Python od początku bardzo mi się spodobał. Pozytywne wrażenie zrobiła na mnie jego prostota, pozwalająca na poświęcenie większej uwagi temu, co mam zrobić, a nie jak mam to zrobić. Spodobało mi się założenie, które przyjęli zapewne twórcy Pythona - żeby nie kazać programiście skupiać się na tak denerwujących rzeczach, jak ręczne przetwarzanie łańcuchów znaków, tworzenie i obudowywanie masą kodu wyszukanych struktur danych itp. Spodobało mi się również bogactwo bibliotek/pakietów/modułów zawierających kod do rozwiązywania prawie każdego problemu, jaki sobie wymyśliłem (oczywiście ostrożnie podchodząc do poważnych problemów, jak np. tworzenie zaawansowanych aplikacji typu enterprise, raczej skupiłem się na drobniejszych, przynajmniej chwilowo). Zresztą wiele rzeczy mógłbym tutaj wymieniać: świetną składnię, dyscyplinę wcięć, ułatwiającą analizę kodu, proste testy, do których nie trzeba pisać specjalnego kodu... No i do tego dochodzi jeszcze niesamowita sprawność i szybkość działania, jak na język interpretowany.

Znalazłem też kilka wad. Co prawda nie dopatrzyłem się póki co niekonsekwencji (prędzej niedoróbek),  no, może z pominięciem niektórych bibliotek - czasem są to eleganckie moduły obiektowe, czasem zbiory funkcji, a ja nie przepadam za mieszaniem różnych stylów programowania (jeśli w moich programach takie coś ma miejsce - bo nie da się wszystkiego uniknąć czy obejść - mam problemy z zasypianiem ;-)), jednak trochę "szarpie" mnie kompletnie wyluzowane podejście do obiektowości. Może będzie to bluźnierstwo, ale obiektowość w Pythonie poniekąd przypomina mi tą z Turbo Pascala 7.0 (firmy Borland, dla DOSu) - wszystko publiczne, żadnych ograniczeń... No ale ma też to swoje zalety - jak kiedyś napisał Łukasz Langa: Python zakłada, że jesteśmy inteligentnymi programistami i wiemy, co robimy. Toteż dyscyplinę w obiektowości możemy narzucić sobie sami.

Co do granicy, która przebiega między językiem-zabawką a językiem-narzędziem, cóż, chyba nie ma czegoś takiego, a przynajmniej nie jest to stabilna granica. Jeśli się okaże, że Twój projekt, czy choćby tylko jego fragmenty łatwiej i sprawniej da się zaimplementować w Pythonie, to zrób to - wyłącznie na tym zyskasz. Moje zdanie jest w tej materii niezmienne: język programowania to narzędzie, które powinniśmy umieć odpowiednio wykorzystać. Nie możemy na siłę lansować jednego języka programowania i jednego paradygmatu jako narzędzi uniwersalnych ("jeśli masz w ręku młotek, to wszystko dokoła wygląda jak gwóźdź") . Im więcej znamy języków, tym sprawniejszymi i elastyczniejszymi jesteśmy programistami. I jeśli jesteśmy PRAWDZIWYMI programistami, to nie ma mowy o rozproszeniu uwagi - nieprawdziwe jest w naszym przypadku stwierdzenie, że jak ktoś się zna na wszystkim, to tak naprawdę nie zna się na niczym.

Chwilowo dobrze się bawię Pythonem - rozwijam Kolejny Program do Blogowania!, mam zamiar skrobnąć klienta gpsd, pobawić się w oprogramowanie Wii Remote (sprawuje się świetnie - choć trzeba dużo cierpliwości, żeby zmusić cwiid do stabilnej pracy w moim 64-bitowym Ubuntu) i popróbować czegoś poważniejszego (bazy danych itp.). Zobaczymy! W każdym razie o wszystkim będę pisał na tym blogu.

Komentarze

  1. No, no! ja czasem komentuję. Co do powiadamiania, to WP ma.
    A przy okazji ostatniego akapitu - masz Wii? Wymienimy się grami? - oczywiście to dla naszych dzieci ;-)

    OdpowiedzUsuń
  2. @guzik wiem, wiem :-) Zresztą miałem zamiar (w odpowiedzi na Twój komentarz na temat sugestii przeniesienia blogów z Windows Live Spaces na WP) napisać podobny artykuł na głównym blogu. No ale jak już przy tym jestem, to napiszę tutaj.
    Wielu moich znajomych "skorzystało" z sugestii Microsoftu dotyczącej przeniesienia blogów na WordPress, jednak ja przeniosłem bloga wcześniej (na Bloggera), zaprzestając kontynuacji pisania na Live Spaces. Nie zrobiłem tego z powodów ideologicznych, lecz wyłącznie dla wygody: chciałem po prostu mieć wszystko w jednym (co i tak o końca nie jest możliwe, ale ok - już o tym zresztą kiedyś pisałem). Kto wie, być może WP daje więcej możliwości, ale jakoś mnie nie przekonuje.

    Z innej beczki: niestety, nie mam konsoli Wii, posiadam jedynie pilota, którego kupiłem sobie kiedyś dla zabawy (i żeby go wykorzystać również w pracy).

    OdpowiedzUsuń
  3. "Nobody reads your blog!"- sometimes someone reads ;P
    @guzik - Wii jedyne co ma fajne to kontroler i nic więcej.
    Kinect podgląda i wysyła Microsoftowi. A SONY PS3 lubi YLoD (yellow led of death). Tak więc najlepszy jest GameBoy z WarioLand 3 / Mario. Szymon N.

    OdpowiedzUsuń

Prześlij komentarz

Popularne posty z tego bloga

Niesamowicie prosty czujnik zmierzchowy.

Tym razem zero programowania, będzie natomiast nostalgiczno-wspomnieniowy układzik, lekko zmodyfikowany.
Otóż kilka dni temu rozmawialiśmy w gronie znajomych o różnego rodzaju czujnikach zmierzchowych i czujnikach ruchu. Ponieważ należę do tych wariatów, co to hołdują jeszcze owej przestarzałej i kompletnie odrealnionej dziś zasadzie: "po co kupować, gdy można zrobić", stwierdziłem, że poskładam takie coś (czujnik zmierzchowy; sensor ruchu faktycznie lepiej nabyć, choćby ze względu na rozmiary ;)) i być może podłączę do jakiegoś mikrokontrolera. Przypomniało mi się też przy okazji, że znalazłem ostatnio w elektronicznych śmieciach stary fotorezystor (dla niewtajemniczonych: element zmieniający rezystancję, czyli opór elektryczny, pod wpływem działania strumienia światła) RPP130, jeden z kilku pozostałych po montowanych wieki temu układach tranzystorowych do zdalnego sterowania pracą urządzeń za pomocą latarki... No OK, nie było to specjalnie rozbudowane zdalne sterowanie ;)

Android i zewnętrzny moduł GPS

Od kilku dni jestem w posiadaniu smyrfona z Androidem 4.1.1 na pokładzie. Kwestie związane z wyborem systemu roztrząsałem już na G+, a ten artykuł tutaj ma konkretny temat, więc nie będę wyjaśniał po raz n-ty. Po prostu zwyciężyły popularność i ekosystem oraz przywiązanie do produktów sieciowych Google. Mniejsza.

Zbliża się sezon urlopowy :-) Moi podopieczni już mają wakacje, a ja wyjeżdżam wkrótce. W każdym bądź razie wakacje to podróże - samochodem, rowerem, na piechotę, żaglówką, motorówką, samolotem... Zaawansowane urządzenia mobilne przyzwyczaiły nas już do usług lokalizacyjnych, z których najważniejszą jest GPS (na dalszym planie mamy A-GPS, lokalizacje w oparciu o sieci WiFi itp.). Często korzystamy z programów, które w coraz ciekawszy sposób wiążą naszą lokalizację, pobraną z np. GPS-a, z przeróżnymi danymi, nieraz ocierając się o AR.
Każdy współczesny smartfon, a przynajmniej znakomita ich większość, wyposażona jest we wbudowany odbiornik sygnału lokalizacyjnego (GPS, GLONASS…

Po co mi to całe Arduino?

Oczywiście tytuł ma być jedynie prowokacją. Chociaż nie do końca - artykuł jest właśnie poświęcony pracy w Arduino IDE z mikrokontrolerami, ale bez płytek Arduino.
Czym jest Arduino - wiemy wszyscy, zarówno początkujący fani programowania elektroniki, jak i zaawansowani mikrokontrolerowcy. Jeśli jednak nie do końca wiemy, zachęcam do odwiedzenia strony domowej projektu (link 5 na końcu artykułu) oraz zerknięcia np. w poradnik (link 4).

Jakiś czas temu, przełamując się i zmieniając zdanie ("o 180 stopni" ;-)) nabyłem sobie Arduino Leonardo, głównie w celu jego "obwąchania" i zapoznania się z bogatym zbiorem bibliotek dostępnych dla tej platformy. Zgoda, różne biblioteki są dostępne niezależnie od Arduino, ale i tak się zdecydowałem. Dlaczego Leonardo? Otóż miałem ochotę przyrządzić dwie pieczenie na jednym ogniu - mieć Arduino i przetestować ATmegę 32u4. Dziś doskonale zdaję sobie sprawę, że żeby pobawić się Arduino nie trzeba go w ogóle posiadać... Ale po kolei.

Pi…