Skocz do zawartości
wojtas0710

Podręcznik na start programowania

    Rekomendowane odpowiedzi

    piotrpo

    Ok - można się uczyć Javy, pisząc na Androida. Tylko nie da się pisać na Androida nie ucząc się Javy. Do tego jakieś "minimum" trzeba ogarniać - można pisać głupio, z błędami itd. - to jest normalne, ale trzeba wiedzieć co się pisze, a tutaj sorry - nie ma metody na skróty - a raczej, jak pójdziesz na skróty, to więcej czasu zmarnujesz niż jadąc autostradą, chociaż niby wydaje się "bliżej".

    Z książek - ja polecam Core Java Podstawy.

    Minimum, które trzeba przeczytać:

    Zmienne

    Instrukcje sterujące przepływem (warunki, pętle)

    Obiektowość

    W miarę bawienia się w programowanie - na 100% koniecznie jest zdobywanie na bieżąco wiedzy co robi każda pojedyncza linijka i słowo kluczowe.

    @skoti - masz oczywiście rację - uprościłem sprawę, bo rozmawiamy na poziomie czym się różni int od floata a nie stos instrukcji JVM i DVM (jaki stos?).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    bozon

    Tu nie mogę się zgodzić do końća - składnia jest Javy, ale w Androidzie nie masz Javy - masz Dalvik (niekompatybilny z Javą... o co zresztą się Oracle procesowało)... ale faktycznie od strony programisty aplikacji końcowych można uprościć, że to Java.

    Jak już sie czepiać to z sensem, przecież Java to nazwa jezyka programowania a Dalvik to maszyna wirtualna, jedno z drugim nie ma nic wspólnego, na androida pisze sie w Javie nawet wieksza część stdliba jest ta sama (i to o to oracle sie procesowało i nadal się procesuje).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    skoti

    @up: Java to nie tylko język programowania, ale specyfikacja języka opisuje format kodu bytowego do jakiego musi być kompilowany kod źródłowy itp. W wypadku Androida i dalvika jest to jednak zupełnie inaczej, bo ten kod jest przekształcony do dex czytanego tylko przez Dalvik, a nie do standardowego kodu opisanego w specyfikacji języka (po to w Javie jest dokładnie znany kod bytowy, aby każdy mógł robić swoje implementacje i programy pisane pod inną działały). W wypadku Androida nie mamy kodu bytowego Javy, więc nie jest zachowany wymóg Javy ze specyfikacji... więc nie jest to Java w sensie stricte, a tylko jej część (składnia). Dla programisty nie jest to ważne, bo w Androidzie kompilatorem jest normalny kompilator Javy, a dopiero później jest przekształcany kod bytowy Javy na Dalvikowy, jednak już javą z czystym sumieniem nazwać tego nie można (Java bytecode jest częścią języka). Oracle/Sun nigdy nie procesuje się o to, że jest to samo (patrz IBM i inne implementacje zgodne z Javą), a zawsze z tymi, którzy łamią standard dodając coś od siebie przez co ich implementacja nie jest kompatybilna (z Microsoftem wygrali, z Google przegrali).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    bozon
    Java to nie tylko język programowania, ale specyfikacja języka opisuje format kodu bytowego do jakiego musi być kompilowany kod źródłowy itp.

    Oczywiscie że nie, Java to jezyk programowania i ma swoją specyfikacje (gramatyke, semantyke, stdlib itp) tu: http://docs.oracle.com/javase/specs/jls/se7/html/index.html a JVM ma specyfikacje tu: http://docs.oracle.com/javase/specs/jvms/se7/html/index.html w JLS nie ma mowy o formacie bytecode czy plików class (bo i po co). Nic nie stoi na przeszkodzie napisania kompilatora javy do kodu natywnego (GJC) czy innego bytecode (J#).

    Oracle/Sun nigdy nie procesuje się o to, że jest to samo (patrz IBM i inne implementacje zgodne z Javą), a zawsze z tymi, którzy łamią standard dodając coś od siebie przez co ich implementacja nie jest kompatybilna (z Microsoftem wygrali, z Google przegrali).

    Nieprawda, te dwa procesy były o zupełnie inne rzeczy, Oracle vs Google gównie toczyła się o copyrighty API stdliba (pakiegów java.* które są wykożystywane w Androidzie), przeczytaj np to: http://www.theverge.com/2012/5/31/3055620/oracle-java-api-not-covered-copyright-law/in/2731667

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    skoti

    @up: nic technicznie nie stoi na przeszkodzie zrobić interpreter Javy i traktować ją jako język skryptowy, ale nie będzie już to java, bo z tego co pamiętam w podanej przez Ciebie specyfikacji języka Java jest zapis, że musi być to Java bytecode i odsyła do specyfikacji bytecodu javy.

    OFC że to 2 inne procesy i zupełnie inaczej prowadzone, ale chodzi o to samo (jeden z pracowników Oracle przyznał jeśli dobrze pamiętam, że jeśli Google użyłoby bytecode javy to Oracle by się nie czepiało, tak jak nie czepia się IBM i innych zamkniętych implementacji Java).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    @skoti, bozon - prowadzicie niewątpliwie ciekawy spór o zakres pojęciowy słowa "Java". O ile pamiętam poprzednim razem dyskusja nie została rozstrzygnięta. Z punktu widzenia programisty składnia jest ta sama, biblioteki są te same, kompilator jest ten sam (+ końcowa translacja byte codu...). Dojście do miejsca gdzie robi to różnicę jest mało prawdopodobne. Patrząc trochę z boku - dyskusja o tym czy to co jest w Androidzie to już Java, czy jeszcze nie Java przypomina modną ostatnio dyskusję o in-vitro i miejscu w którym się zaczyna człowiek.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    człowiek zaczyna się kiedy potrafi logiczne argumentować cel swoich działań

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    Oj.... pojechałeś - 3/4 ludzkości można by wyciąć zupełnie bezkarnie kierując się taką definicją :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    @UP

    Nie można by zmienić tej nazwy ośla łączka? To wygląda trochę obraźliwie i wydaje się, że prowokuje do poniżania przez osoby już nie zupełnie początkujące - nie trudno znaleźć przykłady . Nawet jak na forum są zaawansowane osoby i tak coraz mniej chętnie wymieniają się poglądami, często ze względu na chamskie komentarze.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo

    No można zmienić nazwę, ale na co? "Zaawansowani inaczej"? Nie sądzę, żeby to było obraźliwe - taka nazwa jest używana na określanie stoków narciarskich dla początkujących i chyba tutaj też za bardzo po nikim nie jedzie.

    Co do chamskich komentarzy - jak już pisałem w "regulaminie" w tym dziale moja tolerancja dla ekspresji słownej jest dużo niższa. A jeżeli ktoś ma tak duży przerost ego nad umiejętnościami, że duma mu nie pozwala zadać pytania w tym dziale - to raczej wiele z tego nie będzie.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x