przesiadka z Java do C#

365 views
Skip to first unread message

Damian Szczepanik

unread,
Feb 27, 2010, 10:11:02 AM2/27/10
to Warszawa-JUG
Cze��,

Szukam praktyk�w, kt�rzy podziel� si� swoimi mniej lub bardziej traumatycznymi:)
do�wiadczeniami w przesiadce z Javy do C# lub odwrotnie.

Zniech�cam do wypowiedzi tych, kt�rzy ju� ostrz� z�by by wywo�a� wojn� na temat
wy�szo�ci Javy nad C# lub odwrotnie. Interesuj� mnie aspekty praktyczne, czy
jest co� ci�kiego do przeskoczenia dla kogo�, kto zna C++ i programuje w Javie,
a my�li o C#.

Damian

Jakub Nabrdalik

unread,
Feb 27, 2010, 10:57:56 AM2/27/10
to warsza...@googlegroups.com
W dniu 27.02.2010 16:11, Damian Szczepanik pisze:

> Szukam praktyk�w, kt�rzy podziel� si� swoimi mniej lub bardziej traumatycznymi:)
> do�wiadczeniami w przesiadce z Javy do C# lub odwrotnie.

My�l� �e to Ci si� mo�e przyda� je�li jeszcze na to nie trafi�e�:
http://www.25hoursaday.com/CsharpVsJava.html

Co prawda artyku� opiera si� na C# 2.0, wi�c jest troch� outdated, ale i
tak jest niez�y i bardzo przyjemny w przesiadce w ka�dym kierunku.

> Zniech�cam do wypowiedzi tych, kt�rzy ju� ostrz� z�by by wywo�a� wojn� na temat
> wy�szo�ci Javy nad C# lub odwrotnie. Interesuj� mnie aspekty praktyczne, czy
> jest co� ci�kiego do przeskoczenia dla kogo�, kto zna C++ i programuje w Javie,
> a my�li o C#.

Przechodzenie z Javy do C# jest IMHO �atwiejsze ni� w drug� stron�
(przechodzi�em w obie). Po pierwsze, zmiana �rodowiska a� tak nie boli,
dzi�ki temu, �e Visual Studio jest �wietne i ma prawie wszystko
zintegrowane, support podstawowych problem�w jest o niebo lepszy (zn�w
dlatego, �e wi�cej os�b robi w ten sam spos�b - zamordyzm microsoftu ma
swoje zalety). Og�lnie, przy pracy z C#, szybko cz�owiek odkrywa jego
zalety i przewag� nad Jav� jako j�zykiem.

Tak, wiem, zaraz tu wyskocz� jacy� fanboje, ale taka jest prawda, �e C#
jako J�ZYK jest m�odszy, ma szybsze tempo zmian, dzi�ki temu jest lepiej
zaprojektowany i przyjemniejszy w u�yciu.

R�nice nie s� dramatyczne (to nie C++ vs Java), ale widoczne go�ym okiem.

Pewne koncepcje producenta trzeba oczywi�cie od razu wyrzuci� na
�mietnik/unika�, ale tak samo jest/by�o z Sunem (np: EJB 1/2/3.0).

Og�lnie z przesiadk� nie ma problemu. Spotka�em si� nawet z tym, �e
w�a�ciciel firmy w kt�rej pracowa�em zatrudnia� do programowania w C
Sharpie Javowc�w bez do�wiadczenia w .Necie, poniewa� jak twierdzi�:
"je�li s� sobie w stanie poradzi� z Jav�, to z C# poradz� sobie bez trudu".

Musz� si� dzi� zgodzi� z tym podej�ciem :)

Przej�cie w drug� stron� jest znacznie bardziej bolesne, bo dla
cz�owieka przyzwyczajonego do VS, konieczno�� pieprzenia z mavenem,
Eclipsem etc. rozprasza uwagďż˝ :) Ponadto jak siďż˝ trafi na zespďż˝ w
kt�rym ka�dy ma inne IDE (nici z pair-programmingu), ka�dy odpala testy
inaczej (nie daj Bo�e z linii polece�), i nie ma dynamicznego
podmieniania klas w runtime podczas debuggowania, to ma si� wra�enie, �e
cz�owiek cofa si� o kilka lat w przesz�o��.

