Czego naprawdę chcą programiści?

W ankiecie przeprowadzonej przez amerykański InfoWorld programiści ujawnili swoje konserwatywne podejście do tworzenia oprogramowania. Wybrali już najlepsze technologie internetowe oraz swoje ulubione narzędzia i nie chcą nic zmieniać.

W ankiecie przeprowadzonej przez amerykański InfoWorld programiści ujawnili swoje konserwatywne podejście do tworzenia oprogramowania. Wybrali już najlepsze technologie internetowe oraz swoje ulubione narzędzia i nie chcą nic zmieniać.

W całym sektorze IT można zaobserwować tendencję do maksymalnego wykorzystywania posiadanych zasobów przy minimalnych inwestycjach w nowe rozwiązania. Jak się okazuje, ta sama zasada dotyczy programistów, o czym świadczą wyniki ankiety dotyczącej programowania przeprowadzonej przez magazyn "InfoWorld". Programiści dużych aplikacji korporacyjnych, zapytani o to, jak funkcjonują w dzisiejszej rzeczywistości informatycznej, która podlega stałym rewolucjom ze strony coraz nowszych technologii, odpowiedzieli chóralnie, że najlepszym podejściem jest wykorzystywanie posiadanej wiedzy i umiejętności oraz inwestowanie w narzędzia i technologie, które udowodniły już swoją wartość, sprawdzając się w konkretnych zastosowaniach.

Języki programowania najczęściej wykorzystywane do tworzenia aplikacji:

Języki programowania najczęściej wykorzystywane do tworzenia aplikacji:

Ankieta, w której udział wzięło 467 profesjonalistów zajmujących się tworzeniem oprogramowania - od menedżerów zarządzających do programistów piszących rzeczywisty kod - nie przynosi wielu zaskakujących niespodzianek, ale wskazuje pewne interesujące tendencje. W pewnym stopniu ankieta odzwierciedla sytuację sprzed roku, kiedy to królowały aplikacje z interfejsami użytkownika opartymi na przeglądarce, a języki skryptowe takie, jak Python czy Perl cieszyły się uznaniem programistów, mimo intensywnej promocji zaawansowanych platform programistycznych firm Microsoft i Sun Microsystems.

Ze względu na obecną tendencję do żądania zwiększonego zysku z dokonanych już inwestycji, w tegorocznej ankiecie dodano pytanie o to, jakie technologie są dla firm najważniejsze oraz w które z nich firmy zamierzają zainwestować w ciągu kolejnych 12 miesięcy. Jeszcze jedno nowe pytanie dotyczyło natomiast planów wykorzystania outsourcingu w procesie tworzenia aplikacji. Uzyskane wyniki okazały się dużym zaskoczeniem.

Języki programowania i narzędzia skryptowe

Nie powinno być niespodzianką, że platformy Java i Windows - podobnie jak w poprzednich latach - nadal utrzymują dominującą pozycję. Podtrzymując zeszłoroczny trend, 64 procent programistów najchętniej wybiera język Java, podczas gdy Visual Basic zajmuje drugie miejsce z 56 procentami głosów.

Najchętniej wybierane platformy programistyczne:

Najchętniej wybierane platformy programistyczne:

Wśród dostawców narzędzi programistycznych pierwsze miejsce zajmuje firma Microsoft z 80 procentami głosów. Na kolejnych trzech miejscach uplasowały się firmy Oracle, IBM i Sun, które dostarczają narzędzia głównie przeznaczone do tworzenia aplikacji w języku Java.

Wciąż silna pozycja języków C i C++ pokazuje, że języki kompilowane nadal są podstawą systemów informatycznych w wielu przedsiębiorstwach. Podobnie jak w zeszłym roku, można też zaobserwować niesamowitą popularność języków skryptowych we wszystkich grupach zastosowań. W tym roku więcej głosów uzyskał jednak język Perl, pokonując język C. Oznacza to, że Perl, który powstał jako narzędzie mające na względzie przede wszystkim wygodę programisty oraz możliwość szybkiego osiągania zamierzonych rezultatów, cieszy się coraz większą popularnością wśród webmasterów i administratorów.

Dowodem większego zainteresowania architekturą cienkiego klienta (przeglądarka internetowa w roli interfejsu użytkownika) niż klasycznymi rozwiązaniami klient-serwer są wysokie notowania PHP, przewaga JavaScriptu nad innymi językami skryptowymi oraz dosyć powszechne wykorzystywanie skryptów systemowych w Uniksie. W sumie 48 procent programistów zamierza w ciągu roku zwiększyć wykorzystanie języków skryptowych. Bardzo dużym wzrostem popularności może też cieszyć się obiektowy język skryptowy Python, który zbierając dodatkowe 6 procent głosów, prawie podwoił wyniki z zeszłego roku.

Częstotliwość aktualizacji narzędzi programistycznych:

Częstotliwość aktualizacji narzędzi programistycznych:

Przyczyn wzrastającej popularności języków skryptowych należy szukać nie tylko w ich elastycznej składni, ale i w skróceniu cyklu kompilacja - uruchomienie - debugowanie właściwego tradycyjnym językom kompilowanym. Wzrost liczby poważnych projektów tworzonych w językach skryptowych można przypisać również coraz większej akceptacji takich rozwiązań wśród użytkowników. Za przykład może posłużyć tu klient wymiany plików P2P BitTorrent, który został napisany w Pythonie, podobnie jak wiele innych dużych projektów firm takich, jak Google, Industrial Light & Magic i NASA.

Tradycyjne platformy

