PDA

Vollständige Version anzeigen : Programmiersprachen



John Donne
15.08.2006, 07:42
Was ist die Sprache der Zukunft?

Wie sieht eurer Meinung nach die Programmiersprache der näheren Zukunft (5 bis 10 Jahre) aus? Gemeint sind "general purpose"-Sprachen, d.h. keine Dokumentenbeschreibungssprachen, sprich die Sprache sollte schon Turing-vollständig sein.

Ich komme gerade auf die Frage, nachdem ich mir die relativ neue Programmiersprache "Epigram" installiert und anhand eines mitgelieferten Tutorials einen - flüchtigen - Eindruck von der Expressivität verschafft habe, der inbesondere bei Typen und Typabhängigkeiten den von Haskell noch weit übersteigt. Industrietauglich ist die Sprache in ihrem jetzigen Zustand zweifellos nicht (der Code wird in Haskell übersetzt (den kann man dann compilieren oder in einem Interpreter laufen lassen) und das Programm benutzt XEmacs als Interface (eine Zumutung!)). Aber Java kann doch irgendwie nicht das Ende der Fahnenstange sein ;)

Grüße
John

tommy3333
15.08.2006, 08:24
Ich denke, dass sich der Trend in der Programmierung in zweifacher Hinsicht entwickelt. Die eine ist eine Art Oberfläche, die es gestatten wird, durch einfaches Drag-And-Drop Anwendungen oder Teile davon zu entwickeln (z.B. eine Maske oder ein Bericht) und vorgefertigte Prozesse dabei einzusetzen (z.B. eine Preiskalkulation). Dazu werden keinerlei Programmierkenntnisse vonnöten sein. Die andere Seite ist der ganze Unterbau von dieser Oberfläche und die Grundbausteine der Applikation, die weiterhin programmiert werden müssen. Ob das noch c++ oder java oder andere und neuere Sprachen sein werden, vermag ich nicht zu prognostizieren, allerdings denke ich, sind c++ und java noch nicht am Ende.

Den Grund für diese Trennung sehe ich darin, dass es durchaus eine beachtliche Zahl von Kunden gibt, die auch selbst Anwendungen oder Teile davon entwickeln oder verändern wollen, ohne jedesmal einen Programmierer bemühen zu müssen.

Würfelqualle
15.08.2006, 08:25
Da wärste wohl in einem Computerforum besser aufgehoben, als wie in einem Politikforum.

;)


Gruss vonne Würfelqualle

twoxego
15.08.2006, 11:18
ich rate dir dringend davon ab, deine zeit mit einer programmiersprache zu vergeuden die nicht etabliert ist. es gab deren einige in den letzten jahren. die meisten verschwanden so schnell wie sie kamen.
im übrigen kann, wer in einer der etablierten einigermassen fitt ist, immer relativ leicht umsteigen.
mein favorit ist java aber darüber kann man nicht streiten. es kommt fast einer glaubensfrage gleich.

Vielfrass
15.08.2006, 12:48
mach mal den rechtschreibfehler aus deiner sig raus

Katukov
15.08.2006, 14:19
Ich bin fanatischer Anhänger der Sprache C#.
Ihr gehört die Zukunft!

twoxego
15.08.2006, 14:32
hallo vielfrass!

danke. es waren zwei.

gruss twoxego

Vielfrass
15.08.2006, 14:35
hallo vielfrass!

danke. es waren zwei.

gruss twoxego

mag sein. es ist aber immer noch ein grammatikfehler drin. "...mit einem einzigen ...". nix für ungut.

twoxego
15.08.2006, 14:55
na das ist doch zitiert, das darf man doch nicht fälschen.
macalypse der jüngere hat das geschrieben. bestimmt hat er sich was dabei gedacht.

Vielfrass
15.08.2006, 15:28
na das ist doch zitiert, das darf man doch nicht fälschen.
macalypse der jüngere hat das geschrieben. bestimmt hat er sich was dabei gedacht.

du hast recht. als diskordia-jünger darf man das natürlich nicht.

SLOPPY
15.08.2006, 19:41
PHP ist momentan führend ...

