Von C++ zu OCaml?



  • Kann Haskell dort ansetzen wo OCaml versagt? Ich bin auch gerade erst am Aufbau meiner Kenntnisse in funktionaler Programmierung. Gibt es in Haskell Namespaces? Sind das quasi die Modules?

    Wie sieht es mit Parallelisierung im Haskell-Bereich aus? Kennt da jemand gute Seiten?

    MfG SideWinder



  • Gibt es in Haskell Namespaces?

    Man macht das meines Wissens über qualified imports:

    import qualified Data.Map as Map
    

    Dann greift man über Map.XYZ auf die entsprechenden Funktionen oder Konstruktoren zu.

    Zur Parallelisierung kann ich dir nichts sagen, da ich selbst noch kompletter Anfänger bin.



  • Artchi schrieb:

    1. Parallelisierung wird nicht unterstützt. 😮 Hem, gerade das soll doch eigentlich der große Vorteil von Funktionalen Sprachen sein, oder? Das Concurrency sozusagen build-in ist und ich mich nicht mehr damit herumschlagen muss. Sie lassen zwar ihre Caml-Programme auf mehreren CPUs laufen, aber anscheinend mit zus. Libs?

    Das stimmt nicht ganz, funktionale Programmierung hat nicht den Hauptzweck, Parallelität zu unterstützen. Es ist eher andersrum: Die Sprachen, bei denen man die besten Erfolge in Sachen Parallelität vorfindet (Standardbeispiel: Erlang), sind funktional und verdanken das auch ihren funktionalen Eigenschaften, also hofft man bei den funktionalen Sprachen den heiligen Gral zu finden. Gerade da in den letzten paar Jahren Multicore-CPUs zur Norm geworden sind. Da wird gerade eine Menge geforscht und Geld für ausgegeben, mal sehen, was daraus wird.
    OCaml hat übrigens auch imperative Elemente, sprich Zuweisungen.

    3. OOP ist mit OCaml experimentell. "Niemand nutzt OO-Fähigkeit von OCaml!". Kein Wunder das der Video-Titel "Caml Trade" und nicht "OCaml Trade" heißt.

    Das ist für mich eine positive Nachricht. Das OO-System von OCaml war für mich immer ein Grund, mich von dieser Sprache abschrecken zu lassen. Aber wenn man das in der Praxis gar nicht benutzt, sieht das anders aus.

    Zum "Optimizing Compiler" meinte der Redner, das der Compiler so heißt, aber nicht optimiert. Der Compiler erzeugt aber sehr guten Code. OK, damit kann man leben. 😉

    Ich glaube, dass er da lügt bzw. eine spezielle Vorstellung von "optimizing compiler" hat. Er vergleicht an der Stelle mit dem SML-Compiler MLTon, der wohl sehr ausgefeilte programmübergreifende Optimierungen durchführt. Sicher wird OCaml die eine oder andere Standardoptimierung durchführen, um die gröbsten Redundanzen loszuwerden.

    So ist es erstmal ernüchternd. Aber mal schauen was die Praxis bringt. Mein OCaml-Buch ist noch nicht da.

    Welches hast du eigentlich bestellt? Vor einiger Zeit ist mal "Practical OCaml" ziemlich verrissen worden.



  • ALso ist SML schneller als OCaml`?



  • SideWinder schrieb:

    Kann Haskell dort ansetzen wo OCaml versagt?

    Keine Ahnung, wo versagt denn OCaml? Die Tools sollen fuer ML-Sprachen besser sein. Auch scheint z.B. mit MetaML dinge moeglich zu sein, die so in keiner Sprache angeboten werden. Aber so genau kenne ich mich damit nicht aus.

    Gibt es in Haskell Namespaces? Sind das quasi die Modules?

    Ja.

    Wie sieht es mit Parallelisierung im Haskell-Bereich aus?

    Sehr gut: http://donsbot.wordpress.com/2009/09/03/parallel-programming-in-haskell-a-reading-list/ .ThreadScope scheint recht brauchbar zu sein. Gab es schon fuer MPI und wurde auch von MS fuer Visual Studio kopiert.



  • Leute, seid doch mal realistisch. Keine große Firma, benutzt Sprachen wie SML, F# oder OCaml für reale Projekte. Das sind ganz nette experimentelle Sprachen für Unis, aber nix für die reale Welt.



  • Realist22 schrieb:

    Leute, seid doch mal realistisch. Keine große Firma, benutzt Sprachen wie SML, F# oder OCaml für reale Projekte. Das sind ganz nette experimentelle Sprachen für Unis, aber nix für die reale Welt.

    MfG SideWinder



  • Nö. Wozu auch. Ich kenne den Markt. Schon mal Stellenanzeigen gelesen? Keine Sau sucht OCaml Programmierer. Jede große Software, die ich in den letzten 4 Jahren gesehen habe wurde in C++, Fortran, Java oder .NET geschrieben. OCaml hat keinerlei Relevanz in der Wirtschaft. Allein schon weil es keine guten Tools und Optimierer dafür gibt.



  • Realist22 schrieb:

    Nö. Wozu auch. Ich kenne den Markt. Schon mal Stellenanzeigen gelesen? Keine Sau sucht OCaml Programmierer. Jede große Software, die ich in den letzten 4 Jahren gesehen habe wurde in C++, Fortran, Java oder .NET geschrieben. OCaml hat keinerlei Relevanz in der Wirtschaft. Allein schon weil es keine guten Tools und Optimierer dafür gibt.

    Deshalb setzt man ja auf F#, wo es das alles gibt.

    Prinzipiell ist deine Aussage natuerlich witzig. Denn nicht jeder Wirrtschaftszweig ist Mainstream. zB gibt es sehr wenige Firmen die Schliesssysteme fuer Krankenhaeuser herstellen. Dennoch ist das ein riesen Markt. Aber natuerlich bei weitem kleiner als der Markt fuer Webseiten.



  • solche Sprachen wie OCaml werden ja auch nicht als Job-Bringer erfunden, oder als Brot-und-Butter-Sprachen, um alle anderen Sprachen abzulösen.

    Es sind Technologie-Träger, ähnlich wie Rennwagen oder Solarautos. Was sich dort bewährt, sickert in den nächsten Jahren oder Jahrzehnten vielleicht in den Mainstream. Oder auch nicht. Leider oft auch nicht 👎 👍



  • !rr!rr_. schrieb:

    Es sind Technologie-Träger, ähnlich wie Rennwagen oder Solarautos. Was sich dort bewährt, sickert in den nächsten Jahren oder Jahrzehnten vielleicht in den Mainstream.

    Das ist bei F# auch der Fall, z.B. liefern die asynchronen Workflows aus F# die Vorlage für die neuen asynchronen Features in C# 5.
    http://tomasp.net/blog/csharp-fsharp-async-intro.aspx

    Petriceks Buch ist übrigens sehr interessant, wenn man C# kann und nur mal etwas in die Funktionale Programmierung hineinschnuppern will. Das Buch beginnt mit funktionalen Techniken in C# und führt schrittweise in F# ein. Die Erkenntnisse, die man bei der Lektüre gewinnt, sind auf jeden Fall auch für die Programmierung in C# oder C++ hilfreich.



  • Bashar schrieb:

    Welches hast du eigentlich bestellt? Vor einiger Zeit ist mal "Practical OCaml" ziemlich verrissen worden.

    Ja, genau das Buch habe ich bestellt.

    Wegen den Compilern; es gibt zwei Compiler:
    1. Byte-Compiler
    2. Native-Compiler

    Wobei der zweite Optimizing Compiler genannt wird. Ich vermute mal, der Byte-Compiler wird als "normaler" Compiler angesehen. Folglich ist der native Code ggü. dem Byte-Code schon optimal.

    Aber nur meine Spekulation. Und eigentlich für mich nicht so wichtig.



  • Shade Of Mine schrieb:

    Realist22 schrieb:

    Nö. Wozu auch. Ich kenne den Markt. Schon mal Stellenanzeigen gelesen? Keine Sau sucht OCaml Programmierer. Jede große Software, die ich in den letzten 4 Jahren gesehen habe wurde in C++, Fortran, Java oder .NET geschrieben. OCaml hat keinerlei Relevanz in der Wirtschaft. Allein schon weil es keine guten Tools und Optimierer dafür gibt.

    Deshalb setzt man ja auf F#, wo es das alles gibt.

    Die von Janesstreet setzen nicht auf F# sondern direkt auf OCaml. Siehe Video :).



  • Einwurf: LINQ ist von Haskell motiviert.



  • Haskell is von LINQ motiviert. Siehe http://research.microsoft.com/en-us/um/people/simonpj/papers/list-comp/

    Ist auch tatsächlich im GHC implementiert



  • Jetzt frag ich mich wie lange OpenSQL in ABAP gibst! 😃



  • Zeus schrieb:

    Jetzt frag ich mich wie lange OpenSQL in ABAP gibst! 😃

    OpenSQL und LINQ haben nicht viel gemein...



  • Shade Of Mine schrieb:

    Zeus schrieb:

    Jetzt frag ich mich wie lange OpenSQL in ABAP gibst! 😃

    OpenSQL und LINQ haben nicht viel gemein...

    Kannst du das bitte ausführen?



  • Helium schrieb:

    Haskell is von LINQ motiviert. Siehe http://research.microsoft.com/en-us/um/people/simonpj/papers/list-comp/

    Natuerlich wissen es 20000 Leute immer besser. Hier mal was von der Quelle: http://www.infoq.com/interviews/LINQ-Erik-Meijer;jsessionid=1FDE9830E6ED6381F44586AC21B95707 Es ist wohl gegenseitig bedingt, jedoch hat es mit Haskell angefangen.

    we got inspired by Haskell with LINQ, and then Haskell got inspired again by LINQ and so I can imagine that other languages get inspired by these things.

    LINQ is Monad comprehensions from Haskell

    http://www.innoq.com/blog/st/2007/03/14/qcon_london_2007_erik_meijer_on_linq.html



  • Zeus schrieb:

    Shade Of Mine schrieb:

    Zeus schrieb:

    Jetzt frag ich mich wie lange OpenSQL in ABAP gibst! 😃

    OpenSQL und LINQ haben nicht viel gemein...

    Kannst du das bitte ausführen?

    Soweit ich mich erinnere ist openSQL doch nichts anderes als eine praktische SQL integration in ABAP. Also eine erleichterung der Schreibweise für queries auf die Datenbank.

    LINQ ermöglicht es dagegen SQLartige Queries auf Daten zu machen (und als manipulatoren normale Funktionen zu verwenden).


Anmelden zum Antworten