Skriptsprachen gesucht, welche auf allen gängigen Betriebssystemen alleine laufen

KROKvsKROK

Ensign
Registriert
Apr. 2013
Beiträge
149
Hi,

was das Programmieren angeht, kenne ich mich eigentlich nur in Java recht gut aus. Ich habe mir aber schon öfters mal überlegt was ich machen würde, wenn jemand mit seinem Rechner ohne Internetzugang und ohne Java SDK zu mir kommen würde und mich bitten würde, mal eben die ersten 500 Primzahlen auszugeben. Da wäre ich ehrlich gesagt aufgeschmissen und könnte ihm nicht helfen.

Um für solche Situationen gerüstet zu sein, möchte ich mir eine Skriptsprache aneignen, welche auf möglichst vielen Betriebssystemen (Windows, Linux, Mac) ohne irgendwelche spezielle Zusatzsoftware (z.B. Java SDK o.ä.) verwendbar ist.

Welche Skriptsprachen wären für mein Vorhaben geeignet?

Bisher fällt mir nur JavaScript ein. Einen Internetbrowser und Texteditor haben die 3 o.g. Betriebssysteme von Haus aus schon installiert. Gibt es noch weitere?
 
LanceVance1997 schrieb:
Ich denke da hast du nur JavaScript bzw. die Browsermöglichkeit.
Für sowas gibt es Konsolenanwendungen mit C.

Aber für C bräuchte man dann (zumindest unter Windows soweit ich weiß) auch erstmal einen Compiler, welchen man ja erst runterladen muss.

Da bleibt dann echt wohl nur JS.
 
Python ist standardmäßig auf sehr vielen Unices installiert. Nur Windows spielt nicht mit. Hier wäre die Installation der Runtime vonnöten. Wenn keine Funktionalität notwendig ist, die Zugriff auf das System notwendig macht, wäre JavaScript sicher Mittel der Wahl.
 
Zum Kompilieren denke ich doch wohl, aber nicht zum Ausführen.
Es ist auch schwierig hier die Grenze zu ziehen. Wer hat denn einen Browser aber kein Internet, ein kleines Paket herunterzuladen? Der Browser hat doch auch bestimmte Voraussetzungen an Paketen, mehr und u.A. dieselben, die ein kleines Konsolenprogramm auch brauchen würde, wenn überhaupt. Bei gewissem Funktionsumfang mit Voraussetzungen an Paketen gibt es bestimmt auch die Möglichkeit, diese zu integrieren. Aber ich denke vor allem, dass das einfach auf das jeweilige Setup ankommen würde, weswegen es denke ich mal auch keine Omnilösung geben wird in dieser Hinsicht.
 
Zuletzt bearbeitet:
LanceVance1997 schrieb:
Wer hat denn einen Browser aber kein Internet, ein kleines Paket herunterzuladen?

Sowas kommt sehr häufig vor. Irgendwo unterwegs mit dem Laptop aber kein offenes Wlannetz in der Umgebung und auch keinen UMTS-Stick dabei.

Spricht denn etwas gegen JavaScript für meinen Anwendungsfall?
 
Ich würde auch für Python kandidieren, denn damit kannst du sehr einfach sehr vieles plattformübergreifend machen.

Die Ausgangssituation ist aber auch etwas konstruiert. Du kannst ja für den Fall, dass sowas wirklich mal eintreten sollte, immer einen USB Stick mit einem Python Interpreter dabei haben.
 
Lies mal das gesamte Posting durch, aus dem du zitierst.
Gegen JavaScript spricht auf jeden Fall, dass es "nur" im Browser läuft. Hier kann man wieder keine pauschale Antwort geben, da alles wie gesagt zu szenario-abhängig sein würde. Jemand, der mit dem Laptop ohne WLAN-Netz zu dir kommt und sagt "Schreib mir ein Programm, das mir die ersten 500 Primzahlen ausgibt" ist auch nicht gerade viel worauf man allgemein argumentieren kann. Genauso gut kann man sagen, dass du immer ein Gerät oder einen Datenträger mit den nötigen Voraussetzungen dabei hast, um es a) selber auf diesem Gerät zu lösen oder b) auf dem anderen Gerät lauffähig zu machen.
 
Das ist doch eine total unrealistische Ausgangssituation. Irgendwelche Voraussetzungen bringt jede Programmiersprache mit, sei es nun ein Compiler, ein Interpreter, oder irgend welche sonstigen Runtime-Geschichten. Daher hier noch eine Stimme für Python. Ist zwar nur eine von vielen Optionen, aber eine die mir besonders gut gefällt.
 
antred schrieb:
Das ist doch eine total unrealistische Ausgangssituation. Irgendwelche Voraussetzungen bringt jede Programmiersprache mit, sei es nun ein Compiler, ein Interpreter, oder irgend welche sonstigen Runtime-Geschichten. Daher hier noch eine Stimme für Python. Ist zwar nur eine von vielen Optionen, aber eine die mir besonders gut gefällt.

Wieso gefällt dir Python besonders? Nur von der Syntax her oder auch von den Möglichkeiten her?

