C,C++ to główne języki programistów,co za tym idzie,to do tych języków jest najwięcej dodatkowych bibliotek,itd.
Programy,które masz w komputerze powstały głównie w C,C++.
Specjalizacja
Python może być używany do pisania skryptów,wtyczek,itd. co wynika z faktu,że jest interpretowany ale wadą jest szybkość wykonywania programu.Język interpretowany musi być instrukcja po instrukcji tłumaczony na kod maszynowy.W C,C++ kod maszynowy uzyskujesz od razu,po wymaganej kompilacji masz od razu plik wynikowy,który jest wykonywalnym programem,nie musisz mieć środowiska uruchomieniowego w odróżnieniu od Pythona.
Programów w Pythonie nie uruchomisz samodzielnie,podobnie jak programów w Javie
Python nie jest językiem interpretowanym. Jest kompilowany w całości w momencie uruchomienia. Od momentu uruchomienia, nic już nie jest interpretowane.
C i C++ nie są żadnymi głównymi językami. Nie ma czegoś takiego jak “język główny”.
Wg obiegowej opinii łatwiej Ci się będzie nauczyć Pythona, ale wszystko jest kwestią chęci. C naprawdę warto znać. Jak już nauczysz się jednego języka imperatywnego, nauczenie się kolejnego jest proste, więc bierz cokolwiek zamiast się zastanawiać.
Python jest językiem programowania ogólnego przeznaczenia, tak jak C++, ale często wykorzystywany jest do tworzenia skryptów, dlatego można spotkać się z określeniem zorientowany obiektowo skryptowy język programowania. Opis różnic sprowadza się pewnie do podania zalet i wad tych języków. Pozwolę sobie skrótowo opisać Pythona (CPythona). Na pierwszej stronie pierwszego rozdziału książki Python Wprowadzenie (Wydanie IV) Mark Lutz wymienia dlaczego programiści sięgają po Pythona:
Prawda, C++ zazwyczaj działa szybciej, ale gdyby to było jedyne albo chociaż najważniejsze kryterium, wszyscy ciągle pisaliby w asemblerze. Plusem Pythona i większości nowoczesnych języków jest szybkość, z jaką produkuje się wydajny kod. Mniej rozwlekła i mądrze rozplanowana składnia, do tego dużo mniej dziwna niż np. taka Scala. Pythona łatwiej się nauczyć, bo ma dużo mniej pułapek. Poza tym napiszesz w nim programik konsolowy, graficzny, stronę internetową i szybki skrypcik do czegoś małego.
C++ ciągle jest potrzebny i nadaje się do wielu zastosowań. Mimo to jest już kilka generacji za ‘nowoczesnymi i przyszłościowymi’ językami. Wielu wielkich stawia teraz na Scalę, Groovy’ego albo Clojure.
Wiesz, program w C++ też jest interpretowany przez kompilator. Ten sam mechanizm. Ale czy C++ jest językiem interpretowanym? Np. w Bashu możesz w czasie działania skryptu zmodyfikować go i zmiany będą widoczne. W Pythonie wszystko jest już skompilowane i nic byśmy nie zauważyli. Bash jest językiem interpretowanym. Python nie do końca (z wyjątkiem trybu interaktywnego).
Zasadnicza różnica jest taka, o czym na różne sposoby już wspominano powyżej, że kod C++ kompilujesz raz do kodu maszynowego danego procesora i dopiero po kompilacji uzyskujesz użyteczny program, natomiast programy Pythona przechowujesz w postaci tekstowej - źródło stanowi jednocześniej program, który można wykonać. Oczywiście nie jest to cecha języka, a jego implementacji, równie dobrze można by sobie wyobrazić interpreter C++ i komplator Pythona do kodu maszynowego danego procesora. Przykładowy kompilator C++ to g++, przykładowy interpreter Pythona to CPython (czyli ten ‘oficjalny’, który możesz pobrać z python.org).
Czym różni się C++ od Pythona? Tym czym wszystkie języki między sobą, a mianowicie składnią i semantyką Z drugiej strony zaryzykuję stwierdzenie, że praktycznie wszsytkie imperatywne języki programowania są mniej lub bardziej podobne. Tu i tu masz zmienne, instrukcje warunkowe, pętle, klasy, dziedzidzenie … (tutaj można umieścić dużo różnych terminów). Bardzo dużo informacji znajdziesz tutaj, pytanie tylko czy ile Ci powiedzą te terminy: http://en.wikipedia.org/wiki/Comparison … _languages . Dość fundamentalną różnicą jest statyczne typowanie w C++ i dynamiczne w Pythonie.
Tak bardzo ogólnie bym powiedział: C++ to więcej pisania, szybszy kod, a Python w drugą stronę, mniej czasu spędzasz na napisaniu, ale za to może nie działać tak szybko (choć, raz jeszcze, szybkość to cecha implementacji, a nie języka).
Co do “który trudniejszy”… nie operowałbym w kategorii “trudniejszy/łatwiejszy”, wg mnie są na podobnym poziomie. Natomiast C++ jest obszerniejszy, w tym sensie, że sensowna książka opisująca kompletnie C++ byłaby grubsza niż książka opisująca Pythona, przynajmniej tak mi się wydaje.
Pisząc główny język nie miałem na myśli głównego języka jako takiego,chodzi o to,że to w C,C++ głównie pisze się duże popularne programy np. Firefox,VLC Media Player,Gimp - to wszystko jest w C,C++ (tam gdzie max szybkość,tam asembler dochodzi).
Kompilator pozwala wstawiać wstawki asemblerowe,tam gdzie wymagana jest szybkość
Pamiętam jak kiedyś kolega (programujący w Javie) przyczepił się do drugiego słowa tej definicji – interaktywny język programowania. Wg niego coś takiego nie istnieje. Nie czepiajmy się słówek;)
Tworzeniu Javy (i innych języków wywodzących się z pnia C) przyświecał cel stworzenie czegoś nie tyle lepszego, tylko lepiej dostosowanego do wyzwań naszych czasów. Pozbyto się kilku mniej przydatnych i bardziej niebezpiecznych mechanizmów, inne obudowano w taki sposób, by zapisywać je zwięźlej. Dodano trochę nowości.
Z językami trochę jak z samochodami. Nie na każdej trasie potrzeba nam bolidu F1 (C++). Zazwyczaj dużo wygodniej jedzie się na zakupy solidnym samochodem rodzinnym (C#, Java, Python). Jeżeli ktoś nauczy się takim samochodem w rozsądnym czasie pokonywać odpowiednie odległości, to na diabła mu wtedy bolid?
Pytam tylko, skąd wzięło się określenie 'kilkukrotnie lepszym". Bo to wygląda jak argument do dyskusji o wyższości Świąt Wielkanocnych bad Świętami Bożego Narodzenia.