Dla os�b pod��aj�cych w tym kierunku (z C# do Javy) polecam IntelliJ
Idea jako IDE. Najbli�ej do VS i najmniej problem�w.

Pozdrawiam,

Jakub Nabrdalik

PS: dla .NETa istnieje sporo bibliotek analogicznych do javy:
Srping.net - spring framework
nHibernate - hibernate
nMock2 - jmock
etc...


Jacek Laskowski

unread,
Feb 27, 2010, 12:13:42 PM2/27/10
to warsza...@googlegroups.com
2010/2/27 Damian Szczepanik <damian.pu...@gmail.com>:

> Szukam praktyków, którzy podzielą się swoimi mniej lub bardziej traumatycznymi:)
> doświadczeniami w przesiadce z Javy do C# lub odwrotnie.

Pewnie będzie to zaskoczeniem dla Ciebie, ale pamiętam jeszcze tak
niedawno, kiedy przyszło mi do napisania gry w C# i poszło mi
zdumiewająco szybko. Nie zrzucałbym tego na barki mojego
doświadczenia, czy podobnie, ale na prostotę języka i środowiska.
Wszystko było. Miałem przyzwyczajenia z Javy i brakowało mi tego
składania środowiska, ale jak to ujął Jakub "zamordyzm" było można
dostrzec gołym okiem. Nie potrafię porównywać języków do siebie, bo
większość rzeczy w C# i tak robiło za mnie VS, więc programowanie
sprowadziłem do Ctrl+Spacja. Dużo rzeczy intuicyjne. Pewnie odwrotnie
VS -> Java+narzędzia nie byłoby takie proste. Traumy nie było - raczej
lekki uśmiech na twarzy, jakie to programowanie w C# z VS prościutkie
(pewnie nawet lekka drwina, że programowanie sprowadzono do klikania).

Ogólnie, dobrze podsumowuję moją pracę z C# i było to niezwykle
ciekawe doświadczenie. Ostatnio zastanawiałem się nad Objective-C, aby
coś porobić na MacOS w GUI, ale poza planami, nic więcej. Brakuje mi
jednak większego doświadczenia z tworzeniem samodzielnych aplikacji
graficznych, poza przeglądarką. Obawiam się wejścia w świat NetBeans
RPC lub Eclipse RCP. O pierwszym słyszałem, że może być, a drugie, że
zbyt skomplikowane. W C# było prościej :)

Jacek

--
Jacek Laskowski
Notatnik Projektanta Java EE - http://jaceklaskowski.pl
Kapituła Javarsovia 2010 - http://javarsovia.pl

Krzysztof Grajek

unread,
Feb 27, 2010, 2:28:06 PM2/27/10
to warsza...@googlegroups.com
To ja dorzuce swoje 3 grosze:
1. Znasz Java to znasz C#, przejscie jest naprawde łatwe, wystaczy zacząć po prostu pisać
2. Zaczynasz w C# to przechodzisz na ciemną stronę mocy, tzn zapomnij o darmowych bibliotekach, pluginach do VS itd (jedyny darmowy który moge polecic to AnkhSVN), za wszystko trzeba płacić a jak coś jest za darmo a do końca nie działa tak jak byś chciał to i tak ci nikt za darmo nie pomoże.
3. tzw 'Community Support' w porównaniu do Java to praktyczne 0. Nie wiem jak to jest ale ludzie którzy piszą w Javie wydają mi się przyjaźniejsi i jakoś bardziej chętni do pomocy - tak na marginesie - czy istnieje warszawa-c#ug :)
4. Jeżeli masz napisać prostą desktopową aplikację wykorzystującą jakieś native windows cuda i która ma działać tylko na windzie albo po prostu szef ci kazał, to tak to C# jest dobrą drogą, w każdym innym wypadku zapomnij o tym jak najszybciej :)
5. VS jest ogólnie fajne jak się jest na studiach kiedy jest za darmo, żeby cos z nim jednak zrobić musisz mieć wersje Pro która kosztuje kika tyś PLN. Wieć warto się zastanowić nad alternatywą.

Pozdrawiam

Jakub Nabrdalik

