Wpis z mikrobloga

a jakies argumenty za i przeciw ? Bo nazywanie jakiegos jezyka ze ssie to bardziej swiadczy o braku doswiadczenia inzyniera, kazdy jezyk jest dobry zalezy do czego sie go stosuje
  • Odpowiedz
@michalfranc: Ja Ci odpowiem bo był tu niedawno kolega, który napisał coś podobnego. Prawdopodobnie chodzi o to, że w cpp na ekran się wypisuje cout, a w javie jest System.out.println. Przeważnie to jest poziom wiedzy ludzi, którzy piszą takie rzeczy.
  • Odpowiedz
@Legol: @michalfranc: @wytrzzeszcz: @Sudokuu: Generalnie denerwuje mnie strasznie to bezpieczeństwo pamięci i udogodnienia które ma Java - wolę C++ przez to że daje swobodę w zarządzaniu pamięcią i dostępem do danych i moim zdaniem argument że dzięki temu Java jest bezpieczniejsza pod względem wycieków pamięci jest z d--y bo w nowych wersjach C++ są mechanizmy które sprawiają że nie trzeba się w ogóle martwić
  • Odpowiedz
@zimny_stolec: Ok w takim razie jeśli chcesz mieć swobodę w zarządzaniu pamięcią wybierasz do swojego projektu cpp. Jeśli natomiast kwestie manualnego zarządzania pamięcią nie są dla Ciebie tak istotne wybierasz javę. EOT
  • Odpowiedz
@zimny_stolec:
Java jest jezykiem ktory jest bardziej stabilny w rekach mniej doswiadczonych devow, dlatego stala sie popularna. Doswiadczonych devow jest malo a softu do napisania sporo ...

Pytanie po co ci swoboda w zarzadzaniu pamiecia ? Rozumiem ze robisz cos co wymaga tego ?

Moze byc tak ze twoje podejscie do programowania wymaga recznego zarzadzania, wtedy warto sie zastanowic czy jest to dobre podejscie.
  • Odpowiedz
@michalfranc: Prosty przykład który spowodował mój zbóldupiony post: chcę zmodyfikować tablicę intów o rozmiarze over milion. Jasna rzecz że nie chcę jej kopiować i zwracać. W C++ krótka piłka - przekazanie przez referencję, w Javie trzeba jakoś to obchodzić - typ tablicy intów jest narzucony przez wbudowaną w Javę klasę. Muszę przekazać cały obiekt który trzyma tą tablicę (wtedy kod traci na czytelności bo klasa która ma być odpowiedzialna za
  • Odpowiedz
@zimny_stolec: ojjjj, zdecydowanie nie jest tak różowo jak mówisz. Pełna kontrola jest fajna, daje dużo możliwości, a na pewno jak ktoś się zna to zrobi szybszą aplikację, ale programista musi być koniecznie bardziej doświadczony i spędzi nad kodem trochę więcej czasu, a tym samym takiej osobie trzeba więcej zapłacić.

Idąc tym tokiem myślenia C++ ssie w porównaniu do aseblera, bo tam można mieć pełną kontrolę nie tylko nad pamięcią, ale też procesorem, jego rejestrami itd.

W Javie też jak się jest nieogarniętym, to można do wycieków pamięci doprowadzić. Dlatego nawet javowcy bardzo często mieli styczność choćby z C++, bo muszą! wiedzieć jakie mechanizmy zachodzą poza naszą kontrolą i muszą to przewidywać. Żaden dobry programista sobie nie pisze i ma wyrąbane, bo przecież mechanizm języka zrobi to za niego. Ale nie wszyscy są tacy jak powinni i przez to mamy pełno g---o programistów w php czy C#, którzy siedzą na Unity i robią niesamowicie niewydajne aplikacje, które przy takiej samej grafice i złożoności 8lat temu napisano by na 4 razy wolniejszy
  • Odpowiedz
@zimny_stolec: Jest to mocno mylące. Generalnie w javie wszystko jest przekazywane by-value. Ale przez by-value mamy na myśli adres w pamięci, a więc to ci napisał @vytah jest poprawne.

Jedyny problem z takim przekazywaniem jest taki, że zainicjowanie zmiennej nowym obiektem w ramach tej funkcji nie zmieni obiektu pod tym adresem a utworzy nowy w innym obszarze pamięci przez co po wyjściu z funkcji stara referencja będzie wskazywać na
  • Odpowiedz
@wytrzzeszcz: jako, że zaplusowałem to odpowiem: java nie ma RAII (więc jak żyć, pytam ?) i konstruktory wołają się w odwrotnej (niewłaściwej) kolejności :))
Z drugiej strony c++ ciągle czeka na compile time class introspection, a java od początku ma pełne reflection.
  • Odpowiedz
@zimny_stolec: Jakiego typu to jest modyfikacja? Bo może wystarczy jakaś klasa, której atrybutem jest ta tablica i sobie będzie na niej wykonywał operacje sam obiekt? Poza tym tablica "over milion" to nie jest rzecz, z którą się jakoś szczególnie często do tej pory spotykałem poza zadankami z OIa czy innych Potyczek Algorytmicznych.
  • Odpowiedz