Horizont erweitern, neue Sprache, welche?


  • Mod

    Tja, Basic, Java, OpenCl, Opengl, Mpi mit Linuxkisten, Cuda, Processing, Pixelbender, Computeralgebragenöns, Algorithmen, Python, Lua, Ruby, Linuxscripting, grundsätzlich bei der Suche nach Parallelalgos mitmachen, Ki-Programming ausprobieren, ...es kommt nicht so sehr auf die Sprache an! - versuche, ein paar fiese und sehr versteckte Rootkits für Windows mit VB zu programmieren, oder/und ein paar komplexere Programme mit Ida zu reversen.
    (und hast du eigentlich schon die Möglichkeiten evolutionärer Algos ausgelotet?)

    Am besten drei Fliegen mit einer Klappe schlagen, an eine Linuxkiste setzen, Haskellcompiler/interpreter installieren, ein bißchen damit herumspielen und versuchen diese ersten kleinen Programme mit (g)as asm nachzuprogrammieren.

    ...hm, und wenn du debug noch nicht kennst, wie wäre es mit ein wenig com-Programmentwicklung? 😉

    Hier zwei Bücher, die weiterhelfen, vorausgesetzt, du weißt was du machen willst, ausser die Sprache nur zu lernen:

    http://www.assembler.my100megs.com/
    http://book.realworldhaskell.org/

    ...oder alternative JavaME proggies fürs Handy schreiben. Die meisten Sachen, die ich bisher gesehen habe, sind nicht wirklich spannend, und lahm dazu...
    hm......eine Shell mit ghci aufm Handy, ja, das würde mir wohl gefallen...:)



  • Scheme! Das ist funktional aber nicht rein funktional wie Haskell. Dazu das Buch "Struktur und Interpretation von Computerprogramme" (die englische Version ist wahrscheinlich besser). Ich benutze zur Zeit Chicken Scheme. Btw. Clojure stammt von Lisp ab, obwohl es einige Gemeinsamkeiten mit Scheme hat. F# hmm, keine Ahnung, aber du bist immer an Microsoft gebunden.


  • Mod

    Eine etwas verrückte Idee: FORTRAN! Aber nicht irgendein Fortran, sondern Fortran 77 oder älter. Dann siehst du mal, wie gut man es doch heute hat. Und du verstehst die Witze in denen behauptet wird, dass ein guter Programmierer in jeder Sprache Fortran programmieren kann 🤡 .



  • Ich habe jetzt einiges mit F# rum gespielt und ich denk das ich schauen werde damit n bissl mehr zu machen, die Syntax und das Feeling finde ich sehr ansprechend 🙂

    Vielen dank für die Zahlreichen Vorschläge 🙂

    @knivil, das ich an MS gebunden bin stört mich überhaupt nicht 😉 Portabilität finde ich völlig überbewertet (wird oft propagiert und eingesetzt aber absolut selten auch benötigt [YAGNI])
    Und wenn MS die Sprache einstellt, dann lern ich eben eine andere, es geht weniger um die Sprache als das Prinzip wie man Programmiert, denk ich.



  • 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.html

    Es gibt dann da noch Rebol, welches sich an FORTH etwas bedient.

    http://www.rebol.com/



  • 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.html

    Es gibt dann da noch Rebol, welches sich an FORTH etwas bedient.

    http://www.rebol.com/

    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?

    http://www.plt-scheme.org/

    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.
    🙂


Anmelden zum Antworten