migracja javowca na c# aplikacje internetowe

0

cześć, od około roku dłubie w javie, dla wlasnej satysfakcji, interesuje mnie to i nie ukrywam, że od jakiegoś czasu mam zamiar związać z tym swoją przyszłość (z programowaniem)
jednak od ostatniego miesiaca, może kapke dłużej, zacząłem odczuwać zastój, mam wrazenie, że sie nie rozwijam. troche się to robi męczące i technologie javy zaczynaja mi bokiem wychodzić. mysle czy by się nie przestawić na coś innego tj. asp.net przy użyciu c#.
dlatego pytam: skoro używane sa w podobny sposób, czy kierujac się na c# coś się zmieni, czy są one do siebie podobne i raczej nie zrobie rewolucji?

jak znam zycie odpowiecie napisz jakiegos cruda to sie dowiesz, śmiecisz forum pytaniami
dlatego zaznaczam ze crudy juz pisalem, ale uwazam ze porownanie jezykow i technologii osiagnalbym gdybym tyle samo dlubał w c# i asp co w javie (ok. rok)

po cichu licze, ze nie wywolam burzy bluzgow i nie zostane zjedzony ;)

0

Według mnie C# jest podobny do Javy; jeśli znasz teorie programowania to kwestia zmiany języka jest bardzo szybka.
Znalazłem jeszcze ciekawy post jeśli nadal Cie to interesuje.
Klik

1

Przesiadka z Javy na C# niewiele cię rozwinie, bo to w gruncie rzeczy podobne ideowo platformy. Jak chcesz coś ciekawego to polecam : http://learnyouahaskell.com/ :]

0

To nie problem w technologiach tylko w nastawieniu :) Jeśli to co obecnie robisz jest dla Ciebie nudne i oczywiste to weź się za coś znacznie trudniejszego :)

0

Według mnie C# jest podobny do Javy; jeśli znasz teorie programowania to kwestia zmiany języka jest bardzo szybka.

@Trebuh racja, już pare języków poznałem, ale sam język to jeszcze nic. żeby pracowac w jakims trzeba znac srodowiska i zwykle mase frameworków czy bibliotek zeby coś wydukać

Przesiadka z Javy na C# niewiele cię rozwinie, bo to w gruncie rzeczy podobne ideowo platformy. Jak chcesz coś ciekawego to polecam : http://learnyouahaskell.com/ :]

nie chodzi tyle o rozwój w kierunku jakiegos egzotycznego języka, a raczej wybór jakiejś ścieżki która byłaby tą "main". haskell itd. to raczej z ciekawości kiedyś poznam

To nie problem w technologiach tylko w nastawieniu :) Jeśli to co obecnie robisz jest dla Ciebie nudne i oczywiste to weź się za coś znacznie trudniejszego :)

@pleasedontkillmymummy z faktem o nastawieniu sie zgadzam :] ale to co akutalnie robie nie jest oczywiste, pod względem prostoty, a wręcz na odwrót. dziwnie skomplikowane, mało wyrażam duża ilościa kodu, w dodatku bledy za bledami, szczegolnie w zależnościach poma :)

zastanawia mnie jak wygląda c# na dluzsza mete. jak zaczynalem pisac w javie to też bylo ekstra, dopiero potem przekonałem się o ilości pracy i nerwów jaka należy włożyć by stworzyć jakas aplikacje web (bo w koncu do tego przede wszystkim java istnieje ;))
zeby po zmianie sie nie okazało ze tak na prawde nic nie zmieniłem

0

Mam wrażenie, że ci którzy piszą o trudności Javy próbują naraz imać się pięciuset frameworków, żonglować serwerami aplikacyjnymi i implementować wszelakie wzorce projektowe.

