Java (vs || and) C#

0

Witam.

Na początku chciałbym zaznaczyć że nie jest to kolejny temat "Java vs C#, czyli co lepsze bo chce się nauczyć jakiegoś języka". Obecnie jestem młodszym programistą javy i już trochę kodu w niej wyklepałem. Powoli jednak zbliżam się do momentu kiedy sam niczego się w niej nie nauczę, bo do tego potrzebuję praktyk w wielkich projekcie a to przyjdzie z czasem. Jako że nadal mam zapał samodoskonalenia, to ciągnie mnie do nauki czegoś jeszcze, tu - C#. Potrzebuję paru odpowiedzi, głównie na temat C#, jednak nie piszę tematu w podforum dla niego przeznaczonym, ponieważ tam mogą być tylko opinie jakoby w C# wszystko dało się lepiej zrobić niż w javie. Proszę też o wstrzymanie się z odpowiedziami że i to i to da się zrobić w obu językach, bo to jest oczywiste. Można napisać cały system enterprisowy w notatniku przez jedną osobę, a że zajmie to 100 lat i będzie pełno błędów to swoją drogą.

Pytanie 1) Szybkość i poziom rozwoju - Java od początku nie posiadała typów generycznych i przez to musieli to obejść przez zasłanianie. Niestety nie działa to fajnie i wielu rzeczy z poziomu runtime nie da się dowiedzieć. C#, jako że wyszedł parę lat później, był projektowany na błędach javy i podobno zostało to naprawiane. Czy jest jeszcze coś co w javie dokucza, a w C# jest zrobione lepiej? Druga sprawa to szybkość rozwoju. Java rozwija się wooolno. W zasadzie od wersji 5 nie ma wielu nowości. C# natomiast co chwilę wprowadza jakieś zmiany i ma o wiele więcej funkcji niż Java. Czy te nowości szybko się przyjmują? Czy nie sprawiają problemów? A może niektóre zostały wprowadzone na siłę? Druga sprawa to czy np. taka książka o C# 4 ma jeszcze jakąś wartość skoro już jest nowszy i ma zmiany?

Pytanie 2) Porównanie ASP.NET do JEE - Wiem mniej więcej z czym się je JEE i powiem że nie jestem zachwycony. Mam wrażenie że sprawdza się to tylko w zastosowaniach biznesowych, kiedy naprawdę potrzebujemy napisać system modułowo i rozproszyć go na parę maszyn. Natomiast do pisania nawet złożonej stony internetowej się to nie nadaje. Niby jest tomcat, można użyć samego JSF, ale wydaje mi się że jest to komplikowanie tego co można zrobić łatwiej w php. Jak to jest z ASP.NET? Do czego się nadaje lub nie?

Pytanie 3) Serwer pod stronę internetową - Mam w planach pisać dość rozbudowaną stronkę internetową i zastanawiałem się nad językiem. Java straciła swoją pozycję. Tutaj hosting ogranicza do dedyków które nie są mi potrzebne, a cena dużo większa. Jak to wygląda z C#? Są jakieś sensowne hostingi w cenach podobnych do tych z php?

Pytanie 4) Cena - Jak wygląda cena pisania/szkolenia się w C#. W javie prawie wszystko jest za darmo. Do pełni szczęścia trzeba wydać parę kafli na certyfikaty z oracle i ew. parę stówek na książki które są ogólnodostępne. W C# mamy bezpłatne środowisko VS w wersji express, ale czy wystarczy ono do pisania aplikacji? Czy np. wersja proffesional ma jakieś bardzo ułatwiające rzeczy? No i druga sprawa to czy jak kupię VS 2012 to czy za np. 2 lata gdy wyjdzie wersja 2014 będę zmuszony do zmiany na siłę bo moja będzie już przestarzała? Jak wyglądają ceny oficjalnych egzaminów C#? I jak przedstawa się cena książek do tej platformy? Czy jedynym sensowym wyborem są książki z wydawnictwa Microsoft Press, czyli po angielsku? Bo nie ukrywam że lepiej czyta mi się po polsku, tym bardziej gdy lektura ma ~800 stron. Czy wydając płatne oprogramowanie w C# mam jakieś zobowiązania do microsoftu?

I fakt na koniec, który zauważyłem. Jeżeli też jakieś macie to proszę o dopisanie, lub ew. naprostowanie mojego.

Fakt 1) Wieloplatformowość - Tutaj java ma przewagę, bo mono nie wliczam. Z wielu testów wychodzi że jest ono dużo wolniejsze niż microsoftowe .NET. Ale sama wieloplatformowość ma też wady. Wiele funkcji windows nie mogłem podpiąć pod javę bo po prostu nie było bibliotek. Nikomu nie chciało się chyba pisać czegoś co pod działa tylko pod windą. A używanie funkcji c++ przez JNA to moim zdaniem katorga i ostateczność.

