Kompilacja – jaka trudna to sprawa

22 Grudzień 2009 at 22:59 2 uwag

No to oficjalnie czas zacząć cykl o niekompetentnych współpracownikach. Jako że ostatnimi czasy w ramach zajęć na uczelni trzeba przygotowywać masę projektów będzie na czym pokazywać przykłady skrajnego “lepiej żeby ten człowiek nie miał potomstwa”. Jako że ciąg moich złych decyzji życiowych jest rozbieżny do nieskończoności stało się tak że w tym semestrze wszystkie projekty tworzę z tym samym człowiekiem. Dla ustalenia uwagi nazwiemy go tak samo jak możemy go znaleźć na WoWie czy jak mówią na niego znajomi – Plagia. Do przewidzenia jest to że jest równie kompetentny jak blondynka więc możecie się spodziewać sporej ilości wpisów w tym temacie…

Człowiekowi który wie co to jest kompilator nie trzeba tłumaczyć co to jest – no bo przecież wie – pozostałym osobom wypada szepnąć słówko komentarza kompilator to taki magiczny cuś zmieniający kod niezrozumiały dla normalnych ludzi (za to zrozumiały dla tych zwyrodniałych istot mi podobnych – informatyków) na kod zrozumiały dla komputera (w szczególności dla kilku(nastu) ludzi którzy już zapewne zapomnieli że za drzwiami istnieje jakiś świat – no dobra będzie ich więcej bo jednak ktoś pisze kompilatory).

Para szarych komórek powinna wystarczyć żeby dość do wniosku że przejście przez kompilacje jest jak mieć działającego cosia a mieć kupę gruzu. Oczywiście przejść kompilacje nie jest tak prosto, kod musi być poprawny składniowo i dużo takich różnych innych rzeczy o których mało kto pamięta (zupełnie jakby jakiś wiersz pisać, takiego trzynastozgłoskowca – ile trzeba się nasiedzieć na kibelku żeby dobrać odpowiednie słowa …). Ale kompilator nam powie gdzie ten gruz się kupy nie trzyma żeby można byłą go nią pokleić.

I tutaj zaczyna się problem. Bo po pierwsze, taki oto Plagia ma coś zrobić do projektu, który został zaprojektowany do współpracy z linuxem, oczywiście żeby uprościć proces kompilacji miał dostarczonego przeze mnie Makefile (kolejny magiczny cuś który uruchamia kompilacje po wpisaniu make zamiast prostego polecenia składającego się przy odrobinie szczęścia jedynie z 300 znaków – przy większym projekcie oczywiście). Więc co robi? Jedynym logicznym wyjściem jest odpalenie linuxa i wpisane make, no ale po co się męczyć trzeba by zamknąć Word of Worcraft, ba wyłączyć windowsa – a to jest cholera niebezpiecznie jak raz do zamkniesz pewnie już się drugi raz nie włączy nie… Wyobraźcie sobie że ziomal traci 2h na próbę skonfigurowania projektu w Dev-Cpp (taki kompilator C++ dla Windows) no i oczywiście mu się nie udaje. Zgadniecie co robi? … Jasne że nie! Wysyła kod bez próby kompilacji czy zupełnie jakiejkolwiek weryfikacji poprawności.

Powiedzcie mi co można z czymś takim zrobić? Czy nie chcecie sami wziąć siekiery i pozbawić go możliwości rozrodu? Po co sprawdzać czy takie “skrócenie” siekierą jest bezpieczne skoro da się to zrobić na pewno jest bezpieczne i zadziała (przynajmniej podążając jego logiką – skoro klawiatura kod przyjęła i Windows (a fe) raczył go wyświetlić to ten na pewno jest dobry). Nie muszę chyba już wspominać że przez kolejne 3 dni projekt się nie kompilował …

