Java czy C#?

VS
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:28
0

Ciężko jest mi się zdecydować między Javą a C#. Co byście mi polecili na początek? Przytoczę wywód takiego jednego gościa na temat wyższości C# nad Javą:

Zależy. Pod względem opłacalności na rynku pracy Java wypada lepiej. Niemniej jak jesteś dobrym programistą C#, który ma jakiś talent i zawzięcie to też Cię wszędzie chętnie zatrudnią a z C# przejście na Javę jest niemalże bardziej lajtowe niż z C++ na C#, gdzie musisz się oduczać nawyków nieprawidłowych nabytych podczas nauki C/C++. Wiem dobrze o tym, bo pamiętam jak długo przez jakiś czas programowałem w C# i chciałem nagle coś napisać w Javie to wystarczył rzut okiem na dokumentację i wszystko poszło jak z górki. A to, że C# jest tylko pod Windowsa to jest jeden z największych błędnych mitów. Jest przecież Xamarin, ASP.NET, Unity3d, Universal Platform, Azure chociaż fakt faktem ciężko będzie Ci np. zrobić serwer ASP.NET na Linuxie czy napisać na Ubuntu aplikację pod Azure, więc ten argument może jedynie mieć takie uzasadnienie, że Microsoft dba o swój monopol i nie zamierza wspierać developmentu aplikacji C# na Linuxie czy Mac OS X (o ile się nie mylę o Apple ma swój język Swift i Objective-C).

Co sądzicie o tym? Czy to ma sens? Niby pod Linuxa jest Mono Develop ale ono jest kiepskie, więc może on i ma rację. Czy to dobry pomysł ciągnąć C# i Javę równolegle?

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
0

Jak Linux to Java - nawet nie ma się nad czym zastanawiać. Niby Mono wspiera C# ale są to już stare wersje języka. Używając Mono zawsze jest się w tyle za tym co wprowadza MS do platformy .NET.

edytowany 1x, ostatnio: grzesiek51114
RE
Masz mocno nieaktualne informacje.
DibbyDum
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad rok
  • Lokalizacja:Polska, Kraków
0

To zdanie jest dość nie aktualne:

Microsoft dba o swój monopol i nie zamierza wspierać developmentu aplikacji C# na Linuxie czy Mac OS X

M$ coraz bardziej się otwiera, jest .NET Foundation, DNX/.NET Core. Co prawda jest to wciąż w fazie rozwoju ale za rok, dwa już myślę że spokojnie będzie można tego używać do czegoś więcej niż do zabawy.

Niby pod Linuxa jest Mono Develop ale ono jest kiepskie

Zawsze możesz zerknąć na Visual Studio Code: https://code.visualstudio.com/


Yubby dibby dibby dibby dibby dibby dibby dum..
edytowany 2x, ostatnio: DibbyDum
Zobacz pozostałe 6 komentarzy
VS
@DibbyDum no to to że są podobne to tym bardziej powinno stanowić duże ułatwienie w nauce i mniejsza szansa że mi się pomiesza w głowie
DibbyDum
@vscommunity rób jak uważasz, według mnie to bez sensu. :P
VS
No to doradź mi czy się uczyć C# czy Javy
VS
Jakbyś uzasadnił swoją decyzję?
Shalom
  • Rejestracja:około 21 lat
  • Ostatnio:prawie 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
4

@vscommunity hubot weź ty się może po prostu zacznij uczyć czegokolwiek?


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
VS
A to że sobie przeczytałem książkę C# Programowanie Jesse Liberty i C++ zaawansowane programowanie nie wystarczy?
Shalom
Nie, od czytania to są książki jak "Wojna i Pokój" albo "Nędznicy". Programowania się uczy programując.
VS
No to dzisiaj sobie pisałem programy w VS. Link do mojego githuba: https://github.com/hubotx
Patryk27
@vscommunity: najpierw nauka angielskiego, potem pisanie po angielsku. 1 element has deleted., 1 elements has added., Where you want to delete this element? i wiele, wiele więcej...
Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
0

