• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Różnice między Python, C++ a Java

42 Warsaw Coding Academy
0 głosów
1,034 wizyt
pytanie zadane 8 marca 2023 w C i C++ przez Daniel338 Nowicjusz (120 p.)
Siemka,

Czy ktoś mógłby mi pomóc i powiedzieć jakie definitywne różnice są między trzema językami programowania? Mam na myśli Python, C++ a Java.  Bardzo byłbym wdzięczny za pomoc. PAN PROFESOR niestety jest bardzo detaliczną osoba. Najlepiej jakby to było z punktu widzenia osoby która programuje w tych językach. Dzięki wielkie z góry!  :)
komentarz 8 marca 2023 przez VBService Ekspert (256,600 p.)
edycja 8 marca 2023 przez VBService

ChatGPT - daje nawet niezłą dopowiedź:

Oto kilka podstawowych różnic między Python, C++ a Java:

  1. Szybkość:
    C++ jest najczęściej uważany za jeden z najszybszych języków programowania, dzięki czemu jest idealny do pisania aplikacji wymagających wysokiej wydajności, podczas gdy Python jest bardziej skłonny do bycia wolniejszym z powodu dynamicznej natury swojego typowania i interpretacji kodu. Java znajduje się gdzieś pośrodku i jest zwykle szybsza niż Python, ale wolniejsza niż C++. Python i Java są bardziej przenośne i łatwiejsze do pisania.
     

  2. Typowanie:
    C++ i Java są językami silnie typowanymi, co oznacza, że zmienne muszą być zadeklarowane z konkretnym typem i nie można ich zmienić, to oznacza, też, że typy zmiennych muszą być zadeklarowane podczas pisania kodu. Python jest językiem słabo typowanym, co oznacza, że zmienne nie muszą mieć określonego typu i mogą zmieniać swoje typy w trakcie wykonywania programu.
     

  3. Składnia:
    C++ i Java mają bardziej skomplikowaną składnię niż Python, ale jednocześnie dają większą kontrolę nad pamięcią i efektywniejsze zarządzanie nią. Python ma prostszą składnię i jest łatwiejszy do nauki.
     

  4. Zarządzanie pamięcią:
    C++ jest językiem, który wymaga ręcznego zarządzania pamięcią. Oznacza to, że programista musi ręcznie przydzielać i zwalniać pamięć dla zmiennych. Java i Python posiadają mechanizmy automatycznego zarządzania pamięcią.
     

  5. Interpretacja vs. kompilacja:
    Python jest językiem interpretowanym, co oznacza, że kod jest tłumaczony na bieżąco podczas wykonywania programu. C++ i Java są językami kompilowanymi, co oznacza, że kod jest tłumaczony na maszynowy przed uruchomieniem programu.
     

  6. Użycie:
    Python jest często używany w analizie danych, sztucznej inteligencji i uczeniu maszynowym. C++ jest często używany w systemach operacyjnych, grach i oprogramowaniu wbudowanym, gdzie wydajność jest kluczowa. Java jest często używana w tworzeniu aplikacji internetowych i mobilnych.

 

IMO punkt 3 prawie w całości mógłby się zawierać w punkcie 4, więc do punktu 3 "poprosiłem" o doprecyzowanie, oto, efekt (już lepiej to wygląda)

Składnia C++:

  • C++ jest językiem typowanym statycznie, co oznacza, że ​​typ każdej zmiennej musi być zadeklarowany przed użyciem.
  • W C++ stosuje się nawiasy klamrowe { } do grupowania instrukcji w bloki kodu.
  • Polecenia w C++ kończą się średnikiem (;).
  • W C++ używa się operatora dwukropka (::) do odwoływania się do składowych klas, a operator strzałki (->) do odwoływania się do składowych wskaźników na obiekty.
     

Składnia Java:

  • Java jest również językiem typowanym statycznie.
  • W Java stosuje się nawiasy klamrowe { } do grupowania instrukcji w bloki kodu.
  • Polecenia w Javie kończą się średnikiem (;).
  • W Javie korzysta się z operatora kropki (.) do odwoływania się do składowych klas, a operator strzałki (->) nie jest stosowany.
     

Składnia Python:

  • Python jest językiem typowanym dynamicznie, co oznacza, że typ zmiennej jest określany w trakcie działania programu.
  • W Pythonie stosuje się wcięcia (tabulacje lub spacje) do grupowania instrukcji w bloki kodu.
  • Polecenia w Pythonie nie kończą się średnikiem (;).
  • W Pythonie nie ma operatora dwukropka (::), a operator kropki (.) jest używany do odwoływania się do składowych klas oraz modułów.  
komentarz 8 marca 2023 przez tkz Nałogowiec (42,020 p.)
W drugim punkcie pomieszał statyczne/dynamiczne z silnym/słabym typowaniem.
Imo możliwości zarządzania pamięcią w javie i pythonie w porównaniu do C++ są takie same, czyli żadne.
Czwarty punkt to bzdura. Są inteligentne wskaźniki, są narzędzia przez które można tego całkowicie uniknąć.
Piąty to też bzdura. Python podlega procesowi kompilacji, tzn. jest tłumaczony na inny język, na bytecode.
Szósty punkt jest bardzo wybiórczy. Jeżeli korzystasz z pythona do inżynierii danych, sztucznej inteligencji, to korzystasz z C++ w ładniejszej oprawie.
komentarz 8 marca 2023 przez Wiciorny Ekspert (280,610 p.)

Java:
a operator strzałki (->) nie jest stosowany.

ojj widać, że się myli już tutaj ChatGTP, niestety to jest jego dalej wada, że wrzuca co "przefiltruje", oczywiście że operator jest używany, i został on uznany jako lambda operator. edycja j8.

Dodatkowo, Java nie daje dobrego zarządzania pamięcią, bo wszystko praktycznie jest dedykowane przez GC i VM :D natomiast w C++ odpowiada głównie programista  Z punktu programisty jest dobre, bo nie musi sie on o to martwic, a tylko pozornie, bo robiąc głupie operacje, zostawiając niepotrzebnie referencje jako używane, naraża się na dalsze wykorzystanie i braku kolektowania przez GC.



 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 648 wizyt
pytanie zadane 14 marca 2017 w Java przez Kubs Mądrala (5,190 p.)
+1 głos
2 odpowiedzi 1,135 wizyt
0 głosów
2 odpowiedzi 3,841 wizyt
pytanie zadane 24 maja 2017 w Rozwój zawodowy, nauka, praca przez devnull Nowicjusz (120 p.)

93,377 zapytań

142,380 odpowiedzi

322,532 komentarzy

62,727 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...