Miski do mleka

Masajowie uważają, iż mycie wodą naczyń do mleka daje mleku przykry zapach; dlatego myją te naczynia w krowim moczu. Za Kopalińskim

Miłość i nienawiść

Te dwie czuję do MATLABa. Z jednej strony wygoda manipulowania macierzami, tablicami danych numerycznych, potężne wbudowane funkcje. Niezłe działanie jako interaktywny megakalkulator, dobry dostęp do zmiennych i do poprzednich poleceń. Fajny Profiler do optymalizowania czasu wykonania kodu. Pisałem swego czasu obliczanie RMS sygnału w ruchomym oknie (zainspirowany tym, że Adobe zoptymalizowało algorytm w Audition 3.0 do tego stopnia, że zaczął się czasem mylić), zacząłem od prostego przetłumaczenia definicji RMS na MATLABese. Działało ale… po spędzeniu upojnych chwil z Profilerem i ostrym kombinowaniu, zaczęło działać jakieś 50-100 razy szybciej :-).  I nawet nie przedobrzyłem jak Adobe.

Z drugiej strony: cóż za bałagan! Dynamiczne typowanie powoduje, że nie wiadomo co się dostaje jako parametr funkcji i trzeba robić milion sprawdzeń: czy zmienna liczbowa, czy macierz/tablica, a ile wymiarów. Zmienne łańcuchowe też pokręcone. Połączenie ostatniego z przedostatnim powoduje, że porządne oprogramowanie tego, co zwraca dialog wyboru plików równa się wielkiemu bólowi w pupie – większość moich podręcznych programików przeto po prostu wywala się po anulowaniu dialogu lub wybraniu tylko jednego pliku, bo najzwyczajniej nie chciało mi się z tym męczyć. Brak indeksowania tablic od zera. Struktury – może to ja głupi jestem, ale napisanie złożonej struktury zawsze kończy się potężnymi problemami z dostępem do poszczególnych poziomów struktury i niekoniecznie eleganckimi obejściami. Niekonsekwencja w konwencjach: funkcje liczące pokrewne rzeczy (np. statystyczne testy Manna-Whitneya i t dla dwóch grup) zwracają wyniki (hp) w innej kolejności, bo po cóż w tej samej? Pisanie interfejsu użytkownika – ręcznie nawet nie chcę sobie tego wyobrażać, ale wbudowany GUI Builder też jest delikatnie mówiąc daleki od doskonałości. Procedury dostępu do karty dźwiękowej chyba też mają poważne problemy ze sobą, może tylko w połączeniu z MATLABowskim GUI, w każdym razie mój applet do kalibracji systemu audio działa poprawnie w jakichś 80% przypadków.  Żeby nie było – profesjonalnym programistą nie jestem, ale parę działających rzeczy udało mi się w życiu napisać. Poza tym MATLAB nie jest dla profesjonalistów, tylko dla ludzi.

I wreszcie – działanie interfejsu. Na miłość FSM, czemuż to jest takie ospałe, zarówno przy starcie jak i w użytkowaniu? Podejrzewam, że podobnie jak w przypadku SPSSa firma ułatwiła sobie pisanie cross-platformowe i rzecz chodzi na maszynie wirtualnej. Rozumiem, że trzeba sobie ułatwiać, ale czemu kosztem użytkownika, który siedzi przed ekranem i czeka aż się zakończy prosta operacja w rodzaju wklejenia paru tysięcy komórek albo nawet wyciągnięcia dawno nieużywanego okna na wierzch…

Advertisements

Comments are closed.

%d blogerów lubi to: