Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Hydepark _ Java vs. Python

Napisany przez: ixpack 10.10.2011, 12:08:11

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ę.

Napisany przez: Crozin 10.10.2011, 17:00:57

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++.

Napisany przez: peter13135 10.10.2011, 22:25:08

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

Napisany przez: Speedy 10.10.2011, 22:29:03

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.

Napisany przez: elektrrrus 10.10.2011, 22: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.

Napisany przez: marcio 11.10.2011, 10:11:06

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 !

Napisany przez: elektrrrus 11.10.2011, 11:35:01

pyDev w eclipse spisuje się nieźle, piszę w nim spore rzeczy i daje rade.

Napisany przez: mlawnik 11.10.2011, 18:31:11

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.

Napisany przez: peter13135 11.10.2011, 21: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źć)

Napisany przez: mike 11.10.2011, 22:44:50

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#

Napisany przez: marcio 11.10.2011, 23:31:15

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...!

Napisany przez: mike 12.10.2011, 07:48:32

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ąć?

Napisany przez: nasty 12.10.2011, 07:49:05

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++.

Napisany przez: ixpack 12.10.2011, 08:37:47

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.

Napisany przez: 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

Napisany przez: mike 12.10.2011, 10:49:38

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ę http://www.arduino.cc/. Tez super sprawa, w którą mam zamiar się zagłębić.

Napisany przez: ixpack 12.10.2011, 15:38:51

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ę http://www.arduino.cc/. 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?

Napisany przez: elektrrrus 12.10.2011, 16:36:32

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ć.

Napisany przez: marcio 12.10.2011, 21:03:21

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

Napisany przez: nasty 13.10.2011, 02:22:33

- marcio: co Ty wiesz o aplikacjach mobilnych czy www?

Napisany przez: mike 13.10.2011, 09:04:36

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ś.

Napisany przez: blooregard 13.10.2011, 09:16:33

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

Napisany przez: ixpack 13.10.2011, 09:23:13

I znowu nic nie wiem... Boże dlaczego.

Napisany przez: marcio 13.10.2011, 13: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.

Napisany przez: mike 13.10.2011, 14:03:42

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.

Napisany przez: Cysiaczek 13.10.2011, 14:34:51

@mike - może i efektywnie, ale na pewno bardziej kosztownie : )

Napisany przez: mike 13.10.2011, 15:02:32

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ą.

Napisany przez: darko 13.10.2011, 17:05:32

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-pozbawil-Jave-przenosnosci-i-wieloplatformowosci,Aktualnosc,27950.html
// edit uzupełniam o jeszcze jeden link:
http://weblogs.java.net/blog/opinali/archive/2010/08/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.

Napisany przez: peter13135 13.10.2011, 20:18:56

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.

Napisany przez: blooregard 13.10.2011, 20:27:55

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

Napisany przez: ixpack 14.10.2011, 08:51:57

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:
http://nettigo.pl/category/Czujniki,b.html - 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 =]

Napisany przez: no-name 21.10.2011, 07:51:36

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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)