Wann kommt die nächste Revolution bei den Programmiersprachen?
-
@GreyHound und minhen: Was meint ihr, warum ich "veraltet" in Anführungszeichen gesetzt habe

Der Punkt ist einfach: Es gibt verschiedene Möglichkeiten, an die Frage "wie programmiere ich" heranzugehen - entsprechend den bekannten Paradigmen wie "imperativ", "objektorientiert", "funktional" ... Da kommt gelegentlich jemand auf die Idee, einen völlig neuen Ansatz zu entwickeln, aber das hat wenig Einfluß auf die bisherigen Lösungen.
(und Programmiersprachen sind auch nicht immer eindeutig einem bestimmten Paradigma zuzuordnen)Was die Sprachgenerationen angeht, die haben weniger mit dem Alter der Sprachen zu tun, die sie vertreten, sondern mehr mit der Nähe zum Computer bzw. zum Menschen - die erste Generation (Maschinensprache) ist direkt maschinenverständlich, aber nicht wirklich für Menschen zu interpretieren, die fünfte Generation kann ein Mensch fast in Muttersprache diktieren, aber dafür braucht der Computer mehr Aufwand, um sie zu verarbeiten.
PS: Ob man das als "ernsthaft" bezeichnen kann, bin ich nicht sicher, aber im Rahmen der KI-Vorlesung durften wir mal die Vorfahrtregeln in Prolog umsetzen.
-
this->that schrieb:
Am 12.03.2009.
Pünktlich zu meinem 30. Geburtstag? Das ist ja toll, dann hat der Tag ja doch noch was Gutes

-
Zur Zeit sehen viele Erlang als den nächsten großen Schritt. Erlang setzt auf absolute Nebenläufigkeit. Man benutzt im Grunde für jede Aufgabe einen Prozess. Dies wird von den Erlang Leuten auch scherzhaft als Process Oriented Programming bezeichnet. Aber im Grunde ist Erlang die einzige Sprache, mit der man Anwendungen schreiben kann, die beliebig mit der Anzahl der Kerne/Prozesse skaliert.
-
minhen schrieb:
Geht es nach dem Generationsmodell ist Prolog also konzeptuell eine der modernsten und neuesten Sprachen. Der Witz ist dabei nur der, dass Prolog und C beide gleich alt sind. Sowohl Prolog als auch C erschienen beide 1972. Die fünfte Generation ist also bereits über 30 Jahre alt.
Interessant. Lisp ist nochmal 14 Jahre aelter und ist je nach Verwendung eine 3GL, 4GL und 5GL.
-
@CStoll:
Mir geht es um die Bedeutung der mit den Generationen verbundenen "Revolutionen" - nicht primär um das Alter.CStoll schrieb:
PS: Ob man das als "ernsthaft" bezeichnen kann, bin ich nicht sicher, aber im Rahmen der KI-Vorlesung durften wir mal die Vorfahrtregeln in Prolog umsetzen.
Ich vermute du denkst da in diese Richtung? Ich dachte eher an kommerzielle Systeme oder Systeme der Komplexität um natürliche Sprache zu verarbeiten.
Tim schrieb:
Auch die funktionale Programmierung scheint z.Z. wieder etwas im kommen, hat nicht volkard dies vor ein, zwei Jährchen prognostiziert?
Woran genau machst du das fest?
-
lisp hat eine sonderrolle, da es vom design her eine programmierbare prorgammiersprache ist
und damit weit über den anderen steht
-
minhen schrieb:
Ich vermute du denkst da in diese Richtung? Ich dachte eher an kommerzielle Systeme oder Systeme der Komplexität um natürliche Sprache zu verarbeiten.
Nicht nur in dieser Richtung - das war genau die Vorlesung (vielleicht in einer etwas früheren Version).
-
minhen schrieb:
Tim schrieb:
Auch die funktionale Programmierung scheint z.Z. wieder etwas im kommen, hat nicht volkard dies vor ein, zwei Jährchen prognostiziert?
Woran genau machst du das fest?
An meinem subjektiven Empfinden und an Entwicklungen wie z.B. F# oder auch den Spracherweiterungen in C# 3.0.
-
HumeSikkins schrieb:
this->that schrieb:
Am 12.03.2009.
Pünktlich zu meinem 30. Geburtstag? Das ist ja toll, dann hat der Tag ja doch noch was Gutes

hehe

Also ich könnte mir vorstellen, dass in der Zukunft das Thema Multithreading/Multicore so bedeutend wird, dass es eigene auf diese Gebiete zugeschneiderte Sprachen gibt. Hab keinen Plan wie das aussehen könnte, aber halt irgendwas, was weg geht vom sequenziellen Charakter heutiger Sprachen und hin zu einem System, dass das "parallele Denken" unterstützt.
-
this->that schrieb:
Also ich könnte mir vorstellen, dass in der Zukunft das Thema Multithreading/Multicore so bedeutend wird, dass es eigene auf diese Gebiete zugeschneiderte Sprachen gibt. Hab keinen Plan wie das aussehen könnte, aber halt irgendwas, was weg geht vom sequenziellen Charakter heutiger Sprachen und hin zu einem System, dass das "parallele Denken" unterstützt.
Also so wie das oben erwähnte Erlang?
-
Ja, nur Mainstream-geeigneter und intuitiver.
-
minhen schrieb:
Und jetzt die Gretchenfrage: wer alles hat hier schon ernsthaft mit Prolog gearbeitet?
Ich musste, weil mein Prof ein totaler Prolog-Fan ist. Aber nicht ernsthaft. Nur die normalen Aufgaben fuer Studenten. Aber ich kann mir einfach nicht vorstellen, dass man damit komlexere Anwendungen schreiben kann (ich weis, sowas soll es geben, ist mir aber raetselhaft wie).
-
Che Guevara schrieb:
Wann gibts das nächste mal ne große Umstellung so wie weg vom prozeduralen Programmieren hin zum OOP?
Die gibt es dann, wenn es jemand schafft, "Programmieren" und "Aufwand->Zeit->Geld sparen" noch enger miteinander zu verbinden.

