Pokazywanie postów oznaczonych etykietą języki. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą języki. Pokaż wszystkie posty

19 października, 2012

Wielokulturowość, wielonarzędziowość

Już wcześniej pisałem o powiązaniach pomiędzy językiem a myśleniem i o tym, jak osoby bikulturalne potrafią myśleć inaczej na ten sam temat, w zależności od tego, w jakim języku zadamy pytanie. Te przemyślenia skorelowały mi się z wystąpieniem Martina Mazura na DevDay, o którym pisałem w zeszłym tygodniu. Jeżeli ktoś ma ochotę to można ten wykład obejrzeć tutaj, choć to nagranie z innej konferencji.

Myślę, że to kuszące, jeżeli jedynym narzędziem, jakie posiadamy jest młotek, aby traktować wszystko jak gwóźdź. -- A. Maslow 
Ten cudowny cytat z Maslowa pokazuje cały problem, jaki wynika z ograniczania zestawu narzędzi, których używamy; w życiu, w pracy, w myśleniu. Dodatkowa trudność polega na tym, że kiedy już widzimy dookoła tylko gwoździe, to ciężko się przekonać, że być może istnieją inne problemy i inne narzędzia do ich rozwiązania.

Ja miałem szczęście. Udało mi się znaleźć środowiska, które wymusiły na mnie poszukanie nowych narzędzi. Mówię między innymi o kursach on-line, w których wziąłem udział. Jednak wcześniej była jeszcze potrzeba przygotowania pewnego narzędzia wewnętrznego w moim obecnym projekcie, która wymusiła na mnie poznanie Perla i... to było olśnienie.

Zanim jeszcze zostałem zawodowym programistą (czyt. zaczęli mi za to płacić) poznałem Pascala, C, C++ i C#... pomijając pierwszą pozycję już na pierwszy rzut oka widać tu obrzydliwą spójność gatunkową. Poznanie Perla było dla mnie wejściem w zupełnie nowy wymiar w którym o dziwo poczułem się dobrze. Perl jest tak elastycznym narzędziem, że poczułem się jakbym zakładał na mózg dobrze dopasowaną rękawiczkę.

Photo by Bill Liao
Podczas kursów Coursery poznałem kolejne narzędzia, które może nie były do mnie już tak dobrze dopasowane, ale świetnie nadawały się do rozwiązywania problemów, które stawiali przed nami wykładowcy. Kiedy myślałem o tym, jak rozwiązywałbym te same problemy w językach, które już znałem, już na etapie koncepcji stawała mi przed oczami wizja wbijania śrubek młotkiem. Niepiękna to wizja.

Prawda jest taka, że moja skrzynka z narzędziami stała się ostatnio dużo cięższa i kiedy zabieram się dziś do nowego problemu robię wcześniej sumienny przegląd narzędzi.

Poza językami programowania odkryłem jeszcze inne narzędzia, ale to już temat na osobny post.

21 września, 2012

Języki a Programowanie


Chodzi mi o to, żeby język giętki
powiedział wszystko, co pomyśli głowa.
-- Juliusz Słowacki

Jakiś czas temu został mi polecony artykuł "Mowa duszy" z Wiedzy i Życia (09/2011), który traktował o zależnościach pomiędzy myśleniem, a mówieniem. Jedna z ciekawych obserwacji dotyczyła osób bilingualnych, płynnie posługujących się dwoma językami, często wychowanych w dwóch kulturach w wyniku np. przeprowadzek. Eksperymenty pokazywały, że osoby te myślały na dwa różne sposoby, kiedy przedstawiło im się to samo pytanie w dwóch językach. Badania aktywności mózgowej pokazywały aktywacje innych obszarów w mózgu w odpowiedzi na pozornie tę samą treść. W moim mózgu pojawiła się iskierka.

Photo by Manjith Kainickara
Druga, równie ciekawa informacja dotyczyła pewnego chłopca z jakiegoś małego plemienia, gdzieś w inaczej cywilizowanym świecie. Badacz opowiadał, że dostrzegł wyjątkową płynność ruchów u jednego z młodych tubylców i postanowił nauczyć go tańczyć, ale jego wysiłki spełzły na niczym. Na czym polegała trudność? Naukowiec poległ, kiedy chłopak nie mógł zrozumieć, co to znaczy, że ma wykonać krok w prawo albo w lewo. Plemię, z którego młodzian pochodził nie znało pojęcia kierunków względnych. W ich kulturze wszystko znajdowało się na północ, wschód, zachód lub południe od punktu odniesienia. W takiej sytuacji dość ciężko opisać np. walca wiedeńskiego, który polega przecież na ciągłych obrotach. Nie chodzi o to, że nie da się tego zrobić, jest to po prostu bardzo trudne. Iskierka w moim mózgu przeskoczyła.

Z powyższych informacji i własnych doświadczeń mogę wysnuć pewien wniosek - warto uczyć się różnych języków, również programowania. Różne języki programowania uczą różnych idei; i nie chodzi o to, że program P napisany w języku A jest nie do napisania w języku B... ale często jest tak, że ten sam program w języku B jest najgorszym koszmarem programisty, podczas gdy w języku A to zaledwie parę prostych linijek kodu. Tak jak pewne tańce nie powstałyby w kulturze absolutnych kierunków, tak niektóre pomysły nie powstałyby w Assemblerze i C.

Do tematu jeszcze pewnie nie raz wrócę, bo czuję, że dotyka czegoś ważnego.