Kod do przyszłości?

Ciągła ewolucja języków programowania jest faktem powszechnie znanym. Każdy nowy język wymagał od programistów dużego – a czasem nawet gruntownego – przeszkolenia i poznania odmiennych zasad nim rządzących. Ostatnie dziecko Microsoftu, czyli C# (C Sharp), ma za zadanie ułatwić milionom programistów dostęp do nowych technologii bazujących na możliwościach XML-a (CHIP 11/98, s. 267) i nowej microsoftowej platformie.NET (CHIP 11/2000, s. 184). Jak łatwo się domyślić, głównym, i obecnie jedynym, producentem wszystkich narzędzi umożliwiających projektowanie i implementowanie rozwiązań programistycznych w języku C# jest firma Microsoft.

C++ + Visual Basic = C#

Założenia projektantów z firmy Billa Gatesa były bardzo proste: powiązanie zalet dwóch języków – efektywności C++ i prostoty Visual Basica. Programowanie w C# jest znacznie łatwiejsze niż w C++. Wiele czynności (np. tworzenie obiektów) odbywa się bez ingerencji programisty. Podobnie jak to miało miejsce w Visual Basicu, dostęp do wszystkich funkcji i zasobów systemowych jest w C# bardzo łatwy. Jednocześnie szybkość aplikacji pisanych w C# powinna być znacznie większa niż tworzonych w Visual Basicu.

Pętle, warunki, instrukcje…

Składnia C# jest bardzo podobna do znanej z języka C++ – konstrukcja warunków i pętli jest wręcz taka sama. Pojawiły się elementy z Visual Basica, na przykład instrukcja foreach. Komendy C# zdradzają pewne podobieństwo do Delphi i Javy ( try, catch ), a to nie bez przyczyny, gdyż głównym projektantem nowego języka jest autor Delphi. Podobieństwo składni C# do C i C++ znacznie ułatwi poznanie nowego narzędzia i zwiększy zainteresowanie programistów, którzy pisali do tej pory w tych językach. Wiąże się to z bardzo niskimi kosztami przekwalifikowania kadry, co powinno zachęcić do zmiany środowiska programistycznego na.NET.

Najbardziej znana funkcja w C++ – Main() – znalazła swoje nowe miejsce w klasie głównej. Wszystkie programy (nawet tak “poważne” jak Hello World) wymagają teraz od początkującego programisty znajomości budowy klas i obiektów.

Wspólne środowisko

Visual Basic przyniósł Microsoftowi duży sukces dzięki łatwości tworzenia i modyfikacji aplikacji, ale nie miał tak dużych możliwości działania na obiektach jak C++. C# jest językiem zorientowanym obiektowo, umożliwiającym tworzenie wydajnych aplikacji dla WWW i komponentów internetowych. Według założeń projektantów kod ma być bardziej zwięzły i przejrzysty przy bardzo rygorystycznej obsłudze błędów, polegającej na śledzeniu i kontrolowaniu każdego powstającego obiektu. Zaletą C# jest działanie we wspólnym środowisku uruchomieniowym (CLR – Common Language Runtime), które umożliwia współpracę z innymi kompilatorami, przez co część projektu może zostać zaimplementowana w innych językach bez utraty integracji projektu. Pisząc w języku C#, programista nie musi się już przejmować, czy pamięć zarezerwowana przez każdy obiekt została zwolniona i co się z nią dzieje po zamknięciu aplikacji. Jednakże tryb nadzorowania pamięci uniemożliwia używanie wskaźników znanych z języków C i C++. Ma to swoją zaletę – niekorzystanie ze wskaźników powoduje, że kod źródłowy jest dużo bardziej czytelny, a sam program w znacznie mniejszym stopniu narażony na błędy. Zwiększenie czytelności kodu jest bardzo korzystne w przypadku konieczności rozbudowy aplikacji (programy internetowe charakteryzują się bardzo dużą dynamiką zmian). Oczywiście, jeżeli zachodzi potrzeba użycia wskaźników, można to zrobić kosztem automatycznej obsługi pamięci znanej już z Visual Basica (odpowiada za to CLR). Mankamentem tego rozwiązania była mała szybkość pracy aplikacji pisanych w Visual Basicu. W C# uniknięto takich problemów dzięki precyzyjnemu deklarowaniu zmiennych, co niestety, w porównaniu z VB, znacznie zmniejsza elastyczność języka programowania.

C# w środowisku.NET

Założenia projektantów Microsoftu są bardzo obiecujące, jednakże, przynajmniej na razie, język C# nie jest używany w dużych projektach programistycznych, gdzie kod liczy bardzo dużo linii. W jedynym dostępnym środowisku Visual Studio 7.0 (.NET) w wersji beta 1 (patrz: s. 132) napisanie w C# nawet najprostszej aplikacji o bardzo małej złożoności algorytmicznej jest trudne do zrealizowania, a to z powodu ogromnej liczby błędów w samym środowisku. Miejmy nadzieję, że zostaną one całkowicie usunięte w ostatecznej wersji planowanej na połowę bieżącego roku.

Przyszłość programistów

Microsoft przeznaczył na promocję technologii.NET (w tym C#) 4 miliardy dolarów. Czas pokaże, czy jest to wystarczająca suma, aby przekonać programistów języków C++ i VB do używania C#. Aplikacje biznesowe są tworzone na wielu platformach systemowych, a w takiej sytuacji znacznie lepiej pisać w przenośnym języku, czyli np. C++, C czy Javie, tym bardziej że C czy C++ mogą być stosowane także w systemach Microsoftu.

W C++ pisze się zdecydowanie dłużej i żmudniej, ale – przynajmniej obecnie – programy tworzone w tym języku są znacznie bardziej efektywne niż te, które można będzie pisać w C#. Mimo to największym zagrożeniem dla firm software’owych jest duże uzależnienie się od Microsoftu. Programista decydujący się na pisanie aplikacji w C# będzie bardzo mocno związany z narzędziami i systemami operacyjnymi tej firmy. W razie potrzeby przeniesienia aplikacji C# na inną platformę systemową konieczne będzie napisanie jej całkowicie od nowa.

Info
Grupy dyskusyjne
Uwagi i komentarze do artykułu:
#
Pytania techniczne:
#
Internet
Visual Studio.NET
http://msdn.microsoft.com/vstudio/nextgen/
Prezentacje z seminariów Dev Days 2000
http://www.microsoft.com/poland/seminaria/ prezentacje.htm
Pomoc dla programistów C#
http://www.csharphelp.com/
Dyskusje, nowości, artykuły
http://www.csharpindex.com/
CodeGuru o C#
http://www.c-point.com/csharp.htm
Wszystko o C#
http://www.csharp-station.com/
Pytania i odpowiedzi na temat C#
http://www.manyquestions.com/
Więcej:bezcatnews