Ale w co Ty konkretnie celujesz? Zadajesz tak ogólne pytanie bez podania swoich oczekiwań/celów. Zastanów się czy na początek nauki wieloplatformowość jest w ogóle Twoim nadrzędnym celem.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
VS
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:28
0

W pewnym sensie tak. Fajnie byłoby móc przenosić aplikacje między Androidem, Linuxem, Windowsem, Mac OS X, Windows Phone czy iOS-em. Chciałbym również mieć dostęp do popularnych frameworków, bibliotek i wzorców projektowych. C# ciągnę już od dłuższego czasu, ze dwa lata. Umiem posługiwać się interfejsami, klasami, strumieniami, GUI, timerami, socketami itp. W Javie mam mniejsze doświadczenie niż w C#. Chciałem się tylko zapytać czy na obecnym etapie warto przechodzić na inny język. Przerobiłem wszystkie tutoriale Unity3d i teraz jestem w trakcie wykonywania tych projektów z tutoriali. Teraz tworzę projekt o nazwie OGL oparty na ASP.NET MVC i C#.

1

MS sie otwiera ale nie nadrobi czasu blyskawicznie.

Wedlug mnie jeden czy drugi jezyk dobry. Do web net czy spring\jee. Jedno i drugie raczej spoko.

Skupilbym sie na roznicach, np. Ze java poki co jest bardziej portable, jest android. C# lepsze na desktopa, mozna gry w unity robic.

Visuals studio code na linuxie jest straszliwie biedne, sublime duzo bardziej funkcjonalne.

Hejtstop idiotycznej wojnie java vs c#...

W wolnej chwili zamierzam pouczyc sie c# jako javowiec.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
1

Windows Phone jest martwe, nie ma sensu w ogóle brać tego pod uwagę.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

Ale xamarin to dobre posuniecie.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
0

Zdecydowanie lepszym jest pisanie osobno aplikacji dla Androida i iOSa.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
VS
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:28
0

Dobra, nie ma co winić Microsoftu za wolne uruchamianie VS tylko odinstalować te śmieci. Skupiam się na C# i przy nim pozostaję.

Aventus
  • Rejestracja:około 9 lat
  • Ostatnio:ponad 2 lata
  • Lokalizacja:UK
  • Postów:2235
0

@vscommunity Skoro masz już dwa lata doświadczenia z .NET to moim skromnym zdaniem przejście na Jave nie ma sensu. Zamiast tego kontynuuj rozwój umiejętności C# a w ramach nauki czegoś nowego celuj w coś całkowicie odmiennego, np. język stawiający na paradgymat funkcyjny. Myśląc o wieloplatformowości również pozostań przy C# i skorzystaj z dostępnych projektów, chociażby wymieniony już Xamarin.


Na każdy złożony problem istnieje rozwiązanie które jest proste, szybkie i błędne.
edytowany 1x, ostatnio: Aventus
SO
hubot i 2 lata doświadczenia xD. On przecież ma jakieś urojenia.
0
Wibowit napisał(a):

Windows Phone jest martwe, nie ma sensu w ogóle brać tego pod uwagę.

Połowa tych aplikacji i tak powinna być webowa :P

0

Mnie jakoś zawsze ta Java odpychała, zagmatwana pokręcona jak dla mnie. Natomiast C# ma ograniczenia do jednej platformy Microsoftu. Niby można pod Linux, ale wiadomo jak to jest, programy pod MonoDevelop są większe w porównaniu do VS. Do tego Apple zablokowało Jave u siebie, z C# podobnie. Ja zrezygnowałem z obu tych języków, można pod Androidem pisać w Pythonie z Qt 5.6, lub niezłe zarobki w Python-Django, Ruby-RoR.

2

Przeciez pisanie o wyzszosci c# nad java lub na odwrot to jak pisanir o wyzszosci schabowego nad kotletem...

