Skocz do zawartości
linkinheroes

Nauka programowania

    Rekomendowane odpowiedzi

    Witam, od jakiegoś czasu planuję w końcu zabrać się za naukę jakiegoś języka. Chodzi mi o to żeby (głównie) pisać jakieś programiki pod Androida. Wiem, że od jakiegoś czasu można pisać tylko w C++, zapominając o Javie i chciałem się dowiedzieć czy rzeczywiście jest to opłacalne, czy jest to przyszłość Androida, czy Java odchodzi w niepamięć? Nauka zajmie mi pewnie sporo czasu więc zastanawiam się czy bawić się w ogóle w Javę? Prosiłbym jeszcze o wskazanie jakiejś przydatnej literatury, stron itp. Wiem, że jest już jeden temat gdzie jest to mniej więcej opisane ale chciałbym się dowiedzieć czy coś się zmieniło w tym kierunku.

    Udostępnij tę odpowiedź


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

    Dlaczego niby Java odchodzi w zapomnienie ?? C++ jest stosowany w miejscach w których potrzebna jest bardzo wysoka wydajność. Jeśli masz zamiar pisać aplikacje, to możesz spokojnie to robić w Javie. Na forum masz założony pierwszy temat, który opisuje dokładnie jak zacząć.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    To było tylko moje pytanie, czy tak się nie stanie za parę lat, bo skoro używając C++ uzyskujemy o wiele większą wydajność to po co używać javy?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    mrmike
    To było tylko moje pytanie, czy tak się nie stanie za parę lat, bo skoro używając C++ uzyskujemy o wiele większą wydajność to po co używać javy?

    Tego akurat nie wie nikt co się stanie :)

    Ale jeśli chcesz tworzyć aplikacje na Androida musisz opanować Jave, jeśli chcesz tworzyć na iPhone - Objective C a na windows phone 7 - c#.

    Jeśli opanujesz jeden język obiektowy, przejście na inny, będzie dużo łatwiejsze.

    Więc teraz tym bym się nie przejmował :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    jeśli chcesz tworzyć aplikacje na Androida musisz opanować Jave

    nie musi, jest przecież NDK

    Ja zaczynałem od C++, ale szczerze wolę pisać w Javie. Java jeszcze bardzo dłuuuugo "nie wyjdzie z mody" i ucząc się jej struktury na pewno nie stracisz cennego czasu jeśli chcesz pisać na Androida. Poza tym java jest według mnie najlepszym nauczycielem "obiektowości".

    skoro używając C++ uzyskujemy o wiele większą wydajność to po co używać javy?

    O wiele większą wydajność niż w C++, uzyskamy w Assemblerze, ale nie tędy droga. Wydajność to raz, a "wygoda" pisania to dwa. Java jest, subiektywnym zdaniem masy developerów, bardzo "wygodnym" językiem i pomimo możliwości pisania aplikacji na androida w C++, (tacy jak ja) pozostaną przy Javie.

    Najlepsze rozwiązanie: Poznaj podstawy C++, potem Javy i sam sprawdź co Ci bardziej leży.

    Udostępnij tę odpowiedź


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

    Uczyć się programować pisząc na Androida w C++? Madness ;/ To tak jakby zaczynać od "tyłu" strony. Poza tym oficjalne API jest dla Javy, która nota bene jest wolniejsza od C++ o ile, pare procent (nie mówimy o tych kluczowych fragmentach które musza być w C++, normalna aplikacja to właśnie pare %)? Ludzie z Javą przesadząją bo się nie znają. Nie słuchaj ich. No ale wolna wola nikt Ci nic nie zabrania, nie chcemy flame'a.

    Swoją drogą zaczynać nauke programowania od Androida... Napisz kilka prostych programów na komputerze i sprawdź jak się z tym czujesz. Nie zaczynasz nauki pływania od wypłynięcia na Pacyfik!

    [OffTopic]

    O wiele większą wydajność niż w C++, uzyskamy w Assemblerze

    Ten pan np się nie zna. Poczytaj o optymalizacji obecnych kompilatorów zanim takie brednie wypowiesz. Google.

    [/OffTopic]

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Dzięki za odpowiedzi. Zaczynam uczyć się javy :D

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    To było tylko moje pytanie, czy tak się nie stanie za parę lat, bo skoro używając C++ uzyskujemy o wiele większą wydajność to po co używać javy?

    Bo w programach użytkowych to nie ma znaczenia. Znaczenie ma za to wygoda i szybkość pisania - dużo cenniejszy od sprzętu jest czas developerów :). No i cała reszta tego, co pisali inni! :)

    Cytat:
    O wiele większą wydajność niż w C++, uzyskamy w Assemblerze

    Ten pan np się nie zna. Poczytaj o optymalizacji obecnych kompilatorów zanim takie brednie wypowiesz. Google.

    To nie do końca tak. W większości przypadków to prawda, ale kompilator nie jest tak dobry jak człowiek. Jeżeli chodzi o moje osobiste doświadczenie - w ubiegłym semestrze pisałem na jednym z uczelnianych projektów algorytm Bellmana-Forda w asm'ie. Rezultat: był 7.5 razy szybszy niż odpowiednik w C(++). Wniosek: automatyczna wektoryzacja w kompilatorach nie zawsze działa :P. Jeżeli zaś chodzi o dowody ze świata zewnętrznego - na stronie Wiedźmina w dziale "jobs" wisiało swego czasu ogłoszenie, że poszukują "low level engine progammera", w wymogach była m.in. znajomość technik optymalizacji kodu asemblera x86 i PowerPC.

    Oczywiście problemy, które nadają się do ręcznej optymalizacji na poziomie asm'a stanowią jakiś nikły margines, tym niemniej bronię tezy, że kompilator nie zawsze potrafi załatwić sprawę optymalizacji tak dobrze jak człowiek :).

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    [OffTopic]

    Cytat:

    O wiele większą wydajność niż w C++, uzyskamy w Assemblerze

    Ten pan np się nie zna. Poczytaj o optymalizacji obecnych kompilatorów zanim takie brednie wypowiesz. Google.

    [/OffTopic]

    Ten Pan z kolei nie zrozumiał aluzji.

    Bardzo dziękuję za obiektywną ocenę mojej wiedzy.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    piotrpo
    Ten pan np się nie zna. Poczytaj o optymalizacji obecnych kompilatorów zanim takie brednie wypowiesz.

    Jeśli nie zgadzasz się z opinią to krytykuj stanowisko a nie autora.

    To, że im niżej zejdziemy z językiem, tym będzie szybciej jest mocnym uproszczeniem - fakt - w asm MOŻNA napisać program, który będzie działał szybciej niż np. program w Javie, tyle, że to nie działa automatycznie - kiepski algorytm napisany w asm będzie działał dużo wolniej niż dobry algorytm napisany w Java (to, w jakim języku łatwiej napisać wysokiej jakości, skomplikowany kod jest dość oczywiste). Właśnie wczoraj pobiłem rekord optymalizacji cudzego kodu - zysk 20M razy. Nie osiągnąłem tego poprzez zmianę języka, a drobną modyfikację algorytmu.

    Wreszcie jeden dość oczywisty, ale często pomijany fakt - tak długo jak program działa wystarczająco wydajnie, wydajność nie ma znaczenia.

    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