03 czerwca 2008

Skazany na .NETa

JCommerce, pokój Tampere, siedziba developerów Javy. Siedzi nas tu aktualnie trzynastu (były lekkie przetasowania personalne). Dwunastu sprawiedliwych klepie w Javie albo przegląda Onet (pozdrowienia dla Blejza ;), a ja jeden siedzę w kąciku, skazany na .NETa.

Różnie już było - a to koledzy z pokoju grozili mi linczem albo chociaż wygnaniem, a to robili mi kompromitujące zdjęcia z otwartym Visual Studio i książką do C# na stole - a ja nie dośc, że cierpię katusze bycia czarną owcą zespołu, to jeszcze muszę się męczyc z tym pieprzonym środowiskiem.

Siedzę tak sobie w moim kąciku i narzekam na różne małe, ale jednak istotne szczegóły, do których już tak przywykłem w Eclipsie i ogólnie, przy pracy z technologiami Javowymi, że bardzo mi ich brakuje w VS oraz przy pracy z C# i Truevision 3D (to taki framework, przepraszam, zrąb programowy czy programistyczny, do robienia grafiki i gier 3D, oparty na DirectX, który muszę rozpracowac, i właśnie dlatego jestem skazany na .NETa).

Jest tego trochę:

* czemu ten cholerny VS nie zamyka mi nawiasów? Takie to proste. Nawet, zdawałoby się, głupi DEV-C++ to ma. Nawet Zajączek 3.2 do pisania w PHP to ma.

* i przenosi mi otwarte klamry do następnej linijki, podczas gdy ja właśnie się nauczyłem Jednie Słusznej Drogi zostawiania ich w tej samej linijce...

* brakuje mi diabelnie takiego małego bajerku, który znam z Eclipse'a, gdzie po umieszczeniu kursora na jakimś identyfikatorze w kodzie edytor podświetla mi wszystkie wystąpienia tego samego identyfikatora w zasięgu lokalnym. Bardzo ułatwia to śledzenie przepływu programu bez konieczności odpalania, ustawiania breakpointów, a nawet wielokrotnego wciskania CTRL+F.

* czemu WSZYSTKO związane z Microsoftem jest albo płatne, albo wymaga rejestrowania się na tysiącu jakichś piekielnych serwisów? Ściągnięcie dowolnego tutoriala czy przykładowej aplikacji, napisanej pod Truevision, wymagało ode mnie podania tych cholernych danych tu i ówdzie i już się boję tego spamu czy jakichś cholernych newsletterów, którymi będę zasypywany...

* MSDN jest taaaakiiii wooolnyyy... strona, będąca encyklopedią i źródłem wiedzy na temat C# i innych .NETowych języków jest wypełniona mnóstwem niepotrzebnych wodotrysków, które potwornie spowalniają jej pracę. Tak mi tu brakuje prostych, opartych na trzech ramkach i czystym HTMLu reference guide'ów dotyczących Javy i pochodnych, które może nie wyglądają szałowo, ale działają błyskawicznie.

Dobra, nie będę więcej marudził. Powiem krótko: wolę Javę. A może nawet nie Javę, bo sam C# (to było moje pierwsze zetknięcie z tym językiem) wygląda w porządku i wcale taki straszny nie jest, ale jednak Eclipse zostawia Visual Studio w tyle...

6 komentarzy:

Anonimowy pisze...

Jak ja Cię rozumiem. Szatan jakiś mnie podkusił i pisałam magisterkę w .NET - never again. Tak jak mówisz, sam C# jest ok, szczerze mówiąc nie wiem czy nie podoba mi się nawet bardziej niż Java (szczególnie delegaty są mniamuśne), może pomijając sugerowane konwencje (nazwy metod z wielkich liter?!). Ale z tym dałoby się żyć - gdyby nie to ichnie Visual Studio. No żałość po prostu, nie dośc że płatne, to jeszcze w chwili obecnej jest na poziomie tak Eclipse'a sprzed epoki 3.0.
Mnie osobiście do szewskiej pasji doprowadzała konieczność ręcznego wywoływania kompilacji, bo oczywiście podpięcie tego pod save'a (albo chociaż taka opcja, na litość boską) przerosło autorów. No i brak CTRL-1 - do importów, literówek, przypisywania wywołanej metody pod automatycznie tworzoną zmienną...
Ech, dobra, nie będę Cię dobijać ;) W każdym razie nie jesteś jedyny. Osobiście uważam, że gdyby MS chciało się zrobić coś dorównującego Eclipse'owi, to C# mógłby wymieść Javę - ale póki co jesteśmy bezpieczni ;)