1

Ad 1)
Jak już wspomniał bolson w komentarzu: jest Scala, która bardzo szybko się rozwija. Najłatwiej chyba Javowcowi byłoby przejść do języka Groovy, ale ten jest w dużej mierze dynamicznie typowany, przez co wolniejszy. Poza tym w tym roku wychodzi Java 8 i ma wprowadzić wiele nowości w języku.

Ad 2)
JEE to nie jedyny sposób na pisanie webowych aplikacji w Javie. Jest pierdylion frameworków/ toolkitów Javowych do pisania stron. Polecam zapoznać się z Apache Wicket, Google GWT i Spring MVC.

Ad 3)
Hosting dla aplikacji webowych na platformę Java

Ad ostatnie)
Używałem JNA ze strony https://github.com/twall/jna do komunikacji z DLL-ką napisaną w starym Delphi i nie było jakieś mega trudne w użyciu. Ma chyba wbudowane trochę API z WinAPI.

0
Ofca5 napisał(a):

Pytanie 3) Serwer pod stronę internetową - Mam w planach pisać dość rozbudowaną stronkę internetową i zastanawiałem się nad językiem. Java straciła swoją pozycję. Tutaj hosting ogranicza do dedyków które nie są mi potrzebne, a cena dużo większa. Jak to wygląda z C#? Są jakieś sensowne hostingi w cenach podobnych do tych z php?

Kiedys natknalem sie na hosting Webio:

http://www.webio.pl/PlanyHostingowe/PorownaniePlanow.html

Nie wiem czy powyzsza oferta sprosta Twoim wymaganiom i jak u nich z jakoscia uslug, ale cena wyglada na atrakcyjna.

Co do javy to kombinowalbym z VPSami - koszt takiego VPSa zaczyna sie od jakis 20 PLN/m-c. Choc jest to wiecej niz w przypadku hostingu na Webio to cena nie wydaje mi sie jakas wygurowana.

0

Są jakieś sensowne hostingi w cenach podobnych do tych z php?
Nie znam aktualnych cen, ale PHP można mieć za bezcen, a ASP.NET na pewno będzie trochę kosztować. Strzelam więc, że „nie ma sensownych hostingów w cenach podobnych do tych z php”.

W C# mamy bezpłatne środowisko VS w wersji express, ale czy wystarczy ono do pisania aplikacji?
Oczywiście.

Czy np. wersja proffesional ma jakieś bardzo ułatwiające rzeczy?
Oczywiście ;-)
Główne ograniczenie wersji Express to niemożność instalowania pluginów do samego środowiska.

No i druga sprawa to czy jak kupię VS 2012 to czy za np. 2 lata gdy wyjdzie wersja 2014 będę zmuszony do zmiany na siłę bo moja będzie już przestarzała?
Na pewno nie na siłę.
W tej chwili minimalna wersja to – będę konserwatywny – 2005. Ale to zależy co będziesz robił, bo np. do zabawy w kafelki pod (fuj!) Windows 8 potrzebna jest wersja 2012.

Jak wyglądają ceny oficjalnych egzaminów C#? I jak przedstawa się cena książek do tej platformy?
Nie wiem.

Czy wydając płatne oprogramowanie w C# mam jakieś zobowiązania do microsoftu?
Nie – chyba że wydajesz na Windows Store.
Ale kiedyś czytałem interpretację, że licencja Express nie pozwala na wydawanie aplikacji na licencji GPL. Nie wiem na ile słuszna była ta interpretacja, ale płatnych programów ten problem przecież nie dotyczy.

0

C# jest lepiej zaprojektowany niż Java. W C# wygodniej się piszę programy bo nawet nazwy funkcji w bibliotekach standardowych są bardziej intuicyjne niż w Java.

A tak w ogóle to rzadko używam tych języków bo mój ulubiony to ANSI C.

0

Jak wyglądają ceny oficjalnych egzaminów C#? I jak przedstawa się cena książek do tej platformy?

Książki drogie jak wszędzie: http://www.ksiazki.promise.pl/aspx/kategoria.aspx?kid=4062&n=microsoft_net. Egzaminy chyba $150 za każdy, już jeden najczęściej daje pierwszy poziom "certyfikowanego programisty". Książki angielskie zazwyczaj są lepsze od polskich, egzamin też jest po angielsku. Trochę przyzwoitych polskich książek da się znaleźć, ale i tak podstawą jest MSDN. Bez książek da się żyć, według mnie.

