Friday, July 18, 2008

Antywzorce w pracy programistów: Wymyślanie koła na nowo

Zastanawiam się czy wymyślanie koła na nowo ma sens. Ktoś napisał, że jeśli ma być ono bardziej okrągłe niż dotychczasowe to tak. Trudno odmówić sensu temu stwierdzeniu. Ja rozumiem je jako udoskonalanie istniejących rzeczy. Proces udoskonalania jest oczywiście dobry i potrzebny. Jednak podczas programowania „wymyślanie koła na nowo” nabiera czasem nowego, złowieszczego charakteru.

Większość problemów, z którymi się spotkałeś została już rozwiązana. Większość bibliotek, które opracowujesz po nocach została już napisana. Większość algorytmów, które wymyślasz w przypływie twórczego geniuszu już została opublikowana. Dlaczego więc nie korzystasz z tego bogactwa wiedzy?Napisałem „większość”, uwzględniając fakt, że „są na niebie i ziemi rzeczy, o których nie śniło się filozofom".

Jeśli Twoje, z pasją tworzone, autorskie rozwiązania mają charakter edukacyjny albo zwyczajnie robisz to dla własnej satysfakcji – tym lepiej dla Ciebie. Nauczysz się czegoś ciekawego i będziesz dobrze się bawić. Lecz jeśli pracujesz i zależy Ci na wydajności – korzystaj z dorobku innych. Pamiętaj, że ludzie po prostu kochają dzielić się swoją wiedzą i doświadczeniem. Gdyby było inaczej, nie mielibyśmy w internecie żadnej grupy dyskusyjnej.

Kłopot w tym, że większość uczelni kształcących programistów zniechęca do korzystania zewnętrznych bibliotek. No, bo po co używać JGAP w programie skoro można napisać algorytm genetyczny samemu? W ciągu pięciu lat takiej metodyki nauczania studenci nabierają dziwnych nawyków nieoptymalnej pracy, a potem przyjmując studentów do pracy musimy ich tego oduczać...ech...

4 comments:

  1. Do antywzorców zaliczyłbym jeszcze: co miałeś zrobić wczoraj - zrób jutro, będziesz miał dwa dni wolnego ;-)

    ReplyDelete
  2. W rzeczy samej! Już dodaję do katalogu:)

    ReplyDelete
  3. "No, bo po co używać JGAP w programie skoro można napisać algorytm generyczny samemu?"

    Ogólnie, to się z tym stwierdzeniem zgadzam, ale jak napisałeś we wcześniejszym paragrafie, algorytmy piszemy samemu w celach edukacyjnych, a właśnie po to jest szkoła.
    Dodam jeszcze, że osobiście bardzo nie lubię stosować technologii, których nie rozumiem.
    Czyli z jednej strony wole używać znanych i sprawdzonych bibliotek (no co, jestem leniwy :P ), ale nie lubie jak biblioteka robi coś magicznego, czego nie potrafił bym sam zrobić.



    BTW: Czy w tekście nie ma literówki? Java to nie całkiem moja działka, ale googole mówi, że JGAP to algorytmy genetyczne, a później piszesz o algorytmach generycznych.

    ReplyDelete
  4. Racja, była literówka...'t' jest blisko 'r' :)
    dzięki

    ReplyDelete