Laden...

Programmiersprachen der Zukunft

Erstellt von Siassei vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.744 Views
S
Siassei Themenstarter:in
401 Beiträge seit 2008
vor 14 Jahren
Programmiersprachen der Zukunft

Servus,

ende der 80-ziger war OOP (object oriented programming) der Inbegriff aller Lösungen für komplexe Problemstellungen. Heute ist man schlauer und weiß, dass in OOP nicht alle Problemstellungen elegant gelöst werden können und es die Mischung mehrere Programmier-Paradigmas es erst ermöglichen, eine übersichtliche und elegante Lösung zu produzieren.

Bereits bestehende Programmiersprachen können aus Kompatibilitätsgründen neue Paradigmas begrenzt oder gar nicht implementieren. Je nach Zielsetzung eines Projektes enstehen neue oder Derivate (z.B. C -> C++ -> Java -> C#). Da wir noch am Anfang der IT-Technik stehen, gehen die Entwicklung in einem rasendem Tempo weiter.

Gäbe es eine Wunschliste, was würdet ihr euch von einer Programmiersprache erwarten / wünschen?

  • Automatische Speicherverwaltung (GC)?
  • Feste oder variable elementare Datentypen?
  • Schreibweise (ähnlich mit C, VB oder neues Konzept)?
  • Paradigmas (OOP, FOP, AOP, SOP, ...)
  • Maschinencode, Interpreter, eine Mischung?
  • ...

Gruß,
Thomas

P.S.: Bitte keine Antworten, wie z.B. "C# ist die Lösung aller Probleme" oder "C# stellt die optimale Lösung dar". Ich brauche ein paar Daten um eine Aufgabenstellung in meine Studium, zudem gibt es ein privates Interesse 😉

467 Beiträge seit 2007
vor 14 Jahren

Mein Wissen ist zwar auf nur sehr wenige Sprachen begrentzt, aber eigentlich hat jede Sprache ihren eingenen Anwendungsbereich. So wird heute auch immernoch zB. C gelernt und verwendet, was sicherlich zunächst auch so bleiben wird.
Ich finde eine Sprache für Benutzeranwendungen sollte möglichst einfach sein, um nicht von der Eigentlichen Aufgabe abzulenken. So finde ich zum Beispiel die Lösung in C# ohne (Benutzung von)Zeiger ziemlich einfach für den Programierer und das bedeutet indirekt weniger Fehler, bzw. leichter zu entdecken, nicht so schwerwiegende Fehler...
Aber es geht auf Kosten der Kontrolle, also nicht optimale Ausnutzung der Resourcen. Die Frage ist, inwiefern(bzw. WO) das heute noch wichtig ist.
Dasselbe gillt meinermeinungnach auch für die Speicherverwaltung.

Ich vermute das OOP Konzept wird so schnell nicht verdrängt werden. Eher erwarte ich eine zunehmende Verschmelzung mit Aspektorientierter Programierung.
Ich vermute ebenfalls, dass in diesem Forum alle die {}- C Schreibweise am übersichtlichsten finden. Ich persönlich verstehe nicht, wie man sich in VB code zurechtfinden soll, andere offenbar schon...

ein zusätzicher Aspekt wäre noch Typsicherheit. Bei Sprachen wie PHP ist das offenbar nicht sinnvoll (tut mir leid, ich kann kein PHP. Vielleicht kann jemand kompetenteres was dazu sagen). In C# finde ich das zur Vermeidung von Fehlern auf jeden Fall sehr sinnvoll.

3.511 Beiträge seit 2005
vor 14 Jahren

Was ich mir in einer neuen Sprache wünsche?

Hmm, mal schauen. Eine direkte neue Sprache müsste man dafür wahrscheinlich nicht erfinden, aber eine bestehende erweitern. Meine wünsche betreffen c# (5.0? 😃)

  • Auf jeden Fall Speicherverwaltung (GC). Wünschen würde ich mir ein GC der managed und unmanaged Code managed 😃
  • Syntax soll natürlich so bleiben wie sie ist. Bisschen syntaktischer Zucker vielleicht noch. Da fällt mir nur gerade nichts ein...
  • AOP integriert wäre ziemlich nett
  • c# im Kernel Mode wäre ein Traum...
  • Besseres handling bei PInvokes. Weis jetzt nicht genau wie ich das beschreiben soll. In c# 2.0 muss man ja z.B. bei COM Aufrufen zu - meinetwegen - Office Anwendungen alles per ref übergeben. Also

excelSheet.Method(ref bla, ref blubb, ref fasel);

Ab c# 4.0 fällt das weg. Das übernimmt jetzt der Compiler. Also reicht ein


excelSheet.Method(bla, blubb, fasel);

Sowas in Richtung PInvoke wäre genial. Auch wenn es wahrscheinlich nicht umsetzbar ist.

[Edit]
Ganz vergessen:
Ein Aufruf wie z.B.


public void assembler Bla()
{
  mov ax, 34Fh;
  mov bx, 01Fh;
  // usw....
}

würde mich voll aus den Socken hauen 😃

"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)

309 Beiträge seit 2007
vor 14 Jahren

Eines Tages endet alles bei Z# 😁

Da denkst du nur noch, was du haben möchtest ){gray} 8)

**"Zufall ist das Pseudonym Gottes, wenn er nicht selbst unterschreiben will.” **
Anatole France

49.485 Beiträge seit 2005
vor 14 Jahren