Czy wydając płatne oprogramowanie w C# mam jakieś zobowiązania do microsoftu?
Nie – chyba że wydajesz na Windows Store.
Ale kiedyś czytałem interpretację, że licencja Express nie pozwala na wydawanie aplikacji na licencji GPL. Nie wiem na ile słuszna była ta interpretacja, ale płatnych programów ten problem przecież nie dotyczy.
</quote>

Really? Jedyne co mi się z tym może kojarzyć, to fakt, że Store (albo Windows lub Windows Phone) miał jakieś zapisy, że nie pozwala na aplikacje na GPL. Może dalej ma, nie wiem.

1
Ofca5 napisał(a):

C# natomiast co chwilę wprowadza jakieś zmiany i ma o wiele więcej funkcji niż Java. Czy te nowości szybko się przyjmują? Czy nie sprawiają problemów? A może niektóre zostały wprowadzone na siłę?

Zazwyczaj jest tak, że zmiany na dobre przyjmują się szybko.
Chyba każda nowość sprawia problemy, dopóki człowiek jej się nie nauczy, i nie zrozumie. Ale dotyczy to nie tylko C#.

Druga sprawa to czy np. taka książka o C# 4 ma jeszcze jakąś wartość skoro już jest nowszy i ma zmiany?

Dobra książka zawsze ma wartość. A wszystkich nowości można się douczyć z internetu.

Jak to jest z ASP.NET? Do czego się nadaje lub nie?

Masz generalnie dwie opcje:
WebForms - kontrolki do budowy stron WWW, RAD podobny do tych dla aplikacji desktopowych. Tworzy koszmarny HTML i ociężałe strony, aplikacje są sterowane zdarzeniowo, trudno się testuje i debuguje, ale mimo wszystko pozwala szybko stworzyć efektywną aplikację.
MVC - lekki framework, dający pełną kontrolę nad kodem HTML, znacznie bardziej testowalny, ale minusem jest to, że trzeba się bardziej namęczyć, żeby osiągnąć efekty, które w WebFormsach dają gotowe kontrolki.

W obu zrobisz stronkę do rejestracji na przyjęcie urodzinowe, forum internetowe, jak i system ERP.

W C# mamy bezpłatne środowisko VS w wersji express, ale czy wystarczy ono do pisania aplikacji?

Wystarczy, da się tak pracować, ale wyższe wersje dają więcej wygody. Zwłaszcza z Resharperem.

0

Wiadomo że w najbliższych latach prężnie będą się rozwijać rozwiązania w chmurach obliczeniowych, android prawdopodobnie nadal będzie największym z systemów na telefony/tablety. I te rzeczy mnie najbardziej interesują i oprócz tego programowanie pod systemy bankowe itd.

Ktory z tych jezyków c# czy java będzie lepszym wyborem?

a) Google nie zrezygnuje z javy w androidzie (chyba) w najbliższym czasie a Xamarin jest jeszcze zbyt słaby by pisać w nim pełnoprawne aplikacje na androida/iOSa - > plus dla javy
b) Chmury obliczeniowe, tutaj wygrywa według mnie C# ponieważ microsoft dużo inwestuje w swoją chmure Azure -> plus dla C#

jakies opinie?

2

Google nie zrezygnuje z javy w androidzie (chyba) w najbliższym czasie a Xamarin jest jeszcze zbyt słaby by pisać w nim pełnoprawne aplikacje na androida/iOSa - > plus dla javy

Udziały Windowsa w komórkach jakoś nie chcą rosnąć.

Chmury obliczeniowe, tutaj wygrywa według mnie C# ponieważ microsoft dużo inwestuje w swoją chmure Azure -> plus dla C#

A kto nie inwestuje? Masz jakieś porównania nt finansowania chmur oferujących Javę oraz chmur oferujących .NET?

Tu jest lista kilku chmur: Hosting dla aplikacji webowych na platformę Java

Co ciekawe, na chmurze Azure można stawiać też aplikacje w Javie. Hmm, a więc co? Azure to też plus dla Javy? :)

0

Ogólnie mówią wybór między C# a Javą do najprostszych nie należy

0

Microsoft robi dużo dobrej roboty z C# i generalnie z .NET, ale prawdziwa innowacja wciąż dzieje się w rozwiązaniach javowych. Wydaje mi się, że nawet jeśli rola Javy jako języka się zmniejszy (na rzecz innych języków na JVM), to środowisko javowe dalej będzie standardem biznesowym i potencjalnie lepszą perspektywą dla developerów.

0

@Krolik

Skąd takie info że Apple i Google preferują Java ponad c#/.net? To byłby ogromny plus dla Javy

1 użytkowników online, w tym zalogowanych: 0, gości: 1