Wpis z mikrobloga

@HeavyMagicMissle

C# jest lepszy od Javy, bo ma pointery jak C++ ( ͡ ͜ʖ ͡)

też słyszałem ten argument. m. in. jak studiowałem. zazwyczaj jest używany przez bardzo początkujących programistów, którzy jeszcze nie znają życia
@Chodok: C i wygoda to trochę wykluczające się pojęcia. Te świry kiedyś urządzały zawody na "najbardziej nieczytelny" kod, tzn. pisząc kod na np. najmniej znaków, spacji - "oszczędzając" na rzeczach które we współczesnym programowaniu w ogóle nie mają znaczenia, ale ergonomię zabijają totalnie XD
@Chodok: C i C++ to różne języki. Dla osoby znającej dobrze C++, to C# (i Java) będą raczej całkiem niewygodne jako języki dość mocno ograniczone, w których nie ma wielu mechanizmów które są w C++.

Efekt trochę taki jakby z nart dla profesjonalisty przesiasc się na zbyt krótkie narty dla początkującego - może początkującemu będzie łatwiej uczyć się na za krótkich i za lekkich nartach jazdy pługiem, ale profesjonaliście będzie to
@ly000: ale zdajesz sobie sprawę z tego że to co w Javie nazywa się referencjami, to tak naprawdę są zupełnie zwyczajne wskaźniki na obszar pamięci zawierający dane obiektu? I semantykę też mają taką samą jak wskaźniki. To że się inaczej nazywają nie oznacza że to nie są wskaźniki.

A niezależnie od referencji, Java posiada też mechanizmy ręcznego zarządzania pamiecia i umożliwia odwoływanie się do arbitralnych miejsc pamięci przez adresy wyrażone jako
@Krolik: polecam zapoznać się z koncepcją referencji i koncepcją wskaźnika. to są dwie różne rzeczy, które są tylko trochę podobne, ale operują na innym poziomie abstrakcji. w niektórych językach istnieją referencje i wskaźniki jednocześnie (np. c++). różnica przede wszystkim polega na tym, że wskaźnik "wskazuje na" / przechowuje adres i w związku z tym można na nim operować jak na wartości liczbowej. referencja wskazuje na obiekt i wykonywanie operacji arytmetycznych na
@ly000: mylisz arytmetykę wskaźnikowa ze wskaźnikiem. Wskaźnik to wartość pokazująca na coś w pamięci. Java ma wskaźniki do obiektów, jedynie nie ma arytmetyki wskaźnikowej. Zresztą arytmetyka wskaźnikowa to rzecz o znikomym znaczeniu praktycznym więc nie rozumiem dlaczego upierasz bo się aby to miało rozstrzygać. Referencje w Javie nie są odpowiednikiem referencji w C++, bo mają inną semantyke. Za pomocą referencji Javy nie napiszesz funkcji swap. Przypisanie do referencji w C++ nadpisuje
@Krolik: no tylko, że referencja nic nie wie ani o pamięci ani o adresie. to jest inny poziom abstrakcji. to jest główna różnica. np. w takim javascript masz referencje i co one mają wspólnego z adresami? z punktu widzenia języka nic. to że gdzieś tam pod spodem może używać jakichś adresów to jest inna para kaloszy. referencje mogą istnieć bez adresów. referencja to inaczej po prostu odwołanie, a od odwołania jest
Referencje w Javie nie są odpowiednikiem referencji w C++, bo mają inną semantyke. Za pomocą referencji Javy nie napiszesz funkcji swap.


@Krolik: podaj przykład, bo nie rozumiem. mogę w javie napisać funkcje swap, tylko muszę pamiętać o tym, że argumenty referencyjne są przekazywane przez skopiowanie referencji. c++ jest podobne pod tym względem.