Skocz do zawartości

C# czy Java?


Recommended Posts

Przecież co najmniej od 3 lat kod w C# spokojnie da się przenieść na Mono :)

 

Ważne tylko, by kod pisać przenośnie, tzn. unikać się odwołań do systemu operacyjnego lub takie odwołania pisać wariantowo pod  3 główne systemy (Win, OSX, Linux). Przecież te same reguły dotyczą przenośnego pisania aplikacji w C czy innych językach. Skorzystasz z czegoś "systemowego" i koniec przenośności. Chyba, że zrobisz IFDEF flaga_systemu i zaprogramujesz odpowiednie rozwiązanie pod dany system.

 

Ktoś tutaj wspomniał o Xamarin Mono pod Androida - otóż ci sami goście rozwijają "klasyczne" Mono. Można rzec, że dzięki Androidowi Mono na desktopy i serwery dostało potężnego speeda.

 

Pod Mono macie praktycznie wszystko to, co pod .NET. Do tworzenia GUI są odpowiednie biblioteki, np. GTK#, wxWidgets.NET no i można korzystać z Windows.Forms, choć wyglądają dość topornie, no ale działają. Chyba nawet QT wydało port pod .NET. Do tego macie środowisko programistyczne z debuggerem, dużo bibliotek, w tym np. NHibernate, całe ASP.NET łacznie z najnowszym MVC 4 z silnikiem Razor, działa nawet ASP.NET WebApi do budowania aplikacji RESTowych. Macie zaimplentowane całe LINQ. I co ważniejsze aplikacje sieciowe możecie uruchomić na Apache albo Nginx

 

Tak, że gadki o tym, że przenośna jest tylko Java, a jak .NET, to tylko Windows można spokojnie włożyć między bajki oraz... czarny PR Javowców :)

 

Jak wpiszecie w Google "tworzenie przenośnego oprogramowania w mono" to dostaniecie jako pierwszy wynik do wpisu gościa, który zebrał do kupy sporo informacji na ten temat: "warsztat pracy dla programujących w mono". Jest tam także link do jego prezentacji: "Tworzenie przenośnych aplikacji z wykorzystaniem Microsoft .NET Framework oraz Xamarin Mono". Co prawda prezentacja jest już nieco stara, sprzed roku, ale sporo tam informacji. Jeszcze więcej info jest w necie.

  • Popieram 2
Link to post
Share on other sites
  • 3 tygodnie później...
  • 2 tygodnie później...

jimbo wszystko się da w jakiś sposób zrobić ale po co się męczyć

.Net pod windowsa a java pod wszystko i tyle :)

 

w C# fajnie się pisze bo jest VS i wsparcie MS no ale wadą jest, że wszystko to jest płatne

 

w javie prawie wszystko darmowe i to jest piękne :)

 

Ależ dlaczego męczyć :) Gdybym się musiał męczyć we własnym biznesie, to lepiej, żebym go zamknął od razu, no nie? :) Na początku trzeba było poświęcić trochę czasu, poszukać, poszperać, pokombinować, ale ostatecznie mi się opłaciło. Na "swoim" człowiek bardziej krytycznie podchodzi do różnych rzeczy i bardziej ceni czas. Mam swoją ulubioną platformę, mam swój ulubiony język, mam sprawdzony "w boju" komplet bibliotek i narzędzi, a od czasu dojrzałego mono - mam dodatkowo szerszy rynek (specjalistyczny soft często chodzi na serwerach linuksowych) praktycznie bez poszerzania warsztatu. Skoro "skumałem się z mono", to znaczy, że spełnia moje wymagania. Oczywiście dla kogoś innego może ich nie spełniać.

 

W C# pod Windows fakt, pisze się fajnie, ale nawet nie dlatego, że jest VS (a jeszcze z Resharperem :)), tylko dlatego, że pracuje się w homogenicznym środowisku - Sharepoint, .NET, Office, IIS i cała masa innych biznesowych "klocków", w dodatku wiele  komponentów wystawionych po COM, z których składa się infrastrukturę. .NET jest tutaj tym "klejem". Do tego dodam jeszcze C++/CLI, takie "cuś" stanowiące pomost między niezarządzanym kodem w C++ (pod sprzęt) i .NET.

 

W Javie jest podobnie, mamy fajne środowiska (nie tylko Eclipse), solidną platformę (J2EE) i multum różnych narzędzi i komponentów. Ale support i tu i tu jest płatny.

 