xavex pisze...

VS bez wtyczki zwanej ReSharperem w zasadzie nie ma żadnym możliwości jeśli chodzi o refactoring. Nie możecie jednak zapominać, że VS bardzo długo był kompilatorem C++.. MFC C++... i tam o co innego chodziło. W dobie kiedy eclipse sie rodził VS miał wymiatający designer i naprawdę jak na tamte czasy rewolucyjną koncepcje zasobów. Mowie o 1995 roku, Java się wtedy rodziła. Więc co się stało? Wyglądan na to, że od 2001 roku, kiedy to debiutował C# (może 2003, nie wiem) zmarnowano sporo czasu? Ano stało się to, że zainwestowano naprawdę mnóstwo czasu w to, żeby można było kodować w jednym solution zarówno w C# jak i natywnym C++. I wywoływać jedno z drugiego, w obie strony. Można by napisać grubaśną książkę o tym jak poruszać się po granicy managed/unmanaged. To jest nieocenione np. w projekcie takim jak mój, gdzie mamy 2 mln linijek w C++ i 500tys w C#. Mimo wszystko uważam, że VS i C# to dzisiaj najlepsze wyjście jeśli chodzi o aplikacje desktoppowe. Java jest niezastąpiona przy aplikacjach serwerowo-webowych. No i darmowe biblioteki doganiają .NET: NHibernate, log4net, Spring.Net, całkiem fajny jest Ajax, ładnie komponujący się w VS. A składniowo, jak zauważyliście, C# bije dżawę :)

A że płatne.. no cóż.. to jest nieodzownie związane z M$.. zazwyczaj jak pracujesz w firmie, to nie powinno to robić Ci różnicy. Ale sa darmowe VS express, które w zupełności do nauki wystarczają!

a na większość bolączek można albo znaleźć opcje w menu albo zainstalować resharpera (niestety płatny, cóż)

Anonimowy pisze...

Xav, masz dużo racji, generalnie ze wszystkim się zgadzam, szczególnie odnośnie podziału desktop-server. Rozumiem też, że są sytuacje w których C# jest jedyną opcją (choćby dlatego, że pożenienie Javy z C(++) przez JNI to czyste szaleństwo).
Jeden wyjątek to doganianie bibliotek - mnie się wydaje że tu jest jednak podobnie jak z IDE. Tak, Spring.NET (i reszta) są znacznie lepsze niż rok temu - ale znów, zwykły Spring też przez ten rok nie spał (czy wspominałam już że Spring 2.5 rzondzi rulezem? ;) ).

Piotr Leszczyński pisze...

A mi się już o tym nie chce dyskutować, dlatego nie będę. Polecam tylko to o czym wspomniał Xavex: http://www.jetbrains.com/resharper/
Jest darmowa wersja 30-dniowa.

xavex pisze...

naprawdę, eX, jeśli masz siedzieć w .NET, to pogadaj z szefami nt. licencji na resharpera, to są jakieś grosze, a będziesz miał normalne środowisko z pełnym wsparciem do odpalania unit testów, refactoringiem żywcem z intelij i w ogóle wypasione megacudeńko :).

eXistenZ pisze...

To miłe, że tak o mnie dbacie, ale na szczęście na razie moją pierwszą przygodę z .NETem skończyłem. Negatywnie, tzn. framework, który sprawdzałem, okazał się do bani, na dodatek w ogóle brakuje mu dokumentacji (jakaś makabra).

Zgadzam się, że aplikacje desktopowe napisane w .NEcie są dużo przyjemniejsze, niż Javowe, a z kolei do aplikacji webowych Java jest niezastąpiona. Zgadzam się też, że standard nazywania pól i metod z dużej litery to jakaś pomyłka ;) Delegatów nie rozumiem, ale może jeszcze kiedyś do C# wrócę, to wtedy zobaczę, co w niej jeszcze fajnego.

A na razie wracam do mojej Javy, bawić się znowu w trzech wymiarach :)