Polecam Play Framework (http://www.playframework.com/) jako RESTfulowy backend oraz jakiś JavaScriptowy framework (typu Angular.js czy tego typu rzeczy, nie znam się na tym dobrze) jako frontend. Plus Twitter Bootstrap do ostylowania.

Bez babrania się w JavaScripcie i tak dużo nie zrobisz, więc wybranie tego połączenia co podałem ma sens. Chociaż w sumie są produkty typu GWT czy oparty na nim Vaadin które tłumaczą kod Javowy na JavaScript. Tyle, że ich też nie testowałem.

Testowałem Apache Wicket kilka lat temu i ogólnie jego idea mi się podobała, ale w praktyce było sporo nieprzyjemnej walki ze stanowością po stronie serwera.

0

@Wibowit
mysle ze tu nie chodzi tyle o żąglowanie serwerami czy mieszanie frameworkow, a o złożoność aplikacji. odchodząc od okrojonych CRUDow, wezmy pod lupe chocby system gdzie student wybiera sobie wykłady (gdzie defacto crud i tak jest potrzebny)
cos podobnego pisałem na zajeciach w szkole w php. samego php'a nie lubie. wiadomo ze na zajeciach to nie byl super poziom, ale nie znajac W OGOLE! tego jezyka napisalem prowizorke w przeciagu dnia. oczywiscie byl to czysty php, wiadomo ze w wypadku frameworka phpowego zajeloby to moze z 1, 2 dnidluzej
uzywajac javy i jednego z jej frameworkow mysle ze zajeloby to ze 2 tygodnie albo lepiej. i wg mnie stad pojawiaja sie czesto slowa: trudne i java w 1 zdaniu :]

w pleju chwile skrobalem, ale doslownie chwile. nawet probowalem w scali, ale samego jezyka nie znam dlatego za dlugo sie nim(plejem) nie bawilem. wiem ze jest prosty w uzyciu, ze coraz czesciej sie go stosuje i ze uzywajac go w javie w koncu dojdziemy do wniosku ze latwiej w scali i zaczynamy pisac w scali

do tej pory bawilem sie roznymi technologiami kryjacymi sie pod haslem java. co do podejscia rest+JS front, robilem cos takiego ale springiem i czystym js albo jquery bo fajnie odbiera jsona
o GWT czytalem na tym forum ze lipa, ale nie testowalem, wicketa rowniez, vaadina tez ;) tyle tego ze zycia nie starczy :)

0

Generalnie jak sie wybierze frameworki przeznaczone do pisania aplikacji na 1kk linii kodu, do napisania aplikacji na 5k linii kodu, to sie konczy ze sloganami 'trudne'.

0

@n0name_l
owszem, javowe frameworki sluza do pisania duzych systemow, ale jakos trzeba sie jej nauczyc
samodzielnie pisac cos co ma 1 mln linii kodu graniczy z niemożliwością. stad mowie ze nauka jego jest dosc trudna

bo jak wiadomo, co innego praca, co innego samodzielny rozwoj

0

Skoro od roku się przygotowujesz do roboty, to może spróbuj jej poszukać?

0

@Wibowit
aktualnie się uczę, koncze szkołę teraz bedę w klasie maturalnej. z ogromną chęcia poszedłbym do pracy/na praktyki/staż ale niestety mieszkam w mieście gdzie jest dokładnie zero firm tego rodzaju. chcialem wyjechac na wakacje do wiekszego miasta ale niestety nie wyszło. chociaz i kto to wie czy takiego młodzika by ktos wzial :P

to tez nie jest tak ze od roku sie przygotowuje do pracy. jakies poltora roku temu ktos mi wspomnial o javie, to popatrzylem tak na odczepke godzine w tygodniu, potem po 8, moze 10 miesiacach sie zainteresowalem bardziej i pisalem czesciej, a na koniec powstal pomysl zeby pracowac jako programista bo mnie sie to podoba
do tej pory byl pomysl na jave i chociaz wiem ze technologia nie ma tak duzego znaczenia, co umiejetnosc rozwiazywania problemow (problem solving tak zwany) to jednak warto znac cos na przyzwoitym poziomie, jak nie dla kogos do dla siebie, wlasnej satysfakcji i motywacji :)

1

C# się o wiele różni od javy. Niby cała składnia jest bardzo podobna, ale c# oferuje masę więcej możliwości i kombinacji językówych (nie frameworków) dlatego można naprawdę fajne rzeczy robić w kodzie.

0

c# = java + 1
tak bym to opisał :P fakt, duzo tam konstrukcji ktore sa nie znane javie: indeksowanie klas, eventy, delegaty itd.
na pierwszy rzut oka ciezko bylo to zrozumiec, ale po czasie jakos wchodzi

frameworkow c# ma znacznie mniej. nie jestem pewien, ale jak patrzylem na rozpisce frameworkow sieciowych na wiki to java ma ich wiecej niz php ;)

ktoś ma jeszcze jakies sugestie? w internecie znalazłem porownanie frameworkow javowych kiedys i właśnie wpadlem na mysl. jesli ktos jest w stanie porownac mi przykladowo: c# z asp.net i java: spring albo jee, droga wolna Z TYM ZE według kryteriów:

