- Arturo;Dawid;: (12:58)
- [Arturo] nauczylem sie tez troche o javie czytajac ja
- [Arturo] m.in. ze jest jezykiem dla wygodnych idiotow
- [Arturo] koles se tworzy gdzie mu sie podoba obiekty
- [Arturo] i w dupie ma co z nimi bedzie
- (12:59)
- [Arturo] bo GC za niego mysli
- kill3rreaper: (13:05)
- Nie uważam tak ;]
- Uważam za to, że M$ bez sensu wymyslił C# ;]
- Arturo;Dawid;: (13:05)
- [Arturo] bo Ci wspzpzpzpzp wypral mózg ;]
- kill3rreaper: (13:06)
- Nie wyprał - po prostu zobaczyłem (po części) jaką robotę odwalili programiści co projektowali Javę.
- Bo np C++ daje dupy z operatorem new ;/
- (13:07)
- O tym nie wiedziałem. On jest cholernie wolny, dlatego Java szybciej alokuje pamięć...
- new = malloc
- (13:08)
- I program taki np jak Firefox... ma własny operator new, który jest lepszy od "wbudowanego" w C/C++.
- A właściwie to lepszy od malloca, bo to tylko inna nazwa dla tego samego :/
- (13:09)
- I co ciekawe, Grzanek coraz bardziej krytyczne uwagi na temat Javy wyciąga, chociaż na początku jej bronił .
- No ale musieliśmy troszkę się dowiedzieć o tej technologii.
- (13:10)
- Np małe aplikacje będą działać lepiej w PHP niż w JEE.
- Ale dużych aplikacji nikt nie pisze w PHP.
- Bo Java jest "bezpieczniejsza". I nie mówię teraz o technologii :D
- Arturo;Dawid;: (13:11)
- [Arturo] Nie no tylko facebook jest w PHP ale tak to nie ma duzych aplikacji w PHP
- kill3rreaper: (13:11)
- Tylko o tym, czym się kierują project managerowie którzy są odpowiedzialni za projekty...
- On jest chyba kompilowany.
- (13:12)
- I dzięki temu działa znośnie.
- W każdym razie jak project ma się źle, to project manager który wybrał Javę nie będzie miał z tego powodu przesrane.
- Gdyby wybrał PHP, to na nic były by jego tłumaczenia, że PHP lepiej sią nadawało.
- Business is business -_-"
- (13:13)
- A te wszystkie testy porównujące wydajność Javy i C++ to o kant dupy potłuc.
- Tam gdzie wszędzie wygrywa Java, to są tendencyjne testy ;/
- (13:14)
- Wystarczy wiedzieć co robić dobrze w Javie i czego nie robić w żadnym wypadku w C++ i już masz zajebiste wykresy wydajności Javy....
- Np Java praktycznie nie tworzy zmiennych na stosie.
- A on jest zajebiście szybki.
- (13:15)
- A C++ potrafi i masz nad tym kontrolę.
- Więc jeśli byś zrobił:
- (13:16)
- [C++]
- for(int i=0; i<100000; ++i)
- JakisObiekt jo;
- // jesli się stos nie przepełni!!
- i
- [Java]
- for(int i=0; i<100000; ++i)
- JakisObiekt jo = new JakisObiekt();
- (13:17)
- To powinien być znacznie szybszy C++.
- I nawet pomimo szybkiego operatora new Javy.
- A wystarczy w C++ użyć new i już chuj bombki strzelił.
- Arturo;Dawid;: (13:18)
- [Arturo] https://hg.mozilla.org/mozilla-central/file/1df37b7c3247/memory/mozalloc/mozalloc.cpp
- (13:19)
- [Arturo] 94 void*
- 95 moz_malloc(size_t size)
- 96 {
- 97 return malloc(size);
- 98 }
- kill3rreaper: (13:20)
- Ale to chyba nie w tej wersji najnowszej.
- Jak Dawid będzie to może on będzie pamiętał.
- Bo kojarzysz może
- Arturo;Dawid;: (13:20)
- [Arturo] to jest najnowsze zrodlo
- kill3rreaper: (13:20)
- że kiedyś Fx w chuj RAMu zajmował jak na tamte czasy?
- Arturo;Dawid;: (13:22)
- [Arturo] jak mozna w ogole ianczej niz malloc alokowac pamiec?
- (13:23)
- [Arturo] http://stackoverflow.com/questions/5771868/how-to-allocate-memory-space-without-using-malloc-or-new-operator
- (13:25)
- [Arturo] zawsze mozna tak: http://stackoverflow.com/questions/6326907/c-allocating-memory-using-array ;]
- kill3rreaper: (13:25)
- No ja napisałem, że nie w najnowszej wersji.
- Arturo;Dawid;: (13:26)
- [Arturo] ja sie tak naprawde nigdy nie przejmowalem tymi rzeczami
- [Arturo] nawet nie pamietam ktore to ejst stos a sterta
- [Arturo] ja po prostu lubie pisac programy
- (13:32)
- [Arturo] czytam ze GC mial byc czescia C++0x ale odpadl przed ostatecznym wydanie standardu bo byly jakies problemy
- (13:33)
- [Arturo] btw
- [Arturo] Qt ma wskazniki ktore same sie usuwaja jak nie ma juz nikogo kto na nie wskazuje http://doc.qt.nokia.com/4.7-snapshot/qsharedpointer.html#details
- kill3rreaper: (13:36)
- Good to know.
- Miałem klienta.
- Wracając do Fx to on zajmował na starcie w chuj RAMu, bo od razu alokował sobie ze 100MB pamięci i sam nią zarządzał - na styl wirtualnej maszyny.
- Arturo;Dawid;: (13:37)
- [Arturo] no to jak ten koles napisal
- kill3rreaper: (13:37)
- W każdym razie krótko mówiąc - używać operatora new w koniecznych rzeczach tylko.
- W C++. Jak się da na stosie (Obiekt o) to tak robić.
- (13:38)
- Stos to te małe szybkie. Sterta to reszta RAMu.
- A wiesz czemu malloc jest wolny?
- Arturo;Dawid;: (13:38)
- [Arturo] i tak zapomne ;]
- kill3rreaper: (13:39)
- Bo on nakazuje systemowi dać wskaźnik na wolną przestrzeń.
- A system leci po kolei po całym RAMie i szuka wolnego miejsca.
- Arturo;Dawid;: (13:39)
- [Arturo] no ale jak to zrobic nie uzywajac new ani malloc
- kill3rreaper: (13:39)
- I np jeśli alokujesz ze 100MB, to będzie szukał aż znajdzie 100MB dziurę.
- (13:40)
- No tworząc własną funkcję do tego ;P
- W sensie:
- użyć malloc x)
- Zaalokować z 200MB
- I operować tylko na tym 200MB przestrzeni
- samemu układając obiekty
- i "defragmentując ją".
- (13:41)
- Ale tak jak mówię: jak Dawid przyjdzie, to się wypowie bo nie chcę Ci herezji opowiadać ;]
- Bo chodzi o to, żeby za wszelką cenę unikać tego, żeby system musiał sam szukać w całym RAMie, między aplikacjami wolnej pamięci, bo to zajmuje kilkadziesiąt taktów zegara.
- Arturo;Dawid;: (13:42)
- [Arturo] od razu mi sie przypomina koles co robimy projekt w rulu
- [Arturo] ja nie wiem
- [Arturo] czy on jest taki
- [Arturo] czy c# jest taki chujowy
- [Arturo] ale w naszym projekcie
- kill3rreaper: (13:42)
- Niby mało, ale jak się tego zbierze sporo - np milion razy "new" + weźmiemy pod uwagę, że program dostaje czas procesora co kilka ns (nie wiem ile, przykład daję).
- Arturo;Dawid;: (13:42)
- [Arturo] z klas c# to uzywamy tylko String i Int
- kill3rreaper: (13:43)
- to się uzbiera..
- Arturo;Dawid;: (13:43)
- [Arturo] bo on napisal z 30 klas wlasnych od zera dow szystkiego
- [Arturo] wlasny garbage collector
- [Arturo] bo ten w c# costam costam
- kill3rreaper: (13:43)
- Hehehehhe
- Arturo;Dawid;: (13:43)
- [Arturo] wlasną klasę map
- kill3rreaper: (13:43)
- No właśnie ;P
- Arturo;Dawid;: (13:43)
- [Arturo] bo Collections.Dictionary costam costam
- kill3rreaper: (13:43)
- Dlatego napisałem na początku, że nie wiem czemu C# wyszedł ;P
- Jest wolniejszy od Javy xD
- Arturo;Dawid;: (13:44)
- [Arturo] w c# mi sie bardzo podoba system properites
- [Arturo] bo mnie emczy ciagle dawanie get i set w cpp
- kill3rreaper: (13:44)
- Zgadazam się - to naprawdę ułatwia programowanie zapewne.
- Ale wiesz, np jak piszesz (o zgrozo :D) w Eclipse, to Eclipse robi to za Ciebie w ułamek sekundy (no, taki dużysz ułamek, b to Java przecież .])
- Arturo;Dawid;: (13:45)
- [Arturo] wkurza mnie tez ze VS na sile formatuje moj kod
- [Arturo] potem sie przyzwyczajam i w QtC czekam az mi sformatuje a tu nic
- [Arturo] i ciagle sie lapie na tym
- [Arturo] ze jak mi podkresli blad
- [Arturo] to jak naprawie to natychmiast zniknie jak w QtC
- (13:46)
- [Arturo] ale nie, trzeba przebudowac zeby odkreslilo
- [Arturo] no i kuwa
- [Arturo] zawsze
- [Arturo] zawsze
- [Arturo] zawsze
- [Arturo] jak mam napisac out
- [Arturo] to zapomne
- kill3rreaper: (13:46)
- Hahahahha xD
- Arturo;Dawid;: (13:46)
- [Arturo] funkcja(Int a, out Int b)
- kill3rreaper: (13:48)
- No i właśnie - C# i Java praktycznie wymuszają używanie typów obiektowych zamiast tych
- no
- wbudowanych?
- PROSTYCH.
- O właśnie.
- Arturo;Dawid;: (13:48)
- [Arturo] heh
- [Arturo] ale VS ssie
- [Arturo] bo robie tak
- (13:49)
- [Arturo] interface A{
- public Int32 a;
- }
- [Arturo] robie zrob mi klase z tego
- kill3rreaper: (13:49)
- Bo np jak chcesz zamulić Javę czy C# to operuj w pętlach np na Integer :D
- zamiast na int
- Arturo;Dawid;: (13:49)
- [Arturo] to on robi
- public int a;
- [Arturo] i zawsze
- [Arturo] z String zrobi string
- [Arturo] z Int64 zrobi long
- [Arturo] co za chuj
- kill3rreaper: (13:49)
- O
- to chyba dobrze, nie? :)
- Arturo;Dawid;: (13:49)
- [Arturo] wlasnie nie
- kill3rreaper: (13:49)
- To bardzo optymalizuje kod.
- Arturo;Dawid;: (13:49)
- [Arturo] bo Piotrek, ten spec od C#
- kill3rreaper: (13:50)
- // Jeśli dobrze zrozumiałem co napisałeś.
- Arturo;Dawid;: (13:50)
- [Arturo] mowi ze mamy uzywac System.Int32 itp bo int costam costam
- [Arturo] a ja sie slucham bo sie nie znam i nie chce mi sie klocic
- [Arturo] koncze ten miesiac i spierdalam stamtad
- kill3rreaper: (13:54)
- :D
- Czemu?
- Arturo;Dawid;: (13:55)
- [Arturo] bo slaby ze mnie programista i nie podoba mi sie programowanie takich wielkich systemow rozproszonych
- kill3rreaper: (13:55)
- A myślisz, że mi się podoba programowanie w JEE? ;/
- (13:57)
- Grzanek napierdala takimi terminami, przechodzi kurwa do rzeczy o których generalnie jest mało w polskich książkach, no mamy czego słuchać na zajęciach i sporo roboty w domu...
- Tzn, ja mam - bo ja jestem ciężko kapujący.
- Dawid znacznie łatwiej się w tym łapie.
- (13:58)
- Zapewne zajrzył o co chodzi z Java Beans, ja niezbytnio.
- Arturo;Dawid;: (13:58)
- [Arturo] a co Wy robicie w ogole?
- kill3rreaper: (13:58)
- Caucho Resin
- Arturo;Dawid;: (13:59)
- [Arturo] z/w
- kill3rreaper: (13:59)
- Generalnie Java Enterprise Edition.
- (14:01)
- Albo co mnie wkurwia w Javie - nie wiem jak się zachowa ;/
- W C++ było to oczywiste, bo masz pełną kontrolę nad wskaźnikami, referencjami i zwykłymi zmiennymi i obiektami.
- (14:02)
- A tu? Przekazujesz przez parametr coś do metody i kurwa nie wiesz, no kurwa nie wiesz czy jeśli nie użyjesz operatora przypisania w środku na tym obiekcie przekazanym przez parametr czy coś się nie spierdoli.
- (14:03)
- Albo takie zagrania chamskie Javy:
- String s = "Chuj";
- To jest "boxowanie"
- kompilator Javy robi z tego:
- String s = new String("Chuj");
- Arturo;Dawid;: (14:52)
- [Arturo] btw
- [Arturo] woltas tez ma ochote wziac udzial w tworzeniu jakiejs gry
- [Arturo] wiec moglby zrobic grafe
- (14:53)
- [Arturo] a jak on rysuje kazdy wie
- kill3rreaper: (15:04)
- Dawid nie wie - nie używa fb x]
- (15:05)
- To co, MineCraft 2? ;P
- Arturo;Dawid;: (15:15)
- [Arturo] minecraft w cpp to juz mam bo przepisalem minicrafta ;]
- [Arturo] ale ja bym nie chcial na podstawie tego pisac
- [Arturo] teraz mam juz wiedze ze potgrafilbym sam prosty silniczek napisac
- kill3rreaper: (15:16)
- ;>
- Arturo;Dawid;: (15:16)
- [Arturo] takiego minecrafta 2d bym chyba dal rade napisac ;]
- (15:17)
- [Arturo] ale by trzeba samemu bo koles w javie nie dbal o wskazniki jak juz mowilem
- kill3rreaper: (15:17)
- No a jak wygląda taki silnik?
- Arturo;Dawid;: (15:17)
- [Arturo] wiec trzeba by to troche ianczej zaprojektowac ;]
- kill3rreaper: (15:17)
- Nie chcę kodu źródłowego
- tylko jak byś ogólny zarys miał opisać?
- Arturo;Dawid;: (15:18)
- [Arturo] tzn ? :>
- kill3rreaper: (15:18)
- No bo ja nie wiem w ogóle jak by się do tego zabrać.
- Jak zrobić animacje itp.
- (15:19)
- Just don't know.
- Arturo;Dawid;: (15:19)
- [Arturo] koles zrobil petle while(running) gdzie obliczal ile czasu minelo w ns od ostatniego przejscia
- [Arturo] na tej podstawie znal predkosc
- [Arturo] ograniczal ja do 100fps
- (15:20)
- [Arturo] jak puscilem bez limitu to qt mi dawal 360fs
- [Arturo] fps
- [Arturo] i teraz kazdy element mial funkcje render i tick
- [Arturo] i w tick byla logika
- [Arturo] np przesuniecie animacji o 1 krok
- [Arturo] a render malowal zaleznie od kroku animacji
- [Arturo] dlatego wlasnie myslalem nad rpg makerem
- (15:21)
- [Arturo] bo zamiast gry wolalbym zrobic silniczek
- [Arturo] i mozliwosc modyfikacji go za pomoca programu
- (15:22)
- [Arturo] ale dzisiaj sciagnalem sobie serious sama 3 i mam zamiar sie wyzyc ;]
- [Arturo] mam nadzieje ze mnie wciagnie jak poprzednie czesci
- (16:34)
- [Arturo] i back
- (16:51)
- [Arturo] wyszedl Qtc 2.5
- [Arturo] http://get.qt.nokia.com/qtcreator/qt-creator-win-opensource-2.5.0.exe