unread,
Feb 27, 2010, 3:19:22 PM2/27/10
to warsza...@googlegroups.com
W dniu 27.02.2010 20:28, Krzysztof Grajek pisze:

> 2. Zaczynasz w C# to przechodzisz na ciemną stronę mocy, tzn zapomnij o
> darmowych bibliotekach,

Khem, khem... A Spring.net? nHibernate? nMock? nUnit?

> pluginach do VS itd (jedyny darmowy który moge
> polecic to AnkhSVN),

Dla aplikacji open source sporo jest darmowych, np:
ReSharper - Open Source License: free
http://www.jetbrains.com/resharper/buy/index.jsp

A że płaci się za pluginy do celów komercyjnych... przecież nie TY
płacisz jako developer, tylko pracodawca, który zyskuje kupę kasy za
wszystko co przyspiesza Twoją pracę.

> za wszystko trzeba płacić a jak coś jest za darmo a
> do końca nie działa tak jak byś chciał to i tak ci nikt za darmo nie pomoże.

Korzystałem darmowych, open-source'owych, wyżej wymienionych bibliotek i
support był taki sam jak przy ich odpowiednikach w Javie.

> tak na marginesie -
> czy istnieje warszawa-c#ug :)

http://wg.net.pl

> 4. Jeżeli masz napisać prostą desktopową aplikację wykorzystującą jakieś
> native windows cuda i która ma działać tylko na windzie albo po prostu
> szef ci kazał, to tak to C# jest dobrą drogą, w każdym innym wypadku
> zapomnij o tym jak najszybciej :)

Z mojego doświadczenia aplikacje webowe tworzy się szybciej w ASP.NET
niż w większości frameworków javowych (z wyjątkiem Wicketa). Do prostych
aplikacji webowych i tak lepsze będą lżejsze technologie od dwóch wyżej
wymienionych.

Aplikacje klasy Enterprise warto zawsze robić w tym co preferuje firma
(twoja lub klienta). Środowisko heterogeniczne niestety nadal tworzy
problemy, choćby w utrzymaniu i administracji.

Aplikacje desktopowe (pudełkowe) zdecydowanie
wygodniej/szybciej/ładniej/wydajniej robi się w C#, abstrahując już od
faktu że na Linuxa ich pewnie nie sprzedasz.

Aplikacje desktopowe dedykowane i tak musisz robić pod platformę klienta.

Gry na PC... nadal prowadzi C++, ale można też w C# pod Windowsa.
Inaczej ich nie sprzedaż.

Gry na konsole... zdecydowanie C++, ale można także w C# (od razu masz
załatwiony Xbox + PC). W javie, o ile mi wiadomo, nie da się w ogóle.

Aplikacje mobilne... tu przoduje Java i C++ na Symbiana, ale jeśli
chcesz tworzyć coś nowego to i tak lepiej w Objective-C.
Podejrzewam że jak już wyjdzie Windows Mobile 7, urwie trochę rynku dla
siebie. Może nawet (nie daj Boże) dobije androida. Do celów rynkowych
najlepszą platformą jest i tak iPhone.

> 5. VS jest ogólnie fajne jak się jest na studiach kiedy jest za darmo,
> żeby cos z nim jednak zrobić musisz mieć wersje Pro która kosztuje kika
> tyś PLN. Wieć warto się zastanowić nad alternatywą.

Jeśli zajmujesz się programowaniem zawodowo, to znaczy że firma dla
której pracujesz (także jeśli jest Twoja) zarabia PIENIĄDZE. I to raczej
konkretne pieniądze.

