[Code] Unterschied Scriptsprache und Destkopsprache

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von xonic, 20. September 2009 .

Schlagworte:
  1. 20. September 2009
    Unterschied Scriptsprache und Destkopsprache

    Hallo,
    ich kann PHP ziemlich gut und in C# die Basics. Dennoch habe ich ehrlich gesagt noch nicht den Unterschied dieser beiden Architekturen verstanden. Klar ich weiß wie das mit C# kompiliert wird und was das .Net Framework macht. Aber bei diesen Destkopsprachen muss man, bei allen die ich kenne, definitiv den Datentyp angeben und alles ist viel mehr Speicherbezogen.

    Hingegen schreibt man in PHP einfach drauf los und braucht sich über Datentypen relativ wenig Gedanken machen.

    Beide Sprachen haben doch ziemlich großartige Funktionen. Klar PHP ist eine Skriptsprache, aber wo liegt der Unterschied - PHP muss man ja auch nich kompilieren.... wie funktioniert das dann?

    Beispiel:
    PHP
    Code:
    $var1 = "Hallo";
    $var2 = $var1;
    //$var2 hat den Wert "Hallo"
    C#

    Code:
    string var1 = "Hallo";
    string var2 = var1;
    //var2 referenziert var1 hat also die selbe Speicheradresse.
    Für den gleichen Effekt wie oben in PHP wäre folgendes notwendig:

    Code:
    using System;
    string var1 = "Hallo";
    string var2 = String.Copy(var1);
    //var2 referenziert var1 hat also die selbe Speicheradresse.
     
  2. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Den Begriff "Desktopsprache" kenne ich nicht, würde ich auch nicht verwenden. Ich würde diese Sprachen einfach als Programmiersprache oder auch höhere Programmiersprache bezeichnen.

    Abgrenzung von einer Skriptsprache (aus Wikipedia):

    Ein weiterer Unterschied ist, dass Skriptsprachen meist interpretiert anstatt kompiliert werden.

    Hierzu z.B. die Funktionsweise von PHP (ebenfalls aus Wikipedia):

    {bild-down: http://upload.wikimedia.org/wikipedia/de/thumb/6/67/PHP_funktionsweise.svg/800px-PHP_funktionsweise.svg.png}


    Grundsätzlich kannst du dir die Artikel auf Wikipedia für den groben Überblick durchlesen.
     
  3. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    das stichwort dazu lautet interpreter vs compiler.... wenn du eine app kompilierst wird sie in hexcode bzw. assembler umgeschrieben, welche der prozessor versteht, welches speicherplätze in der ram anspricht etc. daher auch datentypen, damit das programm weiss wieviel memory freigehalten werden muss für eine bestimmte variable. bei anderen sprachen, welche einen interpreter brauchen machst du nur befahle, welches der interpreter, welcher in echtzeit mitlaufen muss, dasselbe wie ein compiler, einfach auch realtime. z.b. java mir der java-vm, oder eben php funktionieren so. hat vor und nachteile, wobei das ganze mit dem interpreter den vorteil hat, dass du deine applikation nicht für jede plattform einzeln compilieren musst. warum du allerdings mit php limitiert bist was ausführbare apps betrifft ist, dass das ganze sehr statisch ist, du führst es aus und es gibt ein resultat, keine zwischeninteraktionen oder nebenläufige threads und dergleichen.
     
  4. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Hallo,

    sowohl C# (und Java auch) als auch PHP sind Scriptsprachen. D.h. der Sourcecode, den du schreibst wird nicht sofort in Maschinensprache übersetzt, sondern wird einfach so weitergegeben oder in eine Zwischenstufe (Bytecode) übersetzt. Der Bytecode ist aber keine Maschinensprache und kann so nicht ausgeführt werden.
    Der Byte- bzw. Sourcecode wird vielmehr von einem Interpreter (z.B. durch mod_php) interpretiert, d.h. der sourcecode wird eingelesen und erst während des Ausführens ausgewertet und in wirkliche maschinensprache umgesetzt.

    Der Vorteil ist, dass man nur einen Code für viele verschiedene Betriebssysteme braucht (man hat also eine zusätzliche Abstraktionsschicht). Der Nachteil ist, dass man geringfügig schlechtere Performance hat, da man ja nen zusätzlichen Zwischenschritt benötigt.

    Das mit den Datentypen hängt von der entsprechenden Typisierung der Sprache ab. PHP ist implizit typisiert, d.h. PHP erschließt von sich aus den Datentyp der Variable. Bei einer Zuweisung von $i = 5; "weiß" PHP, dass es sich um einen Integer handelt. Außerdem ist PHP schwach typisiert, d.h. es gibt keine Bindung zwischen Variable und Datentyp. Man kann also der Variablen $i, die vorher ein Integer war auch ohne Probleme einen String zuweisen.

    C# ist hingegen explizit dynamisiert, d.h. der Programmierer muss angeben, welchen Datentyp er in einer Variablen speichern will. C# ist außerdem stark typisiert, d.h. man kann einem String keine Zahl zuweisen. Der Vorteil von dem ganzen ist, dass man schon zur "Compilezeit" (Der Begriff compilen trifft ja wie gesagt nicht zu, aber "Byte-Code-Umwandlungszeit" klingt nicht gut ) Fehler entdecken kann.

    Hier steht noch mehr:
    Typisierung (Informatik) – Wikipedia
     
  5. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Hallo danke euch.
    Ok sag demnächst "höhere Programmiersprache".
    xD das seh ich mir mal an

    Nur wird bei Java bzw. Netsprachen wie VB oder C# ja auch nicht direkt in Assembler kompiliert sondern in eine Sprache bei Java Bytecode der von der Java VM "interpretiert" wird. Kann man dies nicht mit dem PHP Interpreter gleichsetzen?

    Danke
     
  6. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Ja, der Bytecode wird auch nur interpretiert. Ist also fast das gleiche wie der PHP-Interpreter. Bytecode ist natürlich noch einen Tick schneller bei der Interpretation als reiner Sourcecode, da z.B. Kommentare etc. gleich wegfallen. Man kann übrigens PHP-Code auch zu bytecode übersetzen lassen, was die Interpretation beschleunigt.
     
  7. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Sorry, hab jetzt nicht den gesamten Thread verfolgt, bin jedoch an dieser Aussage hängen geblieben.
    Womit belegst du denn die Aussage, dass C# und Java Scriptsprachen sind? Die Tatsache, dass sie in Bytecode (bzw. diese Zwischensprache bei C#, mir ist leider gerade der Name entfallen) übersetzt werden und dann in einer VM umgesetzt werden ist meiner Meinung nach hier kein gültiges Kriterium, um Script- von Programmiersprachen zu unterscheiden. Hast du vielleicht irgendeine Quelle, die deine Aussage stützt?

    Der Unterschied zwischen Script- und Programmiersprachen ist eigentlich fließend und kann dementsprechend nur sehr schwer gemacht werden. Aber dass Java und C# Scriptsprachen sein sollen hab ich ja sonst noch nie gehört
     
  8. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Das kommt halt drauf an, wie man die Begriffe einsetzt.

    Ich denke, dass du dir unter Skriptsprache etwas vorstellst, das in keinster Weise übersetzt wird, also direkt vom Source interpretiert wird. Bsp.: Batch

    Die nächste Abstufung wäre dann eventuell in Bytecode übersetzte Sprachen, also Java und .NET, die aber halt trotzdem kein direkt ausführbarer Maschinencode sind.

    Letztlich die kompilierten Sprachen wie C/C++, die ohne Interpreter ausgeführt werden.
     
  9. 20. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    MSIL => Microsoft Intermediate Language
     
  10. 21. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Naja ok, Scriptsprache ist vllt. nicht ganz angebracht. Man könnte mit Scriptsprache einfach alle Programmiersprachen bezeichnen, die den Code beim Ausführen erst interpretieren und dann erst ausführen, während "richtige" Programmiersprachen sofort Maschinencode beim Compilen übersetzen.

    Und man kann bzw. Python und PHP auch zu Bytecode compilen..
     
  11. 21. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    Naja ich denke es wird in Zukunft immer üblicher sein, dass man nicht mehr direkt in Maschinencode compiliert.

    Ich definiere für mich nun Scriptsprachen als Java Script. Mitteldingen PHP, da nicht mehr nur für "einfache" Sachen zu gebrauchen ist sondern in Kombination mit anderen Techniken durchaus lukrativ und funktionell von Haus aus ist. Und als Hochsprachen C... Java.... usw Fertig

     
  12. 28. September 2009
    AW: Unterschied Scriptsprache und Destkopsprache

    naja, vielleicht kommen immer mehr vm-basierte sprachen dazu, weil dadurch das portieren von OS zu OS ohne änderungen am code möglich wird (siehe java, da wird lediglich die vm angepasst, java-bytecode läuft überall).

    aber das es immer üblicher wird nicht direkt in maschinencode zu compilieren kann ich mir ned vorstellen. immerhin müssen ja die vm's in echten maschinen-code kompiliert werden

    der vorteil von c/c++ oder anderen sprachen die direkt in maschinen-code kompiliert werden is einfach die geschwindigkeit (wobei der abstand immer geringer wird) und das die erstellte binary nicht von irgendwelchen runtime-libs abhängig is.
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.