Zobacz pozostałe 20 komentarzy
aurel
To chyba powinieneś się cieszyć, że zostałeś oświecony :D Ja o rodzajach kotletów mogę opowiadać długo i namiętnie ;) Chcecie wiedzieć, czym się różnią bitki od eskalopek? :P
krzysiek050
Powinienem, ale jest już dla mnie za późno. Jeżeli poproszę żonę o schabowe na obiad to zawsze będę oczekiwał sznycla. BTW, to co pokazałaś wcale nie wygląda apetycznie.
grzesiek51114
grzesiek51114
Hehe uwielbiam to forum :-) A to dziedziczenie zrobiłem prawidłowo. Ktoś kto twierdzi inaczej nie widzial chyba na oczy schabowego. Schabowy jest kotletem koniec i kropka :-P
aurel
@grzesiek51114 tak uważasz? To dodaj teraz klasę stek (schabowy) >:] I co, dziedziczy po kotlecie, czy po schabowy? I zastanów się od razu, gdzie potem dodasz stek wołowy :P
grzesiek51114
grzesiek51114
@aurel jestem głodny :-)
0

Dokładnie tak jak powyżej wygladaja dyskusje java vs c# ;)

bree
  • Rejestracja:prawie 9 lat
  • Ostatnio:około 7 lat
  • Postów:40
1

Ja jestem zwolennikiem Javy, ale tylko dla web. W przypadku desktopów MS dostarcza, według mnie, genialne środowisko - VS, świetnie udokumentowany język i sporą bazę gotowych, często darmowych bibliotek - chociaż to ostatnie dotyczy obu języków.

Java Forever:

Aventus
Rozbroił mnie ten filmik, świetny xD Chociaż z tym "secure" też dowalili ;)
0

Fajnie byłoby móc przenosić aplikacje między Androidem, Linuxem, Windowsem, Mac OS X, Windows Phone czy iOS-em.

W takim wypadku na dzień dzisiejszy najlepsze jest Qt. Np na takich linuxach( desktop ) zdecydowanie bardziej popularne rozwiązanie niż Java czy C#.

KA
niby czemu. QT
VS
  • Rejestracja:prawie 9 lat
  • Ostatnio:ponad 8 lat
  • Postów:28
0

No to doradzi mi ktoś w końcu czego się najbardziej opłaca uczyć? A jakbym tak Javę i C# się uczył? Czy są języki lepsze od C# i Javy?

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 11 godzin
0

Pracy w Javie jest dużo, a płace w Javie też są duże. Inaczej mówiąc: jest spokój, a kasa się zgadza. C# daje nieco gorsze perspektywy, ale dużej różnicy nie ma.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
0

Jak Ty zadajesz takie pytania to daruj sobie Jave bo jest za trudna, aby te pokręconą w niej obiektowość załapać. Zacznij może od javascript lub PHP to ma niski próg wejścia i szybko widać efekty pracy. Trzeba być naprawę zdolnym aby po 2 latach nauki dostać pracę w Javie i jeszcze dobrze musisz się do tego przyłożyć, załapać algorytmy. Wybierasz co chcesz pisać Android, aplikacje mobilne, czy po stronie serwera Backend. Do tego musisz wybrać framework i wersję Javy a jest tego sporo nie licząc JavaSE, JavaEE, JavaFX. Ja uważam że Java po C++ jest drugim najtrudniejszym językiem a może i go już pod tym względem przewyższa ponieważ jest tak rozbudowana że jest multum nauki. Żeby coś konkretnego samemu zrobić w Javie naprawdę potrzeba sporej wiedzy aby to działało, Jave postrzegam jako język korporacyjny nie bez powodu. Jest to typowy język skierowany na pisanie w grupach, aby szybciej tworzyć duże serwisy społecznościowe. Ale tak jak wszystko jest do ogarnięcia, potrzeba motywacji chęci, znam kolesia co po 10 latach pisania w Javie już go nudzi ten język programowania i patrzy w kierunku go i node,js. Dodam jeszcze że C# niby trochę łatwiejszy ale też kombajn z masą różnych ficzerów ukierunkowany na jedną platformę Microsoft, tak jest Unity3D wiem. Ale z tego co piszą i mówią ludzie działa to na Linux, Apple jak .... Reasumując dla leniwych i szybko chcących się wbić w programowanie i dobre zarobki, to wybrał bym Ruby on Rails lub Python, Django lub Javascript. W webie są teraz zarobków porównywalne do tych trudnych języków od których się łysieje i trzeba sporo na główkować.

