Czas by powstał ten temat: wielki krok .NETu?

0

siemanko
ostatnio głośno i huczno o tym, że .NET sie wprowadza na linuxy i osx'y. Chcialbym spytac co o tym sądzicie? (jak dałem to w złym dziale to przenieście proszę)
No i temat burza: C# wypiera Jave. Wiadomo, że softu jest kupe napisanego w Javie, ale chciałbym również wiedzieć, jak wy to widzicie?

mówią, że:

This will enable you to build .NET server and cloud applications and run them on both Windows Server and Linux. It is going to enable every developer – regardless of what operating system they use to develop or target – to use .NET. And to do so on a fully open source runtime.

source: https://weblogs.asp.net/scottgu/announcing-open-source-of-net-core-framework-net-core-distribution-for-linux-osx-and-free-visual-studio-community-edition

0

Dlaczego uważasz, że .NET wypiera Jave? Java ma się dobrze i to się nie zmieni przez długi czas.

2

nie nie, nie mówie, że coś kogoś wypiera, tylko że ostatnie wydarzenia tj ogłoszenie że "Microsoft kocha linux'a" trochę uwydatnia prędkość z jaką .NET leci do przodu, a Java (jako jej "najwieksza konkurencja") można powiedzieć że stoi w miejscu (przez min. community process) i troche w jego cieniu

żeby nie było, Jave uważam za świetna technologie mającą duże możliwości itp. ale patrząc na to, że microsoft zrobił sobie kopie javy w postaci C#, dał mu świetnego .NET'a, środowisko itd, które w dodatku idą o niebo szybciej do przodu, a teraz jeszcze zaczynają bić najwiekszą ceche javy to jest przenośność - zaczyna się robić groźnie :D

0

Ja osobiście uważam, że będzie to zwyczajna konkurencja.
Rails i Django,
Pascal i "Bejsik",
.net i java...

0

@spartanPAGE faktycznie coś w tym jest; ale patrząc np na Django vs Railsy - nie siedze w tym za głęboko, troche w Pythonie, ale coś czuje, że Railsy mają większe wzięcie (czemu? nie wiem, może dlatego ze w Rubym pisze się praktycznie sam web-dev, może lepsze community, może gusta-guściki ludzie mają bardziej Railsowe)

1

Najciekawsza rzaecz: wsparcie dla Unity w nowym, darmowym Visualu - to moze nieco namieszac w rynku aplikacji mobilnych (na korzysc .Net).

2

A to nie jest tak, że MS narobił w gacie po tym, jak Java (język) w wersji 8 nadgoniła C# na tyle, że nie ma się już o co spinać na tym poziomie? ;]

.NET na Linuksach i OSXach był już wcześniej w postaci Mono. Mono zostało wchłonięte przez MS. Teraz MS otwiera się (w jakiś tam sposób) na Linuksa i OSXa, ale moim zdaniem i tak kupa robot przez MSem jeśli ichniejszy .NET ma dobrze działać na tych platformach. Java jest rozwijana z naciskiem na wieloplatformowość, tak by wszelkie ficzery działały równie dobrze na każdej wspieranej platformie. Wątpię, by .NETowcy jakoś martwili się przenośnością i używaniem tylko mechanizmów, które są przenośne. A samo przekompilowanie kodu na Linucha nie oznacza, że nagle Linuch dostanie cech Windowsa, np rejestr systemowy, jakieś COMy czy serwisy (nie znam się na tym).

Moim zdaniem, jak na razie te slogany o Linuksie to chłyt martetindody, ale z czasem się okaże. Konkurencja dobrze zrobi. Oracle przyspieszy tempo :]

0

.Net dostał warstwę abstrakcji między serwerem web a aplikacją, czyli coś na wzór Racka z rubiego, WSGI z pythona, pod nazwą OWIN. ASP.Net vNext będzie w całości na tym oparty, dokładniej na ms'owej implementacji - Katanie. Następnym krokiem jest całkowite uniezależnienie się od 13(!) letniego System.Web, które ponoć jest niezłym burdelem. Przykładowo według ich testów Helios (będący w alfie i obecnie daleki od bycia production-ready) zżera znacznie mniej pamięci na request. Widziałem też jakiegoś tweeta chyba kolesia z ms, że iis jest superszybki dopóki nie podepniesz do niego System.Web. Po co to wszystko? Niezależność od serwera i platformy, możesz nawet hostować w konsoli jeśli chcesz. W tym upatrywałbym się szansy dla .Netu.

2

A to nie jest tak, że MS narobił w gacie po tym, jak Java (język) w wersji 8 nadgoniła C# na tyle, że nie ma się już o co spinać na tym poziomie? ;]