Jeśli chodzi o warsztat, to na co dzień spokojnie wystarczał nam darmowy Visual C# Express (choć kilka osób w firmie ma pełne VS z resharperem) i Monodevelop, a na wyjazdy wdrożeniowe brało się SharpDevelopa na penie. Pracujemy tak od lat. Jak chodzi o bazy danych, to do prostych projekcików mamy SQLite i SQL Server Express albo Oracle XE, do większych - PostgreSQL. Też zero kasy.

 

Ze wsparcia MS nie korzystamy - wszystko znajdujemy w necie, zwykle na stackoverflow.

 

Jedyny może mankament to podczas pisania aplikacji desktopowych, że przywykliśmy do Windows Forms a potem do WPFa, w którym można tworzyć po prostu zapierające dech w piersiach GUI (choć do wygodnej pracy trzeba nieco zapłacić za środowisko, mimo że to czysty XML). GTK# wydał nam się po prostu "brudny", taki trochę na siłę (zwłaszcza stałe tekstowe...), ale w końcu "nauczyliśmy się go kochać" :)

 

W sumie w większości projektów i tak stosujemy SOA i cienkiego  klienta, więc piszemy w ASP.NET MVC, a temu to już wszystko jedno, czy to .NET czy Mono, czy Linux, Windows, Apache czy Nignx czy IIS :) W sumie mogę powiedzieć, że od czasu MVC3 kompletnie nie mamy zmartwień w zakresie przenośności. Obecny MVC4 też chodzi bez problemu, a w dodatku został "uwolniony" do OpenSource, podobnie jak Entity Framework. Działa nawet MS WebApi, jest ServiceStack.

 

A Javy w żaden sposób nie deprecjonuję, to wielka i wieloletnia, dojrzała technologia. I szacunek do jej twórców za to, czego dokonali. I pozdrowienia dla jej programistów :)

Edytowane przez jimbo
  • Popieram 1
Link to post
Share on other sites

Będę miała poprawkę z Java na studiach ;/ Trudno mi to garnąć. Myślicie, że warto kupić taki kurs http://strefakursow.pl/kursy/programowanie/kurs_programowania_w_java.html

Egzamin będzie z podstaw - w książce jest sucha wiedza. Na stronach też są raczej poruszane jakieś szczegółowe problemy, a mi zależy na podstawach :)

Link to post
Share on other sites

Egzamin jest teoretyczny czy praktyczny? Jeśli praktyczny (czyli trzeba napisać jakiś program) to nawet 100 książek nic ci nie da. Musisz kodzić żeby się nauczyć. Czyli znajdź sobie zadanko (np z poprzedniego roku), próbuj sama je rozwiązać, a problemy rozwiązuj w Google lub pytaj na forum :-)

 

Edytowane przez Luki91
Link to post
Share on other sites

Wiem jaki to ból. Miałem takie kolosy... 
Fajnie się wstawiało komentarze, w końcu kompilator to pomija // 

:D

 

kajametro, jak chcesz to odezwij się na pw może jakoś pomogę jak ogarnę projekt czyli dzisiaj powinienem go skończyć :P 

Edytowane przez Mistic92
Link to post
Share on other sites

Dużo tu propozycji. Czy weźmiesz Javę, czy C# będzie ok. Dwie technologie są nowe i specjaliści są pożądani. Ktoś rzucił pythona. Mało ludzi go umie. Jak posiądziesz tę wiedzę na pewno znajdziesz pracę. Jest jeszcze coś takiego jak Ruby on Rails. Też szuka się z tego ludzi, ale nie do końca jest dużo tych ofert. 

 

Ja bym mówił Java, C#, Python, cokolwiek i będzie ok.

Link to post
Share on other sites
  • 1 miesiąc temu...

Jestem programista javy, ale wczesniej robilem w C#. C# wyprzedza jave zdecydowanie i ma wiecej fajnych bajerow. Zaleta jego jest tez taka ze srodowisko ma zintegrowane i gotowe co powoduje ze ze strony srodowiska wynika mniej bledow niz jest to w javie. No ale z drugiej strony za dobre srodowisko trzeba zaplacic. O ksiazkach trudno mowic. Ja bym zaczal od tutoriali. A aspektow jest bardzo duzo, bo zalezy co chcesz pisac. Masz EJB mas Springa, od backendu inne ksiazki od GUI co innego itp. Wiec najpierw sprobuj podstaw i zaobacz co ci bardziej lezy a potem w zaleznosci od tego co chcesz pisac dobierzesz sobie materialy.

Link to post
Share on other sites

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Odpowiedz w tym wątku...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...