Horizont erweitern, neue Sprache, welche?
-
Ich habe nicht von Portabilitaet gesprochen. Wenn du etwas anderes machen moechtest, dann solltest du radikaler sein. Dazu gehoert auch, aus dem Microsoftumfeld auszubrechen. F# hat Elemente, die andere Sprachen konsequenter umsetzen. Und mein Prof. sagt immer, wir sollten uns mit den Orginalen beschaeftigen. Das kann ich nur wiederholen. Die Kopie verwassert die Orginalidee meist stark.
Ich habe gerade etwas in dem verlinkten F# Buch geblaettert. Sofort sind mir for-Schleifen aufgefallen. Objektorientiert kann ich auch programmieren. Das hat nichts mit "Horizont erweitern" zu tun. Es ist die selbe alte Scheisse wie eh und je. Wie waere es mit einer Sprache, die all das nicht hat? Jaja, z.B. Scheme.
es geht weniger um die Sprache als das Prinzip wie man Programmiert
Genau deswegen solltest du nicht F# nehmen.
-
Ich finde FORTH ganz interessant. Es ist zwar nicht gerade freundlich zu Register-basierten Prozessoren, aber die Konzepte und das Ziel der Sprache finde ich sehr interessant.
Tutorial: http://www.forth.com/starting-forth/index.html
Ein komplettes FORTH System für Windows: http://www.forth.com/swiftforth/dl.htmlEs gibt dann da noch Rebol, welches sich an FORTH etwas bedient.
-
knivil schrieb:
Ich habe nicht von Portabilitaet gesprochen. Wenn du etwas anderes machen moechtest, dann solltest du radikaler sein. Dazu gehoert auch, aus dem Microsoftumfeld auszubrechen. F# hat Elemente, die andere Sprachen konsequenter umsetzen. Und mein Prof. sagt immer, wir sollten uns mit den Orginalen beschaeftigen. Das kann ich nur wiederholen. Die Kopie verwassert die Orginalidee meist stark.
Aber Clojure hast du selbst genannt...
-
Soll ich mich selbst zitieren?
Btw. Clojure stammt von Lisp ab
War eine Bemerkung in Bezug auf
Clojure (Scheme-Dialekt)
-
Aber da stört dich die Nähe zu Java und die Einschränkungen gegenüber dem "Orginal" nicht? Oder hat dein Prof nichts explizit dagegen?
-
Das ist eine Unterstellung. Hoere auf mir Worte in den Mund zu legen!
-
Wie kann man als C++ Entwickler Alternativen in der Script/Interpreter Welt suchen ? auch noch Freiwillig ?
Aber im C++ Umfeld gibts doch auch genug, was kein C++ ist, aber auch bei der programmierung hilfreich ist, bzw den Horizont erweitert.
Beispielsweisse mal nen intensiver einstieg in cmake (iss ja auch sowas wie ne scriptsprache) oder scons oder ähnliches.
Und wenns unbedingt ne andere (interpretierte) sprache sein soll, dann vielleicht was womit man seine c++ programme erweitern könnt. Lua/Python wär da vielleicht ne gute Idee ...Ciao ...
-
knivil schrieb:
Ich habe nicht von Portabilitaet gesprochen.
Welchen Grund gibt es denn sonst nicht "unter Microsoft" zu entwickeln?
knivil schrieb:
Wenn du etwas anderes machen moechtest, dann solltest du radikaler sein.
Ich will mein Horizont erweitern, mal in andere Sprachen rein schnuppern.
knivil schrieb:
Dazu gehoert auch, aus dem Microsoftumfeld auszubrechen.
Wieso?
knivil schrieb:
F# hat Elemente, die andere Sprachen konsequenter umsetzen. Und mein Prof. sagt immer, wir sollten uns mit den Orginalen beschaeftigen. Das kann ich nur wiederholen. Die Kopie verwassert die Orginalidee meist stark.
Spielt keine Rolle ob es eine Kopie ist oder nicht, warum sollte ich denn unbedingt mit einem Original arbeiten?
knivil schrieb:
Ich habe gerade etwas in dem verlinkten F# Buch geblaettert. Sofort sind mir for-Schleifen aufgefallen. Objektorientiert kann ich auch programmieren. Das hat nichts mit "Horizont erweitern" zu tun. Es ist die selbe alte Scheisse wie eh und je. Wie waere es mit einer Sprache, die all das nicht hat? Jaja, z.B. Scheme.
Und? Nur weil es for schleifen gibt ist die Sprache noch nicht schlecht.
Ich könnte es so schreiben:let sqr x = x * x let sumOfSquaresI nums = let mutable acc = 0.0 for x in nums do acc <- acc + sqr x acc
oder
let sqr x = x * x let sumOfSquares nums = nums |> Seq.map sqr |> Seq.sum
Was for mit Objektorientiert zu tun hat weiß ich nicht, könntest du das ausführen?
knivil schrieb:
CSL schrieb:
es geht weniger um die Sprache als das Prinzip wie man Programmiert
Genau deswegen solltest du nicht F# nehmen.
Siehe den Code oben, scheinbar habe ich in F# mehrere Möglichkeiten, ist es denn für ein einsteiger nicht einfacher wenn man diese hat?
F# gefällt mir dadurch das ich in den überaus genialen VS 2010 bleiben kann, und das ich die volle Power des .Net Frameworks nutzen kann.
@RHBaum
Wer redet von "alternativen"? Ich will einfach mal was neues aus probieren.Unabhängig davon kann ich natürlich auch mal in Haskell oder Scheme rein schauen
Welches der beiden ist denn besser geeignet für einsteiger und bieten auch eine IDE? (vim und emacs nicht, komm mit solchen Editoren nicht zurecht, und eine Sprache lernen reicht schon)
-
Erlang ist auch ganz witzig, um mal etwas anderes zu sehen. Und wenn du wirklich in die Vollen gehen willst, kann auch ich dir F77 anraten. ich habe das im Beruf 4 Jahre lang benutzt und seit der Zeit schockt mich nichts mehr. Ich sage nur Subroutinen mit 9000 Zeilen und etwa 7 verschiedenen Entrypoints.
Gruß Kimmi
-
CSL schrieb:
knivil schrieb:
Ich habe nicht von Portabilitaet gesprochen.
Welchen Grund gibt es denn sonst nicht "unter Microsoft" zu entwickeln?
Die Frage würd ich zurückziehen, sonst gibt das hier wieder einen Flamewar
-
Naja vielleicht sollte CSL nicht versuchen knivil Sätze Stück für Stück zu zerfetzen und eher den Sinn im Ganzen zu suchen. Ich bin erhlich gesagt dazu geneigt zu sagen, dass er knivil Post nochmal in Ruhe lesen sollte.
-
Ich habe sein Posting schon in ruhe gelesen, wie zu merken ist hat auch meine Antwort eine weite gedauert, ich habe nur auf die verschiedenen aussagen unterschiedliche antworten, entsprechend...
das ändert aber nichts an meine fragen am ende meines Postings:
CSL schrieb:
Unabhängig davon kann ich natürlich auch mal in Haskell oder Scheme rein schauen
Welches der beiden ist denn besser geeignet für einsteiger und bieten auch eine IDE? (vim und emacs nicht, komm mit solchen Editoren nicht zurecht, und eine Sprache lernen reicht schon)Für Haskell habe ich derzeit Leksah gefunden, und für Scheme? Welches ist für einsteiger besser geeignet, vor allem auch gemessen an den verfügbaren Tutorials.
-
RHBaum schrieb:
Und wenns unbedingt ne andere (interpretierte) sprache sein soll, dann vielleicht was womit man seine c++ programme erweitern könnt. Lua/Python wär da vielleicht ne gute Idee ...
Ciao ...
Ah BTW, den gebauten F# Code kann man direkt in C# ansprechen und benutzen, und umgekehrt.
-
Nur weil es for schleifen gibt ist die Sprache noch nicht schlecht.
Es geht nicht um gut oder schlecht. F# ist sicher gut, allein schon durch seine Wurzeln zu ML und der Interoperabilitaet. Dachte es geht um "Horizont erweitern".
Ich habe gerade etwas in dem verlinkten F# Buch geblaettert. Sofort sind mir for-Schleifen aufgefallen. Objektorientiert kann ich auch programmieren.
Das ist als ganzes zu verstehen. Es gibt for-Schleifen und Objekte genau wie in C++ oder Java. Es verleitet dazu, genau so zu programmieren, wie in den alten Sprachen. Klar kannst du darauf verzichten, aber garantiert wird es nur durch eine Sprache, die for oder Objekte eben nicht anbietet.
Ich könnte es so schreiben:
Oder den kanonischen Weg ueber fold waehlen.
Spielt keine Rolle ob es eine Kopie ist oder nicht, warum sollte ich denn unbedingt mit einem Original arbeiten?
Habe ich doch geschrieben: "Die Kopie verwassert die Orginalidee meist stark".
Siehe den Code oben, scheinbar habe ich in F# mehrere Möglichkeiten, ist es denn für ein einsteiger nicht einfacher wenn man diese hat?
Schon, aber das hat dann nichts mehr mit "Horizont erweitern" zu tun, wenn ich einfach die alten Ideen in einer neuen Syntax ausdruecke.
Welches der beiden ist denn besser geeignet für einsteiger
Haskell wohl weniger, da man am Anfang stark mit dem Typsystem zu kaempfen hat. Auch die Trennung von reinen und unreinen Funktionen ist etwas hart fuer Einsteiger. Dafuer gibt es gute Einsteigertutorials wie z.B.: http://lisperati.com/haskell/ oder http://learnyouahaskell.com/ . Sie bringen auch etwas Farbe mit und gefallen mir im Vergleich zu anderen recht gut. Scheme ist eher zu empfehlen, Einstiegsmaterial gibt es hier: http://mitpress.mit.edu/sicp/ bzw. die entsprechende Lehrveranstalltung am MIT auf Video hier: http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/ .
Einblicke in Konzepte "hinter" den Programmiersprachen gibt es auch in "Programming Paradigms (Stanford)" auf youtube zu sehen, unter anderem auch Scheme.
-
Artchi schrieb:
Ich finde FORTH ganz interessant. Es ist zwar nicht gerade freundlich zu Register-basierten Prozessoren, aber die Konzepte und das Ziel der Sprache finde ich sehr interessant.
Tutorial: http://www.forth.com/starting-forth/index.html
Ein komplettes FORTH System für Windows: http://www.forth.com/swiftforth/dl.htmlEs gibt dann da noch Rebol, welches sich an FORTH etwas bedient.
Factor ist eine moderne Forth Variante. Sollte ganz interessant sein
http://factorcode.org/
http://en.wikipedia.org/wiki/Factor_(programming_language)
-
CSL schrieb:
CSL schrieb:
Unabhängig davon kann ich natürlich auch mal in Haskell oder Scheme rein schauen
Welches der beiden ist denn besser geeignet für einsteiger und bieten auch eine IDE? (vim und emacs nicht, komm mit solchen Editoren nicht zurecht, und eine Sprache lernen reicht schon)Für Haskell habe ich derzeit Leksah gefunden, und für Scheme?
CSL schrieb:
Welches ist für einsteiger besser geeignet, vor allem auch gemessen an den verfügbaren Tutorials.
Was die Literatur angeht, lassen wohl beide kaum einen Wunsch offen.
-
Das hatte ich schon gesehen, und dort hieß es das PLT Scheme nun Racket ist, aber Racket ist wieder eine Abwandlung von Scheme? Ich dachte man solle das Original verwenden -.-
-
Zum Lernen fuer ist PLT-Scheme/Racket wohl nicht zu empfehlen, da es eben nicht mehr Scheme ist, sondern der Grundbau stark erweitert wurde und eben nicht mehr Scheme ist. Auf der anderen Seite ist es aber wiederum doch zu empfehlen, da mit DrScheme eine gute Lern- und Entwicklungsumgebung mitgeliefert wird, jedoch funktioniert nicht jeder R5RS konforme Code.
Ich benutze zur Zeit Chicken Scheme (auch professionell). Es hat nicht so viel Zusatzfeatures (bzw. nur ueber Bibliotheken oder Eggs) und ein sehr gutes Interface zu C.