No dobrze, skoro uruchomienie Linuxa przerasta jego możliwości to może jakiś język muli-platformowy? Czemu nie, stało się aplikacja w Pythonie z interfejsem w GTK+. Owszem udowodniła że on coś potrafi, bo mi uruchomienie takiego zestawu na Windowsie zajęło 3 dni – ale jak wiadomo OpenSource nie jest mile widziany na Windowsie więc zdarzają się problemy. Co gorsza zdarzył się platform-dependend bug, który uniemożliwiał korzystanie z aplikacji na Windowsie. Więc co robi nasz “zdolny” programista tak przywiązany do swojego Windowsa? Zasugerujecie że poszuka łatki na błąd, albo po prostu postara się go obejść. Otóż nie, mylicie się! Będzie programował w ciemno! No bo po co sprawdzać czy działa? Przecież się uruchomiło, co z tego że zawiesi się przy pierwszym kliknięciu, “ponoć u Ciebie działa dobrze”, w tym problem że znów nie działa… i nie działało prawie dwa tygodnie dopóki sam nie znalazłem obejścia problemu.

Kolejne podejście wydaje się już bulletproof. Użyjemy Visual Studio pisane z myślą o Windowsie przez developerów, którzy za ścianą mają developerów Windowsa. Nie zgadniecie co tym razem się nie udało. Doświadczony użytkownik Windowsa (w końcu opalił GTK+) nie jest w stanie zainstalować Visual Studio. Tutaj zostaje tylko przytoczyć dwa cytaty, pierwszy mojej nauczycielki informatyki z gimnazjum: “Zrobili to już tak prosto, że małpy by sobie z tym poradziły, tylko klik, zmień płytę, klik” oraz drugi kolegi z roku “Z którym kliknięciem w next sobie nie poradził?”. Z chęcią usłyszał bym Wasze pomysły co mogło się nie udać i dlaczego. Osobiście skłaniam się do tego że musiał posadzić kobietę na klawiaturze podczas tego procederu, którego powinni mu zakazać dla dobra ludzkości – to co prawda tylko domysły, ale jak inaczej można popsuć instalację niż siadając na enter gdy ta podświetla guzik “Anuluj”?

Entry filed under: Wieści z frontu. Tags: , .

Początek Zamknięcie roku i jakieś towarzyszące im szopki.

2 komentarzy Add your own

  • 1. SceNtriC  |  11 Luty 2010 o 22:46

    Ja tylko się wtrącę – Dev-C++ nie jest kompilatorem, tylko IDE (zintegrowanym środowiskiem do tworzenia oprogramowania). O ile mnie pamięć nie myli, jako kompilator użyty jest tam MinGW, który jest z kolei zmodyfikowanym GCC (dobrze mówię?).

    Jak zawsze muszę wtrącić uwagę terminologiczną ;)

    Pozdrawiam

    Odpowiedz
  • 2. mamut  |  12 Luty 2010 o 20:05

    Jak najbardziej pod DevCpp kryje się MinGW i tak jest to gcc przystosowane dla windowsa, ale tak naprawdę większość utożsamia je ze sobą bo nie wyobraża sobie innego sposobu kompilacji (z konsoli windowsa – chociaż ta ledwo zasługuje na miano konsoli; czy z poziomu CygWin’a czego z kolei nikt normalny nie robi – ostatnio zainstalowałem CygWina i nie wiem jak mogłem wcześniej bez niego żyć na windowsie (odpalany średnio raz na trzy miesiące…)

    Gdyby nie terminologia nikt by nas nie rozpoznawał na ulicach i nie wiedział że trzeba uciekać ;)

    Odpowiedz

Dodaj komentarz

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Zmień )

Twitter picture

You are commenting using your Twitter account. Log Out / Zmień )

Facebook photo

You are commenting using your Facebook account. Log Out / Zmień )

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Co wam się podobało …

Jedno kliknięcie upiększy Twoją skrzynkę - wypadało by podać jej adres ;) - powiadomieniami o nowych wybrykach ludzkiej wyobraźni ...


Follow

Otrzymuj każdy nowy wpis na swoją skrzynkę e-mail.