Intellij Idea kosztuje 1000zł
MS VISUAL STUDIO 2008 PRO kosztuje 3586zł
(http://www.imperium.net.pl/x-p-19901.html)

Różnica 2586zł to jest żadna różnica, kiedy się robi soft za setki
tysięcy i miliony złotych.

Bardzo lubię Ideę, ale gdyby MS wspierał Javę w Visual Studio tak jak
wspiera C#, to nie wachał bym się ani chwili z zakupem VS2008.

Jeśli programujesz hobbystycznie, to jest wersja VS do celów
niekomercyjnych za darmo

Jakub Nabrdalik

Agnieszka Sujewicz

unread,
Feb 27, 2010, 3:35:05 PM2/27/10
to warsza...@googlegroups.com
Heja Damian,
miałam okazję przerabiać kod z C# na Jave i szczerze powiem, że C# wydał mi sie bardziej "user friendly". Posiada chociażby MessageBox czego nie ma w Javie, a co jest przydatne, kiedy szybko chcesz napisać aplikację wyświetlającą wiadomość (w Javie wymaga to wiekszej liczby kodu - w C# poprostu piszesz MessageBox i to co chcesz wyświetlić). Ogólnie odniosłam wrażenie, że tworzenie interfejsu w C# jest łatwiejsze niż w Java. Inne rzeczy są bardzo podobne. Dlatego według mnie nie będziesz miał problemów z przerzuceniem się na C#, właszcza skoro znasz C++ i Jave.

Powodzenia w przesiadzce!

Pozdrawiam,
Agnieszka


W dniu 27 lutego 2010 16:11 użytkownik Damian Szczepanik <damian.pu...@gmail.com> napisał:
Cześć,

Szukam praktyków, którzy podzielą się swoimi mniej lub bardziej traumatycznymi:)
doświadczeniami w przesiadce z Javy do C# lub odwrotnie.

Zniechęcam do wypowiedzi tych, którzy już ostrzą zęby by wywołać wojnę na temat
wyższości Javy nad C# lub odwrotnie. Interesują mnie aspekty praktyczne, czy
jest coś ciężkiego do przeskoczenia dla kogoś, kto zna C++ i programuje w Javie,
a myśli o C#.

Damian

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie "Warszawa Java User Group (Warszawa JUG)".

Aby zamieszczać posty w tej grupie, wyślij e-mail na adres warsza...@googlegroups.com.
Aby anulować subskrypcję tej grupy, wyślij e-mail na adres warszawa-jug...@googlegroups.com.
Aby uzyskać więcej informacji, odwiedź tę grupę pod adresem http://groups.google.com/group/warszawa-jug?hl=pl.


Maciej Piasecki

unread,
Feb 27, 2010, 3:50:00 PM2/27/10
to warsza...@googlegroups.com
Chcia�bym nadmieni�, �e mo�na korzysta� z darmowego IDE do C# np.:
Visual Studio Express, kt�re jest darmowe nawet do zastosowa�
komercyjnych lub SharpDevelop. Je�eli natomiast chodzi o przesiadk� to w
C# rzeczywi�cie jest du�o podobie�stw do Javy, aczkolwiek jest te�
troch� niuans�w. Poniewa� jestem zwolennikiem zasady, �e technologi�
nale�y dobra� do projektu (to jest w gestii architekta), dlatego nie
zawsze pisz�c aplikacj� na platform� Windows, wybra�bym Jav� mimo �e mam
w niej ponad 6-letnie do�wiadczenie. Przyk�adowo, gdy klient korzysta
jeszcze z Windows 98 to .net wydaje mi si� lepszym rozwi�zaniem do
stworzenia aplikacji standalone. Dwa razy ju� robi�em projekt w C# i z
pocz�tku by�o troch� ci�ko si� przestawi�, ale potem to ju� idzie z
g�rki ;)

Pozdrawiam,
Maciek

Michal Margiel

unread,
Feb 27, 2010, 4:52:09 PM2/27/10
to warsza...@googlegroups.com


W dniu 27 lutego 2010 21:35 użytkownik Agnieszka Sujewicz <suje...@gmail.com> napisał:
Heja Damian,
miałam okazję przerabiać kod z C# na Jave i szczerze powiem, że C# wydał mi sie bardziej "user friendly". Posiada chociażby MessageBox czego nie ma w Javie, a co jest przydatne, kiedy szybko chcesz napisać aplikację wyświetlającą wiadomość (w Javie wymaga to wiekszej liczby kodu - w C# poprostu piszesz MessageBox i to co chcesz wyświetlić). Ogólnie odniosłam wrażenie, że tworzenie interfejsu w C# jest łatwiejsze niż w Java. Inne rzeczy są bardzo podobne. Dlatego według mnie nie będziesz miał problemów z przerzuceniem się na C#, właszcza skoro znasz C++ i Jave.

Powodzenia w przesiadzce!


CO rozumiesz poprzez wyświetlenie wiadomości ? Wyświetlenia modalnego okna dialogowego z jakimś komunikatem?

