Który język będzie następny?

Jeden z czytelników zapytał ostatnio, czy któryś z języków programowania zdobędzie (wyraźną) przewagę nad pozostałymi i zawładnie światem sterowania?

Pytanie to jest niezwykle istotne, ponieważ wielu integratorów i programistów ciągle szuka „właściwej” odpowiedzi. Niestety jednej jedynej poprawnej odpowiedzi nie ma. Różne problemy wymagają wykorzystania różnych języków programowania. Szczęśliwie jednak seria odpowiednich pytań i udzielonych na nie odpowiedzi pozwala wybrać ten właściwy. Pytania te dotyczą: użytkownika końcowego, typu tworzonej aplikacji, przewidywanej ilości instalacji aplikacji czy też długoterminowej strategii wsparcia produktu.

Po pierwsze należy zastanowić się, kto i jakiego rodzaju aplikacji będzie używał? Czy będzie to specyficzne narzędzie wykorzystywane w konkretnym procesie produkcyjnym, czy może narzędzie uniwersalne używane w wielu różnych miejscach w firmie? W ramach jakiego systemu operacyjnego będzie ono działało?

Aplikacje produkcyjne bazują zazwyczaj na którymś z systemów operacyjnych Microsoftu, podczas gdy spora część aplikacji ogólnego użytku może działać w ramach systemów Unix lub Linux. Systemy microsoftowe powinny wykorzystywać języki dobrze zintegrowane z tym środowiskiem, takie jak np. VB. Net czy C#. Systemy unixowe czy linuxowe są bardziej elastyczne, często pozwalając wykorzystać języki opensourcowe.

Innym czynnikiem wpływającym w znacznym stopniu na wybór języka programowania jest typ tworzonej aplikacji. Jeśli aplikacja zawiera jakiś szczególny interfejs użytkownika, wtedy najlepszym rozwiązaniem wydają się być JavaScript oraz AJAX (Asynchronous JavaScript And XML). Dla aplikacji bazodanowych i serwerowych części aplikacji webowych najbardziej korzystne są języki skryptowe, takie jak: Pearl, PHP, Phyton czy Ruby.

Jeśli głównym celem tworzonej aplikacji będą zadania związane z komunikacją oraz obsługą bazy danych, wówczas zaleca się korzystanie z języków obiektowych, weryfikujących typy obsługiwanych danych, czyli języków takich jak C++, C# czy Java. Dla aplikacji pracujących w systemach czasu rzeczywistego dobrym rozwiązaniem jest stosowanie języka takiego jak C++, który ma możliwość kontroli cyklu wykonawczego oraz narzucenia silnej kontroli typów danych.

Przewidywana ilość instalacji aplikacji czy też długoterminowa strategia wsparcia tworzonego oprogramowania również pomaga w wyborze języka programowania. Mniej popularne aplikacje typowo wykorzystywane są w kilkunastu instalacjach, a każda z nich może być obsługiwana przez kilkunastu użytkowników. W tym przypadku dobrym wyborem jest język rodzaju Visual Basica. Jego wykorzystanie minimalizuje wysiłek programowania i udostępnia odpowiednie środowisko testowania aplikacji, zapewniając przy tym profesjonalny interfejs. Ponieważ liczba wdrożeń jest niewielka, to i koszty wsparcia produktu nie mogą być duże. Cele te można w łatwy sposób osiągnąć, stosując języki z rodzaju Visual Basic.

W dużych, szeroko stosowanych aplikacjach z setkami instalacji i potencjalnie setkami użytkowników każdej z nich koszty naprawy i poprawy działania instalacji spowodowane błędami oprogramowania mogą być bardzo duże. Aplikacje takie wymagają więc profesjonalnego programowania, środowiska testowania i języka weryfikującego typy danych, takiego jak C# lub Java.

Wiele aplikacji przygotowanych jest specjalnie dla potrzeb części produkcyjnych zakładów. Aplikacje takie typowo zainstalowane są w kilkunastu egzemplarzach, oferują interfejs sieci web, zawierają pewne elementy bazodanowe i komunikacyjne oraz standardowo nie są aplikacjami czasu rzeczywistego.

Moim domyślnym wyborem dla tego typu aplikacji jest model AJAX, czyli użycie języka JavaScript przy tworzeniu interfejsu użytkownika części klienckiej aplikacji oraz VB. Net dla części serwerowej. Część serwerowa mogłaby zostać również napisana w Ruby, Pearlu, Pythonie czy PHP. Języki te jednak stworzone są przede wszystkim do obsługi kodu XML i stron webowych i nie mają rozbudowanej funkcjonalności komunikacyjnej powszechnie używanej w aplikacjach sterujących.

Udane, dobrze działające aplikacje tworzone są niemal w każdym możliwym do wyobrażenia języku – włączając w to: Smalltalk, Lisp, Fortrana czy APL. Jednakże dobre aplikacje sterujące powinny używać języka, który pozostanie w użyciu tak długo, jak wykorzystujący je system sterujący oraz powinny być serwisowane przez firmy o ugruntowanej renomie.

Należy również pamiętać, że dla wielu programistów konkretny język programowania nie jest rzeczą najistotniejszą. Na ostateczny wybór wpływ mają również inne kwestie, takie jak niezrozumiałe konstrukcje języka czy preferencje dotyczące jego składni. Pomimo ryzyka śmiało należy stwierdzić, że kolejnymi językami programowania przejmującymi kontrolę nad światem sterowania będą JavaScript i VB. Net dla niewielkich oraz Java- Script i C# dla dużych szeroko stosowanych systemów sterowania.

ce

Autor felietonu jest prezesem firmy konsultingowej,
zajmującej się przemysłowymi rozwiązaniami
z zakresu IT.

Artykuł pod redakcją dr. inż. Pawła Dworaka