0

A ja polecam Python'a, jeżeli jesteś jeszcze młody to będzie język idealny dla ciebie. Dodać do tego jeszcze znajomość linuxa i znajomość matmy i możesz pracować za gruby hajs dla google jako data scientist ;p

0

A jak jesteś stary to zostaje Ci tylko asembler i ANSI C?

J0
To nie zależy od wieku, a od ambicji, dobrze może na obiektówce skończyć, a świat rozciąga się we wszystkie strony jednocześnie i nawet dobrze było by liznąć programowalnych macierzy bramek i stworzyć np. własny procesor neuronowy, ale i tak jeszcze emulowany. A potem krótka droga przez fizykę i chemie do prawdziwego procesora neuronowego.
0

Nie rozumiem ? Dzieciom, które mają po 6-7 lat, ze względu na swoją prostotę poleca się Scratch'a jakoś nie wyobrażam sobie dać takiemu dziecku na pierwszych zajęciach temat o zarządzaniu pamięcią w C++. Tak samo Python jest bardzo prostym językiem który można się nauczyć nie będąc jeszcze do końca rozgarniętym (czyt. młodym) i daję fajne perspektywy, może nie w Polsce, ale zdecydowanie na świecie, gdzie jest to właśnie przecież jeden z najbardziej preferowanym języków przez największe korpo.
Ludzie starej daty, niech uczą się zaczynając od dowolnego języka w końcu po tych wszystkich latach edukacji są przygotowani do przyswajania, różnej wiedzy nie zależnie od jej poziomu trudności.

0

Nie ma jak odradzac jave a polecac js na 1 jezyk. Absurd. Uwazam, ze zaczynanie od JSa to zly pomysl. Warto miec podstawy innego jezyka.

Ja z podstawami javy se uczac sie niewiele dostalem prace w javie, ktora scale nie jest trudna.

0

To czy dostaniesz pracę znając w java se, zależy chyba od szczęścia bo ja jeszcze 2.5 roku temu nie mogłem sobie z podstawami javy znajomością dobrych praktyk programowania wzorców i trochę więcej znaleźć pracy. Ale jak wyszłem z Javy SE i zacząłem kuć Jave EE dostałem pierwszą pracę (półtora roku temu)

0

Na jave jest jedno z najwiekszych zapotrzebowan wiec wedlug mnie latwo dostac prace.

0

Powiedz to pracodawcą, którzy dają zadania na staż typu "napisz aplikację restful" "napisz aplikację webową". Ale nie dziwie się, dzisiaj tak zarabiają pracodawcy na javie, pisząc takie aplikacje

Wibowit
pracodawcOM - w liczbie mnogiej mamy OM
0

No, teraz cos takiego robie w 30 minut.

Mialem za zadanie rekrutacyjne skonsumowac resta i operowac danymi lokalnie. Zrobilem i sie dostalem.

Nawet rok sie nie uczylem.

0

Stworzyć aplikacje w Springu też umiałem już wtedy, lecz to była wiedza typu skopiuj tu z neta wklej tutaj, nie czułem się w tym pewnie. Uznawałem, że dalsza część rozmowy kwalifikacyjnej będzie po prostu bez sensu. Dopiero po pierwszych próbach dostania się na staż zacząłem czytać o tym książki.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)