John Donne
15.08.2006, 23:40
ich rate dir dringend davon ab, deine zeit mit einer programmiersprache zu vergeuden die nicht etabliert ist. es gab deren einige in den letzten jahren. die meisten verschwanden so schnell wie sie kamen.
im übrigen kann, wer in einer der etablierten einigermassen fitt ist, immer relativ leicht umsteigen.
mein favorit ist java aber darüber kann man nicht streiten. es kommt fast einer glaubensfrage gleich.

Ich investiere zweifellos viel Zeit auch in Programmiersprachen, die nicht industriell etabliert sind. Das liegt daran, daß ein Schwerpunkt in meinem Informatikstudium auf Logik und Berechenbarkeitstheorie liegt. Dadurch komme ich zwangsläufig mit anderen Paradigmen für Programmiersprachen in Berührung (z.B. Haskell, das direkt auf dem Lambda-Kalkül basiert). Nicht-Mainstream-Sprachen haben einerseits akadamisch ihre Berechtigung, da man hier schlicht über den Tellerrand schauen muß, und andererseits durchaus ihre Nischen, wo sie aufgrund ihrer Stärken auch industriell genutzt werden. Prolog ist beispielsweise im Bereich "küstliche Intelligenz" und ganz besonders NLP (natural language processing) recht weit verbreitet, denn seine Struktur kommt derartigen Aufgaben stark entgegen. In letztem Bereich wird es auch durchaus industriell genutzt.
Ich kann auch durchaus sagen, daß die Beschäftigung mit anderen Paradigmen für Programmiersprachen mein Verständnis von Mainstreamsprachen wie Java und C++ durchaus zum Positiven verbessert hat. Das Ganze ist insofern keine Zeitverschwendung, sondern quasi mein Job. Ich lerne keinesfalls irgendeine obskure Sprache allein in der Hoffnung, damit schneller als andere einen künftigen Industriestandard zu beherrschen.

Betrachtet man Software Engineering historisch, sieht man m.E. zumindest retrospektiv, daß sich Paradigmenwechsel (z.B. vom prozeduralen zum objektorientierten Programmieren) durchaus schon länger vorher ankündigten. Und m.E. steht in absehbarer Zeit mal wieder ein Wechsel an :)

Innerhalb eines Paradigmas läßt sich recht einfach umsteigen, keine Frage. Wer C++ kann, wird sich mit Java nicht übermäßig schwertun - und umgekehrt. Die Feinheiten einer Sprache lernt man ohnehin erst im längerfristigen praktischen Einsatz. Java ist zweifellos eine wunderschöne Sprache. Und ich glaube auch, daß die momentanen Mainstreamsprachen noch nicht gänzlich ausgereizt sind.

Grüße
John

John Donne
16.08.2006, 05:18
Ich denke, dass sich der Trend in der Programmierung in zweifacher Hinsicht entwickelt. Die eine ist eine Art Oberfläche, die es gestatten wird, durch einfaches Drag-And-Drop Anwendungen oder Teile davon zu entwickeln (z.B. eine Maske oder ein Bericht) und vorgefertigte Prozesse dabei einzusetzen (z.B. eine Preiskalkulation). Dazu werden keinerlei Programmierkenntnisse vonnöten sein. Die andere Seite ist der ganze Unterbau von dieser Oberfläche und die Grundbausteine der Applikation, die weiterhin programmiert werden müssen. Ob das noch c++ oder java oder andere und neuere Sprachen sein werden, vermag ich nicht zu prognostizieren, allerdings denke ich, sind c++ und java noch nicht am Ende.

Den Grund für diese Trennung sehe ich darin, dass es durchaus eine beachtliche Zahl von Kunden gibt, die auch selbst Anwendungen oder Teile davon entwickeln oder verändern wollen, ohne jedesmal einen Programmierer bemühen zu müssen.

Gibt es das nicht schon? Ich meine, relativ viele Systeme sind doch mittlerweile zerlegt in einen arlgorithmischen Programmkern (back-end) vor das sich relativ beliebige Front-ends klatschen lassen. Sind diese flexibel aufgebaut, sollten sich Masken und dergleichen auch direkt verändern lassen. Sie müssen natürlich zum back-end kompatibel bleiben.