1.Rapid application prototyping
2.Framework Complexity
3.Ease of Use
4.Documentation & Community
5.Framework Ecosystem
6.Throughput/Scalability
7.Code Maintenance/Updates
8.UX, Look and feel

0

Java 8 wprowadziła relatywnie dużo zmian do samego języka, ale jest jeszcze zbyt świeża, by było z nią dużo porównań. Myślę, że z biznesowego punktu widzenia różnice (między Javą a C#) się zacierają.

0

@Wibowit
a z punktu widzenia programisty i komfortu pracy? (inaczej mowiac: tych kryteriow ktore sa wyzej)

0

Nie wiem. Nie kodziłem w C#. Przeniosłem się na Scalę :]

0
zate napisał(a):

@Wibowit
a z punktu widzenia programisty i komfortu pracy? (inaczej mowiac: tych kryteriow ktore sa wyzej)

Jeśli chodzi o komfort to c# + VS masakruje wszystko

0

@Wibowit
pewnie za sprawą play frameworka? ;)
tez mialem kiedys mysl o scali, poczytalem o niej i sie dowiedzialem ze perspektywa jest, ale na razie na rynku jej nie ma, bo jest na prawde skomplikowana z samej składni
stąd jako jezyk "main" odpadła :(

0

@n0name_l
też o to chodzi. dużo ficzerów jak mówisz, dlatego niektorzy twierdza ze troche potrwa jeśli wejdzie mocno na rynek, o ile wejdzie

@huhuhuhehehehe
szczerze powiedziawszy to po przejściu z intellij idea (ide do javy) na visual studio sie przestraszyłem. myslalem ze vs prezentuje cos mega wielkiego, a tu sie okazuje, ze bez ReShapera(ktory rowniez jest produktem jetbrains) wcale nie jest taki mocny :P
ale moze tylko ja mam takie wrazenie

1
zate napisał(a):

ktoś ma jeszcze jakies sugestie? w internecie znalazłem porownanie frameworkow javowych kiedys i właśnie wpadlem na mysl. jesli ktos jest w stanie porownac mi przykladowo: c# z asp.net i java: spring albo jee, droga wolna Z TYM ZE według kryteriów:

1.Rapid application prototyping
2.Framework Complexity
3.Ease of Use
4.Documentation & Community
5.Framework Ecosystem
6.Throughput/Scalability
7.Code Maintenance/Updates
8.UX, Look and feel

A skąd te kryteria wziąłeś? Bo połowa z tego zależy od umiejętności, a nie od technologii czy języka.

W ASP.NET (czy MVC czy nie), uruchamiasz Visual Studio, tworzysz projekt według szablonu i on działa, nie musisz niczego konfigurować. Wdrożenie na serwer też możesz zrobić kilkoma kliknięciami z poziomu IDE.
W C# pisze się 3 razy mniej kodu (i 50 razy mniej pętli) niż w Javie.
Co do ilości frameworków i bibliotek - w C# jest wszystko, co jest potrzebne, ciągle powstają nowe zabawki. Trudno za wszystkim nadążyć. Jeśli w Javie jest więcej, to znaczy, że tym bardziej trudno nadążyć.
Goły VS ma mniejsze możliwości refaktoryzacji, podpowiadania, itp. niż IDE do Javy, ale pracuje się dość wygodnie, po instalacji kilku (nawet darmowych) dodatków jest lepiej.
Co do dokumentacji - jest MSDN, na którym wszystko jest dobrze opisane. Jest dotnetperls, jest masa blogów, jest StackOverflow, jest 4programmers. ;)
Skalowalność zależy od architektury. Nie ma frameworków dla dużych i małych aplikacji (to w ogóle brzmi jak absurd dla mnie). Po prostu w większej aplikacji masz więcej modułów, warstw i kodu.

0

@somekind
wziałem to stąd: http://zeroturnaround.com/rebellabs/the-curious-coders-java-web-frameworks-comparison-spring-mvc-grails-vaadin-gwt-wicket-play-struts-and-jsf/

jesli chodzi o stawianie podstawowego szkieletu to jest 100% racja. w javie konfigurowanie wszystkiego do poziomu "działa" to męka. co prawda istnieja archetypes w mavenie, ale duzo to nie zmienia
pytanie tylko, jesli w c# wszystko konfiguruje sie samodzielnie, to co w wypadku gdy potrzebujemy cos w tej konfiguracji zmienic? czy wtedy nie jest trudniej niz w javie?

