Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Java vs. Python
Forum PHP.pl > Inne > Hydepark
ixpack
Przykładam się do nauki nowego języka. W grę wchodzi Java lub python (c++ raczej odpada, do sondy dodałem c++, ale to chyba kolejny język, nie na teraz). Proszę tych, którzy znają któryś z języków (lub oba wink.gif) o plusy i minusy języka - Co Cię drażni w języku, a co zachwyca.

Język chcę zastosować do: LEGO mindstorms, program POS+manager kontaktów+mailer+sklep - pakiet e-com., soft do inwentaryzacji oraz jak czas pozwoli zacząć grę o której myślę od dłuższego czasu (ale to już osobna działka).

Oba języki wydają mi się podobne jeżeli chodzi o zastosowanie, oba mają wiele fajnych bibliotek/frameworków (z obiegowego spoglądania na strony języków etc.) i prosiłbym, aby ktoś mądry wypisał najpopularniejsze =]

Z góry dziękuję.
Crozin
C++ / Java / Python to zupełnie różne kategorie języków więc i ich porównywanie nie ma więszkego sensu. Podawanie plusów i minusów języków jest z góry skazane na kompletny brak obiektywności. Nie mniej jednak do tego co podałeś wg mnie najlepiej nada się Java, bo nada się do tego wszystkiego, a nie będzie niepotrzebnie utrudniać życia jak to ma w zwyczaju C++.
peter13135
ja troszkę znam c++ i nie narzekam. stworzę w nim program użytkowy (Qt), grę (OpenGL, czy framework jakiś np. Irrlicht), zaprojektowałbym mikrokontroler w C gdybym potrafił biggrin.gif. Qt daje wieloplatformowość podobnie jak java, i jest od niej szybsze. Ponadto c++ daje Ci większą kontrolę nad kodem. Javę znam tylko pobierznie, wydaje mi się, że jest to język znacznie przyjemniejszy i wygodniejszy w użyciu, nowoczesny, ma w sobie zaimplementowane GUI, obsługę sieci itd. w c++ tego nie ma, trzeba korzystać z dodatkowych komponentów (mi sprawę w większośći załatawia Qt do programów użytkowych) i nawet miałem się javy uczyć... ale w sumie wolę się rozwijać w c++ niż w javie, bo c++ już cokolwiek znam.
Java vs python ? Ja bym stawiał na javę, zalety wymieniłem wyżej. Dodatko składnia jest podobna jak w PHP.

EDIT://
Żeby stworzyć okno w WINAPI, trzeba około 40 linii kodu. W javie i QT(c++) wystarczy <10
Speedy
Człowieku, poczytaj sobie najpierw o tych językach chociażby na Wikipedii lub w Google. Java służy do czego innego i Python służy do czego innego. Oczywiście w każdym z tych języków możesz robić co Ci się podoba, ale w zależności od zastosowania, należy język dobierać z głową. Jak będziesz musiał napisać mały skrypt, który przetwarza w konsoli Linuxa jakieś dane, to lepiej wybrać Pythona, a jeśli będziesz chciał napisać aplikację na Androida, to piszesz w Javie, jak będziesz chciał zaprogramować system wbudowany, to piszesz w C albo C++. Przykłady można mnożyć, a takie porównanie jest bez sensu.
elektrrrus
Moim zdaniem jeśli chce się być programistą i coś w tym osiągnąć C/C++ po prostu trzeba umieć, chociaż w podstawach. To taka sama podstawa jak tabliczka mnożenia w matematyce. Z mojej praktyki i obserwacji innych osob - jeśli zna się C, nauka każdego innego języka jest bardzo łatwa, czasami wręcza banalna. Na odwrót z żadnym innym językiem tak nie działa. Pozatym bardziej niskopoziomowe operacje na wskaźnikach, tablicach po prostu uczą myslenia programistycznego i pozwalają potem w "wyższych" językach szybciej i efektywniej rozwiązywac problemy.
marcio
Jak juz masz wybierac Jave to polecam C# z oczywistych powodow ;]

A tak na serio python to mily i przyjazny jezyk jedyne co mi w nim brakuje to taki kombajn jak VS !
elektrrrus
pyDev w eclipse spisuje się nieźle, piszę w nim spore rzeczy i daje rade.
mlawnik
Trochę offtop:

