Wednesday, 18. February 2009, 19:11:54
Stało sięPrzymuszony przez nowe zadania w pracy (teraz ITENS S.C.) musiałem przełamać nienawiść do "jedynego słusznego" wydawcy "jedynych słusznych" technologii i "standardów" i poznać bliżej środowisko uruchomieniowe .NET...
Ten tekst konkretnie dotyczy C#, który jest hybrydą Javy i C++ (+ paru śmieci), łącząc "najlepsze cechy tych języków". No nie wiem... Dla mnie najlepszą cechą C++ jest pełna kontrola nad programem i szybkość jego działania, tutaj w to miejsce wstawili system z Javy - powodując, że pamięcią zarządza środowisko uruchomieniowe, a pełnej kotroli nad programem nie ma nawet ono...
Programy pisane w .NET są kompilowane, to prawda, wynikowe pliki mają nawet rozszerzenie .exe, jednak... są tylko zbiorem prekompilowanych do wewnętrznego języka (jak .jar-y) plikami obiektowymi, których dalszym uruchomieniem zajmuje się środowisko systemu operacyjnego. Niby nic wielkiego, jednak - taki program w pewnym sensie jest odtwarzany jak język skryptowy "linijka po linijce" (chociaż to nie jest dobre porównanie), więc siłą rzeczy taki kod muuuuli....
Ideą .NET nie jest jednak tworzenie gier ani skomplikowanych systemów przetwarzania danych, tylko SZYBKIE (i wygodne) pisanie aplikacji użytkowych (okienkowych), a tutaj spisuje się świetnie. "Wychowałem się" na środowisku VCL Borlanda, więc idea kreatora okienek (designer) jest mi bliska i uważam ją za niesamowicie wygodną. Sama obiektowość .NET-a (C#) też nie pozostawia wiele do życzenia (no.. może poza jakąś lżejszą i porządniejszą dokumentacją..), a napisanie prostego programu do komunikacji w sieci (tak, do chatów) to kwestia... 20 minut?
Nigdy nie lubiłem tej technologii, środowisko uruchomieniowe dla .NET 3.5 wymaga prawie 600MB żeby się zainstalować, kolejne tyle zarząda service pack 1 dla niego, całość działą wolno, a konieczność kompilacji kodu w trakcie uruchamiania spowalnia ten proces znacznie. Jednak - jest wygodna

Napisanie serwera proxy zajmie 300 wierszy (?), jakiś prosty programik do zautomatyzowania prac w systemie też nie jest kłopotem. A M$ wspaniałomyślnie udostępnia EDYTOR za free (Visual Studio Express znaczy). Szkoda tylko że licencja na pełnowartościowe środowisko kosztuje 2700 PLN (obecnie).
Zastanawia mnie jeszcze idea udostępnienia .NET Compact Framework dla windows mobile. Ja rozumiem wygodę takiego tworzenia aplikacji, ja rozumiem że .NET CF można używać tylko z pełnym VS, a to generuje dodatkowe zyski... rozumiem nawet że dla mojej wygody Windows Mobile 6.1 zawiera .Neta w sobie. Nie mogę tylko pojąć SENSU tej technologii (kompilowanie w trakcie uruchamiania) na procesorkach ARM, nawet tyh 624MHz. Mój Asus ma procesor 520MHz, a na łaskawe uruchomienie się Pocket Finance Diary muszę swoje odczekać :/ Jestem w stanie pojąć że ta niedogodność będzie mniej uciążliwa za rok, kiedy 1GHz pockety wejdą na rynek na stałe, ale... nie tędy droga! To oprogramowanie użytkowe, czy gra komputerowa?
Coraz częściej odnoszę wrażenie, że pogubiliśmy się, my, programiści. Mamy możliwości, mamy wygodę, szkoda tylko że o jakości mało kto dzisiaj pamięta... Bo przecież "ten algorytm dzisiaj wykonuje się 15sek, ale słowo, kupi pan 4-rdzeniowy komputer i będzie szedł w 10!", a wystarczy go trochę dopracować... zmienić sposób obsługi pamięci...
Gdzie te porządne algorytmy? Gdzie prawdziwe tworzenie, pisanie programów, które same w sobie są małym dziełem sztuki? Czasy się zmieniły, a ja najwyraźniej nie potrafię się w nich odnaleźć... klient zamówił, klient dostanie, w końcu płaci... klientowi działa? super, projekt zamknięty.
Enter.