Wat is het verschil tussen een programmeertaal en een scripttaal?

Beste antwoord

Python is een scripttaal, hoewel het ook een volwaardige, objectgeoriënteerde taal is programmeertaal. Het verschil tussen een scripttaal en een ‘programma’ is of de code al dan niet wordt uitgevoerd door een tolk. Dat is waarschijnlijk de gemakkelijkste manier om erover na te denken.

Dus als je een python-script schrijft, zou je een .py-bestand hebben. Als u dat bestand wilt uitvoeren, voert u eigenlijk python uit en geeft u uw .py-bestand als argument eraan. Iets als:

/usr/bin/python /Path/To/MyScript.py

Python zou dan het script uitvoeren. Zoals anderen al hebben gezegd, kun je een shebang-regel in je script plaatsen, maar dat vertelt je machine gewoon waar de interpreter te vinden is die hij moet gebruiken om het script uit te voeren. Er kleven voor- en nadelen aan de tolkbenadering. Een groot voordeel zou het gebruiksgemak zijn. Je kunt de onderstaande regel in een .py-bestand plaatsen en het door Python laten lopen:

print("Hello world!")

Met een taal als Swift C ++, C # of Java bijvoorbeeld, je zou je programma eigenlijk in machinecode compileren, en het bestand dat het resultaat is van die compilatie zou je programma zijn, of een deel van je programma. Het zou echter klaar zijn om te worden gedistribueerd zoals het is, en er zijn geen andere programmas nodig om het uit te voeren. Interpreteerde talen zijn om verschillende redenen meestal niet zo snel. Dat is waarschijnlijk het vermelden waard.

Je hebt gelijk dat Python niet echt vergelijkbaar is met Bash. Hoewel je veel kunt bereiken in Bash, is de taal zelf niet erg krachtig en is hij niet ontworpen om vol te schrijven over programmas of oplossingen. Python is een volledig functionele, objectgeoriënteerde programmeertaal en je kunt er zo ongeveer alles mee schrijven. Het is dus waar dat beide scripttalen zijn, maar ze behoren niet tot dezelfde klasse. Ten eerste is Bash niet objectgericht. Met Bash roept u ook voornamelijk console-apps op die in een andere taal zijn geschreven. Dan ontleed je gewoon de resultaten met Bash, of stuur je ze door naar het volgende console-hulpprogramma via de pipe.

Hier zijn een paar voorbeelden van geïnterpreteerde scripttalen:

Python, Ruby, Node JS, Powershell, vbScript, Javascript, Appescript, Bash, Perl etc.

Hier zijn een paar gecompileerde, sterk getypeerde talen:

Swift, Objective C, C, C ++, C # , Java

Hopelijk helpt dat om het op te helderen.

Antwoord

Scripttalen zoals Python, Ruby, JavaScript, PHP zijn ook programmeertalen. Ze zijn anders dan de traditionele gecompileerde talen doordat ze worden geïnterpreteerd en dynamisch worden getypt – het gegevenstype van een object kan op elk moment worden gewijzigd. Met andere woorden, het is niet nodig om het gegevenstype van een object of de geretourneerde waarde van een functie van tevoren te definiëren en u kunt deze direct wijzigen.

Traditioneel worden scripttalen gebruikt voor eenvoudige en snelle taken. Maar dit is niet langer waar. Nu zijn er grote programmas en codebases in Python, Ruby, JavaScript en PHP. Sommige van deze talen presteren traag in vergelijking met gecompileerde talen. Maar zelfs dat is niet langer waar. Met JIT-technologieën hebben JavaScript en PyPy een grote prestatieverbetering laten zien, en dat geldt ook voor PHP 7.

Uiteindelijk is het slechts een terminologie die opnieuw moet worden geformuleerd.

Webtechnologie op het eenvoudigste is een set statische documenten die door de webserver worden aangeboden aan de webbrowser en de browser die deze weergeeft volgens de HTML en CSS. HTML is een opmaaktaal en CSS voegt stijlen toe, waardoor het gemakkelijk wordt om consistente en aangepaste webpaginas te schrijven. Maar de inhoud is statisch en om de inhoud te wijzigen, moet u bestaande HTML-inhoud wijzigen of nieuwe HTML-inhoud schrijven.

Om webinhoud dynamisch te maken, kunt u een van de volgende twee benaderingen volgen: i) CGI of ii) insluiten code binnen HTML-paginas. De vroegere techniek zorgt ervoor dat de webserver een uitvoerbaar bestand aanroept (geschreven in een programmeertaal zoals C, Perl of een andere, inclusief scripttalen) dat een volledige webpagina genereert (met de juiste HTML-headers enz.), Neem het resultaat gegenereerd door de uitvoerbaar bestand en stuur het terug naar de webbrowser. Dit vereist het gebruik van bibliotheken die begrijpen hoe ze moeten communiceren met een webserver (HTTP). Vervelend, maar de vroegste vorm van dynamische webcontent werd op deze manier geschreven. De laatste heeft een andere benadering. De webserver herkent paginas met ingesloten code (die meestal HTML bevat die is ingesloten met code die is geschreven in een scripttaal zoals PHP, JSP, Python) en stuurt deze naar een scriptengine die alleen de ingesloten code uitvoert en vervangt door het resultaat van de uitvoering van de code ( de rest van de HTML, CSS, JavaScript ongewijzigd laten) en de gewijzigde HTML-pagina terugsturen naar de server, die deze op zijn beurt weer terugbrengt naar de webbrowser. Python, Ruby gebruiken ook een vergelijkbare maar kleine variatie op deze benadering. Dit is server-side scripting

JavaScript begon als een client-side dynamische codering / scripttaal.Elke browser heeft een ingebouwde JavaScript-interpreter. JavaScript-code kan in een webpagina worden ingesloten en naar de webbrowser worden verzonden, die deze code vervolgens aan de clientzijde uitvoert voor taken zoals formuliervalidatie, het dynamisch wijzigen van de DOM. Maar met de komst van Node.js kan JavaScript doen wat server-side scripttalen doen.

Toen kwam AJAX, een technologie waarmee client-side JavaScript-code server-side scripts kan uitvoeren en het resultaat van de server kan ophalen en vul de DOM. Op deze manier kunt u vervolgkeuzelijsten in de browser dynamisch vullen zonder de webpagina te vernieuwen. JavaScript-bibliotheken zoals jQuery maakten scripting aan de clientzijde modulair en gemakkelijk. HTML / CSS-frameworks zoals Bootstrap deden hetzelfde voor HTML5 en CSS3.

Frameworks voor webtoepassingen modulariseren en vereenvoudigen het schrijven van webtoepassingen. Elke scripttaal heeft zijn verzameling webapp-frameworks. Ruby heeft Ruby on Rails. Python heeft Django, Flask. PHP heeft Laravel. JavaScript heeft AngularJS en anderen.

Webapplicaties vertrouwen op databases als permanente datastore. Kennis van SQL en databasetechnologieën zoals Database Abstraction Layer en Object Relational Mapping is dus essentieel. De komst van NoSQL-databases voegt nieuwe dingen toe die een webontwikkelaar moet leren.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *