Auf der Suche nach einer neuen Programmiersprache

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Auf der Suche nach einer neuen Programmiersprache

    Hey,

    Programmiersprachen gibt es ja wie Sand am Meer... Deswegen brauche ich da mal eure Hilfe, um mich entscheiden zu können...
    Derzeit entwickle ich kleinere Programme, die die Arbeit unter Linux erleichtern sollen, mit Bash und dialog. Den Horizont der Konsole werde ich so schnell nicht überschreiten (die Programme bleiben auf der Konsole und bekommen keine GUI unter X).
    Da ich da aber schnell an Grenzen stoße, und kompilierter Code den Vorteil hat, dass nicht jeder (Depp) das lesen kann bin ich jetzt auf der Suche nach einer modernen Programmiersprache unter Linux.

    Erwartungen sind da natürlich immer hoch. Jeder wünscht sich DIE Eier legende Wollmilchsau - ich versuche mich mit meinen Ansprüchen also ein wenig zurück zu halten.

    Must have:
    • muss in Maschinencode kompiliert werden
    • rapid Development (schnelle Ergebnisse -> in einer Scriptsprache schreibe ich 5-6 Zeilen und habe eine komplette Usereingabe mit dialog erstellt)
    • Referenzen und eine große Community - So wie bei PHP z.B. (php.net ist als Funktionsreferenz sehr hilfreich)
    • Systemcalls - Da ich viele externe Programme einbinden muss benötige ich eine gute Implementierung für Systemcalls


    Should be:
    • möglichst wenige Abhängigkeiten: (java z.B. währe wegen der JVM schon wieder nachteilig)
    • Funktionsorientiert - Kollegen von mir haben noch nie etwas mit OOP zu tun gehabt.
    • Nahtlose Integration in das Betriebssystem
    • Datenbankanbindung - Interne Daten und Einstellungen in einer DB zu verwalten währe schon praktisch :)
    • Ähnlich wie bei dialog einfache "grafische" Ausgaben auf einem Terminal (wie z.B. Menüs, Listen, Infoboxen, Formulare, etc) - notfalls würde ich dialog als syscall verwenden


    No go:
    • C - Die Programmiersprache ist mir zu heiß. Als blutiger C-Anfänger komplexere Software, die ein OS verwalten soll, zu schreiben ist ein Todesurteil


    Erfahrungen habe ich in folgenden Programmiersprachen:
    • PHP - Die erste Sprache, die ich gelernt habe. Würde ich diese Sprache kompilieren können würde ich sie sofort nehmen :love:.
    • JAVA - Während meiner schulischen Ausbildung habe ich damit schon ein wenig gearbeitet (eine kleine GUI erstellen und dergleichen)
    • C - Syntaktisches Verständnis - Ein kleines Programm mit Stringoperationen habe ich auch mal geschrieben.
    • BASH - Das was ich oben schon geschrieben habe...


    Sooo, jetzt dürft ihr euch mal austoben. Ich hoffe ihr könnt mir eine Programmiersprache schmackhaft machen.

    Danke schon mal,
    Erasel
    My lovely mister singing club...
  • Also ich kenne keine Sprache die in diese Richtung geht. Das liegt vorallem daran, dass es zwei gänzlich verschiedene Typen von Sprachen gibt: Kompilierte und Scriptsprachen (ich zähl die "VM-Sprachen" wie Java und die .net implementationen von Sprachen einfach mal zu den kompilierten).
    Die kompilierten Sprachen gehen in den meisten Fällen in Richtung C (insbesondere die nicht OOP sind). rapid Development und direkte Datenbankanbindung sind da in der Regel Fehlanzeige und C hast du ja eh ausgeschlossen.

    Die Skriptsprachen sind Skriptsprachen und werden schon per Definition nicht kompiliert. Mit syscalls siehts bei denen teilweise auch nicht so toll aus.

    Dazu kommt, dass du durch kein OOP eigentlich alle modernen Sprachen ausschließt. Durch keine Abhängigkeiten schließt du alles aus was mit ner VM läuft.

    Letztendlich kann ich nur sagen: Für Kommandozeilen Aufgaben verschiedenster Art benutze ich unter Linux (auch manchmal unter Windows, aber unter Linux ist es halt so gut wie immer verfügbar) Perl. Der Syntax ist teilweise gewöhnungsbedürftig (selbst mit Erfahrung in verschiedensten Programmiersprachen hat sich mir beim Anschauen des ersten Perl Scripts nicht erschlossen was es macht...) aber man kann mit relativ wenig Code relativ komplexe Dinge durchführen (insbesondere bei Regex Geschichten). Ist aber halt ne ganz normale Skriptsprache ;)
  • Hey,

    das mit OOP ist so eine Sache. Ich kann meine Kollegen da schon hinführen. Aber es sollte nicht zwingend sein. Ich würde Objekte also nur im Notfall erstellen und lieber Methoden in dem Mainobjekt haben obwohl die da nicht hingehören...

    Perl kann ich leider nicht kompilieren. Sonst hätte ich mich schon längst für so eine Sprache entschieden.
    Die Anforderung: Der Kunde darf nur kompilierten Code bekommen.

    Gruß,
    E
    My lovely mister singing club...
  • Ansonsten kannst du die Möglichkeit über manuelle Verschlüsselung gehen.


    Ruby ist eine ganz einfache, "offene" Programmiersprache. Wenn du dort etwas wie rubyencoder einsetzt, dann hast du doch auch das gewünschte Ergebnis erzielt ?!
    The RubyEncoder protects Ruby scripts by compiling Ruby source code into a bytecode format and this is followed by encryption. This protects your scripts from reverse engineering.


    Solche Projekte gibt es natürlich auch für andere Programmiersprachen.
  • Hey,

    das kenne ich schon. Davon bin ich kein Fan - frag mich nicht warum. Das weiß ich selber nicht. Wahrscheinlich weil mir eine innere Stimme sagt, dass das unnötiger Mehraufwand ist oder nur Probleme und Arbeit mit sich bringt...

    Ich habe heute HipHop gefunden. Das werde ich mir mal anschauen. Dafür brauche ich aber eine recht aktuelles Linux (Debian 6.0 oder Ubuntu evtl.). CentOS 5.5 bringt nicht die aktuellsten Pakete und mit Kompilieren fange ich bei der Latte an Anforderungen gar nicht erst an...

    Gruß,
    E
    My lovely mister singing club...
  • Ook! (nicht ganz ernst gemeint)

    Wie wäre es mit Ook! :)
    Das verstehen die Kunden auch nicht! Passt aber auch nicht auf deine genannten Kriterien.

    Hello World in Ook!(laut Wikipedia):
    Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook.
    Ook! Ook. Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook?
    Ook! Ook! Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook! Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook.
    Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
    Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook. Ook? Ook! Ook! Ook? Ook! Ook? Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
    Ook? Ook. Ook? Ook. Ook? Ook. Ook? Ook. Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook.
    Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
    Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
    Ook! Ook. Ook. Ook? Ook. Ook? Ook. Ook. Ook! Ook.

    Muss aber leider auch passen, nach deinen Kriterien fällt mir auch keine Programmiersprache ein.
    Hipop kenne ich nicht, kannst ja mal screiben wie der Einstieg so läuft, würde mich interessieren.
  • Du kannst di ja mal Freepascal (evtl in Verbindung mit Lazarus) anschauen, den Borland Delphi-Nachbau. Es sollte so gut wie alle Kriterien erfüllen und Pascal versteht ja nun wirklich jeder (dafür wurde es ja erfunden. Es kann OO, muss aber nicht (dann kannst du aber keine Fenster zusammenklicken), es ist aber wie sein Vorbild Delphi nicht besonders OO, man muss da nicht viel von können um es trotzdem nutzen zu können. Consolen sowie Fensterprogramme sind natürlich ein Klax damit, allerdings muss man dazusagen, dass die Community in ihrer größer eher stagniert bis abnimmt - andere Sprachen machen das rennen, weswegen ich auch kein Delphi mehr mache.
    ~ mfg SeBa

    Ich beantworte keine PMs zu Computer-/Programmierproblemen. Bitte wendet euch an das entsprechende Forum.

    [Blockierte Grafik: http://i.creativecommons.org/l/by-sa/3.0/80x15.png]
  • C solls zwar nicht sein, aber was hälst du von folgendem Vorschlag:

    Den Script in einen String einbauen, welcher im C programm Hardcodet ist. Den dann beim ausführen in dem tmp ordner schreiben und von da ausführen.
    mit atexit löscht du die script datei einfach wieder.
    So verhinderst du, das jeder anfänger an deinen Code kommt. Sicher ist das natürlich nicht, weil man während des ausführens den Code aus dem tmp ordner klauen könnte, aber das muss man auch erstmal wissen!
  • Hey,

    den Gedanken hatte ich auch schon mal. Das ist ja auch eine Methode, die des öfteren im Internet dokumentiert und diskutiert wird.
    Das bringt aber ein paar Probleme mit sich:
    • was wenn /tmp voll ist?
    • jeder der strace kennt, hat sofort das Script
    • Sensible Codesegmente muss ich in eine externes, kompiliertes Programm auslagern.


    Wie ist eigentlich C++? Kann man da als blutiger Anfänger viel kaputt machen oder muss man sich um die Speicherverwaltung keine Gedanken mehr machen (ähnlich wie bei Java)?

    Gruß,
    E
    My lovely mister singing club...
  • Ich arbeite unglaublich gern mit C und C++. Obwohl der syntax fast identisch ist, kann man damit doch grundlegend anders programmieren. Um speicherplatz musst du dir aber keine Sorgen machen.
    Wenn du kleine Datenmengen speichern willst kannst die die variablen einfach so deklaieren. Bei größerem musst du extra speicher vom Ram anfordern, wobei sich das in wenigen Zeilen lösen lässt, wenn man sich eine (für deine Bedürfnisse angepasste) Funktion schreibt, reicht auch eine.
    Also probleme sollte es nicht geben.

    Und nebenbei... /tmp hab ich noch nie voll bekommen...