Java czy C#

0

To tak jak z platformami systemowymi.
Windows miał Pascal/C#
Apple miało Objective-C/Swift
A Linux C/C++
JVM jest pod wszystkie systemy, a taki Rust chyba nie jest kojarzony z żadnym systemem. No może z tym FirefoxOS ;)

1

Nowe technologie to przyszłość! Nie ma sensu brnąć w stare strupy! Widać to chociażby po tym, że żadna firma nie używa SAPa i wykorzystuje tylko nowoczesne oprogramowanie

0

Dlatego Polska ma najwięcej programistów Javy, bo takie jest zacofanie Januszy w rozwoju. Jak już czegoś się raz nauczą, to nie ma przeproś na zmiany, najwięcej Javy i PHP w Polsce. W w takich cywilizowanych krajach jak UK, Niemcy, USA, Rosja ludzie są kreatywni, wymyślają nowe języki programowania, technologie. A u nas jak to u nas, taka mentalność.

0

Polska jest tanią siłą roboczą, ale programiści Javy najwięcej zarabiają.

0

Ciekawe dlaczego nie może powstać kompilowany język programowania z odśmiecaniem pamięci i bez wskaźników. Go, Rust i Swift nie do końca pasują jako odpowiedź na to pytanie. Pisanie, że język oparty o maszynę wirtualną jest przenośny i kompatybilny wstecz, jest nie do końca prawdziwe.

0

Ciekawe dlaczego nie może powstać kompilowany język programowania z odśmiecaniem pamięci i bez wskaźników.

Bez wskaźników nie da się programować niczego nietrywialnego. Muszą być pod jakąś postacią - chociażby referencji, bo to w sumie tylko inna nazwa na wskaźniki.

Zresztą nawet gdyby jakiś język udawał, że wskaźników nie ma to i tak po zejściu na poziom kodu maszynowego widać by było mnóstwo wskaźników.

0
Wielki Kogut napisał(a):

Ciekawe dlaczego nie może powstać kompilowany język programowania z odśmiecaniem pamięci i bez wskaźników. Go, Rust i Swift nie do końca pasują jako odpowiedź na to pytanie. Pisanie, że język oparty o maszynę wirtualną jest przenośny i kompatybilny wstecz, jest nie do końca prawdziwe.

Napisałem o Haskellu w komentarzu, ale to się pewnie nie spodoba... :)

Natomiast możesz spokojnie programować z odśmiecaniem pamięci (pod postacią RAII) i bez wskaźników (w sensie surowych, bo o to Ci chodzi?) w C++11.

0

A w C++17 i D też tak można programować? Właściwie to C++17 wprowadził jakieś ułatwienia do tego języka, czy bardziej namącił? Bjarne Stroustrup powiedział o standardzie C++11, ze to jak by nowy język programowania, ciekawe co sądzi o tych nowszych standardach C++17, 20, czy macie jakieś jego uwagi na ten temat?

1
Wibowit napisał(a):

Ciekawe dlaczego nie może powstać kompilowany język programowania z odśmiecaniem pamięci i bez wskaźników.

Bez wskaźników nie da się programować niczego nietrywialnego. Muszą być pod jakąś postacią - chociażby referencji, bo to w sumie tylko inna nazwa na wskaźniki.

Piszesz nieściśle. To akurat wskaźniki są rodzajem referencji. Zrypanym, niebezpieczym i przeważnie niepotrzebnym.
Nawet w wiki jest takie sformułowanie:

The feature that separates pointers from other kinds of reference is that a pointer's value is meant to be interpreted as a memory address, which is a rather low-level concept.

https://en.wikipedia.org/wiki/Pointer_(computer_programming)

Zresztą nawet gdyby jakiś język udawał, że wskaźników nie ma to i tak po zejściu na poziom kodu maszynowego widać by było mnóstwo wskaźników.

To akurat trochę demagogia. Po zejściu na poziom maszynowy możemy mieć wszystko, ważne, że z punktu piszącego w danym jezyku tego syfu nie widać.

0
Wielki Kogut napisał(a):

A w C++17 i D też tak można programować? Właściwie to C++17 wprowadził jakieś ułatwienia do tego języka, czy bardziej namącił? Bjarne Stroustrup powiedział o standardzie C++11, ze to jak by nowy język programowania, ciekawe co sądzi o tych nowszych standardach C++17, 20, czy macie jakieś jego uwagi na ten temat?

Uwagi są do wygóglania. Stroustrup jest cały czas zaangażowany w prace nad nowymi standardami.

0

Walka między C# a Javą jest jak między katolicyzmem a prawosławiem - niby to samo ale inne. I wcale nie jest to walka, jedno i drugie ma swoich fanatyków i przeciwników.
Ważne że jedno i drugie pozwala te same cele.