-
IHR WERDET ES AUCH NOCH MERKEN, DASS DIE ZUKUNFT _NUR_ PYTHON GEHÖRT!

---------------------------------------------------
Wie wärs mal mit einer backward-revolution? Also back-to-the-roots *lötkolben_raushol*
-
Ich denke auch, dass der Trend hin zu Expertensystemen, spezielle Sprachenn für die jeweilige Domänen, MDA (wobei das ja sogar meines Wissens eher wieder bissl aufm Rückgang ist), usw. geht.
Und eben das was auch schon mal gesagt wurde, nämlich hin zu viel besserem Support für nebenläufige Programmierung.
Aber als Revolution kann man das ja nicht gerade bezeichnen.Evtl. kommt was ganz neues wenn es auch neue Computergenerationen gibt.
-
ist die generische programmierung ( template metaprogrammierung ) eine untergruppe der objektorientierten programmierung?
-
ChrisJ schrieb:
ist die generische programmierung ( template metaprogrammierung ) eine untergruppe der objektorientierten programmierung?
ne, denn man braucht kein konzept eines objektes um generisch zu programmieren. man kann aber generische programmierung und objektorientierte mischen.
-
ChrisJ schrieb:
ist die generische programmierung ( template metaprogrammierung ) eine untergruppe der objektorientierten programmierung?
Nö. Generische Programmierung ist unabhängig von OOP. Template Metaprogrammierung ist vor allem funktional (Was aber OO natürlich nicht ausschließt).
-
rüdi, du bist doch programmiersprachen-fan. kennste das: http://ccl.northwestern.edu/netlogo/
sind jedenfalls lustige beispiele dabei. die drum-machine finde ich cool.

-
DEvent schrieb:
minhen schrieb:
Und jetzt die Gretchenfrage: wer alles hat hier schon ernsthaft mit Prolog gearbeitet?
Ich musste, weil mein Prof ein totaler Prolog-Fan ist. Aber nicht ernsthaft. Nur die normalen Aufgaben fuer Studenten. Aber ich kann mir einfach nicht vorstellen, dass man damit komlexere Anwendungen schreiben kann (ich weis, sowas soll es geben, ist mir aber raetselhaft wie).
Du hast sicher nichts mit Prolog zu tun gehabt, nur weil dein Professor Prolog toll findet. Denn zumindest einmal etwas von Prolog gehört zu haben (sprich die "normalen Aufgaben") ist bei Informatik einfach üblich.
Einen angemessenen Eindruck nimmt davon aber kaum jemand mit. Auf jeden Fall kann man mit Prolog schon ganz nette Sachen machen. Ich hoffe ihr habt auch DCGs gemacht. Das sind im Grunde Abbildungen von einfachen Phrasenstrukturgrammatiken in der Linguistik und als solche sehr nützlich für Sprachverarbeitung. Aber auch ohne einer expliziten DCG-Syntax wäre Sprachverarbeitung in Prolog relativ einfach. Mit einer DCG kann man nicht nur wunderbar einen gegebenen sprachlichen Ausdruck erkennen und erzeugen lassen, sondern beides auch mit konkreten Syntax-Bäumen erledigen lassen. Und das ist dann halt schon praktisch. Man gibt eine DCG an, lässt sich einen konkreten Syntaxbaum zu einer Eingabe erzeugen, baut die Semantik auf, wertet sie aus, bekommt eine logische Formel zurück und wandelt diese rückwärts über Semantik, Syntax-Baum und DCG in natürliche Sprache um und schon hat man ein natürlichsprachiges System, das sowohl z.B. Deutsch versteht als auch in Deutsch antwortet. Sowas kann man für Sprachausschnitte in Prolog relativ einfach machen. Man hat dann ein Morphologie-Modul mit Grundformen-Lexikon und Flexionsregeln, ein Syntax-Modul (z.B. DCGs) und ein Semantik-Modul (z.B. Lambda-Kalkül und Prädikatenlogik). Gerade wenn man sich das Syntax- und das Semantik-Modul ansieht, kann man sich vorstellen, weshalb sich gerade Linguisten für Prolog begeistern.
Und sonst hat Prolog natürlich auch noch die üblichen Möglichkeiten. Zwar definiert der ISO-Standard keine Möglichkeit graphische Oberflächen in Prolog zu erstellen. Aber das ist in C++ ja nicht anders und es geht dennoch. So auch in Prolog. Hier z.B. mit XPCE:?- new(D, dialog), send(D, append, label(text, 'Hallo Welt!')), send(D, open).Und dann kann man Prolog natürlich noch wunderbar in anderen Sprachen, allen voran natürlich C, als "Logik-Engine" einbetten und in beide Richtungen kommunizieren. Gerade das ist für größere Anwendungen auch interessant. Also auch wenn man keinen Browser in Prolog schreiben würde, komplexe Anwendungen macht schon damit

So ähnlich wie es Prolog vorgemacht hat, stell ich mir auch die Zukunft von Erlang vor. Ein Hype, alle finden es toll und am Ende besetzt es eine Nische und die gewöhnlicheren Sprachen machen wie gewohnt das Rennen. C++09 zum Beispiel ^^