dlaczego w c# pisze sie mniej kodu?

refaktoryzacja i podpowiadanie - to wlasnie mialem na mysli, intellij jest jak bajka w tych sprawach :P

tak btw. czasem duze community jezyka mnie przytłacza. przykladowo chcac postawic banalny szkielet aplikacji (zeby dalej go rozwijac):
spring mvc + JPA (z entitymanagerem nie sessionfactory) i hibernate (uzywajac ofc dependency injection) zajmuje dluzsza chwile, jak sie w tym nie siedzi juz jakis czas
dlaczego mowie o przytlaczajacym community? bo jak szukam np. czegos w google to mam 15 tematów dotyczacych tego co szukam. w kazdym rozwiazuja cos inaczej, jedno z przed 3 lat inne z przed 5
jako ze wszystko idzie do przodu ciezko jest to skonfigurowac zeby smigało

dąże do tego ze dobra dokumentacja MSDN i prostota w stawianiu projektu jest bardzo przydatna cecha.(chociaz spring tez ma calkiem ok docsy)

odnosze wrażenie jakbyś był nastawiony bardzo na nie w stosunku do javy, czemu? ;)

0
zate napisał(a):

pytanie tylko, jesli w c# wszystko konfiguruje sie samodzielnie, to co w wypadku gdy potrzebujemy cos w tej konfiguracji zmienic? czy wtedy nie jest trudniej niz w javie?

Zazwyczaj konfiguruje się edytując plik XML i wstawiając wartości zgodne z dokumentacją.

dlaczego w c# pisze sie mniej kodu?

Bo jest bardziej zwięzły - autoimplementujące właściwości pozwalają na pominięcie pisania geterów i seterów dla każdego pola, LINQ pozwala właściwie nie używać pętli do przeszukiwania kolekcji, argumenty opcjonalne sprawiają, że nie trzeba przeciążać metody wielokrotnie, itp.

odnosze wrażenie jakbyś był nastawiony bardzo na nie w stosunku do javy, czemu? ;)

Tutaj akurat nie napisałem nic złego o Javie, skąd to wrażenie?

0

Żeby coś porównywać trzeba by wziąć pod uwagę jakieś środowiska typu RAD, bo zakładam że ASP.NET + C# takim środowiskiem jest (skoro od jednego producenta wszystko).

Zwykłe Javove środowiska to droga przez mękę i na pewno nie można tego nazwać RAD-em.
Sam pracuję głównie w JSF+PrimeFaces+Tomcat, ale nie podejrzewam jakichś rewelacji w Spring MVC.

Obiecujące są środowiska:
Play 2 (Java, Scala)
Grails (Groovy)
Spring Roo (Java, chociaż mało o tym w necie)

0

Zazwyczaj konfiguruje się edytując plik XML i wstawiając wartości zgodne z dokumentacją.

czyli rozumiem @somekind ze jakbym sie przestawił to odczułbym radosc z pisania kodu, a nie użerania z konfigurowaniem?

czytalem o tym LINQ gdzieś.. to cos jak sql, ale wbudowane w jezyk i pozwala przegladac kolekcje/tablice/bazy danych "sqlowo podobnym kodem"?

mowisz ze: latwiej postawic szkielet, mniej pisze sie kodu, nie trzeba sie babrac z petlami, w c# mamy kazda bilbioteke jaka potrzeba, ze idzie z czasem a nie stoi jak java przy ogromnej liczbie frameworkow
i stad mam takie wrażenie, ze raczej ci java nie podchodzi ;)

0

@vpiotr
dokładnie, rapid development w wypadku springa czy jee to nie jest. Play z tego co wiem ma swoj system ORM, serwer itp. takze cos na pokrój django albo rora.

kompletnie nie wiem w co teraz ręce włożyć, strasznie zmieszany jestem co do wyboru od jakiegos czasu.. a czas mija, dni upływają ;)

0
zate napisał(a):

kompletnie nie wiem w co teraz ręce włożyć, strasznie zmieszany jestem co do wyboru od jakiegos czasu.. a czas mija, dni upływają ;)

Napisz czego dotychczas używałeś pod JVM (cały stos), bo może wystarczą Ci jakieś ulepszacze.

0
zate napisał(a):