Do wspaniałego narzędzia jakim jest mindstorms NXT polecam NXC/NBC do programowania. Tutorial ok. 4-5h na przerobienie i umiesz (przynajmniej mi tyle w wieku 13 lat to zajęło). Obszerny manual z przykładami. Dobrze wyjaśnione wszystkie zawiłości.
peter13135
co takiego fajnego jest w c# ? nie lepiej java? języki podobne, a java wieloplatformowa (chociaż... jak zna się c# to w javie też się szybko da radę odnaleźć)
mike
Cytat(marcio @ 11.10.2011, 11:11:06 ) *
Jak juz masz wybierac Jave to polecam C# z oczywistych powodow ;]
A jakież to powody? Piszę w Javie i jakoś nie dostrzegam oczywistych powodów, dla których miałbym ją porzucać na rzecz C#
marcio
Cytat(peter13135 @ 11.10.2011, 22:38:52 ) *
co takiego fajnego jest w c# ? nie lepiej java? języki podobne, a java wieloplatformowa (chociaż... jak zna się c# to w javie też się szybko da radę odnaleźć)

Czy dla tych co pisza w javie liczy sie tylko wieloplatformowosc?Ludzie to nie wszystko i tak aplikacje sa przewaznie pisane pod uzytkownika/firme i dla nich wieloplatformowosc to nie piorytet (aby najmniej nie dla wiekszosci ) tam gdzie jest piorytetem to inna inkszosc haha.gif

Cytat(mike @ 11.10.2011, 23:44:50 ) *
A jakież to powody? Piszę w Javie i jakoś nie dostrzegam oczywistych powodów, dla których miałbym ją porzucać na rzecz C#

Jednym z tych powodow to wlasnie tok myslenia javovcow ;P mike z toba i tak do niczego nie dojde...!
mike
Cytat(marcio @ 12.10.2011, 00:31:15 ) *
Czy dla tych co pisza w javie liczy sie tylko wieloplatformowosc?Ludzie to nie wszystko i tak aplikacje sa przewaznie pisane pod uzytkownika/firme i dla nich wieloplatformowosc to nie piorytet (aby najmniej nie dla wiekszosci ) tam gdzie jest piorytetem to inna inkszosc haha.gif
Zauważ, że używając jednego języka jesteś w stanie złowić większą ilość klientów. Możesz pisać naprawdę wiele rzeczy w Javie. Od WWW począwszy, przez aplikacje desktopowe aż po aplikacje mobilne (z Androidem włącznie).
Czy to nie jest argument za Javą?
Cytat(marcio @ 12.10.2011, 00:31:15 ) *
Jednym z tych powodow to wlasnie tok myslenia javovcow ;P mike z toba i tak do niczego nie dojde...!
Czyli wiesz ale nie powiesz. Sprytnie.
To powiedz jaki to tok myślenia Javowców jest powodem żeby ten język odrzucić lub w niego nie brnąć?
nasty
Cytat(elektrrrus @ 10.10.2011, 23:40:08 ) *
Moim zdaniem jeśli chce się być programistą i coś w tym osiągnąć C/C++ po prostu trzeba umieć, chociaż w podstawach. To taka sama podstawa jak tabliczka mnożenia w matematyce. Z mojej praktyki i obserwacji innych osob - jeśli zna się C, nauka każdego innego języka jest bardzo łatwa, czasami wręcza banalna. Na odwrót z żadnym innym językiem tak nie działa. Pozatym bardziej niskopoziomowe operacje na wskaźnikach, tablicach po prostu uczą myslenia programistycznego i pozwalają potem w "wyższych" językach szybciej i efektywniej rozwiązywac problemy.

Szkoda, że to forum nie ma opcji dawania plusów za wypowiedzi, bo byś dostał ode mnie co najmniej dziesięć.

- ixpack:
tak jak powiedział elektrrrus, naucz się myśleć jak programista a języki będą się różnić jedynie syntaxem a to sprawa drugorzędna. Nic nie nauczy Cię tego sposobu myślenia jak języki typu C/C++.

