Witam. Postanowiłem podzilić się z Wami kilkoma obawami i jednocześnie dać upust frustracji.
Przeglądałem niedawno zawartość katalogu /specyfikacje_i_manuale. Niby nic wielkiego, wszak należy to robić często pracując nad jakimś projektem. Robiłem to jednak z troszkę innego powodu - porównywałem. Porównywałem jego zawartośc z zawartością katalogu sprzed blisko pięciu lat i nie mogłem wyjść z podziwu nad ogromem wiedzy, którą kiedyś przecież musiałem przetrawić. Cóż takiego mnie sprowokowało do pisania? Ano. Wspomniane pięć lat temu posiadałem w owym katalogu takie rzeczy: 'HTML Tutorial' Pawła Wimmera, php manual + kursy (głównie PHP3), kilka kursów JavaScript. W zasadzie niewiele. Oczywiście byłem wówczas początkującym Webma(j)sterem, a programistą prawie żadnym. Tych kilkanaście plików wystarczało zupełnie do stworzenia dynamicznych stron www, z których do dziś jestem dumny, choć zakończyły już swój żywot w sieci.
Dzisiaj, przeglądając wspomniany katalog ulegam wrażeniu, że coś tu nie gra. Kiedy zbieram się do pisania nawet prostej aplikacji webowej, wiekszość czasu zajmuje mi przegląd dostępnych technologii, które w danym programie można spróbować wykorzystać. Samo w sobie nie jest to złe, ale powoduje spory zamęt. Wszystkie za i przeciw muszą być przecież rozważone np. użycie jednej technologii implikuje użycie innej, która ni w ząb nie pasuje do całości, albo jest przysłowiowym wyciąganiem armaty na wróbla. Dotyczy to również rozszerzeń php, czy gotowych pakietów kodu tzw. "ponownego użycia". Wszystko to byłoby do zniesienia, gdyby nie brak jednolitych standardów aplikacji. Prawie każdy programista tworząc aplikację decyduje się na konsekwentne używanie pewnych technologi. W światku php'owców (nie tylko) najczęściej wybiera się którąś z baz SQL, a dane prezentuje w (X)HTML z technologiami towarzyszącymi. Proste prawda? To teraz napiszcie program, który będzie działał na każdym serwerze, bedzie posiadał implementacje typu 'na wszelki wypadek gdyby czegoś na serwerze nie było', był możliwy do obsłużenia przez wszystkie przeglądarki www i jeszcze umożliwiał dalszą prostą rozbudowę o dodatkowe moduły (cóż - to chyba standard). Żeby było weselej, proponuję przedstawić problematyczny kod na forum i poprosić o wskazanie słabych stron, ewentualnych problemów. Gwarantuję, że w wielu przypadkach znajdzie się 'życzliwy', który stwierdzi, że "wogóle napisz to to inaczej, bo sie nie trzyma standardów". W takim razie zapytuję: Co "trzyma się" standardów, skoro nie ma żadnych ustalonych (poza standardami kodowania)? Wszystkie dotychczasowe próby standaryzacji aplikacji webowych kapitulują w obliczu nowych technologi i mnogości konfiguracji serwerów dla których są przeznaczone. Oczywiście głupie byłoby twierdzenie, że nic się nie robi w kierunku poprawienia tej sytuacji, lecz proces ten następuje bardzo wolno i osobiście upragnionego końca nie widzę.
Nie chcę bynajmniej jednego "właściwgo" standardu (taki próbuje wylansować Microsoft), a raczej pragnę zrzec się odrobiny wolności w projektowaniu, aby przy każdym projekcie nie rozpoczynać zabawy od określania, co wogóle będzie wykonalne, a z czego muszę zrezygnować, bo inaczej pogubię się na poziomie implementacji. Pisząc kod klas zaczynam zwykle od słówka 'abstract'. Nie muszę chyba tłumaczyć, że biorę w ten sposób pod uwagę różne ewentualne implementacje. Szkoda tylko, że coraz cząście łapię się na tym, że nawet proste klasy ujmuję w szerszy kontekst, bo znajduję gdzieś alternatywę i chcę ją uwzględnić "na wszelki wypadek". Czy ktoś może mi powiedzieć kiedy mam przestać myśleć typami, a w końcu coś zakodować? Jest taka zasada: "Nie będziesz tego potrzebował". Problem w tym, że jakoś ciężko mi ją z czystym sumieniem stosować. Inna zasada: "Da sie to zrobić inaczej" - jest obecnie moją najwiekszą zmorą i nie daje spać. Na koniec konkluzja. Można to wszystko ogarnąć, wypracować własne standardy. Nie pytam zatem o przyszłość obecnych aktywnych programistów aplikacji webowych, ale o przyszłość osób, które dopiero teraz wchodzą w ten skomplikowany światek i są przerażone ilością wiedzy, którą muszą wchłonąć. Pytam, ile czasu zajmie im filtrowanie informacji, czy się nie zniechęcą i na koniec - czy ich wiedza i umiejętności będą stały na odpowiednio wysokim poziomie. Pytam dlatego, że mimo kilkuletniego doświadczenia miewam problemy, które wydają się czasami dziecinne i budzą śmiech bardziej doświadczonych programistów lub tych, którzy nie są szczególnie doświadczeni, ale akurat ten konkretny kawałek wiedzy opanowali przede mną.
Pozdrawiam.