Suche nach einer nützlichen Programmiersprache für den Universitätsunterricht [geschlossen]

8

Ich bin ein Universitätsstudent, der im kommenden Semester einen Programmierkurs belegen wird. Eine der Kursanforderungen ist die Spezialisierung (für den Kurs) in einer Sprache, in der Sie keine vorherige Erfahrung haben und nicht im Kurs behandelt werden. Ich habe angefangen, Listen von Sprachen durchzusehen, aber ich möchte ein Feedback bekommen und vielleicht etwas über einige Sprachen herausfinden, die mir vielleicht nicht bekannt sind.

Sprachen, die abgelehnt wurden / ich weiß:

  • Java (Universitätsfavorit)

  • (Lisp (unterrichtet im Kurs, spezieller Scheme) (und ich lerne es bereits)))

  • Assembly (in Comp Org gelehrt)

  • BASIC (anscheinend auch ... einfach ...)

Ich habe darüber nachgedacht, Haskell oder VB6 zu lernen, aber ich habe immer noch das Gefühl, dass es Sprachen gibt, die für meinen Denkprozess, die ich übersehen habe, nützlicher sein könnten. Ich freue mich über alle Rückmeldungen und hoffe, dass dies nicht zu subjektiv ist.

EDIT: Meine persönlichen Ziele für den Kurs sind entweder ein Paradigma zu erleben, das sowohl für meinen Denkprozess in der zukünftigen Programmierung (zB funktional, etc.) herausfordernd als auch nützlich sein könnte, oder eine Sprache zu studieren, die mir tiefer geht Verständnis der Interpreter / Compiler-Theorie und der Übergang zwischen Assembly und High-Level-Code (zB C).

Ich betrachte stark die Schule und die Forschung als Berufswahlen, aber das hindert mich nicht daran, den Nutzen von alten Sprachen und Sprachen zu verstehen, die in kommerziellen Umgebungen verwendet werden. Alle Informationen über Sprachen, die in AI-Programmen verwendet werden, wären jedoch besonders willkommen.

    
WLPhoenix 09.12.2011, 18:20
quelle

18 Antworten

10

Warum nicht für Erlang gehen?

Intro von wikipedia :

  

Erlang ist ein Allzweck-Concurrent   Programmiersprache und Laufzeit   System. Die sequentielle Teilmenge von   Erlang ist eine funktionale Sprache, mit   strenge Bewertung, Einzelauftrag,   und dynamisches Tippen. Für Nebenläufigkeit es   folgt dem Actor-Modell. es war   von Ericsson zur Unterstützung konzipiert   verteilt, fehlertolerant,   Soft-Echtzeit, Non-Stop-Anwendungen.   Die erste Version wurde von Joe entwickelt   Armstrong im Jahr 1986. 1 Es unterstützt heiß   swapping so kann code geändert werden   ohne ein System zu stoppen. 2 Erlang   war ursprünglich eine proprietäre Sprache   in Ericsson, wurde aber als veröffentlicht   Open Source im Jahr 1998.

     

Während Threads sind   als eine komplizierte und   fehleranfälliges Thema in den meisten Sprachen,   Erlang bietet Sprachlevel   Funktionen zum Erstellen und Verwalten   Prozesse mit dem Ziel der Vereinfachung   gleichzeitige Programmierung. Obwohl alle   Nebenläufigkeit ist explizit in Erlang,   Prozesse kommunizieren über Nachrichten   Übergabe statt geteilter Variablen,   Das macht die Notwendigkeit für Sperren.

    
Kyle Rozendo 22.02.2018, 13:14
quelle
16

Rubin. Es ist pures OO und hat einige großartige Funktionen, die Sie in anderen Sprachen wie Code-Blöcken, Mixins und einer großartigen Meta-Programmier-API nicht finden. Es ist Computer Science classy, ​​Ihre Profs werden Ihre Wahl lieben.

    
Chris 02.03.2010 07:55
quelle
7

Was ist mit C? Es ist ähnlich genug zu Java, dass Sie nicht viel Zeit mit Syntax verbringen werden, aber so unterschiedlich, dass es schwierig wird. Außerdem ist es immer noch eine der am häufigsten verwendeten Programmiersprachen (lesen Sie: Sie müssen es sowieso irgendwann lernen).

    
Brendan Long 02.03.2010 07:53
quelle
5

C # klingt klassisch - Sie wissen es nicht und es ist weit verbreitet, also könnte es Ihnen in Ihrem Lebenslauf helfen. Ich würde auch Ruby in Betracht ziehen, aber ich würde VB6 (veraltet) ausschließen.

    
Nir 02.03.2010 07:49
quelle
5

Eine andere interessante Sprache könnte Smalltalk sein.

    
kyoryu 02.03.2010 09:02
quelle
4

Nachdem Sie Ihre Ziele erklärt haben, danke ich Ihnen:

Lerne einen (oder mehr, wenn du willst) Haskell, Lisp oder ML in dieser Reihenfolge. Jedes dieser Programme wird Ihre Ziele erreichen und Sie dazu herausfordern, über eine neue Programmierung nachzudenken, und alle oder einige von ihnen sind ideal für die Implementierung von Compilern (siehe SICP, Appels Implementierung eines modernen Compilers in ML).

Funktionale Sprachen werden (zu Recht meiner Ansicht nach) in der Wissenschaft wegen ihrer schönen Eigenschaften sehr häufig verwendet. Ich denke, dass Haskell momentan der heißeste ist. Springe auf den fahrenden Zug, die Fahrt wird interessant und eine gute Vorbereitung für die Diplomarbeit sein.

    
High Performance Mark 02.03.2010 09:25
quelle
3

Jede Sprache ist nützlich (sogar GolfScript ... nur ein Scherz)

Ich würde Ihnen alle (und alle) von

empfehlen
  • C
  • C ++
  • C #

weil diese Sprachen sehr vielseitig sind und eine breite Anwendung genießen.
Beachten Sie, dass bei der gemeinsamen Verwendung desselben einzelnen Buchstabens in ihrem Namen und einiger syntaktischer Ähnlichkeiten jede dieser Sprachen sehr unterschiedliche Semantiken, Merkmale und Zwecke aufzeigt . Dies gilt sogar für C und C ++, die zur selben "Familie" gehören und oft als C / C ++ bezeichnet werden.

Obwohl die einzelnen Sprachen sehr individuell sind, bieten sie eine unvollständige, aber aufschlussreiche "Zusammenfassung" der "Evolution" der imperativen Programmierung und eine Einführung in einige Schlüsselparadigmen und -konzepte. Das Wort " Zusammenfassung " wird hier lose verwendet, da viele dieser Konzepte sogar der C-Sprache vorausgingen, wenn auch nicht in einer Mainstream-Art. Darüber hinaus sollte " Evolution " nicht in seinem üblichen Sinn des linearen Fortschritts zum Besseren verstanden werden und wo das Neue das Alte ersetzt Wie auch immer, der Schnappschuss dieser Evolution in Mainstream-Sprachen kann wie folgt aufgelistet werden

  • mit C:
     Zeiger,
     eine abstraktion der assemblersprache,
     kleine, aber nützliche Laufzeitbibliothek, die die wenigen grundlegenden Typen und Dienstprogramme der Tage bedient (hauptsächlich Stringmanipulation, FILE I / O, mathematische Funktionen, explizite Speicherverwaltung)

  • mit C ++
    objektorientierte Programmierung,
    Vorlagen,
    "eingebaute" Unterstützung für allgemeine Datenstrukturen und Behälter,
    Ausnahmebehandlung,
    einige Art Sicherheit (hauptsächlich zur Kompilierzeit erzwungen)

  • mit C #
    automatische Speicherverwaltung,
    umfangreiche "Standard-" und "erweiterte" Bibliotheken (die die extreme Vielfalt und Breite von Systemen und Technologien widerspiegeln, die mit modernen Anwendungen verbunden sind: XML, Internetprotokolle, Event Driven Frameworks, Datenbankzugriff, Design Patterns, um nur einige zu nennen) Kämpfe der funktionalen Programmierung,
    starkes Tippen, auch zur Laufzeit,
    Reflexion / Introspektion,
    etwas unscharfe Unterscheidung zwischen Sprache und Rahmen.

Notiz bearbeiten:
Meine ursprüngliche Absicht bei der Bearbeitung dieser Antwort bestand darin, die Tatsache zu klären, dass C, C ++ und C # tatsächlich sehr unterschiedliche Sprachen sind. Die Idee, dass die Serie eine ungefähre und etwas aufschlussreiche Zusammenfassung der Mainstream-Programmierung in den letzten 35 Jahren darstellt, hat sich mir auferlegt, während ich über diese Sprachen nachdachte. Ich entschuldige mich bei Petr Peller für eine Erweiterung weit über das hinaus, was die Absicht seines ursprünglichen Posts war; Bitte zögern Sie nicht, die Bearbeitung rückgängig zu machen und / oder ändern Sie sie, wenn dies nicht Ihren Vorstellungen entspricht!
Prost, -mjv -

    
mjv 02.03.2010 15:11
quelle
2

Als ich Programmiersprachen gelernt habe, musste ich 6 neue Sprachen lernen. Um ehrlich zu sein, geht es dir ziemlich leicht.

Ich denke, Sie sollten etwas wählen, das einen Marktwert hat. Ich denke, die meisten Programmiersprachenkurse werden von Juniorjahr unterrichtet, so dass die Tatsache, dass Sie keine Erfahrung mit C haben, ein bisschen beunruhigend ist. Sie kennen Java bereits, also würde ich mich wirklich nicht auf C # konzentrieren. Sie kennen wahrscheinlich keine logischen Sprachen wie Prolog, aber es ist nicht sehr marktfähig. Also meine Liste in der Reihenfolge der wichtigsten wäre

C

ML

Erlang