Javy, .NET, PHP, czy inne takie języki wyższego poziomu zamieniają potencjalnie kompetentnych i dobrych programistów w strasznych ignorantów, nieświadomych tego ile nie wiedzą - jeśli nie są poprzedzone solidną znajomością podstaw z C/C++.
ixpack
Ja za komentarze dziękuję - odrzucam pythona. Wychodzi na to, że zaczynam się uczyć JAVY...
A "dupa" - odkładam C++ już od 15-go roku życia, jak już 1-sze stronki o Dragon Ballu robiłem... Zaczynam C++ - mam czas, nie potrzebuję tego do pracy, mindstorm czeka (mam pewien pomysł - ale to nie ważne wink.gif) i nic mu się nie stanie.

Także miał być python/java jest C++.

@Speedy - mylisz się myśląc, że nie czytałem - 1-sze co robię to czytam, googluję, nie jesteś wyjątkiem i niestety nie odkryłeś nowości =]. Większość ludzi tak robi. Sęk w tym, że w internecie jest tyle śmieci i niskiej jakości stron z informacjami "udawanymi", że sprawdza się następujący cytat: "Wiem, że nic nie wiem" - Sokrates(?). Wolałem napisać tu i podjąć decyzje z waszą pomocą niż tracić kolejny miesiąc czytając blogi o pythonie/javie - nie ma wielu stron gdzie język jest opisywany sucho (prócz dokumentacji) tak, aby można było wyciągnąć "plusy" i "minusy". Wiem, że jest wiele osób znających java/python/c i osoby Te siedzą na Tym forum - dlatego napisałem.

Mnie też drażnią pytania typu co jest lepsze, co wybrać... Czasem jednak dochodzi się do momentu, że jesteś po prostu "głupi".

Co do sondy - python wygląda na język łatwy, java średniotrudny. Wiem że w pythonie do mindstorm'a łatwo jest zaprzęgnąć kontroler x-box'a do współpracy i to mnie kusiło wink.gif.
rzymek01
Gratuluję dobrego wyboru smile.gif

PS. Polecam zaczynać naukę od dobrej książki, np. Thinking in c++ czy Symfonia, niż z jakiś kursów w sieci
mike
Cytat(ixpack @ 12.10.2011, 09:37:47 ) *
mindstorm czeka (mam pewien pomysł - ale to nie ważne wink.gif) i nic mu się nie stanie.
A może zainteresuje się Arduino. Tez super sprawa, w którą mam zamiar się zagłębić.
ixpack
Cytat(rzymek01 @ 12.10.2011, 10:36:50 ) *
Gratuluję dobrego wyboru smile.gif

PS. Polecam zaczynać naukę od dobrej książki, np. Thinking in c++ czy Symfonia, niż z jakiś kursów w sieci

O 1-szej wyczytałem wiele negatywów jak i pozytywów... A Symfonię prawie każdy chwali - i ją też kupię smile.gif.

Cytat(mike @ 12.10.2011, 10:49:38 ) *
A może zainteresuje się Arduino. Tez super sprawa, w którą mam zamiar się zagłębić.

Wiem gdzie ta droga z mindstormem będzie zmierzać smile.gif. W teorii można połączyć to wszystko w kupę i wyjdzie niezły warsztat. Nie wiem czy kojarzycie film "Giganci ze Stali" - uzyskując odpowiednie sensory dotyku - lub zastępując je sensorami dźwiękowymi w odpowiednich miejscach można stworzyć "walczące robociki". Kurde ale wyobraźnia mi ruszyła... kinnect (czy jak to się zwie) + lego (choć nie koniecznie), odpowiednie czujniki na "robocie" i mamy niezłą bijatykę robotów biggrin.gif. Za dużo pomysłów... Pora przystopować bo brak czasu na wykonanie.