Grüße
John

SAMURAI
16.08.2006, 06:43
Ich denke, dass sich der Trend in der Programmierung in zweifacher Hinsicht entwickelt. Die eine ist eine Art Oberfläche, die es gestatten wird, durch einfaches Drag-And-Drop Anwendungen oder Teile davon zu entwickeln (z.B. eine Maske oder ein Bericht) und vorgefertigte Prozesse dabei einzusetzen (z.B. eine Preiskalkulation). Dazu werden keinerlei Programmierkenntnisse vonnöten sein. Die andere Seite ist der ganze Unterbau von dieser Oberfläche und die Grundbausteine der Applikation, die weiterhin programmiert werden müssen. Ob das noch c++ oder java oder andere und neuere Sprachen sein werden, vermag ich nicht zu prognostizieren, allerdings denke ich, sind c++ und java noch nicht am Ende.

Den Grund für diese Trennung sehe ich darin, dass es durchaus eine beachtliche Zahl von Kunden gibt, die auch selbst Anwendungen oder Teile davon entwickeln oder verändern wollen, ohne jedesmal einen Programmierer bemühen zu müssen.

Der grösste/überwiegende Teil der Anwender will Programme die fertig sind und funktionieren. Für Kleinbetriebe/Mittelbetriebe ist es überhaupt nicht sinnvoll selbst rumzuschrauben. Verschwendung !

Es gibt inzwischen für jeden Bereich genügend brauchbare Software. Die haben nur Horror vor jedem neuen Release.

Z.B. der Kfz-Handel wird mit Software vom Hersteller versorgt.

C++ und Java sind ohnehin nur Tools für Entwickler.

tommy3333
17.08.2006, 12:41
Gibt es das nicht schon? Ich meine, relativ viele Systeme sind doch mittlerweile zerlegt in einen arlgorithmischen Programmkern (back-end) vor das sich relativ beliebige Front-ends klatschen lassen. Sind diese flexibel aufgebaut, sollten sich Masken und dergleichen auch direkt verändern lassen. Sie müssen natürlich zum back-end kompatibel bleiben.

Grüße
John
Es gibt in der Tat schon soetwas. Masken kann man sehr leicht verändern. Allerdings bin ich mir nicht so sicher, ob man sie auch genauso leicht mit Funktionalitäten ausstatten kann ohne über Programmierkenntnisse zu verfügen. Ich hatte das Beispiel Preiskalkulation genannt. Häufig wollen die Kunden aber Änderungen an der (Standard-)Preiskalkulation in der Anwendung, weil sie vielleicht ein anderes Rabattsystem einsetzen oder Preise noch merkmalsabhängig machen wollen. Andere wollen vielleicht frühere Preise einfließen lassen (z.B. den letzten Verkaufspreis an diesen bestimmten Käufer oder den Durchschnitt der letzten 3 Monate oder so).

tommy3333
17.08.2006, 12:54
Der grösste/überwiegende Teil der Anwender will Programme die fertig sind und funktionieren. Für Kleinbetriebe/Mittelbetriebe ist es überhaupt nicht sinnvoll selbst rumzuschrauben. Verschwendung !

Es gibt inzwischen für jeden Bereich genügend brauchbare Software. Die haben nur Horror vor jedem neuen Release.

Z.B. der Kfz-Handel wird mit Software vom Hersteller versorgt.

C++ und Java sind ohnehin nur Tools für Entwickler. Wir haben selbst Kunden, die an ihrer Applikation entwickeln und andere, für die wir eine Einführungsschulung in die Programmierung gemacht haben, weil sie sie einfach haben wollten. Auch wenn wir daran interessiert sind, dass der Kunde Entwicklungsaufgaben zu uns gibt, damit wir daran verdienen können, so respektieren wir auch die Wünsche unserer Kunden, wenn wir ihnen das nicht ausreden können. Es ist letztlich immer eine Preisfrage. Ein Tagessatz (also für 1 Manntag) für Individualanpassungen kostet unseren Kunden ca. knapp 800 EUR (durchaus produkt- und branchenüblich). Wenn der Kunde selbst programmieren will, dann trägt er natürlich auch das Risiko, wenn durch seine Programmierung aus welchen Gründen auch immer seine Daten (oder ein Teil davon) zerfleddert werden sollten oder der Betrieb steht.

