10 okoliczności historii pisania programu

Są takie czasy, kiedy przypominamy sobie o czymś, co kiedyś zaczęliśmy, a potem o tym zapomnieliśmy. Jest to nie tyle, co bolesne dla tego czegoś, ale uciążliwe dla  naszego własnego sumienia. Nawiązuję tutaj szczególnie do projektów programistycznych, które wydały nam się niemalże idealne, a bardzo chcieliśmy, aby były udane i zakończone jednocześnie. Przedstawię tutaj krótką – może ironiczną, może trochę o charakterze satyrycznym – historię… „Historię Dowolnego Programu”.

Na każdy kolejny punkt należy spoglądać wzrokiem O_O, cokolwiek miałby on znaczyć.

Historia Dowolnego Programu

Przypadek zdziwienia (#1): „mój stary program się kompiluje!”

Otwieramy archiwalne źródło z dysku twardego i szybko dochodzimy do wniosku, że projekt jest fajny. Działa tylko w kilku przypadkach użycia, często sypie, ale jest jeszcze na tyle mały, że ma do tego prawo. Pojawia nam się przed oczami ambicja powrotu do projektu i jego rozwoju.

Inny przypadek, niekoniecznie zależny (#2): „program działa!”

Po długich próbach i testach, wielu zmianach w kodzie oraz wprowadzeniach nowinek technicznych, nagle wprowadzamy do kodu małą zmianę. Poprawiliśmy buga if(dStartPos == -1) na if(dStartPos != -1) i nagle nasze cudo spełnia nasze najśmielsze oczekiwania! Działa, i to znacznie lepiej, w nowej wersji! Tak! Wydaliśmy v0.2!

Wywody na temat kodu (#3): „program działa świetnie, ale ten kod jest tragiczny…”

Nagłe i do tego kompletne zażenowanie sytuacją. Kiedy już udało nam się usprawnić naszą aplikację, nagle okazuje się, że nie jest ona już do rozbudowy. tak dobra jak na początku. Kod wygląda obscesowo, a nasze oczy ulegają autodestrukcji po 17 sekundach oglądania go. Wiemy o tym i szybko je zamykamy, aby JEDNAK tak się nie stało. Mówimy sobie wtedy na pocieszenie…

Rewolucja (#4): „napiszę to od nowa! =)”

Nowy kod jest „świetniejszy”! Wyrzucamy wszelkie nawyki C, rozwijamy obiektową stronę i wszystko uelastyczniamy. Jesteśmy zadowoleni, że program działa nawet jeszcze szybciej, bo przy okazji dokonaliśmy paru optymalizacji. Cieszymy się na udany program, jednak mamy pewne wątpliwości…

Rozważania rewolucyjne (#5): „za mało tu opcji…”

Dopisujemy nowe funkcje użyteczności, typowe „bajery”, dodatki. W końcu pragniemy, aby program mógł być rozwijany przez innych, np. za pomocą pluginów. Myślimy jak przygotować API programu dla plików DLL, rozważając przy tym plan wypuszczenia programu do sieci.

Swawolny upadek rewolucji (#6): „wszystko się znowu sypie…”

Stwierdzamy, że biblioteki, których używamy od początku projektu (kiedy v0.2 był daleki od v0.1, a one są jeszcze z v0.1), są za stare. Aby wypuścić nasze dzieło do Internetu, musimy je zaktualizować. Ściągamy najnowsze wersje, zastępujemy nimi stare, wchodzimy znowu do projektu ulubionym IDE i w ruch opcja ‘Rebuild’!… ku zdziwieniu program skompilowałby się poprawnie, jednak zdziwienia tutaj nie będzie, a może właśnie BĘDZIE, ALE podwójne. Załamka nerwowa, bo nowe wersje bibliotek większości funkcji oznaczyło jak obsolete, a niektóre z tych bibliotek już nie współpracują z najnowszymi standardami.

Totalna rzeź i samoolśnienie (#7): „w tym wydaniu to nie może działać”

Chcemy chwilę odpocząć, nim cokolwiek ruszymy w naszym kodzie. Jest przecież masa rzeczy do poprawienia, niemalże cały program! Robimy sobie herbatę, tudzież kawę, surfujemy po Internecie i spostrzegamy coś, w co nie chcemy uwierzyć. „Dokładnie taki soft jak piszę, już istniał, po co ja to klonuję i do tego jeszcze sprawiam, że nie działa?” Po takich słowach człowiek…

Pierwszy Wariant (#8):

Po takich słowach człowiek trzaska drzwiami toaletowymi i zaczyna płakać w zamknięciu. Obładowany masą chusteczek higienicznych nie załamuje się, tylko powtarza sobie „mogę zrobić im konkurencję w pojedynkę!”

Drugi Wariant (#9):

Po takich słowach człowiek rezygnuje z życia i robi coś, co kompilator lubi mu zawsze sprawić – zachowanie-zagadkę! Otóż, owa rezygnacja z życia to czysta mistyfikacja! Piszemy program od nowa!!

(#0 lub #10): „powrót do początku”

Wszystko zaczynamy od nowa. Tym razem dajemy sobie potrójnie mocne postanowienie o ponadprzyzwoitej funkcjonalności oraz ukończeniu programu. Staramy się nie przypominać sobie tragedii z poprzedniej wersji i pędzimy jak wiatr, aby jak najszybciej napisać jak najwięcej. Już dnia pierwszego powstaje nam 30KB kodu i mamy podstawy do pierwszego, prawdziwego zadowolenia :)

2 odpowiedzi na temat “10 okoliczności historii pisania programu”

  1. Syriusz napisał:

    Podniosło mnie to na duchu…

  2. namek napisał:

    Nie ma za co ;)

Zostaw odpowiedź