NG Programmiersprache?



  • Ich würde mir ein striktes, statisches Typsystem (dafür aber sehr flexibel in der Typerzeugung) wie bei ADA wünschen. Generische-Programmierung ala C++. Design-by-contract-Möglichkeiten ala Eiffel. Restarts in den Exceptions ala Common Lisp. Metaprogrammierung. Das ganze sollte einfach parsbar sein und direkt einen Parser für die Sprache in der Standardbib haben (damit die Entwicklung von Zusatztools begünstigt wird). Optionaler(!) GC. Wenn es Operatoren gibt, dann auf jeden Fall Operatorüberladung.

    Einfaches FFI für C (damit man ohne Probleme Bibliotheken einbinden kann. Eine Sprache ohne Bibliotheken ist leider oft unpraktisch).



  • a)
    Ich hätte gern einen minimalen Kern, Ganzzahlen und Fließkommazahlen verschiederer Längen, Adressdereferenzierung, goto, if mit nur einem bedingten Befehl, und was man so nötig noch braucht. Keine Ahnung, was man braucht. Vielleicht in einem namespace native oder so. Oder nur erreichbar in Dateien, die vor allen anderen Befehlen #pragma IKnowWhatIDo drin haben.

    Und die Möglichkeit, Sprachmittel zu definieren, echte Sprachmittel, die den Parser bestimmen, was vielleicht zu einem rekursiven Abstiegscompiler führt, der nicht hardcoded ist, sondern sich an unserem Syntax-Semantik-Baum entlanghangelt, oder einem Compiler, der immer, wenn was neues kommt, das lernt und von vorne beginnt. Keine Bange, das Von-Vorne-Beginnen betrifft nur die ersten Versionen und die Sprachdefinition, die unter Umständen dadurch duetlich vereinfacht wird, später werden schlaue Leute auch den Compiler optimieren und nur von vorne beginnen, wenn es wirklich nötig ist, praktisch nie.

    Zum Beispiel:

    syntax::define
      while(cond)
        cmd
    syntax::as
      nochmal:
      if(cond)
        cmd
        goto nochmal
    

    Was ich mir davon verspreche ist: Zum Beispiel wenn man eine Sprache wie C++ hat, die kein foreach hat, aber andere Sprachen mit foreach zu Recht erblühen, kann man foreach nachrüsten, einfach eine geschickte Definition aus der Open-Source-Gemeinde inkludieren, und muß nicht 0x Jahre warten, bis ein neuer Standard kommt.

    b)
    Ich hätte gerne, daß alle bereits definierten Funktionen auch zur Compilezeit schon aufrufbar sind, es muß gehen, daß

    int q(int x)
    {
       if(x==0)
          return 0;
       else
          return q(x-1)+2*x-1;
    }
    
    int const q100=q(100);
    

    zerfällt zu

    int const q100=10000;
    

    Auch muß es möglich sein, bereits definierte Funktionen auszutauschen, Objekte zu ändern, und nach Belieben Bezeichner wieder zu löschen. Quasi wie in Perl oder alten Basic-Dialekten, wo jede gelesene Code-Einheit (evtl auch Blocks, mehrseitige Klassendefinitionen..., und auch Syntax-Veränderungsbefehle) sofort ausgeführt wird, und dann darf da auch mal

    syntax::delete(int q(int x))
    

    stehen.

    Was ich mir davon verspreche ist: Zum Beispiel kann man zur Compilezeit optimale Hashtables erzeugen, sogar in Dateien Berechnungsergebnisse cachen, wenn man bitter drauf ist, sogar ausmessen, ob MUL oder dreimal ADD plus zweimal LEA schneller ist. Egal, man *kann*.

    c)
    Whitespace-Overloading, wenigstens zur Compilezeit, also in Dateien, die IKnowWhatIDo pragmatisieren. Denn ich liebe die Strukturierung durch Einrücken von Python. liebe liebe liebe. Aber ich weiß, daß viele das nicht mögen. Vielleicht kriegt man es ja hin, daß mit dem schlauen Sprachdingens je nach Inkludierung die Klammernmöger ihre Klammen nehmen können und die Einrückungsmöger ihre Einrückungen, obwohl abgesehen davon alle anderen weiteren Inkludierungen davon unabhängig sind. *träum*.



  • Zeus schrieb:

    Ich interessieren mich über eure Gedanke wie eine Programmiersprache aussehen, bieten muss, damit Sie im Betracht käme, euch näher mit der Programmiersprache zu beschäftigen bzw. auch damit zu arbeiten?

    P.S: An Flamerei bin ich nicht interessiert.

    Leicht zu erlernen sein (also beliebten Sprachen von der Syntax her ähnlich), Dinge besser machen, die mich bei anderen Sachen nerven und ungewohnte Features (d.h. ich muss sie konkret lernen) müssen einen entsprechenden Mehrwert bringen, damit ich sie auch lernen will.



  • Hoert sich an, als wollten hier die meisten in Lisp oder aehnlichem programmieren.

    P.S: An Flamerei bin ich nicht interessiert.

    Aber vielleicht andere. Wayne.



  • Cool wäre eine Sprache, die Parallelisierung als fundamentales Konzept unterstützt 🙂



  • nevermore schrieb:

    Cool wäre eine Sprache, die Parallelisierung als fundamentales Konzept unterstützt 🙂

    Haskell, Clojure, Concurrent ML, PLT-Scheme, ...



  • Ja, habe schon gehört das funktionale Sprachen das toll können... Besonders Erlang hört man da oft in dem Zusammenhang. Bin aber bis jetzt noch nicht dazu gekommen, mich ernsthaft damit zu beschäftigen.



  • Das funktionale ist aber nicht das einzige was Clojure z.B. da bietet. Für Mutable State implementiert es z.B. das Software Transactional Memory Modell und weiteres.



  • Es ging ja auch ums Parallele ... Und STM ist in funktionalen Sprachen besser zu implementieren, da Zustandsaenderungen sehr explizit sind.



  • nevermore schrieb:

    Cool wäre eine Sprache, die Parallelisierung als fundamentales Konzept unterstützt 🙂

    Da wäre Google go als Vertreter der imperativen Programmiersprachen zu nennen. Hat definitiv interessante Ansätze für Parallelisierung (built-in "threads" [go-routinen], channels). Auch die Syntax macht (zu grossen Teilen) bzgl meines zweiten Punktes doch etwas mehr Sinn als z.B. C++-Syntax.



  • Googles go hat das meiste auch nur aus Haskell oder Erlang zusammengeklaut.



  • knivil schrieb:

    Googles go hat das meiste auch nur aus Haskell oder Erlang zusammengeklaut.

    Also ist go gut.



  • Ich finde C# hat genug Features und ich glaube sogar die meisten. C# beinhaltet viel und muss glaube ich in Zukunft nicht mehr viel hinzufügen. Man müsste meiner Meinung nach, damit ich mir die Sprache angucke, mindestens soviel bieten können wie C# im Zusammenhang mit .NET.



  • knivil schrieb:

    Googles go hat das meiste auch nur aus Haskell oder Erlang zusammengeklaut.

    Und die Bugs wie Monaden, Stateless sein, Lazy Evaluation, komische Syntax, lisp Listen aufgelöst und Dinge wie OOP (ja ist es, wenn auch etwas ungewöhnlich) und einfaches nutzen von C Librarys nachgerüstet.

    (Nicht das es nicht Dinge gibt die man mit Erlang besser machen kann als mit issue17, aber bei vielen dingen ist man auch mit etwas „normaleren“ einfacher dran)



  • Zeus schrieb:

    NG Programmiersprache?

    Was is NG?
    http://de.wikipedia.org/wiki/NG 😕



  • Next-Generation



  • programmierloser schrieb:

    - Sie muss kompiliert werden (natürlich nutze ich auch hin und wieder eine Skriptsprache, aber für was grösseres wohl kaum - kommt aber auch auf den Fall drauf an, ich würde auch nie freiwillig nen Web-Projekt mit PHP machen).

    Womit würdest Du denn dann sonst ein Web-Projekt machen?



  • FreakY<3Cpp schrieb:

    Ich finde C# hat genug Features und ich glaube sogar die meisten. C# beinhaltet viel und muss glaube ich in Zukunft nicht mehr viel hinzufügen. Man müsste meiner Meinung nach, damit ich mir die Sprache angucke, mindestens soviel bieten können wie C# im Zusammenhang mit .NET.

    Sorry, viele Features sind ein Indiz fuer eine schlechte Sprache.

    Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary. Scheme demonstrates that a very small number of rules for forming expressions, with no restrictions on how they are composed, suffice to form a practical and efficient programming language that is flexible enough to support most of the major programming paradigms in use today.



  • ich bins schrieb:

    programmierloser schrieb:

    - Sie muss kompiliert werden (natürlich nutze ich auch hin und wieder eine Skriptsprache, aber für was grösseres wohl kaum - kommt aber auch auf den Fall drauf an, ich würde auch nie freiwillig nen Web-Projekt mit PHP machen).

    Womit würdest Du denn dann sonst ein Web-Projekt machen?

    Java2EE



  • programmierloser schrieb:

    ich bins schrieb:

    programmierloser schrieb:

    - Sie muss kompiliert werden (natürlich nutze ich auch hin und wieder eine Skriptsprache, aber für was grösseres wohl kaum - kommt aber auch auf den Fall drauf an, ich würde auch nie freiwillig nen Web-Projekt mit PHP machen).

    Womit würdest Du denn dann sonst ein Web-Projekt machen?

    Java2EE

    Und was ist mit:

    programmierloser schrieb:

    - Kein GC.

    😕


Anmelden zum Antworten