Wśród tradycyjnych technologii programowania ważnym wskaźnikiem jest coraz większa przewaga platformy .NET nad klasycznym Windows API. W tym roku 53 procent programistów wskazuje .NET jako podstawową platformę programistyczną, która zajęła miejsce dotychczasowego lidera - technologii COM/DCOM. W efekcie COM/DCOM spadł na czwartą pozycję, ustępując miejsca rozwiązaniom opartym na systemach Unix/Linux oraz platformie J2EE. Trend ten ma szanse się utrzymać ponieważ 51 procent badanych deklaruje zwiększenie wykorzystania platformy .NET w ciągu najbliższego roku.

Taka sytuacja nie powinna dziwić nikogo, kto bliżej zainteresował się platformą .NET. Wprowadzenie koncepcji kodu zarządzanego, który jest nadzorowany przez jeden z podstawowych elementów platformy .NET, a mianowicie CLR (Common Language Runtime) przenosi programowanie Windows na zupełnie nowy poziom i jest istotnym udoskonaleniem klasycznego podejścia do tworzenia aplikacji. Większość programistów, która zainteresowała się nową platformą, generalnie wystawia jej pozytywne oceny.

Technologie, których wykorzystywanie wzrośnie w ciągu najbliższych 12 miesięcy:

Technologie, których wykorzystywanie wzrośnie w ciągu najbliższych 12 miesięcy:

Mimo dużej popularności platformy .NET, nie widać tak samo silnego zainteresowania językiem C#. W pełni obiektowy język programowania zaprojektowany specjalnie pod kątem CLR i platformy .NET, który bierze to, co najlepsze z języków C++ i Java, jednocześnie uzupełniając ich braki, często był określany jako silny konkurent, który wyprze język Java. Tymczasem, jak wynika z przeprowadzonej ankiety, język C# nabiera co prawda popularności, ale jego dorobek jest na razie bardzo skromny.

W porównaniu do sytuacji sprzed roku, liczba programistów deklarująca wykorzystywanie języka C# wzrosła o 6 procent. Jednak nadal prawie dwa razy tyle uczestników ankiety używa języka Visual Basic raczej niż C#, co wskazuje, że większość nowych użytkowników platformy .NET to dotychczasowi programiści Windows, a nie byli programiści Javy.

Z drugiej strony, mimo że Java pozostaje najczęściej wybieranym językiem programowania, zaledwie mniej niż połowa ankietowanych wybiera J2EE jako swoją platformę uruchomieniową. Reszta prawdopodobnie preferuje tradycyjne API w połączeniu z serwerami Apache i Tomcat.

Diabeł tkwi w szczegółach

Podobnie jak w zeszłym roku programiści wciąż prezentują konserwatywne podejście jeśli chodzi o wprowadzanie nowych platform, narzędzi i technologii. Dlaczego tak się dzieje, można wnioskować na podstawie wypowiedzi poszczególnych ankietowanych. Okazuje się, że kwestie zakupu nowych narzędzi, to tylko jedno z zagadnień. Uczestnicy ankiety twierdzą, że większość problemów nie jest związana z ograniczeniami stosowanego języka programowania, platformy czy technologii, lecz z funkcjonowaniem zespołów programistów oraz samym procesem tworzenia oprogramowania w ich firmie.

Z wypowiedzi wielu ankietowanych wynika, że między menedżerami projektów a programistami jest duża bariera komunikacyjna. Wielu programistów za pojawiające się problemy wini menedżerów, którzy są albo niewystarczająco wykwalifikowani, albo wręcz nie mają wyobraźni. Mimo że są to wypowiedzi, których każdy menedżer może się spodziewać, to znajdują się wśród nich także bardziej konkretne zarzuty. Dobrym przykładem jest typowe żądanie od programistów wykonania zadania na wczoraj, przy minimalnym wykorzystaniu zasobów finansowych i ludzkich. Źródłem problemów jest też nieumiejętność zidentyfikowania priorytetowych zadań na każdym etapie rozwoju aplikacji.

Kolejnym problemem jest dodawanie do projektu nowych wymagań - które nie zostały oczywiście przewidziane w pierwotnym planie tworzenia aplikacji - bez zmiany terminów dostarczenia gotowego produktu. Przyczyną są często zbyt duże uprawnienia zbyt wielu menedżerów do ingerowania w projekt.

Jednak czasami nawet precyzyjnie zaplanowany i wykonywany wg harmonogramu projekt może się nie powieść z powodu krótkowzrocznej analizy zapotrzebowania na konkretne funkcje. W ten sposób mnóstwo czasu i innych zasobów marnuje się na prace, które nie przyniosą żadnych korzyści, ponieważ zostaną zarzucone przed dokończeniem projektu, jak tylko okaże się, że odbiorcy niektórych funkcji wcale nie potrzebują.

Ogólnie programiści są zgodni, że tworzenie oprogramowania przebiegałoby sprawniej, gdyby zasady zarządzania projektem zostały bardziej sformalizowane, a kompetencje menedżerów wyraźnie określone. W połączeniu z ułatwionym przepływem informacji pomiędzy zespołami pozwoliłoby to zwiększyć ich produktywność i lepiej wykorzystać dostępne zasoby.

Wymieniając konsekwencje braku globalnego zarządzania projektem, programiści zwracają uwagę na powstawanie wielu samodzielnych i niezależnych zespołów, które stosując różne strategie tworzenia oprogramowania, różne platformy i różne architektury nie mogą efektywnie współpracować i nie wiedzą, jak ich praca ma się do ogólnego planu.

Rozwiązanie wielu z tych problemów może okazać się bardzo trudne tak długo, jak stosowany będzie odgórny model zarządzania, w którym wszystkie decyzje podejmowane są przez menedżerów bez konsultacji z programistami, którzy przecież wykonują całą najtrudniejszą i najważniejszą pracę - tworzą konkretny produkt.


Zobacz również