czyli rozumiem @somekind ze jakbym sie przestawił to odczułbym radosc z pisania kodu, a nie użerania z konfigurowaniem?

Jeśli obecnie faktycznie zajmujesz się konfigurowaniem , to tak... Ale ja trochę nie wierzę w to, że Java jest aż taka zła.

czytalem o tym LINQ gdzieś.. to cos jak sql, ale wbudowane w jezyk i pozwala przegladac kolekcje/tablice/bazy danych "sqlowo podobnym kodem"?

No mniej więcej. (Z tymże moim zdaniem, ten kod podobny do SQL jest obrzydliwy, ładniej używać normalnych wywołań metod.)

mowisz ze: latwiej postawic szkielet, mniej pisze sie kodu, nie trzeba sie babrac z petlami, w c# mamy kazda bilbioteke jaka potrzeba, ze idzie z czasem a nie stoi jak java przy ogromnej liczbie frameworkow
i stad mam takie wrażenie, ze raczej ci java nie podchodzi ;)

Chyba połowy z tych stwierdzeń w ogóle nie napisałem, w sensie nie oceniałem niczego jedynie pisałem o faktach. A w Javie po prostu nie piszę.

0

@vpiotr
jesli chodzi o jave, to do tej pory byloby tak:
spring core
spring mvc - chociaz tu bardziej wystawialem REST i front javascriptem niz bawilem sie w jsp czy freemarkery
jpa z hibernate - testowalem hibernate ale czystego(bez uogólniania do entitymanagera np. w wypadku podmiany implementacji na eclipslinka dajmy na to), zapisywanie do bazy, relacje, zapisywanie kolekcji itp.
JSF z primefaces - pisalem w nim na poczatku, jak zaczynalem zabawe z JEE
Play framework - zrobilem jakis podstawowy projekt pobawilem sie nim krótką chwilę

0

@zate: to dość sporo jak na rok pracy, na pewno wystarczająco się w to zagłębiłeś?
Czego Ci brakowało w Play?

0

@somekind

Jeśli obecnie faktycznie zajmujesz się konfigurowaniem , to tak... Ale ja trochę nie wierzę w to, że Java jest aż taka zła.

az taka zła nie jest. nie chce siac tu rozpusty na temat jaka to java jest okropna, ale nie chce tez kłamac, dlatego powiem:
w javie trzeba na prawde duzo konfigurować i duzą część czasu zajmuje mi konfigurowanie, przez co mniej go zostaje na faktyczny rozwoj jakiegos projektu. moze jak sie juz nabierze płynnosci w tym to wtedy idzie gładko, ale mi obecnie jak krew w piach :P

@vpiotr
własciwie to nawet niepełny rok. jakos w pazdzierniku czy wrzesniu bedzie rok jak sie interesuje JEE. wczesniej raczej czysta java, swing i takie tematy. ostatnio wszystko jest przeplatane jakimis probami typu wlasnie asp.net, django, scala ror itp. ale tak po trochu zeby sie rozejrzeć

mówisz ze to dosc malo czasu? bo ja mam wrecz odwrotne wrazenie: ze zajelo mi to bardzo dlugo, a dalej nic nie wiem

prawda jest dosc drastyczna, bo w żadnej technologii nie napisaem jakiegos wiekszego projektu. raczej małe rzeczy, male projekty, odkrywanie ficzerów danego frameworka itp.

moja wiedza z tych technologii, ktore wymieniłem jest raczej taka podstawowa, do dalszego rozwoju. nie jestem jakims super ekspertem od jpa i hibernate, ale troche sie nim pobawilem - na tej zasadzie.
zaczalem odczuwac zniechecenie zwiazane z tym, ze ilosc pracy wlozonej w nauke jest odwrotnie proporcjonalna do skillow, efektow i wiedzy. duzo przy tym siedze, a mam wrażenie ze mało wiem.

dlatego przez glowe przechodza mysli o zmianie technologii. z tym ze chodzi o wybranie czegos, co jest ciekawe, interesujace i w przyszlosci mogloby mi zapewnic jakies praktyki/prace na studiach. zeby sie nie okazalo ze teraz w zaparte przycisne sie do javy, a na studiach sie okaze ze mnie to nudzi i bede od 0 startowal w czyms innym. wtedy jakby nie bylo moja wartosc jako developera spadnie na pewno.
a ze programista musi byc elastyczny to wiem :D

troche klapa, nie umiem podjac ostatecznej decyzji :|

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