Wyginięcie BASIC-a było katastrofą. Python jest lepszy? [OPINIA]

Przekonanie, że programowania należy zaczynać uczyć od "poważnych" języków doprowadziło do tego, że dziś każdy ma komputer, a mało kto potrafi go zaprogramować - nawet do najprostszych zadań. Zamiast tego korzystamy z gotowców, co nie zawsze ma sens.

Wyginięcie BASIC-a
Wyginięcie BASIC-a
Źródło zdjęć: © PxHere
Kamil J. Dudek

Edsger Dijkstra, przytaczany z nabożną dumą na wielu kierunkach technicznych, był autorem nie tylko algorytmów, ale także dwóch popularnych i szalenie pretensjonalnych cytatów. Pierwszym z nich jest "Informatyka ma tyle samo wspólnego z komputerami, co astronomia ma z teleskopami", a drugim "Nie da się porządnie nauczyć programowania żadnego studenta, który miał kontakt z językiem BASIC". Są ustawicznie nadużywane. Pierwszy ma służyć za dowód na to, że samo siedzenie przed komputerem nie czyni nikogo programistą. Drugi - że BASIC jest niepoważną stratą czasu i szacunek do samego siebie nakazuje sięganie po coś lepszego.

Obie przytoczone maksymy to kompletne bzdury. Optymalizacja oprogramowania absolutnie wymaga dziś konkretnej znajomości działania np. procesora. Bez tego nie zastosuje się właściwych instrukcji i nie zlokalizuje kodu kompilowanego do niewydajnej postaci. A gdy mowa o BASIC-u - sugerowanie, że jeżeli ktoś ma czelność sięgać po proste języki użytkowe, to jest intelektualną ofermą, to już nic ponad zakompleksiony szowinizm i zwykły gatekeeping.

Dalsza część artykułu pod materiałem wideo

Ułatwienia vs półśrodki

Excel wprowadza właśnie obsługę programowania bezpośrednio do arkusza, bez makr. Robi to najwyraźniej w dość postrzelony sposób, ale nie szkodzi. Jaki język wybrano do tego celu? Python. Niby logiczne. Python jest bardzo popularny w data science (podobnie jak nieobecny nigdzie indziej R). Ale dlaczego stał się tak popularny w tej dziedzinie? Uchodził za język, który jest wystarczająco łatwy, by nauczył się go inżynier nie-programista. Łatwy import bibliotek, sympatyczna składnia i przyzwolenie na tworzenie bardzo brudnego kodu - czyli coś w sam raz dla kogoś, kto nie chce programować, a po prostu coś policzyć na komputerze.

Python otrzymał branżowe rozgrzeszenie/społeczne przyzwolenie na bycie językiem dla nowicjuszy. Wszak zarazem potrafi być potężnym środowiskiem programowania, umożliwiającym tworzenie naprawdę zaawansowanych rozwiązań. Ale jako, że nie stosował nigdy podejścia w którym prostota jest osiągana za wszelką cenę, nie "plugawi" on użytkownika poprzez naznaczenie go piętnem języka dla pięciolatków. Zgorzkniały elitaryzm w stylu Dijkstry trzyma się niezachwiany.

Z tym, że Python wcale nie jest prosty. A raczej - nie jest dostrzegalnie prostszy niż np. C#. A w dobie nowych środowisk .NET, projekt w C# można stworzyć i zbudować w byle jakim edytorze, jak to ma miejsce z Pythonem. Dostęp do repozytorium NuGet pozwala znaleźć tyle bibliotek, ile dusza zapragnie - także na równi z Pythonem. Przewaga Pythona bierze się więc chyba z uprzedzeń, poglądów bez pokrycia i niefortunnej chronologii.

Z tym, że językiem do zastosowań ad hoc nie powinien być ani C# ani Python. Skłonienie komputera do wykonywania autorskich programów powinno być maksymalnie uproszczone, wykraczając poza wygodę "języków dla dorosłych". Można narzekać, że programy tworzone w językach wymyślonych na proste potrzeby są niewydajne. Ale alternatywą jest w ogóle nie dać łatwej okazji do stworzenia własnego programu. Ta właśnie "alternatywa" jest dzisiejszą rzeczywistością.

Programista mimo woli

Naukowcy lubią się uczyć Pythona, bo (poza obiektywną przydatnością), praca z nim jest umiejętnością pozwalającą na łatwiejsze przebranżowienie ze świata nauki do komercji. Szkoły uczą Pythona właśnie w nadziei, że każdego ucznia uczynią potencjalnym programistą. Jest on niewątpliwie progresem względem Turbo Pascala w okienku Trybu MS-DOS (którego wciąż można było zobaczyć w szkołach nawet jeszcze kilka lat temu!). Ale czy uczenie Pythona w szkołach pomaga tworzyć z kraju informatyczną potęgę? Niektórzy twierdzą, że tak. Mnie z kolei nie opuszcza przekonanie, że choć Python jest prosty, przydałoby się coś "obrzydliwie prostego". Czymś takim był Basic.

Dziś Basic jest przestarzały, zbędny i uchodzi za dowcip. Podobne opinie mają środowiska stosujące projektantów RAD. Mają to być półśrodki służące do budowania ciężkich programów, środowiska niezdatne do tworzenia w nich rozbudowanych rozwiązań. Zamiast tracić na nie czas, należy od razu sięgać po narzędzia profesjonalne.

Brak rozwiązań

Z tym, że to niekoniecznie prawda. Istnieje duża szansa, że konieczność obcowania z kodem Pythona w IDE zniechęci do próby samodzielnego zaprogramowania jakiegoś małego projektu. Skromne, krzywe i proste mini-aplikacje, pisane w pięć minut to domena, w której wygrywają dialekty Basica. Nawet, jeżeli chodzi tylko o to, że w Pythonie to samo trwałoby nie 5 minut, a całe… 10. Bo czasem tyle wystarczy by poniechać próby samodzielnych rozwiązań. To dlatego tak często uczniowie decydują się w ogóle nie stosować komputera, jeżeli Excel nie potrafi sam czegoś zrobić.

Uczenie super-prostych języków celem zapoznania z algorytmiką i rozwiązywaniem problemów (zamiast kształcenia ma Junior Software Developera) mogłoby przynieść wymierne korzyści dydaktyczne… o ile nie jest na tę dyskusję za późno, i to nie z powodu wszechobecności Pythona. Możliwe, że wkrótce tworzenie prostych mini-programów stanie się na nowo przystępne dzięki generatywnej sztucznej inteligencji. Zadanie byłoby po prostu dyktowane do AI, które odpowiadałoby kodem.

Niewątpliwie przywraca to rolę komputera osobistego jako narzędzia do uruchamiania własnych (w jakimś znaczeniu) programów. Ale wysokie ryzyko, że otrzymany kod będzie stosowany bez zrozumienia, podważa wiele potencjalnych korzyści dydaktycznych. Być może Python okazuje się być optymalnym rozwiązaniem na takie okoliczności…?

Kamil J. Dudek, współpracownik redakcji dobreprogramy.pl

Programy

Zobacz więcej
programowaniebasicit.pro
Wybrane dla Ciebie
Komentarze (110)