Nie, bo decyzje o pójściu w open source zostały podjęte IMO dobre kilka lat temu. W tej chwili może ci się wydawać, że z C# niewiele się ostatnio działo (o tym na koniec), ale Microsoft przez ten czas: kompletnie przepisał kompilator C#/VB (Roslyn), kompilator JIT (wspólny codebase dla wszystkich architektur - Ryujit), pracował nad natywną kompilacją (najpierw MDIL, teraz .NET Native) czy nową architekturą aplikacji webowych (core clr, czyli .net obok samej aplikacji). Można powiedzieć, że .NET został w większości przepisany od nowa i teraz zacznie się proces integracji codebase'ów z Xamarinem (Mono).

Więc Microsoft kończy chować swoje trupy w szafie, a co z Javą? Lambdy! Pierwsza reakcja po spojrzeniu na Stream API to nie mogło być nic innego niż "no tak, Java wciąż ma type erasure" (IntStream, BlahBlahIntToLongBlah, getAsDouble). Całe te lata oszukiwania siebie, że "type erasure to feature" , "value types są niepotrzebne (mamy escape analysis)", "przeładowywanie operatorów tylko zaciemnia kod", "checked exceptions ułatwiają pracę" i tak dalej ;).
No i w końcu Oracle też chce swoje trupy pochować - dosłownie w "komnacie poległych", czyli projekt Valhalla. Tylko czy zdąży w tym dziesięcioleciu?

A zakończę tym, że C# zaraz dostanie rekordy i pattern matching. Draft specyfikacji, wstępna implementacja. I znowu będzie przepaść.

0

Wątpię, by .NETowcy jakoś martwili się przenośnością i używaniem tylko mechanizmów, które są przenośne. A samo przekompilowanie kodu na Linucha nie oznacza, że nagle Linuch dostanie cech Windowsa, np rejestr systemowy, jakieś COMy czy serwisy (nie znam się na tym).

Zwykły hello world to działa pod Mono i nie widzę tu specjalnie potrzeby .NETa pod Linuksem. A każda większa aplikacja w ten czy inny sposób odwołuje się do systemu (bo dlaczego by nie — skoro i tak to z założenia działało tylko pod Windowsem, to po co pisać kod przenośny?).

Microsoftowi bardziej chodzi o różne ASP.Net i inne nudne rzeczy pod Linuksa, tylko to znowu jest cios w ich Windows Server — na co komu WS, skoro do tej pory niezbędny był tylko do ASP? ;-)

0

Visual community 2013 - pierwsze starcie. Na moim styranym win 8 odmowil instalacji, po kilku godzinach debugowania poddalem sie i sprobuje ponownie, jak zrobie kiedys reinstall systemu:)

0

Więc Microsoft kończy chować swoje trupy w szafie, a co z Javą? Lambdy! Pierwsza reakcja po spojrzeniu na Stream API to nie mogło być nic innego niż "no tak, Java wciąż ma type erasure" (IntStream, BlahBlahIntToLongBlah, getAsDouble).

Tak jak przewidziałem. Głównym problemem Javy jest to, że nie można sparametryzować Listy małym intem (ale za to można dużym przecież, toć to obiekt jak każdy inny). To przecież jest tak potrzebne w apkach biznesowych...

Całe te lata oszukiwania siebie, że "type erasure to feature" , "value types są niepotrzebne (mamy escape analysis)", "przeładowywanie operatorów tylko zaciemnia kod", "checked exceptions ułatwiają pracę" i tak dalej ;).
No i w końcu Oracle też chce swoje trupy pochować - dosłownie w "komnacie poległych", czyli projekt Valhalla. Tylko czy zdąży w tym dziesięcioleciu?

A zakończę tym, że C# zaraz dostanie rekordy i pattern matching. Draft specyfikacji, wstępna implementacja. I znowu będzie przepaść.

No i może za 10 lat C# dogoni Scalę 2.0.

2

Tak jak przewidziałem. Głównym problemem Javy jest to, że nie można sparametryzować Listy małym intem (ale za to można dużym przecież, toć to obiekt jak każdy inny). To przecież jest tak potrzebne w apkach biznesowych...

Problem jest o wiele większy i nie polega na tym, że nie można sparametryzować listy "małym intem", ale że na przykład negatywnie wpływa na inne feature'y i architekturę całych API. Chociażby w burdelu w nazewnictwie delegat (interfejsów funkcyjnych).

No i może za 10 lat C# dogoni Scalę 2.0.

Haha, czekałem na ten argument. Programiści Javy nie rzucili się nagle na Scalę i wiesz bardzo dobrze, że nie stanie się to w przyszłości tak samo jak większość programistów C# nie stanie się programistami F#.

0