Też tak macie? Wiecie, że życia wam zbraknie na zrobienie wszystkiego?
elektrrrus
Z mojego punktu widzenia elektronika ardiuno jest trochę nietrafione. Lepiej już zacząć od czegoś pokroju Bascoma na avr-y a potem przejść na C i arm jak juz mozliwości avr przestanie brakować.
marcio
Cytat(mike @ 12.10.2011, 08:48:32 ) *
Zauważ, że używając jednego języka jesteś w stanie złowić większą ilość klientów. Możesz pisać naprawdę wiele rzeczy w Javie. Od WWW począwszy, przez aplikacje desktopowe aż po aplikacje mobilne (z Androidem włącznie).
Czy to nie jest argument za Javą?
Czyli wiesz ale nie powiesz. Sprytnie.
To powiedz jaki to tok myślenia Javowców jest powodem żeby ten język odrzucić lub w niego nie brnąć?

Zgadzam sie z toba w 50%
To ze mozna to nie znaczy ze jest to dobre rozwiazanie,wydajne i latwe w implementacji...sry ale java pod www to dla mnie pomylka!
Co do aplikacji mobilnych to nie wiem jak to jest z androidem ale czy java to wiekszosc z nich?Jak to jest z python'em?Cpp?

Nie mowie ze trzeba odrzucic ale on nie jest wcale taki cacy
nasty
- marcio: co Ty wiesz o aplikacjach mobilnych czy www?
mike
Cytat(nasty @ 13.10.2011, 03:22:33 ) *
- marcio: co Ty wiesz o aplikacjach mobilnych czy www?
O to samo chciałem zapytać.

~marcio od wypowiadania sloganów podobnych do "sry ale java pod www to dla mnie pomylka!" nie posuwasz dyskusji ani o krok naprzód. Natomiast jakbyś zechciał przytoczyć jakiś argument. Ooo to by było coś.
blooregard
Cytat
To ze mozna to nie znaczy ze jest to dobre rozwiazanie,wydajne i latwe w implementacji...sry ale java pod www to dla mnie pomylka!


Mylisz się i to bardzo.

W dotychczasowej swojej karierze zawodowej nie miałem styczności z Javą i szczerze powiedziawszy, podchodziłem do niej parę razy jak do jeża, aż do chwili rozpoczęcia pracy w obecnej firmie, gdzie pracuję od pięciu miesięcy.

Jeśli chodzi o stronę frontendową, czyli to, co widzą na swoich monitorach userzy, to PHP i reszta standardów.

Ale cały backend to JavaEE w połączeniu z bazami Oracle i gdzieniegdzie MySQL i dopiero teraz, gdy zobaczyłem na własne oczy jak to pracuje oraz miałem możliwość pracować z tym kodem na co dzień uświadomiłem sobie, jak potężnym narzędziem do zastosowań sieciowych jest Java (i nie tylko sieciowych).

Jak dla mnie, chcąc pozostać zawodowo w tematyce aplikacji internetowych, nie ma innego kierunku, jak JavaEE i od kilku miesięcy intensywnie zagłębiam się w temat. Rozległość zagadnień (od strony serwerowej począwszy, czyli serwery aplikacji JBoss czy GlassFish, poprzez warstwę biznesową - EJB, aż do frontendowej JSF/JSP/serwlets/applets czy desktopowych aplikacji korzystających ze Swinga czy AWT) sprawia, że jest to temat na lata, ale wiem, że warto, bo to technologia, która będzie jeszcze długo dominować w zastosowaniach sieciowych.

I nagle nauka Javy jako języka stała się dla mnie czystą przyjemnością. biggrin.gif
ixpack
I znowu nic nie wiem... Boże dlaczego.
marcio
wiem tyle na ile pozwala mi moja wiedza

Nie jestem znawca nie uwazam sie za takiego ale widzialem duzo projektow duzych i malych i pisanie frontend w javie(glownie chodzi o jsp) nie nalezy do najprzyjemniejszych.
mike
Cytat(marcio @ 13.10.2011, 14:53:14 ) *
wiem tyle na ile pozwala mi moja wiedza

Nie jestem znawca nie uwazam sie za takiego ale widzialem duzo projektow duzych i malych i pisanie frontend w javie(glownie chodzi o jsp) nie nalezy do najprzyjemniejszych.

