NG Programmiersprache?
-
Nexus schrieb:
Ich denke, der durchschnittliche Programmierer hat viel mehr Mühe, sich ein funktionales Denken anzueignen als ein objektorientiert-prozedurales.
Wieso muss man sich immer an den durchschnittlichen Programmierern ausrichten?
Und ja, ich habe mehrere Anläufe gebraucht, bis ich Haskell verstehen konnte. Aber das war es wert.
-
Mr. N schrieb:
Wieso muss man sich immer an den durchschnittlichen Programmierern ausrichten?
Weil dieser massgeblich an der Verbreitung einer Programmiersprache beteiligt ist.
Ich sagte ja nicht, man sollte sich als Programmierer selbst nach ihm ausrichten.
-
Mr. N schrieb:
Nexus schrieb:
Ich denke, der durchschnittliche Programmierer hat viel mehr Mühe, sich ein funktionales Denken anzueignen als ein objektorientiert-prozedurales.
Wieso muss man sich immer an den durchschnittlichen Programmierern ausrichten?
Was anderes kann nicht die Zukunft sein.
-
einfach schrieb:
Mr. N schrieb:
Nexus schrieb:
Ich denke, der durchschnittliche Programmierer hat viel mehr Mühe, sich ein funktionales Denken anzueignen als ein objektorientiert-prozedurales.
Wieso muss man sich immer an den durchschnittlichen Programmierern ausrichten?
Was anderes kann nicht die Zukunft sein.
http://de.wikipedia.org/wiki/Paretoprinzip
Das kann man auch auf Programmierer ausweiten: 20% der Entwickler sind für 80% der Produktivität verantwortlich.
-
Ich glaube du verzettelst dich da MrN, abgesehen davon, dass das auf riener Spekulation beruht glaube ich selbst falls es so ist nicht daran, dass sich die Programmiersprachen dieser Gurus durchsetzen
MfG SideWinder
-
SideWinder schrieb:
Ich glaube du verzettelst dich da MrN, abgesehen davon, dass das auf riener Spekulation beruht glaube ich selbst falls es so ist nicht daran, dass sich die Programmiersprachen dieser Gurus durchsetzen
Es wird sich auf jeden Fall eine mindestens teilweise funktionale Sprache in der breiten Masse durchsetzen. Schließlich bekommt sogar C# manche funktionalen Features und Sprachen wie Scala, Clojure und F# sind auch relativ beliebt.
Natürlich geht mir das nicht weit genug, aber das ist nur meine Meinung.
(Das "Verzetteln" nehm ich dir übel.)
PS: Haskell wird übrigens unter anderem von Leuten von Microsoft Research entwickelt, als Microsoft-Fanboy wird dich das ja bestimmt positiver stimmen. :p
-
Du hast ohnehin schon gewonnen, in zweieinhalb Monaten geht's bei mir für vier Monate mit Haskell los, danach bin ich hoffentlich ebenfalls indoktriniert
Ja, wiedereinmal wird sich mischmasch durchsetzen
MfG SideWinder
-
SideWinder schrieb:
Du hast ohnehin schon gewonnen, in zweieinhalb Monaten geht's bei mir für vier Monate mit Haskell los, danach bin ich hoffentlich ebenfalls indoktriniert
Ja, wiedereinmal wird sich mischmasch durchsetzen
MfG SideWinder
Sag blos du willst in eine Ein-Paradigma-Programmiersprache arbeiten? Du "kotzt" doch greade wegen Java ab ^^
-
Zeus schrieb:
Sag blos du willst in eine Ein-Paradigma-Programmiersprache arbeiten? Du "kotzt" doch greade wegen Java ab ^^
Du vergleichst Äpfel mit Birnen. Java versucht allem krampfhaft seine Objektorientierung für Arme aufzuzwingen, das heißt aber noch lange nicht, dass eine rein-funktionale Sprache schlecht wäre.
-
Mr. N schrieb:
einfach schrieb:
Mr. N schrieb:
Nexus schrieb:
Ich denke, der durchschnittliche Programmierer hat viel mehr Mühe, sich ein funktionales Denken anzueignen als ein objektorientiert-prozedurales.
Wieso muss man sich immer an den durchschnittlichen Programmierern ausrichten?
Was anderes kann nicht die Zukunft sein.
http://de.wikipedia.org/wiki/Paretoprinzip
Das kann man auch auf Programmierer ausweiten: 20% der Entwickler sind für 80% der Produktivität verantwortlich.
Du vergisst was: Java Basic PHP...
-
Mr. N schrieb:
Zeus schrieb:
Sag blos du willst in eine Ein-Paradigma-Programmiersprache arbeiten? Du "kotzt" doch greade wegen Java ab ^^
Du vergleichst Äpfel mit Birnen. Java versucht allem krampfhaft seine Objektorientierung für Arme aufzuzwingen, das heißt aber noch lange nicht, dass eine rein-funktionale Sprache schlecht wäre.
Das musst du mir genauer erläutern! Sonst hake ich das als böswillige Unterstellung ab.
-
Zeus schrieb:
Mr. N schrieb:
Du vergleichst Äpfel mit Birnen. Java versucht allem krampfhaft seine Objektorientierung für Arme aufzuzwingen, das heißt aber noch lange nicht, dass eine rein-funktionale Sprache schlecht wäre.
Das musst du mir genauer erläutern! Sonst hacke ich das bösewillige Unterstellung ab.
In rein objektorientierten Sprachen (in Java-Art*) ist es schwierig, Konzepte wie Addition auszudrücken:
obj1.add(obj2)
- nicht gerade elegant!
Aber kannst du mir etwas konkretes nennen, was in funktionalen Programmiersprachen nicht gut geht? Zumindest nicht so gut wie in einer Sprache, die Objektorientierung unterstützt.
~Den Satz "Sonst hacke ich das bösewillige Unterstellung ab" verstehe ich beim besten Willen nicht. Was soll das bedeuten?~
----
(*) Mir ist bekannt, dass es auch objektorientierte Sprachen mit Multi-Dispatch gibt, aber die sind leider relativ exotisch.
-
abhaken und nichts ab hacken
-
Zum Punkt, du hast hergeleitet, dass ich etwas Vergleiche, was ich nicht getan habe. Ich hab eine Frage für eine Kategorie gestellt und Java als Beispiel genommen. Eigentlich dachte ich, dass du weißt, dass man Aussagen für Beispiel nicht auf Kategorien verallgemeinern darf und schon gar nicht auf andere Kategorie.
Außerdem ist Java keine pure objektorientierte Programmiersprache.
Wenn du eine pure objektorientierte Programmiersprache mit Operatordefinition (nicht Überladung!) suchst, dann nimm Cecil. Diese Sprache hat aber wirklich keine Verbreitung jenseits der Uni.
-
Zeus schrieb:
Außerdem ist Java keine pure objektorientierte Programmiersprache.
"pur objektorientiert" gibt es nicht.
-
Mr. N schrieb:
Zeus schrieb:
Mr. N schrieb:
Du vergleichst Äpfel mit Birnen. Java versucht allem krampfhaft seine Objektorientierung für Arme aufzuzwingen, das heißt aber noch lange nicht, dass eine rein-funktionale Sprache schlecht wäre.
Das musst du mir genauer erläutern! Sonst hacke ich das bösewillige Unterstellung ab.
In rein objektorientierten Sprachen (in Java-Art*) ist es schwierig, Konzepte wie Addition auszudrücken:
obj1.add(obj2)
- nicht gerade elegant!
Aber kannst du mir etwas konkretes nennen, was in funktionalen Programmiersprachen nicht gut geht? Zumindest nicht so gut wie in einer Sprache, die Objektorientierung unterstützt.
Prozesse beschreiben, oder Objekte darstellen geht in rein funktionalen Programmiersprachen genauso gut, wie Funktionen beschreiben in "rein" Objektorientierten Sprachen mit "Objekt.Methode(Parameter)-Syntax". Ein Prozessor führt Prozesse aus (Prozedurale Programmierung), in Software müssen meistens realitätsnahe Objekte dargestellt werden (Objektorientierte Programmierung). Nicht, dass es keine guten Gründe für funktionale Programmierung gäbe, aber ich glaube ein sehr wichtiger ist einfach der, dass die meisten studierten Programmierer Informatiker (Mathematiker) sind. Da liegt das sehr mathematische Modell natürlich nahe.
-
volkard schrieb:
Zeus schrieb:
Außerdem ist Java keine pure objektorientierte Programmiersprache.
"pur objektorientiert" gibt es nicht.
Begründet oder erklärt durch?
-
Lieber Funktional als Tod schrieb:
Prozesse beschreiben, oder Objekte darstellen geht in rein funktionalen Programmiersprachen genauso gut, wie Funktionen beschreiben in "rein" Objektorientierten Sprachen mit "Objekt.Methode(Parameter)-Syntax". Ein Prozessor führt Prozesse aus (Prozedurale Programmierung), in Software müssen meistens realitätsnahe Objekte dargestellt werden (Objektorientierte Programmierung).
Ich denke, "realitätsnahe Objekte" lassen sich in guten funktionalen Programmiersprachen auch sehr gut darstellen.
Nicht, dass es keine guten Gründe für funktionale Programmierung gäbe, aber ich glaube ein sehr wichtiger ist einfach der, dass die meisten studierten Programmierer Informatiker (Mathematiker) sind. Da liegt das sehr mathematische Modell natürlich nahe.
Das kannst du mir zumindest nicht vorwerfen, da ich weder Informatik noch Mathematik studiere. (Das brauchen wir jetzt aber nicht vertiefen.)
-
Mr. N schrieb:
Ich denke, "realitätsnahe Objekte" lassen sich in guten funktionalen Programmiersprachen auch sehr gut darstellen.
Findest du? Rekursion für Prozesse, die man in der Welt eigentlich nacheinander auf gleicher Ebene iterativ durchführt? Kein wirklicher Zustand, keine Variablen? Nahezu alles ist eine Funktion?
Meiner Meinung nach erfordert rein funktionale Programmierung ein spezielles Denken, das anfänglich viel weniger intuitiv als z.B. objektorientierte und prozedurale Programmierung ist.
-
Ist dieses Konstrukt in einen reinen funktionalen Programmiersprache nicht möglich? (In Nano Syntax also für euch Pseudocode )
func printList<T>(arg :: []T -> void) { var size :: const int(32) := arg.length var current :: int(32) := 0 func printIt(void -> void) { if (current > size) system.out.print(line := arg[current++]) } printIt() }