5 Stimmen

asm / C / Python / Perl / Lisp / Scheme Programmierer auf der Suche nach etwas Neuem zum Lernen

Ich brauche ein Projekt für zu Hause, jetzt, wo ich bei der Arbeit an Python/Django arbeite. Ich würde gerne etwas Neues lernen, also habe ich mir überlegt, Java auszuprobieren.

Welches ist das bekannteste Web-Framework für die Bereitstellung von Java-Webanwendungen? Der einzige Grund, warum ich mir Ruby on Rails nicht ansehe, ist die Ähnlichkeit des ORM und anderer Teile mit Django.

Oder meint jemand, dass ich mir seaside/smalltalk ansehen sollte? Kann mir jemand erklären, warum ich das tun sollte?

Haskell ist etwas, das ich in Betracht ziehen werde, wenn jemand ein gutes Argument dafür vorbringen kann. Ich bräuchte allerdings ein Web-Framework und eine Bibliothek für den Datenbankzugriff, um es zu begleiten.

Ich würde factor/forth in Betracht ziehen, wenn ich nicht so sehr an das Stack-Paradigma über x86/asm gewöhnt wäre. Ich würde auch gerne alle Gegenargumente dazu hören.

Siehe auch: http://www.reddit.com/r/programming/comments/9v3uf/asm_c_python_perl_lisp_scheme_programmer_looking/

14voto

paxdiablo Punkte 809679

Warum lernst du nicht etwas, das nicht zu deinen Stärken gehört, wie z. B. Tischlern oder Malen oder eine von Hunderten anderer Fähigkeiten, die wenig mit deinem Fachgebiet zu tun haben?

Irgendwann sind alle Sprachen gleich und man hat kaum noch einen Nutzen davon, eine andere zu lernen.

Mit etwas ganz anderem hingegen werden Sie zu einem viel vielseitigeren Menschen. Ich zum Beispiel mag Malerei und Golf, auch wenn ich in beiden nicht besonders gut bin. Als ich meinen Golflehrer fragte, was mein Handicap sei, sagte er, es sei die Unfähigkeit, den Ball gerade zu schlagen :-)

Ich finde, dass ich genießen Sie Dinge zu tun, an die ich nicht gewöhnt bin, weil es eine wirklich neue Erfahrung ist. Eine weitere Computerfertigkeit zu erlernen, ist nach einer Weile eine einfache Sache, und daher ist die Freude daran geringer.

Verstehen Sie mich nicht falsch, ich halte mich gerne über die Entwicklungen in diesem Bereich auf dem Laufenden, aber größtenteils bringen die brandneuen Technologien nichts für meine Karriere, da die meisten Arbeiten, die ich mache, auf stabilen Technologien basieren. Vielleicht sind Sie in einer anderen Situation.

6voto

Chris Lutz Punkte 69879

Haskell ist heutzutage sehr beliebt als Denkanstoß, obwohl es Ihnen vielleicht nicht so weh tut, wenn Sie bereits Lisp und Scheme kennen. Es ist rein funktional, d.h. es gibt keine Nebeneffekte. Sie müssen Monaden verwenden, um Text zu drucken und andere Dinge zu tun, die eine bestimmte Reihenfolge erfordern. Außerdem ist die Auswertung völlig träge, so dass Sie in Haskell unendliche Listen erstellen können und sich keine Gedanken über den Speicherverbrauch machen müssen.

El Haskell-Plattform ist vielleicht nicht ganz vollständig, aber es soll ein portabler Satz von Bibliotheken für Haskell sein. Es ist Liste der Pakete enthält einige für CGI-Verarbeitung und (X)HTML-Erzeugung.

4voto

mystylplx Punkte 1

Klingt, als ob du dich für Webprogrammierung interessierst, also ist Smalltalk/Seaside eine gute Wahl. IMO sollte jeder Smalltalk lernen, auch wenn er es nie benutzt, und Seaside ist ein ganz anderes Web-Framework als das, was du gewohnt bist. Bei Django zum Beispiel dreht sich alles um REST, während die Seaside-Philosophie im Grunde sagt: "Zum Teufel mit REST."

Und wenn Sie noch nie in einer bildbasierten Umgebung programmiert haben, dann hat das einfach etwas, das... natürlich, sogar magisch erscheint. Viele IDE-Funktionen, die ursprünglich aus Smalltalk stammen, wurden in dateibasierten Sprach-IDEs implementiert, aber es fühlt sich immer wie eine unnatürliche Aufpfropfung an, bei der sich dieselben Funktionen anfühlen, als ob sie einfach in Smalltalk dazugehören.

Probieren Sie Pharo aus. Geben Sie ihm genug Zeit, sich an die Tatsache zu gewöhnen, dass es keine Menüleiste gibt, und sehen Sie, ob es Sie nicht packt.

3voto

steveha Punkte 70950

Ich empfehle Java. Als ich nach einem Job suchte, sah ich viele offene Stellen für Java-Entwickler. Es gibt also eine Menge davon, und vielleicht haben Sie eines Tages die Chance, Ihre Java-Kenntnisse einzusetzen.

Und dann sollten Sie Scala ausprobieren. Scala ist eine Python-ähnliche Sprache, die funktionale Programmierung verwendet, um sehr skalierbare Programme zu erstellen. Im Gegensatz zu Python müssen Sie in Scala Typen von Dingen deklarieren. Scala läuft auf der Java Virtual Machine und kann daher in Java-Shops verwendet werden.

http://www.scala-lang.org/

Möglicherweise gebe ich Ihnen diese Antwort nur, weil dies die nächsten beiden Sprachen sind, die ich selbst lernen möchte.

Wahrscheinlich sollten Sie auch ein wenig Zeit damit verbringen, mit Javascript herumzuspielen. Javascript war als eine Art "heimliches Lisp" gedacht, und ich kann mir vorstellen, dass Sie es sofort verstehen würden.

http://www.crockford.com/javascript/javascript.html

http://bc.tech.coop/blog/030920.html

Und, verdammt noch mal, haben Sie Spaß dabei. Schreiben Sie ein Spiel oder so etwas!

2voto

Pete Kirkham Punkte 47746

Ich bräuchte allerdings ein Web-Framework und eine Bibliothek für den Datenbankzugriff, um das Ganze zu begleiten.

Wenn Ihre gesamte Programmierung auf Web-Frameworks und SQL-Datenbanken basiert, werden Sie nur die gleichen Probleme mit einer anderen Syntax lösen, wenn Sie die Sprache wechseln.

Bauen Sie etwas mit einem anderen Datenmodell - Prolog, Conceptual Graphs, RDF, Linda/JavaSpaces, XQuery, HDF5, ASN.1, oder einem anderen Netzwerkmodell - XMPP pub-sub, SNMP, einem Zero-Config-Mesh oder einem Schwarm von ZigBee-fähigen Arduinos.

Vielleicht sollten Sie sich Sprachen wie Oz , Io o Erlang/OTP die nicht wie die von Ihnen genannten primär monolithisch, sondern verteilt sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X