Exotische Prog.Sprachen
-
[ohne jetzt einen Flamewar zwischen Inperativ-lern und FP-lern provizieren zu
wollen]Hat eigentlich schon mal jemand von euch ein Projekt in einer "exotischen
Programmiersprache" (APL, Forth, Funktionale Programmiersprachen oder ähnliches) durchgezogen ?Mit "exotische Programmiersprache" meine ich die Sorte an Sprachen, die angesiedelt
ist zwischen den eher künstlerischen, praktisch fast unbenutzbaren (intercal, bf,
java2k usw.) und den gut bekannten praktisch verwendbaren (ADA, B, C, Delphi, Eiffel usw.).
Forth wäre in meiner Definition eine "exotische Programmiersprache" -
nicht völlig unbrauchbar (immerhin kann man ja innerhalb einer Bildschirmseite
Forth-Code einen x86-Assembler programmieren und auf einer halben den
Disassembler), aber für durchschnittliche Projekte fast nie verwendet.
-
Ich hab mal ein kleineres Projekt in prolog gemacht, weil es sich dafür ganz gut anbot. Und Haskell habe ich in der Uni mal gemacht, aber nie wirklich was großes damit gebaut. Meine Erfahrungen mit exotischeren Programmiersprachen halten sich also in Grenzen.
-
Forth ist doch als Highlevel Assembler verbreitet. OpenBIOS wird zB mit Forth entwickelt. SPARC Workstation haben wohl einen Bootprompt, der auch mit Forth geschrieben wurde.
Ansonsten ist Postscript wohl ein Forth derivat.
http://sourceforge.net/softwaremap/trove_list.php?form_cat=168
Funktionale Programmierung würde ich nicht so als exotisch bezeichnen.
-
kingruedi schrieb:
Funktionale Programmierung würde ich nicht so als exotisch bezeichnen.
In einem C++ Forum kann man funktionale Programmierung durchaus als exotisch bezeichnen finde ich
.
-
was gilt als projekt?
ich hab vor ne weile ne kleine ant colony simulation in OCaml angefangen, müsste ich mal fertig machen (nach den prüfungen). ist aber nur eine kleines 1-dateien projekt
aber ich würd liebend gern was größeres damit machen, leider mangelts an entsprechenden libraries (zb. für spiele). und für jeden mist erst bindings frickeln ist auch kein spass
-
Das ist eben das, was ich nicht verstehe:
Von Forth wird behauptet, man könnte 10- bis 100-fach kürzere Programme
schreiben mit entsprechend höherer Effizienz, dennoch sind fast alle
Forth-Projekte, die ich gesehen habe, auch eine bis wenige Bildschirmseiten
beschränkt ("hello, world" bis Schach mit Textausgabe).Von Haskell oder Scheme wird wohl behauptet, man könnte 9-mal schneller
entwickeln als mit den klassischen imperativen Sprachen. Ferner habe ich
gelesen, daß viele, die einmal das funktional Programmieren gewöhnt sind, nichts Anderes mehr haben wollten.Hey, ich will auch 10-mal schneller programmieren können
in einer Industrie
wie der Software-Entwicklung, wo Mannstunden der wesentliche Kostenfaktor sind,
muß doch ein Versprechen von 10-fach reduzierten Entwicklungskosten Interesse
finden.Was geht da vor sich ? Wieso programmiert nicht jeder Profi in Scheme oder
Haskell, wenn er dadurch 10-fach schneller und damit 10-fach billiger Software entwickeln könnte als mit C/C++ ? Oder ist die Behauptung, was Scheme oder
Haskell usw. betrifft, schlicht falsch ?
-
Walli schrieb:
Ich hab mal ein kleineres Projekt in prolog gemacht, weil es sich dafür ganz gut anbot.
Weil du gerade Prolog sagst, zählt so Unizeug auch?
"Am Ende des Semesters werden wir ein natürlichsprachliches Generierungs- und Analyse-System für einen kleinen Sprachausschnitt in der Programmiersprache Prolog implementiert haben."
-
@Cacheline
tja, gute frage.
ich denke, es fehlt vorallem die unterstützung durch die industrie. die meissten "neuen" sprachen wie java, C# etc. werden von riesigen software-konzernen gepusht (nicht nur mit entsprechender werbung, sondern auch libraries, tools etc.). da können dann andere sprachen nicht mithalten, weil sie nur hier und da an unis etc. benutzt und weiterentwickelt werden.dazu kommt natürlich noch: programmierer sind faul. oder auch: was der bauer nicht kennt, das frisst er nicht.
imperative sprachen haben imho für den einsteiger den vorteil meisst einfacher verständlich zu sein (nun, zumindest die moderneren).
in funktionalen sprachen sind zb. kleine, rekursive wunderwerke an der tagesordnung. man kann mit extrem wenig code etwas sehr mächtiges schreiben, aber das sieht kryptisch aus und ist ohne einiges an übung schwer nachzuvollziehen.
und die meissten "programmierer" haben imho auch keinen bock, sich mit was wirklich neuem zu beschäftigen. man kann ja schon mit C++ vs java glaubenskriege auslösen, da haben funktionale sprachen keine chance. gerade die "ich kann X und das ist die geilste programmiersprache"-fraktion (also die mehrheit?) schiebt sowas wie haskell schon beim einblick der syntax mit "so ein schrott" zu seite.ich würd ja auch liebend gern in zukunft viel mehr mit OCaml machen.
aber bei C++ hab ich vernünftige tools, bei OCaml muss ich mit der kommandozeile frickeln und syntax-highlighting editoren benutzen.
bei C++ gibts libraries für alles erdenkliche in x-facher ausführung, bei OCaml in vielen bereichen gar nichts (und bindings erstellen ist wie gesagt auch nicht optimal).
bei C++ gibts zu guter letzt ne riesige community und ressourcen, bei OCaml steht man ganz schnell allein da, wenn irgendwas nicht so tut, wies soll.
-
maximAL:
Einer der großen Software-Konzern mit Milliarden-Bilanzsumme hätte doch
eigentlich schon die Resourcen, um eine Sprache, mit der man x-mal
schneller entwickeln können soll, zu etablieren und Infrastruktur wie Tools, IDE
usw. drumherum zu bauen, seine Angestellten zu schulen usw.Sie machen es aber nicht; verzichten die dann freiwillig auf 900% Gewinn, nur
weil es bequem ist, bei C und Java zu bleiben ? Ich kann das kaum glauben,
aber -- immer vorausgesetzt, die Behauptung der 9-fach höheren Entwicklung-Effizienz mit gewissen FP-Sprachen ist nicht aus der Luft gegriffen --
es sieht wohl so aus.@kingruedi:
Ich habe mal Forth (ja, das ist bei SPARCs beim Booten erreichbar) probiert, aber ich finde v c@ 1+ dup v swap c! . noch
komplizierter nachzuvollziehen als Assembler. Man steigt ja, salopp gesagt,
von der Turing-Maschine auf die Stack-Maschine um, was für den Programmierer
eher ein Rückschritt ist, für den Compiler/Interpreter dagegen eine Erleichterung.
Entsprechend muß man die Arbeit, die sonst der Compiler macht, selbst
machen - Stack füttern und verwalten, Rücksprung- und Routinenstart-Adressen merken usw.
-
Cacheline schrieb:
maximAL:
Einer der großen Software-Konzern mit Milliarden-Bilanzsumme hätte doch
eigentlich schon die Resourcen, um eine Sprache, mit der man x-mal
schneller entwickeln können soll, zu etablieren und Infrastruktur wie Tools, IDE
usw. drumherum zu bauen, seine Angestellten zu schulen usw.nunja, ich glaube gerade solche sachen wie angestellte etc. sind der punkt. es ist ja sicher kein zufall, dass die java-syntax zum großteil der von C++ gleicht. da ist der umstieg leicht, bei einem völlig anderen konzept eher nicht.
Cacheline schrieb:
immer vorausgesetzt, die Behauptung der 9-fach höheren Entwicklung-Effizienz mit gewissen FP-Sprachen ist nicht aus der Luft gegriffen
keine ahnung, wie man auf die 9x gekommen ist. klingt mir schon etwas hoch gegriffen.
man kann das natürlich an der code-länge festmachen, allerdings ist damit nicht gesagt, wie lang man im schnitt "pro zeile" daran gearbeitet hat.gibt ja diverse programmier-sprachen benchmarks, zb. hier
OCaml vs C oder haskell vs java und andere, da kann sich jeder selbst ein bild machen (auch wenn die vergleichssprachen das teils schwierig machen).
-
Ich setzte mich gerade etwas mit LISP auseinander.. Finds eigtl. ganz "interessant".. Hat LISP heutzutage überhaupt noch Anwendungsbereiche, wo wird LISP / LISP Programme noch verwendet? Wenn jemand noch ein paar Links zu ein paar Lisp seiten bzw. (deutschen) Tutorials hat, wäre ich auch dankbar
-
Spontan denk ich da doch an emacs
-
Brutus schrieb:
wo wird LISP / LISP Programme noch verwendet?
guck dir doch mal das da an: http://maxima.sourceforge.net/
-
@Brutus
Ich hab mal ganz viele Links in der Wikipedia eingetragen: http://de.wikipedia.org/wiki/Common_LispDie NASA benutzt unter anderem Lisp.
-
Brutus schrieb:
wo wird LISP / LISP Programme noch verwendet?
Hmm, mal schauen:
Yahoo! Store
AutoCAD
EmacsLisp wird zur Zeit durch Sprachen wie Perl, Python und Ruby für RAD "wiedergeboren". Dazu gibt es sehr interessante Essays von Paul Graham.
-
kingruedi schrieb:
@Brutus
Ich hab mal ganz viele Links in der Wikipedia eingetragen: http://de.wikipedia.org/wiki/Common_LispDas hier ist auch interessant.
-
Brutus schrieb:
Wenn jemand noch ein paar Links zu ein paar Lisp seiten bzw. (deutschen) Tutorials hat, wäre ich auch dankbar
kostenloser online-kurs (auch auf deutsch): http://apsymac33.uni-trier.de:8080/elm-art/login-d
auf bald
oenone
-
Interessanter Link! Demzufolge scheint bei der Ausführungs-Effizienz kaum
ein Weg an C vorbeizugehen (abgesehen von Forth).
Was von FP-Sprachen aber immer wieder behauptet wird, ist ja die höhere
Entwicklungs-Effizienz, man soll wohl x-mal so schnell zum ausführbaren
Programm kommen.Leider kenne ich mich mit F.P. überhaupt nicht aus, aber vielleicht lege ich
mir Haskell oder eine ML-Sort als "Zweitsprache" neben C/C++ zu, um der Sache
mal etwas auf den Grund zu gehen. 9-mal schneller und fehlerfreier zu programmieren würde mich nämlich schon interessieren, selbst wenn davon in der Praxis "nur" eine Verdreifachung übrigbleiben sollte.
-
... der vorangehende Beitrag war an maximAL gerichtet...
-
ich hab mal paar kleinere Sachen in Brainfuck geschrieben, das war sehr geil aber das hat wirklich mein brain gefuckt