Problem jest o wiele większy i nie polega na tym, że nie można sparametryzować listy "małym intem", ale że na przykład negatywnie wpływa na inne feature'y i architekturę całych API. Chociażby w burdelu w nazewnictwie delegat (interfejsów funkcyjnych).

Możesz rozjaśnić?

Haha, czekałem na ten argument. Programiści Javy nie rzucili się nagle na Scalę i wiesz bardzo dobrze, że nie stanie się to w przyszłości tak samo jak większość programistów C# nie stanie się programistami F#.

A czy kiedykolwiek programiści się nagle na coś rzucili? Scala ma wsparcie komercyjne i od dawna nie jest zabawką. Pracę w Scali też można spokojnie znaleźć w (względnie) dużym mieście.

Java jest bardzo prosta, bardzo mało jest niej nieoczywistej magii. Dlatego, moim zdaniem, to język idealny na masówkę. A jak ktoś chce zaszaleć to jest Scala, która działa całkiem OK, a C# i tak się do niej nie umywa jeśli chodzi o bajery.

Kwestia gustu.

0

Czyli tak według tego co mówicie zauważam, że F# i Scale obstawiacie jako "future of coding" :P (ostatnio nawet po głowie mi chodzi nauka Scali ale jakoś przekonany nie jestem w pełni..) C# i .NETu próbowałem, ale chyba narzędzia i środowisko Microsoftowe mi nie podchodzi

Doświadczenie (jakkolwiek by tego nie rozumieć) mówi mi, że języki można pogrupować na takie 'kopce': easy and fast do develop: Python, Ruby; kolosy do wiekszych systemów: Java, C#; jakaś szybka-stronka: php albo jsowe frameworki z SPA

Gdzie by wrzucić Scale i F#? bo czuje że ten kopiec jeszcze nie powstał i nazywałby się "too difficult but useful to know" (przynajmniej na teraz)

Czyli finalnie jak szacujecie rywalizacje C# vs Java? (bo wg mnie ewidentnie teraz taka ma miejsce, a jak nie ma to będzie miała, chociaż wiem, że ma :D)

1

Java umarła już 500x. Myślę, że wytrzyma jeszcze co najmniej 1000 zgonów.

Naukę Scali polecam poprzedzić nauką Haskella na http://learnyouahaskell.com/ Wtedy Scala wyda się mniej WTFowa.

1

To Java jednak znowu nie umiera? ;<

5
azalut napisał(a):

Czyli tak według tego co mówicie zauważam, że F# i Scale obstawiacie jako "future of coding" :P

Te języki nie zastąpią C# ani Javy, bo 60% programistów nie jest w stanie nauczyć się języka, w którym nie pisze się programów tworząc jedną statyczną klasę z tysiącem mutowalnych pól.

Czyli finalnie jak szacujecie rywalizacje C# vs Java? (bo wg mnie ewidentnie teraz taka ma miejsce, a jak nie ma to będzie miała, chociaż wiem, że ma :D)

Ta rywalizacja trwa od kilkunastu lat, i będzie trwała nadal. Dużo softu zostało napisanego w obu tych technologiach, a poza tym na świecie jest jeszcze bardzo dużo softu do napisania, więc pracy dla Javowców i .NETowców starczy jeszcze na długo.
A, że Java jest brzydsza i wolniej się rozwija? No cóż, Javowcom to przecież nie przeszkadza, mają syndrom sztokholmski, więc wszystkie bezsensowne aspekty Javy sobie racjonalizują uważając jej zacofanie za zaletę.

0

Tylko jak interpretować te wyniki z TIOBE? Ta zmiana w procentach to chyba w punktach procentowych.

A więc Java straciła: 2,13 / (2,13 + 14,391) * 100 = 12,89 (%)
A C# stracił: 1,04 / (1,04 + 4,985) * 100 = 17,26 (%)

Jakkolwiek sceptycznie by do wykresików na TIOBE nie podchodzić, to jednak najbardziej cieszy wynik C++a
2,27 / (2,27 + 6,098) * 100 = 27,13 (%) straty ;)

0

Java nie do końca rywalizuje z C# bo to trochę inne obszary.
Java: Windows, Linux, Mac, Android, z/OS, iSeries, małe i duże pudełka...web
C#: Windows, ew. mobile(?) i... web

C# ma ładniejsze okienka (z tego co widziałem).
Java jest bardziej przenośna (nie tylko teoretycznie).

Scala wygląda właśnie tak jak ktoś napisał - typu "WTF". Może się w tym lepiej pisze. Nie wiem. Znając trochę Javy i C++ nie widzę zalet (ale nie zagłębiałem się).

F# to cudo o którym od czasu ktoś wspomni "a my też mamy język funkcyjny, a ha!", ale chyba szału na rynku nie robi.