GnomInc
17.08.2006, 17:27
Klar gibts vorgefertigte Software für alles mögliche , aber das sagt nix aus,
ob es die beste Programmierung ist.

Ich hab Kollegen gehabt , die haben in Assembler programmiert - also so
hardwarenah wie möglich.
Wahnsinn wie schnell diese Programme waren - im Gegensatz zu heutiger
Software.
Soweit ich weiss , wird diese Möglichkeit auch noch in der Raumfahrttechnik
genutzt- weil die Störanfälligkeit auch extrem gering ist.

Aber in der heutigen Zeit wird wegen dem massig verfügbaren Speicher
auch schon nix mehr compiliert^^X(
i

mggelheimer
17.08.2006, 18:32
Was ist die Sprache der Zukunft?

Grüße
John

Ganz klar Plankalkül. Auf meinem Z3 läuft nichts anderes. Neueste Errungenschaft ist eine PC-Emulation mit deren Hilfe z.B. Spiele wie das alterwürdige Doom 2 gezockt werden. Visualisiert wird das ganze natürlich auf Lochstreifen.

Madday
17.08.2006, 18:43
Programmiersprachen sind meistens stark an irgendwelche Paradigmen, Anwendungsgebiete, Hardware und deren Unterstützung durch Compilern gebunden, somit läßt sich die Frage sehr schwer beantworten - das Quartett ASM, C, C++ und Java ist keine schlechte Wahl um verschiedene Paradigmen und Anwendungsgebiete abzudecken. Eine Einzige Programmiersprache wird es nie geben und von Äußerungen wie C ist nicht mehr in Mode halte ich gar nichts, das sagten einige Softwarentwickler schon vor 10 Jahren und sie hatten damit unrecht.

John Donne
18.08.2006, 03:17
Klar gibts vorgefertigte Software für alles mögliche , aber das sagt nix aus,
ob es die beste Programmierung ist.

Ich hab Kollegen gehabt , die haben in Assembler programmiert - also so
hardwarenah wie möglich.
Wahnsinn wie schnell diese Programme waren - im Gegensatz zu heutiger
Software.
Soweit ich weiss , wird diese Möglichkeit auch noch in der Raumfahrttechnik
genutzt- weil die Störanfälligkeit auch extrem gering ist.

Aber in der heutigen Zeit wird wegen dem massig verfügbaren Speicher
auch schon nix mehr compiliert^^X(
i

Prinzipiell ist Assembler sicherlich am schnellsten. Allerdings haben die Compiler von Sprachen wie C++ ganz erhebliche Fortschritte gemacht und optimieren selbst recht gut. Große Softwareprojekte lassen sich nur mit gut modularisiertem Code entwickeln - und damit scheidet Assembler direkt aus. Assembler hat nachwievor seine Berechtigung, sei es, um inline in zeitkritischen Code einer Hochsprache eingebunden zu werden, oder um Programme auf Systemen zu schreiben, für die keine Hochsprache verfügbar ist oder wo der Code aus Kostengründen sehr klein sei muß. Das Programmieren in Assembler ist m.E. jedoch mühsam und fehleranfällig. Zudem ist der Code nicht auf andere Archiktekturen übertragbar.

Mit Computersystemen in der Rahmfahrt kenne ich mich nicht aus. in diversen Ländern ist es allerdings in der Luftfahrt oder im Bereich von Kernkraftwerken gesetzlich vorgeschrieben, daß die dort eingesetzte Software verifiziert sein. Zur Programmverifikation gibt es spezielle Techniken, mit denen man die Korrektheit von Programmen mathematisch beweist. Das Ganze ist sehr aufwändig und wird aus Kostengründen üblicherweise auch nur dort gemacht, wo es vom Gesetzgeber vorgeschrieben ist. Der Vorteil ist, daß man entsprechende Programme nicht mehr testen muß: sie sind korrekt. Assemblerprogramme sind allerdings m.E. nicht besonders einfach verifizierbar. Andererseits stellt der Weltraum (u.a. durch Strahlung, extreme Temperaturen und Temperaturschwankungen) erhebliche Anforderungen gerade an die Hardware. Diese ist in der Raumfahrt üblicherweise nicht besonders leistungsfähig, sodaß eine maschinennahe Sprache durchaus angebracht sein kann.

Java wird durchaus compiliert. Allerdings üblicherweise als Bytecode, der auf der JavaVirtualMachine läuft. Dadurch ist der Code sehr portabel. Bytecode ist allerdings sehr linear und läßt relativ einfach "reverse-engineeren" (das ist zwar meist illegal, aber...), sodaß auch in Java geschriebene Programme heutzutage sehr oft nativ kompiliert werden. Soweit ich weiß, kosten derartige Compiler im Gegensatz zu den "normalen" Entwicklungsumgebungen (z.B. Eclipse) allerdings Geld - und zwar richtig.

Generell ist gegen Nicht-maschinennahes Programmieren m.E. wenig zu sagen. Es sollte allerdings angemessen laufen: Ein Freund von mir hatte kurze Zeit ein Nokia 6600. Mit dessen komplett in Java verfaßter Software war das Gerät jedoch heillos überfordert und brauchte mehr als 30 Sekunden für den Bootvorgang.

Grüße
John

Madday
18.08.2006, 08:19
[...]
Mit Computersystemen in der Rahmfahrt kenne ich mich nicht aus. in diversen Ländern ist es allerdings in der Luftfahrt oder im Bereich von Kernkraftwerken gesetzlich vorgeschrieben, daß die dort eingesetzte Software verifiziert sein. Zur Programmverifikation gibt es spezielle Techniken, mit denen man die Korrektheit von Programmen mathematisch beweist. Das Ganze ist sehr aufwändig und wird aus Kostengründen üblicherweise auch nur dort gemacht, wo es vom Gesetzgeber vorgeschrieben ist. Der Vorteil ist, daß man entsprechende Programme nicht mehr testen muß: sie sind korrekt. Assemblerprogramme sind allerdings m.E. nicht besonders einfach verifizierbar. Andererseits stellt der Weltraum (u.a. durch Strahlung, extreme Temperaturen und Temperaturschwankungen) erhebliche Anforderungen gerade an die Hardware. Diese ist in der Raumfahrt üblicherweise nicht besonders leistungsfähig, sodaß eine maschinennahe Sprache durchaus angebracht sein kann.

Das nennt sich formale Spezifikation, sie ist zeitintensiv, teuer und kompliziert. Sommerville schrieb in seinem Buch Software-Engineering über das Thema, in wie weit die formale Spezi. tatsächlich eingesetzt wird ist fraglich.

John Donne
18.08.2006, 08:36
Das nennt sich formale Spezifikation, sie ist zeitintensiv, teuer und kompliziert. Sommerville schrieb in seinem Buch Software-Engineering über das Thema, in wie weit die formale Spezi. tatsächlich eingesetzt wird ist fraglich.

Ja, richtig, das ist formale Spezifikation. Ich habe letztes Jahr eine Vorlesung zu dem Thema gemacht. Es war halt das Spezialgebiet des Profs. Programme nachträglich auf Korrektheit zu beweisen ist ein absurdes Unterfangen, man kann aber bei der Konstruktion mit entsprechenden Spezifikationsmodellen und axiomatischer Semantik ein entsprechendes Programm (und seinen Beweis) Hand in Hand erstellen, das der Spezifikation genügt. Richtig, es ist trotzdem sehr stressig, teuer und wird auch nach Aussage meines damaligen Profs nur da gemacht, wo man keine Wahl hat. In UK und NZ sind das eben z.B. Programme für die Luftfahrt oder in Kernkraftwerken. Da macht das m.E. auch durchaus Sinn. Für das Gros der Programme würde das bedeuten mit Kanonen auf Spatzen zu schießen.

Grüße
John