Jeśli tak, to w javie wygląda to tak:
JOptionPane.showMessageDIalog(this, "wiadomosc") - czy da się prościej? :)
Wbrew pozorom swing jest naprawdę fajny. Oczywiście  ma trochę braków (np w jtable nie ma spanowania komórek) ale ogólnie b. dobrze się w nim pisze. Oczywiście  w Visiual Studio można wyklikać GUIa ale ja wolę mięć 100% kontroli nad kodem który mam utrzymywać. Zresztą jak ktoś chce to jest świetlny plugin do eclipse : Window Builder.

A ogólnie to w VS (pisałem magisterkę, chyba 2006 ) to mi się bardzo źle pisało. jest gdzieś w internecie post w którym opisuje co mnie bolało. Ale pamiętam, że on nawet nie potrafił mi podpowiadać nazw zmiennych. przeszkadzało mi również to że były różne skróty klawiszowe go zakomentowania kodu i odkomentowania go, a do tego były one dość dziwne.

A co do a co do płacenia za środowisko to czemu Jakubie porowównujesz do IDEII za tysiąc złotych skoro jest świetny Eclipse za darmo ?:)
--
Pozdrawiam/Best regards
Michał Margiel

http://www.javarsovia.pl
http://www.linkedin.com/in/MichalMargiel
http://poligloci.margiel.eu

Jakub Nabrdalik

unread,
Feb 27, 2010, 8:07:32 PM2/27/10
to warsza...@googlegroups.com
W dniu 27.02.2010 22:52, Michal Margiel pisze:
> A co do a co do p�acenia za �rodowisko to czemu Jakubie porow�wnujesz do
> IDEII za tysi�c z�otych skoro jest �wietny Eclipse za darmo ?:)

Bo czas kt�ry musz� po�wi�ci� na skonfigurowanie Eclipse'a wart jest
tyle samo :)

Jakub Nabrdalik

Krzysztof Grajek

unread,
Feb 28, 2010, 7:37:32 AM2/28/10
to warsza...@googlegroups.com
:) ta rozmowa niebezpiecznie zbliża się do rozmów typu Java vs. C#.
Reasumując, przejscie z Javy do C# nie jest problemem :)

Pozdrawiam

2010/2/28 Jakub Nabrdalik <jak...@gmail.com>
W dniu 27.02.2010 22:52, Michal Margiel pisze:
A co do a co do płacenia za środowisko to czemu Jakubie porowównujesz do
IDEII za tysiąc złotych skoro jest świetny Eclipse za darmo ?:)

Bo czas który muszę poświęcić na skonfigurowanie Eclipse'a wart jest tyle samo :)

Jakub Nabrdalik


Mateusz

unread,
Mar 5, 2010, 8:35:39 AM3/5/10
to Warszawa Java User Group (Warszawa JUG)
> Bo czas kt ry musz po wi ci na skonfigurowanie Eclipse'a wart jest
> tyle samo :)

Panowie, a gdzie są wasze pliterki?

--
Pozdrawiam
Mateusz Zięba
http://na-jawie.blogspot.com

Jakub Nabrdalik

unread,
Mar 5, 2010, 8:47:15 AM3/5/10
to warsza...@googlegroups.com, Mateusz
W dniu 05.03.2010 14:35, Mateusz pisze:

>> Bo czas kt ry musz po wi ci na skonfigurowanie Eclipse'a wart jest
>> tyle samo :)
>
> Panowie, a gdzie są wasze pliterki?

Gmail WWW, Thunderbird i Android twierdzą że na miejscu, aczkolwiek
faktycznie:
"Content-Type: text/plain; charset=ISO-8859-2; format=flowed"

Coś Ci pożera pliterki z emaili?

Jakub Nabrdalik

Michal Margiel

unread,
Mar 5, 2010, 8:54:52 AM3/5/10
to warsza...@googlegroups.com


W dniu 28 lutego 2010 02:07 użytkownik Jakub Nabrdalik <jak...@gmail.com> napisał:

Bo czas który muszę poświęcić na skonfigurowanie Eclipse'a wart jest tyle samo :)


Ja też wszystko widzę.
Reply all
Reply to author
Forward
0 new messages