Ich verstehe nicht, wieso sich hier soviele im Thread gegen JS streuben bzw. alternativen besser finden.
Was kann Python z.b. was JS nicht kann? Gibts da etwas? Falls nein, wieso sollte man sich dann den Vorteil von JS nehmen, dass man damit auf allen gängigen Systemen sofort mit dem Entwickeln loslegen kann, ohne erstmal irgendwelche Zusatzsoftware runterladen zu müssen sofern überhaupt Internet da ist?
 
Ich nehme mal an, der Grund liegt darin, dass du Leuten einfach mittels JS Schadcode unterjubeln kannst. In vielen Unternehmen wird die Unterstützung deaktiviert aufgrund von Sicherheitsbedenken. Anwendungsprogramme die in C oder ähnlicher Sprache geschrieben wurden, musst du ja dafür extra erst auf der lokalen Maschine ausführen.
 
Ist Meinungssache. Ich zum Beispiel verachte alle Skriptsprachen (besonders PHP), weil sie syntaktisch weniger Struktur haben als eine richtige Programmiersprache und vor allem auch wegen des Ducktypes. Ich denke viele mögen sowas gerade deswegen als Ausgleich.
 
KROKvsKROK schrieb:
Wieso gefällt dir Python besonders? Nur von der Syntax her oder auch von den Möglichkeiten her?

Beides. Es hat eine recht einfache, "unverschnörkelte" Syntax, und eine enorm umfangreiche Standardbibliothek (und wenn das was fehlt, da findet man häufig ein passendes Modul per Google).
Ergänzung ()

LanceVance1997 schrieb:
Ist Meinungssache. Ich zum Beispiel verachte alle Skriptsprachen (besonders PHP), weil sie syntaktisch weniger Struktur haben als eine richtige Programmiersprache und vor allem auch wegen des Ducktypes. Ich denke viele mögen sowas gerade deswegen als Ausgleich.

Für dich sind Perl, Tcl, Python, Scala, etc. also keine "richtigen" Programmiersprachen? :freak:
 
Das kommt darauf an wie du sie begrifflich abgrenzen willst, natürlich.:freak:
Dass ich mich in dem Posting in erster Linie auf Sprachen mit eben diesen genannten Elementen bezogen habe, sollte klar sein. SourcePawn zum Beispiel gefällt mir (jetzt als Gegenbeispiel).
Wie würdest du sie denn abgrenzen?
 
Python ist einfach praktisch, wenn es darum geht mit wenig Code Probleme zu lösen.
Ich bin jetzt kein Javascript Experte, aber du bist da nunmal sehr eingeschränkt wenn es um Zugriff auf's System oder Netzwerk geht.
Mit Python kannst du z.B. sehr einfach auf Dateien und Netzwerk zugreifen und Threads verwenden. Du hast zudem eine umfangreiche Library die dir vieles einfacher macht.

Ich bin der Meinung man sollte sich generell nicht im Vorfeld auf bestimmte Programmiersprachen festlegen, sondern schauen womit sich das Problem am elegantesten lösen lässt.

Um z.B. mal kurz auf einen Webserver zuzugreifen und die Daten zu bearbeiten habe ich bei Python wesentlich weniger Overhead als bei C++ und Java.

Man muss sich mit der Sprache einfach mal etwas beschäftigt haben, dann merkt man sehr schnell ob sie für eine Aufgabe die einem durch den Kopf ist besser geeignet ist als eine andere.

Um mal ein Beispiel zu zeigen, das ist alles was nötig ist, um eine Fritzbox per UPnP dazu zu bringen die Verbindung neu aufzubauen, und das meiste davon ist nur Text...

Code:
import httplib

def upnp_router_reconnect():
    body="<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>"
    headers = {"Content-type": "text/xml; charset='utf-8'", "SoapAction": "urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination"}
    conn = httplib.HTTPConnection("fritz.box:49000")
    conn.request("POST", " /upnp/control/WANIPConn1", body, headers)
    response = conn.getresponse()
    print "Reconnect: ", response.status, response.reason

upnp_router_reconnect()
 
Im Unix-Bereich Shell-Skripte und wenn man da fit ist, kann man sich unter Windows zur Not auch etwas PowerShell beibiegen. Ist ja einiges nachempfunden.
 
LanceVance1997 schrieb:
Ist Meinungssache. Ich zum Beispiel verachte alle Skriptsprachen (besonders PHP), weil sie syntaktisch weniger Struktur haben als eine richtige Programmiersprache[...]

Was genau meinst du mit syntaktischer Struktur?
 
LanceVance1997 schrieb:
Gegen JavaScript spricht auf jeden Fall, dass es "nur" im Browser läuft.
Schonmal von Node.js, SpiderMonkey oder Rhino gehört? Es gibt weit mehr Runtimes als "nur" im Browser, natürlich benötigt jede dieser eine Installation. Aber JavaScript wird schon länger - auch von den ganz großen - außerhalb des Browsers eingesetzt.

SymA schrieb:
Ich nehme mal an, der Grund liegt darin, dass du Leuten einfach mittels JS Schadcode unterjubeln kannst.
In welcher Welt? JS hat nichtmal schreibenden Zugriff auf deine HDD, wenn du es nicht erlaubst (kann aktuell auch nur der neue Chrome). Also mit Schadcode hast du da gar nix, du meinst vermutlich Java mit dem Browser Plugin, aber das sind 2 versch. Welten.
 
Zurück
Oben