Prolog

Python

    
Recursion 02.03.2010 09:32
quelle
2

Wie wäre es mit F # , das auf dem .Net-Framework ausgeführt wird?

    
Zaki 02.03.2010 07:54
quelle
2

Als ich an der Universität studierte, begannen wir mit Lisp, was ich für sehr merkwürdig hielt (ich hatte vor dem Studium viel programmiert). Nach ein paar Wochen begann man, die Eleganz von Lisp zu sehen - die Syntax der Sprache ist extrem einfach und lässt den Fokus auf den Algorithmen und Konzepten. Cenceptually Lisp ist eine funktionale Sprache, im Vergleich zu den meist verwendeten imperativen Sprachen, die eine andere Denkweise beim Programmieren zwingt.

Für mich persönlich war das Verständnis von Programmierkonzepten, die ich aus dem Lisp-Kurs gewonnen habe, extrem wertvoll für alle Entwicklungsarbeiten in verschiedenen Sprachen, die ich seither gemacht habe, also stimme ich für Lisp.

    
Anders Abel 02.03.2010 07:55
quelle
2

Sie könnten versuchen, sich auf COBOL für den Kurs zu spezialisieren. Ja, ich verstehe COBOL ist Old-School, aber höre mich aus.

Es stellt eine interessante Anwendung in der Praxis dar, da viele ältere Systeme, die von Unternehmen verwendet werden, immer noch darin enthalten sind, und die Unternehmen haben keinen Grund, dies zu ändern - der Code funktioniert immer noch. Die Leute, die den Code in den 70er und 80er Jahren geschrieben haben, ziehen sich jedoch aus der Branche zurück. Das erzeugt große Mengen von nicht unterstütztem Code, den Sie vielleicht selbst einmal in einer Branchenumgebung pflegen müssen.

Sie könnten OpenCOBOL als Ihren Compiler verwenden. Es ist hier verfügbar: Ссылка

    
Micah 02.03.2010 08:20
quelle
1

Betrachte Scala.

Es ist wahrscheinlich die "Multi-Paradigma" -Sprache, in einem Sinne, dass es mehr unzusammenhängende Konzepte als jede andere "echte" Sprache enthält. Nicht etwas, das du in einem Job verwenden möchtest, aber es sollte großartig zum Lernen sein - denn wenn du es beherrschst, könnten dich wenige Dinge später überraschen.

    
ima 02.03.2010 09:24
quelle
1

C für eine Programmiersprache. Erlang oder Haskell für etwas Außergewöhnliches. J oder K für komplette WTF.

Vielleicht möchten Sie auch Like, Python in Betracht ziehen. Ein Auszug:

%Vor%     
user266117 02.03.2010 09:45
quelle
0

Ich denke, es kommt darauf an, was Sie lernen wollen und wie weit Sie damit gehen wollen. Ich hatte schon immer einen Faible für Java, ich denke wahrscheinlich, weil es eine lustige Sprache zu lernen ist und wenn du aus einem Hintergrund kommst, in dem du vielleicht nicht viel über OOP weißt, dann bietet es auch einige großartige Grundlagen wie eine Sprache geht.

    
cdnicoll 02.03.2010 07:50
quelle
0

Ich sehe, dass Sie Python nicht erwähnt haben - aber wenn Haskell zu konventionell für Sie ist, sollten Sie sich vielleicht woanders umsehen .... Eigentlich empfehle ich, Haskell nur für das Typsystem zu testen, was alles das macht Eine moderne funktionale Sprache sieht im Vergleich krank aus.

Sie könnten eine stackbasierte Sprache wie Forth oder Postscript in Erwägung ziehen. Das ist ein bisschen anders als alles oben erwähnte.

    
comingstorm 02.03.2010 08:23
quelle
0

Wenn Sie Zugriff auf einen Mac haben, versuchen Sie vielleicht Objective-C? Die Dev-Tools sind alle kostenlos, und es ist eine nützliche Fähigkeit für mögliche zukünftige iPhone-Arbeit zu haben.

    
Coxy 02.03.2010 08:38
quelle
0

kann nicht falsch sein mit Javascript / ECMAScript!

gehen Sie zu developer.yahoo.com/yui/theater/

und schau Douglas Crockfords js videos

    
Dapeng 02.03.2010 09:11
quelle
0

Für eine Lernerfahrung können Sie CLU nicht schlagen. Für diese Arbeit erhielt Barbara Liskov den Turing Award. Ihr Team löste eine Reihe von Problemen, die heute noch relevant sind. Wie bereits bei Algol 60 gesagt wurde, war CLU eine Verbesserung gegenüber den meisten Nachfolgern.

Eine gute Möglichkeit, den Zeh ins Wasser zu tauchen, ist, früh zu lesen Papier von Liskov und Zilles , obwohl man bedenkt, dass das statische System noch nicht entwickelt wurde, und das ist eines der interessanteren Stücke.

    
Norman Ramsey 02.03.2010 23:33
quelle

Tags und Links