C++ będzie jeszcze długo na rynku. Podobnie jak COBOL. Po odświeżeniu w postaci C++11 to całkiem niezły język - ale raczej dla kogoś doświadczonego lub pod solidną opieką mentora. Raczej nie dla absolwentów którzy nie wiedzą jeszcze co chcą robić ale chcą wyciągać 10 tys / mc.

0

@vpiotr:
Najpierw przerób http://learnyouahaskell.com/ (szybko się czyta, w dwa weekendy opanujesz) potem spojrzyj na Scalę, WTF zniknie.

Scala to wyższa szkoła jazdy po prostu. Można powiedzieć, że Scala do Javy ma się tak jak C++ do czystego C.

C++ jest przestarzały i przekombinowany. Chciałbym żeby szybko zdechł i został zastąpiony np przez http://www.rust-lang.org/

0
vpiotr napisał(a):

Java nie do końca rywalizuje z C# bo to trochę inne obszary.
Java: Windows, Linux, Mac, Android, z/OS, iSeries, małe i duże pudełka...web
C#: Windows, ew. mobile(?) i... web

C# to przede wszystkim web (a nie Windows) i rozwiązania dla biznesu. Tak jak Java.

F# to cudo o którym od czasu ktoś wspomni "a my też mamy język funkcyjny, a ha!", ale chyba szału na rynku nie robi.

F# nie jest tylko na pokaz, ten język jest stosowany komercyjnie, nawet w Polsce. Tworzy się w nim rozwiązania finansowe, Business Inteligence/Data Mining i inne, w których języki funkcyjne są naturalnym wyborem.

0

Czy C# jest dobrym wyborem jeżeli mam mniej wiecej 2lata przed pracą by ogarnąć? i czy jest bardziej perspektywiczny niz java?

1

C# i Java są na tyle podobne jeśli chodzi o styl programowania, że przerzucenie się między nimi nie powinno nastręczyć masy problemów. Oczywiście biblioteki są inne, dla Javy i .NETa, ale i tak dość podobne. Duży problem byłby gdybyś przerzucał się z Pythona/ Ruby/ PHP na C#/ Javę, ale nie między C#, a Javą.

Jak na razie jest nadmuchiwanie balona o .NETu który ma zawładnąć światem, ale jakoś nie jestem przekonany, że nastąpi jakiś gwałtowny przewrót.

0

Tak wiem że różnice między c# a java sa małe.

Jest gdzieś spis np. duże programy, strony sa pisane w jakich językach?

0

Entuzjaści PHP podniecają się, że FB używa PHP, ale FB używa też masy Javy oraz szeregu innych języków. Takie licytowanie się jest trochę słabe, bo ciężko spenetrować rynek z fotela szeregowego programisty.

Zobacz na oferty pracy w miastach które cię interesują. W ciągu 2 lat przekrój ofert nie powinien się drastycznie zmienić.

Prawdopodobnie i tak sam nie wiesz czego chcesz (to zresztą widać po twoim poście) i na początku kariery będziesz próbował wielu rzeczy. Zależnie od twojego charakteru albo utkniesz w tym co początkowo wybrałeś na stałe (by nie ryzykować zmniejszeniem zarobków, nawet perspektywie krótkoterminowej), albo będziesz próbował iść w kierunku tego co się pociąga i zwiewać od tego co cię nudzi.

0

Podobno pieniądze są słabym motywatorem do zostania programistą więc nie zwaracam na to uwagi(za duzo) tylko chce by rynek dla jezyka ktory wybiore i zwiąże swoja karierę na kilka lat, nie umarł i nie zatrzymał się w miejscu tylko stale się rozwijał itd

0

Zarówno C# jak i Java są na tyle duże, że jak miałyby umierać to przez wiele lat. Rozwój też powinien być niezagrożony - Oracle ma dużo kasy, którą może władować w Javę, a postępy w .NETu mogą być tylko motywacją do popchnięcia i Javy do przodu.

Na C++ nie ma jakoś szczególnie mody, nie ma też zalewu ofert pracy w C++, a mimo to język trzyma się względnie bardzo dobrze. Jest aktywnie rozwijany, ma wiele implementacji, dobre onarzędziowanie, itp itd

Za dużo biznesu na tym stoi, żeby to w ciągu kilku lat wyrzucić do kosza. Zobacz sobie na COBOLa, jaki jest kulawy i ograniczony, jaki był kiedyś popularny oraz jak długo zdychał (w sumie nadal zdycha, bo podobno jeszcze sporo kodu w COBOLu jest do utrzymywania). Zobacz też ile powstało ulepszaczy/ czegokolowiek do COBOLa.

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