Najlepsza odpowiedź
Python jest językiem skryptowym, chociaż jest również pełnym, zorientowanym obiektowo język programowania. Różnica między językiem skryptowym a „programem” polega na tym, czy kod jest uruchamiany przez interpretera. To prawdopodobnie najłatwiejszy sposób, aby o tym pomyśleć.
Więc jeśli napiszesz skrypt w Pythonie, będziesz miał plik .py. Jeśli chcesz uruchomić ten plik, faktycznie uruchomisz Pythona i przekażesz plik .py jako argument do niego. Coś takiego:
/usr/bin/python /Path/To/MyScript.py
Python uruchomiłby wtedy skrypt. Jak wspominali inni, możesz umieścić w swoim skrypcie linię shebang, ale to po prostu powie twojej maszynie, gdzie znaleźć interpreter do uruchomienia skryptu. Podejście z tłumaczeniem ma swoje zalety i wady. Główną zaletą byłaby łatwość obsługi. Możesz umieścić poniższą linię w pliku .py i uruchomić ją przez Pythona:
print("Hello world!")
W języku takim jak Swift , C ++, C # lub Java, na przykład skompilowałbyś swój program do kodu maszynowego, a plik, który powstał z tej kompilacji, byłby twoim programem lub częścią twojego programu. Byłby gotowy do dystrybucji w takiej postaci, w jakiej jest, i nie musi mieć żadnych innych programów wymaganych do jego uruchomienia. Języki interpretowane zwykle nie są tak szybkie z różnych powodów. Warto o tym wspomnieć.
Masz rację, że Python nie jest tak naprawdę porównywalny z Bash. Chociaż w Bash można wiele osiągnąć, sam język nie jest bardzo wydajny i nie jest przeznaczony do pisania pełnych programów lub rozwiązań z. Python to w pełni funkcjonalny, zorientowany obiektowo język programowania, w którym można napisać prawie wszystko. Więc to prawda, że oba są językami skryptowymi, ale nie należą do tej samej ligi. Po pierwsze, Bash nie jest zorientowany obiektowo. Ponadto w przypadku Bash przede wszystkim wywołujesz aplikacje konsolowe, które zostały napisane w innym języku. Następnie po prostu parsujesz wyniki za pomocą Bash lub wysyłasz je do następnego narzędzia konsoli za pomocą potoku.
Oto kilka przykładów interpretowanych języków skryptowych:
Python, Ruby, Node JS, Powershell, vbScript, Javascript, Appescript, Bash, Perl itp.
Oto kilka skompilowanych języków z silną typizacją:
Swift, Objective C, C, C ++, C # , Java
Mamy nadzieję, że pomoże to wyjaśnić.
Odpowiedź
Języki skryptowe, takie jak Python, Ruby, JavaScript, PHP są również językami programowania. Różnią się od tradycyjnych języków kompilowanych tym, że są interpretowane i mają dynamiczne typowanie – typ danych obiektu można zmienić w dowolnym momencie. Innymi słowy, nie ma potrzeby wcześniejszego definiowania typu danych obiektu ani wartości zwracanej funkcji i można ją przełączać w locie.
Tradycyjnie języki skryptowe są używane do prostego i szybkie zadania. Ale to już nie jest prawdą. Obecnie istnieją duże programy i bazy kodu w językach Python, Ruby, JavaScript i PHP. Niektóre z tych języków mają niską wydajność w porównaniu z językami kompilowanymi. Ale nawet to nie jest już prawdą. Dzięki technologiom JIT, JavaScript i PyPy wykazały ogromną poprawę wydajności, podobnie jak PHP 7.
Ostatecznie jest to tylko terminologia, która wymaga przeformułowania.
Technologia internetowa w jego najprostszy to zbiór statycznych dokumentów, które serwer WWW podaje do przeglądarki internetowej, a przeglądarka renderuje go zgodnie z HTML i CSS. HTML to język znaczników, a CSS dodaje style, ułatwiając pisanie spójnych i niestandardowych stron internetowych. Ale treść jest statyczna i aby zmienić jakąkolwiek treść, musisz zmodyfikować istniejącą lub napisać nową treść HTML.
Aby uczynić zawartość internetową dynamiczną, możesz zastosować jedno z dwóch podejść: i) CGI lub ii) osadzanie kod na stronach HTML. Dawna technika sprawia, że serwer WWW wywołuje plik wykonywalny (napisany w języku programowania, takim jak C, Perl lub jakimkolwiek innym, w tym języki skryptowe), który dynamicznie generuje całą stronę internetową (z odpowiednimi nagłówkami HTML itp.), Przyjmuje wynik wygenerowany przez wykonywalny i zwróć go do przeglądarki internetowej. Wymaga to użycia bibliotek, które rozumieją, jak współdziałać z serwerem WWW (HTTP). Żmudna, ale najwcześniejsza forma dynamicznej zawartości internetowej została napisana w ten sposób. Ten ostatni ma inne podejście. Serwer sieciowy rozpoznaje strony z osadzonym kodem (zwykle zawierające HTML osadzony z kodem napisanym w języku skryptowym, takim jak PHP, JSP, Python) wysyła go do silnika skryptowego, który wykonuje tylko osadzony kod i zastępuje go wynikiem wykonania kodu ( pozostawiając resztę HTML, CSS, JavaScript bez zmian) i zwróć zmodyfikowaną stronę HTML na serwer, który z kolei zwraca ją do przeglądarki internetowej. Python i Ruby również używają podobnej, ale niewielkiej odmiany tego podejścia. To jest skrypt po stronie serwera.
JavaScript powstał jako dynamiczny język kodowania / skryptowania po stronie klienta.Każda przeglądarka ma wbudowany interpreter JavaScript. Kod JavaScript można osadzić na stronie internetowej i wysłać do przeglądarki internetowej, która następnie wykonuje ten kod po stronie klienta w celu wykonania zadań, takich jak walidacja formularza, dynamiczna zmiana modelu DOM. Ale wraz z pojawieniem się Node.js, JavaScript może robić to, co robią języki skryptowe po stronie serwera.
Potem przyszedł AJAX, technologia, która pozwala kodowi JavaScript po stronie klienta na wykonywanie skryptów po stronie serwera, pobieranie wyniku z serwera i wypełnij DOM. W ten sposób możesz dynamicznie wypełniać pola rozwijane w przeglądarce bez odświeżania strony internetowej. Dzięki bibliotekom JavaScript, takim jak jQuery, pisanie skryptów po stronie klienta jest modułowe i łatwe. Struktury HTML / CSS, takie jak Bootstrap, zrobiły to samo dla HTML5 i CSS3.
Struktury aplikacji internetowych modularyzują i upraszczają pisanie aplikacji internetowych. Każdy język skryptowy ma swoją kolekcję ram aplikacji internetowych. Ruby ma Ruby on Rails. Python ma Django, Flask. PHP ma Laravel. JavaScript ma AngularJS i inne.
Aplikacje internetowe polegają na bazach danych jako trwałych magazynach danych. Dlatego znajomość języka SQL i technologii baz danych, takich jak warstwa abstrakcji bazy danych i mapowanie relacyjne obiektów, jest niezbędna. Pojawienie się baz danych NoSQL dodaje nowe rzeczy, których twórca stron internetowych musi się nauczyć.