No widzisz ~marcio zamiast buńczucznych haseł okazuje się, że po prostu mało wiesz ale z chęcią wypowiadasz się o całości.
Poza gigantyczną ilością zastosowania Javy poza WWW to samo WWW w Javie też można pisać bardzo efektywnie. JSP, które widziałeś to ledwie wierzchołek góry lodowej.
Cysiaczek
@mike - może i efektywnie, ale na pewno bardziej kosztownie : )
mike
Cytat(Cysiaczek @ 13.10.2011, 15:34:51 ) *
@mike - może i efektywnie, ale na pewno bardziej kosztownie : )
Oczywiście, że naklepania durnego CRUDa w PHP może być tańsze czy szybsze ale jeśli to ma być WWW pod którym jest coś ciekawszego to już szybkość i beztroska zamknięta w PHP przestaje być wartością dodaną.
darko
Apropos Androida i Javy (ekm. Dalvika) smile.gif
http://gphone.pl/artykuly/android-czy-to-java-czy-nie-java/
http://en.wikipedia.org/wiki/Dalvik_%28software%29
http://www.dobreprogramy.pl/Oracle-Android...nosc,27950.html
// edit uzupełniam o jeszcze jeden link:
http://weblogs.java.net/blog/opinali/archi...17/android-java
@topic: ixpack - odpowiedź już dostałeś w pierwszym poście ~Crozina. Nic dodać, nic ująć, a listę najpopularniejszych frameworków dla każdego języka znajdziesz bez problemów w google.
peter13135
Cytat(blooregard @ 13.10.2011, 10:16:33 ) *
Jeśli chodzi o stronę frontendową, czyli to, co widzą na swoich monitorach userzy, to PHP i reszta standardów.

Czy dobrze zrozumiałem, że php to front-end ?

ixpack, wydaje mi się, że warto poznać zarówno cpp jak i javę. Java wywodzi się między innymi z cpp, więc jak poznasz cpp to nauka javy będzie łatwiejsza. Nie musisz przecież się ograniczać wink.gif Mozesz używać czego chcesz w zależności od potrzeb.
blooregard
Cytat
Czy dobrze zrozumiałem, że php to front-end ?


Dobrze zrozumiałeś. Serwisy internetowe są napisane w PHP, pomiędzy nimi istnieje interfejs (tzw. connector) z backendem, którym z kolei w całości jest JavaEE. Frontendy PHP-owe standardowo chodzą na serwerach WWW, z kolei backend Java'owy zapierdziela na JBoss'ach, To backend obsługuje m.in. bazy danych, multimedia itp. PHP-owe serwisy dostają już "gotowe" wyniki.
Więcej szczegółów zdradzić nie mogę wink.gif


Wbrew pozorom bardzo efektywne, skalowalne i zajedwabnie szybkie rozwiązanie, a obsługuje naprawdę ogromny ruch.

Takie kwestie, jak odpowiednie rozwiązania serwerowe (load balancery itepe) pominę, bo to oczywiste wink.gif
ixpack
Dobrze czytać takie dyskusje. Człowiek może wiele wiele się nie dowie, ale poniekąd zmusza to do szperania, czytania, motywuje i utwardza w przekonaniu "mało wiem".

Może kogoś zainteresuje:
Czujniki - planuję budowę robocika, zamawiam szereg czujników. W planie jest robot stojący - chodzący po schodach. Mam pewną koncepcję - zobaczymy jak wyjdzie. Czujniki odchyłu powinny działać jak "uszy" - a właściwie ślimak, dzięki czemu robocik w teorii będzie wiedział jakie jest odchylenie w pionie/poziomie. Czujniki ultradźwiękowe będą mówiły "gdzie są nogi" i jak szybko się poruszają... Jakbym tylko miał tyle czasu w domu co w pracy =]
no-name
Cytat(mike @ 11.10.2011, 21:44:50 ) *
A jakież to powody? Piszę w Javie i jakoś nie dostrzegam oczywistych powodów, dla których miałbym ją porzucać na rzecz C#


C#, jak C#, ale całe środowisko .NET z przyległościami od LINQ przez Visual Studio po takie fajne zabawki jak te:http://www.componentone.com/ to coś, co trudno jest lekceważyć. Poza tym przy nauce tego wszystkiego jest subiektywnie rzecz biorąc więcej zabawy, MS zrobił wiele by maksymalnie wygładzić "learning curve" dla swoich narzędzi i to rzeczywiście początkującym gwarantuje szybszy start.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.