a tak na poważnie:

  • Poziom książek i artykułów w necie wskazuje że w społeczność Javy jest bardziej dojrzała, mocniejsza merytorycznie. Dla .Neta ilość artykułów o architekturze, o jakiś wewnętrznych szczegółach itd wydaje się mniejsza. Jasne że to wynika z stażu platformy i programistów w danym języku piszących.
  • swego czasu było widać migracje Java -> .Net, choćby za sprawą przepisania niektórych bibliotek Javy do C#, największym przykładem jest choćby nHibernate. Teraz to się chyba ustabilizowało.
  • C# ciągle się rozwija. A nowa Java wydana została z dużym opóźnieniem i społeczeństwo się mocno pokłóciło swego czasu. Spodziewano się też trochę więcej nowości.
  • dotnet core, trochę przetasował na rynku, ponownie niektórzy zaczęli patrzeć na c#.
  • Java ma ciągle mocną niszę i będzie mocna jeszcze przez wiele lat.
2

Java czy C#

Java!

Nie no, żartuję.

0

To tak jakbyś na forum zimowym zapytał, czy lepsza deska czy narty.

0

Dobrze że już nie powstaje trzecia maszyna wirtualna. Z racji tego, że używam system GNU/Linux to jestem po stronie języków kompilowanych typu Rust.

0

Tak piszecie, że c# się szybko rozwija i w sumie nie czułem tego.

wchodzę patch notes c# 7.1/7.2, a tu taka niespodzianka :D

While learning C#, most of the time, we create console apps. In the scenarios, while testing code for the async method, we had to write some additional logic. We normally had to write boilerplate as follows:
public static void Main()
{
    MainAsync().GetAwaiter().GetResult();
}

private static async Task MainAsync()
{
    ... // Main body here
}
//OLD way (before C#7.1)
static int Main(string[] args)
{
    var fruits = Fruit.GetFruitsAsync().GetAwaiter().GetResult();
    //Do Some work

    //return exit code
    return 0;
}
Luckily, in C#7.1, the main method can be async, so in here, our code will now look more similar to the normal async methods as follows
static async Task Main(string[] args)
{
    var fruits = await Fruit.GetFruitsAsync();

    //Do Some work
}

https://www.codeproject.com/Articles/1228437/What-is-New-in-Csharp-Csharp

0

Dobrze że już nie powstaje trzecia maszyna wirtualna.

W Oracle powstaje Graal VM: https://github.com/oracle/graal - uber JIT do wszelakich języków, zarówno popularnych jak i eksperymentalnych.

Poza tym jaka znowu trzecia? Każdy silnik JavaScriptu to VMka - masz więc co najmniej 4 popularne VMki do JSa: V8 w Chrome, SpierMonkey w Firefoksie, NItro (?) w Safari i Chakra w IE. Mało tego - ludzie podniecają się lekkością i szybkością GUI napisanego w JavaScripcie - a ta szybkość jest właśnie dzięki dopracowanym VMkom (no i silnikom CSS, ale to już zależy co dominuje: ciężkie CSSy czy ciężkie JSy).

0

Na dzień dzisiejszy w javie i c# praktykuje się czynności masochistyczne i tak raczej długo pozostanie...

0
Wibowit napisał(a):

Dobrze że już nie powstaje trzecia maszyna wirtualna.

W Oracle powstaje Graal VM: https://github.com/oracle/graal - uber JIT do wszelakich języków, zarówno popularnych jak i eksperymentalnych.

Poza tym jaka znowu trzecia? Każdy silnik JavaScriptu to VMka - masz więc co najmniej 4 popularne VMki do JSa: V8 w Chrome, SpierMonkey w Firefoksie, NItro (?) w Safari i Chakra w IE. Mało tego - ludzie podniecają się lekkością i szybkością GUI napisanego w JavaScripcie - a ta szybkość jest właśnie dzięki dopracowanym VMkom (no i silnikom CSS, ale to już zależy co dominuje: ciężkie CSSy czy ciężkie JSy).

No i Python ma swoje maszyny wirtualne... Tam też jest bajtkod wykonywany przez VM.

0

Hej, ja właśnie szukam takich Januszy do współpracy w projekcie.

Zakręcony Kura napisał(a):

Dlatego Polska ma najwięcej programistów Javy, bo takie jest zacofanie Januszy w rozwoju. Jak już czegoś się raz nauczą, to nie ma przeproś na zmiany, najwięcej Javy i PHP w Polsce. W w takich cywilizowanych krajach jak UK, Niemcy, USA, Rosja ludzie są kreatywni, wymyślają nowe języki programowania, technologie. A u nas jak to u nas, taka mentalność.

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