Hallo Siassei,

deine konkreten Frage deutet darauf hin, dass du eher auf eine kurzfristige Perspektive bei der Entwicklung abstellst und nicht darüber redest, was passiert, wenn die IT gereift ist und damit nicht mehr am Anfang steht.

Und da bin ich mit den Neuerungen, die im Laufe der Zeit zu C# hinzugefügt wurden, vollauf zufrieden.

... und es die Mischung mehrere Programmier-Paradigmas es erst ermöglichen, eine übersichtliche und elegante Lösung zu produzieren.

Das sagt zumindest auch der Autor von C# Anders Hejlsberg. Ich bin da etwas skeptischer, weil es dazuführen könnte, dass eine Sprache irgendwann auch zu überladen ist. Siehe auch The Future of C# (C# 4.0).

In einer Langzeitperspektive geben wir vielleicht einfach direkt die Spezifikation in Prosa ein und der Compiler erstellt daraus ein passendes - und per Definition - fehlerfreies Programm ... vorausgesetzt, der Compiler ist fehlerfrei. Denn ein Programm ist per Definition korrekt, wenn es die Spezifikation erfüllt. Ob die Spezifikation darstellt ist, was ihr Autor ausdrücken wollte und erst recht, ob es das ist, was der Kunde will, steht auf einem anderen Blatt und ist für die die Frage der Korrektheit des Programms irrelevant. Vielleicht wird dank Seed AI irgendwann sogar das Erstellen einer Spezifikation überflüssig.

herbivore

1.002 Beiträge seit 2007
vor 14 Jahren

Hallo Hajoseb,

Da bekommt das Wort Kreativität eine ganz andere Bedeutung 😃.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

C
401 Beiträge seit 2007
vor 14 Jahren

Also ich denke es wird niemals DIE Programmiersprache geben. Es wird immer auf den Anwendungsfall ankommen. Beispielsweise wird man im embedded Bereich immer bei den Low-Level Sprachen bleiben, da man sich einfach keine Verzögerungen erlauben kann. Wer will schon, dass die Bremse oder der Airbag erst ne halbe Sekunde später reagieren? ^^ Syntax ist eher Nebensache. Natürlich gibt es grausame Sachen, aber die aktuellen Sprachen sind imho alle gut lesbar. Es ist halt auch immer Geschmackssache. Einige Leute finden die Syntax von Objective-C z.B. grauenhaft und schwer lesbar, ich finde sie absolut logisch und super. Bei zunehmend "einfacheren" Programmiersprachen gibt es imho das Problem, dass immer mehr Leute meinen sie müssten programmieren, obwohl sie eigtl. keine Ahnung davon haben. Java ist ein gutes Beispiel. Java ist relativ simpel und wird sehr häufig verwendet. Viele Quereinsteiger benutzen diese Sprache und bauen ziemlich viel Blödsinn damit. Man muss sich nur die Performance einiger Java Anwendungen angucken..... grauenhaft.

Ich mag persönlich sehr gerne Sprachen, die in Maschinencode übersetzt werden, weil sie wesentlich mehr Performance bieten, aber ich mag auch Interpretierte Sprachen, vor allem dynamisch Typisierte, wie z.B. Ruby, da diese sich imho sehr gut für Webanwendungen eignen.

F
240 Beiträge seit 2006
vor 14 Jahren

Zum Thema PHP: Bei PHP ist, aufgrund der Tatsache, dass es eine Skriptsprache ist, eine Typsicherheit wie in C# garnicht möglich, da es keinen Compiler, sondern nur einen Interpreter gibt. (Allerdings ist zb. zur Laufzeit eine Typsicherung über den Vergleichsoperator === möglich (entspricht ==, nur mit zusätzlicher Typenüberprüfung, true === 1 ergibt false).

C# und PHP haben eben ganz andere Einsatzgebiete, und bieten aufgrunddessen auch andere Herangehensweisen.

K
17 Beiträge seit 2008
vor 14 Jahren
  • Maschinencode, Interpreter, eine Mischung?

Also ich denke die Zukunft der Anwendungsentwicklung liegt auf alle Fälle bei JIT-kompilierten Sprachen. Die nächsten Jahre wird wohl die Prozessorlandschaft heterogener werden, x86 stößt ja doch immer mehr an seine Grenzen. Da ist das natürlich ein Traum, sich über die Hardware beim Anwender wenig Gedanken machen zu müssen.
Außerdem können JIT-Compiler dann Performancetechnisch einiges bringen. Insbesondere wenn man das träumen anfängt und sich vorstellt, dass z.B. parallel ausführbarer Code automatisch auf die GPU ausgelagert wird, falls vorhanden...

Ansonsten könnte ich mir vorstellen, dass sich mehr im Frameworkbereich tut als direkt bei den Programmiersprachen. Da gibt es viel Potential den Entwicklern Arbeit abzunehmen, siehe O/R-Mapper etc.

Grüße
kuda

4.207 Beiträge seit 2003
vor 14 Jahren

Ganz vergessen:
Ein Aufruf wie z.B.

  
public void assembler Bla()  
{  
  mov ax, 34Fh;  
  mov bx, 01Fh;  
  // usw....  
}  
  

würde mich voll aus den Socken hauen 😃

Es gibt ja so was wie "Inline MSIL" .... ist ein bisschen Gefummel, aber Ansätze dazu sind da.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de