Programmierung-Newbie - Welche Sprache lohnt sich?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)

  • Vernünftige Editoren behalten die Einrückweite auch bei wenn du eine neue Zeile anfängst.


    autoindent hatte ich ja schon erwähnt.

    Zitat von Horroreyes


    Einige Sprachen unterscheiden zwischen Tabs/Spaces da muss man vorsichtig sein.


    Ja, und wenn ich mich noch recht erinnere, durften Fortran Statements nur in den Spalten 6 bis 72 auftauchen,
    während die ersten 5 z.B. für Sprungmarken vorgesehen waren.
    Aber da musste man seinen Quellcode auch noch in Hollerith-Lochkarten stanzen lassen,
    so dass einem der Formatzwang zumindest einleuchtete.

    Demgegenüber muss man den Einrückzwang von Python ja geradezu als libertär empfinden.

    Zitat von Horroreyes


    Das Argument, dass C der Unterbau von Linux ist... Es Stimmt zwar, der Kernel IST in C geschrieben, das kümmert einen aber nicht, solange man keine Kernelmodule schreibt.


    Den Kernel hatte ich geflissentlich gar nicht erwähnt und noch nicht mal im Sinn.
    Der allein macht ja noch nicht ein benutzbares Betriebssystem aus,
    weswegen manche auch grossen Wert darauf legen, nicht einfach von Linux (i.e. eigentlich nur der Kernel),
    sondern von GNU/Linux zu reden, wenn das OS gemeint ist.
    Ich sprach ja von der Standard C Library (libc bzw. glibc) und dachte da an die Implementierung all der Kommandos,
    die wir alltäglich dutzend- bis hundertfach ausführen (e.g. ls, stat, ln, dd, cp, rm, cat etc.).
    Ich finde, allein darunter kann ein (C-)Programmieranfänger schon reichlich Anschauungs- und Übungsmaterial entdecken.
    Einem Anfänger hingegen nahezulegen, sich mit dem wohl wahrlich esoterischen Quellcode des Linux Kernel auseinanderzusetzen,
    würde mir nie in den Sinn kommen.

    Zitat von Horroreyes


    Es gibt bloß Sprachen die das mehr unterstützen und andere weniger.


    Ich gehe davon aus, dass das Allgemeingut ist, unter denen, die hier Empfehlungen zu geeigneten Programmiersprachen aussprechen.

    In diesem wunderbaren Link, den bootsmann weiter oben dankenswerterweise angeführt hatte,
    steht dieses schöne Zitat:

    Zitat von "Norvig on Perlis"


    Alan Perlis once said: "A language that doesn't affect the way you think about programming, is not worth knowing".

    Zitat


    Sprachen wie Perl und Basic haben meiner Ansicht nach keinen Platz mehr. Waren damals gut, wurden aber abgelöst.
    ...
    Dort wo sie noch verwendet werden ok, aber für neues sollte man sie nicht verwenden.


    Da lehnst Du Dich aber ganz schön aus dem Fenster.
    Ich glaube, die immer noch sehr aktive und alerte Perl Community sowie die Maintainer und Contributor des immer noch Maßstäbe setzenden CPAN dürften das gelinde anders sehen.

    Vermutlich hältst Du auch die riesigen Fortran Libraries für ebenso entbehrlich, da die Sprache ja den Stand der 50er Jahre des letzten Jahrhunderts widerspiegelt
    und es heute doch viel mächtigere Sprachen gibt.

    Ich möchte mir nicht anmaßen, irgendeiner Programmiersprache
    (von denen ich die weitaus meisten vermutlich nicht mal dem Namen nach, geschweige denn deren Einsatzgebiete kenne)
    ihre Existenzberechtigung abzusprechen.

    Einmal editiert, zuletzt von Life_of_Pi (1. Mai 2014 um 23:02)

  • Programmierung-Newbie - Welche Sprache lohnt sich?? Schau mal ob du hier fündig wirst!


  • Ich möchte mir nicht anmaßen, irgendeiner Programmiersprache
    ihre Existenzberechtigung abzusprechen.

    Du hast schon Recht, das war falsch Formuliert. Ich wollte ihnen nicht die Existenzberechtigung absprechen sondern ausdrücken, dass ich die nicht als Anfängersprachen oder für allgemeine Dinge verwenden würde.

    Ich weiß, dass z.B, Fortran in der Physik sehr beliebt ist, aber auch dass es das hauptsächlich ist, weil sie früher mal eine gute Wahl war (oder dafür gehalten wurde, das kann ich nicht einschätzen) und nun gefühlt alle Software in Fortran geschrieben ist. Daher lernen Physiker Fortran um mit der vorhandenen Software arbeiten zu können und da sie dann nur Fortran können schreiben sie neue Software auch in Fortran. In diesem Kreislauf wird garnicht drüber nachgedacht ob Fortran weiterhin die richtige Wahl wäre.
    Natürlich sind die Bibliotheken auch in Fortran und und und. Das alles heißt aber nicht, dass man nicht möglicherweise bessere Ergebnisse mit modernen Sprachen erzielen könnte.

    Ich will damit nicht sagen das Fortran schlecht oder falsch ist, aber es ist alt und hat seine Problemchen (wie alle Sprachen natürlich) aber weil Fortran dort seine Comunity hat heißt das nicht, dass man Leuten deswegen empfehlen sollte mit Fortran programmieren zu lernen.

    Wie Andere hier im Thread schon gesagt haben, wird vieles von Perl in Python migriert. Wie du richtig sagst gibt es viele perlanhänger, aber auch perl ist alt. Gut gepflegt aber alt. Verwendbar aber einfach nicht modern.

    ich hoffe es kam diesmal rüber das ich keine Sprache schlecht reden wollte, sondern lediglich finde das Anfänger eine moderne Sprache nehmen sollten und die älteren und in ihren Bereichen etablierten Sprachen dann lernen wenn sie sie brauchen.

    Kleine Analogie:
    Die Ente war ein super geniales Auto das ich heute noch gerne fahre, aber ich empfehle Fahranfängern nicht sich eine Ente zu kaufen. Obwohl es top gepflegte Enten gibt, oder getunte die schneller fahren als mein Auto. Andererseits lernen sie sicher eine Menge wenn sie mal eine Runde mit so einem alten Auto drehen. Trotzdem liegt die Wahl heute eher bei Autos mit Airbacks, geringerem Verbrauch, etc... Mit Programmiersprachen ist es meiner Ansicht nach genauso. Auch gute Programmiersprachen mit ihrem eigenen Bereich in dem sie super sind, gehören nicht in eine aktuelle & allgemeine Empfehlung
    Es gibt Ausnamen ( C(++) ist uralt und trotzdem irgendwie aktuell, aber auch nur mit Einschränkungen*. Aber die extreme Verbreitung wiegt das dann wieder auf)

    *Die Einschränkungen sind teilweise aber auch der Grund warum C++ so grundliegend ist

    Was du sonst angemerkt hast bin ich mir nicht sicher wie du das meinst, ich sehe da keinen Unterschied zwischen unseren Ansichten. Ich habe einiges wiederholt gehabt was unter anderem du schon gesagt hattest, aber das war weil ich (wie auch unser jetziger Vorredner) gemerkt habe, dass die Disskussion in eine ganz andere Richtung abgeglitten ist und eine Übersicht vor allem auf die Ursprungsfragen geben wollte.

    Ich habe mich auch bemüht meine persöhnlichen Vorlieben deutlich von den Fakten zu trennen. (An dem obigen Punkt nicht gelungen :) ). Und aufgrund der vorigen Disskussion fand ich, waren die ausführlichen Fakten zu Paradigmen nötig, denn davon wurde so viel Zusammenhanglos schon genannt.


    Eine persöhnliche Vorliebe möchte ich nocheinmal betonen:
    Objektorientiert sollte man anfangs lernen, bin ich absoluter Fan von. Mit OOP ist es wesentlich einfacher guten Code zu schreiben als mit funktionalem Stil. Das wird mir im Alltag ständig vor die Augen geführt.
    Das hat natürlich auch Grenzen, ein bash-script muss nicht OOP sein, aber wenn es ein ausgewachsenes programm werden soll finde ich das unabdingbar.

    @ Andreas:
    Jetzt eine Pseudoform auf Basis einer Nischensprache in den Raum zu werfen hilft aber auch nicht :-/ Und Programmiersprachen auf IDEs hinunterzubrechen kann ich auch nicht unterstützen. Ich finde die Grundlagen einer Sprache sollte man ganz ohne IDE lernen. Wenn man dann simple Programme hinbekommet kann man den Komfort einer guten IDE genießen. Aber wie versteht man den Unterschied zwischen Python und C++ wenn man bei beidem nur den "playknopf" drückt um es zu starten?

    Leider habe ich noch keine gute IDE gefunden die
    a) nicht abstürzt
    b) mit größeren Frameworks und damit externen Buildsystemen umgehen kann
    c) flüssig bedienbar ist (tja da ist eclipse raus)
    d) Mindestens alle Features beherrscht die ich unter Vim anwende (ich sage bewusst nicht was unter Vim funktioniert, denn ich habe noch nichts gefunden was unter Vim nicht funktioniert, man muss nur austüfteln wie)
    e) sich ohne Maus gut bedienen lässt

    und programmiere daher ausschließlich in vim. Das kann ich Anfängern aber ebensowenig empfehlen, denn die Bedienung ist gewöhnungsbedürftig und erst nach 1/2 Jahr Training plötzlich genial.

  • Hallo,
    hat Vim Syntax-highlighting ?

    so long
    Perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • Selbstverständlich. Für die meisten gängigen Sprachen.
    Darüber hinaus ist vim selber voll skript- und erweiterbar.

    Das trifft aber sicher für die meisten von Programmierern bevorzugten Editoren zu.
    Ich will auch nicht verschweigen, dass es noch die Emacs-Fraktion gab, die ihren Editor so sehr anpassen und erweitern konnte,
    dass dieser zu ihrem universalen User Interface auf dem Rechner für wirklich jedwede Task wurde.
    Ich konnte mich aber mit dem Emacs nie so recht anfreunden,
    nicht zuletzt wegen der komischen Griff-Kombinationen,
    denn man (vermutlich die Vi-Fraktion) nannte den Emacs auch etwas abfällig: "Escape-Meta-Alt-Control-Shift" (was in etwa die zu drückenden Tasten waren),
    oder, wie andere berichteten "Eight Mega Bytes and Continuously Swapping".

    Ich hoffe jetzt keinen Editor-Krieg heraufbeschworen zu haben.

    Einmal editiert, zuletzt von Life_of_Pi (2. Mai 2014 um 01:53)

  • Hallo Life_of_Pi,
    verstehe ...
    ist das das "vi" hier auf dem RPi ? (Sorry, bin Linux-Anfänger). Wenn nicht, verbraucht es viele Ressourcen und ist es empfehlenswert, dies auf dem RPi zu installieren (welchen Aufruf braucht man dafür) ?

    Im Voraus besten Dank

    so long
    Perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

  • Ja, das Grundthema ging wohl etwas in den Hintergrund. :D

    Eine C-Sprache werden wir im Unterricht nicht durchnehmen. Nur SQL, HTML und Java kommt in der Berufsschule dran.
    Der größte Teil wird Java sein.

    Also fange ich wohl mit Java an. :mad_GREEN:

  • Hallo Horroreyes,


    Zitat

    @ Andreas:
    Jetzt eine Pseudoform auf Basis einer Nischensprache in den Raum zu werfen hilft aber auch nicht Und Programmiersprachen auf IDEs hinunterzubrechen kann ich auch nicht unterstützen. Ich finde die Grundlagen einer Sprache sollte man ganz ohne IDE lernen. Wenn man dann simple Programme hinbekommet kann man den Komfort einer guten IDE genießen. Aber wie versteht man den Unterschied zwischen Python und C++ wenn man bei beidem nur den "playknopf" drückt um es zu starten?

    Ich wollte mit dem Code-Beispiel nur zeigen, dass es für einen Anfänger wichtig ist, Code "lesen" zu können als eine Voraussetzung dafür, in einer Programmiersprache Programme entwickeln zu wollen / können.

    Denke mal an Niklaus Wirth und seinem Pseudo-Code "Pascal". Daraus haben sich mehrere kommerzielle Produkte entwickelt (u.a. Turbo-Pascal), die Sprache wurde weiterentwickelt (z.B. Modula-2, Oberon, Delphi) und ist wohl in Sachen Lesbarkeit im Sinne Verstehen und Nachvolziehen nicht zu überbieten. Als aktuellste Entwicklungen kann ich im Open-Source-Bereich auch BloodShed-Pascal und FreePascal und daraus Lazarus nennen, die kommerziellen Produkten in nichts (mehr) nachstehen.

    Übrigens habe ich für das Code-Beispiel inkl. Einbindung in Icon keine 5 Minuten gebraucht, bis es fehlerfrei lief. Auch das ist für Anfänger ein wichtiges Kriterium: schnelle Erfolgserlebnisse genießen zu können.

    Altersmäßig gehöre ich nicht der Copy- & Paste-Generation an. Ich gehe schon davon aus, dass, wenn man Programmieren lernen will, selber Code eintippt anstatt irgendwoher Code herunterzuladen und die Play-Taste drückt. Denn sonst - da muss ich Dir beipflichten - versteht man beim Programmieren nichts, weil man eben nicht programmiert sondern nur Anderer Leistungen konsumiert.

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (3. Mai 2014 um 18:15)

  • Perlchamp: vi ist eigentlich auf jeden Linux-System installiert (Android nicht *schnaub*) vim ist "vi improved" eine deutlich umfangreichere Version die man eigentlich verwendet, denn vi ist sehr spartanisch.

    Installieren tust du das mit "sudo apt-get install vim" wie du auch fast alle anderen Programme installierst...

    Wie ich schon schrieb: Die Bedienung braucht lange Zeit Einarbeitung, aber wenn man sie drauf hat ist sie genial.

    vim braucht sehr wenig Leistung, ist sehr flott und sehr klein. Mächtig wird es dadurch, dass du in deiner .vimrc einstellen kannst, was du an plugins und sonstigen Extras verwenden willst. Ohne Einstellungen ist vim ohne Einrückungen, ohne Syntax highlighting etc.


  • vi ist überall verfügbar ( ausser offensichtlich bei Android :-/ )

    Selbst das findet man für Android.
    Aber ich bitte Dich, die klassische Bedienung des vi erscheint mir das genaue Gegenteil zu diesem Rumgewische auf den Smartphone Displays.


    Ohne Einstellungen ist vim ohne Einrückungen, ohne Syntax highlighting etc.

    Sicher kann man sich in der .vimrc richtig austoben.
    Aber für Einrückungen genügt in einer vi Session einfach ein

    Code
    Esc : set ai Return

    Da ich sehr wenig unter X arbeite und meist nur per ssh auf vielen verschiedenen Linux und Unix Hosts unterwegs bin,
    geht mir, ehrlich gesagt, das Syntax Highlighting meist eher auf den Zeiger,
    so dass eines meiner ersten vim Kommandos oft ein syn off ist.

    Einmal editiert, zuletzt von Life_of_Pi (3. Mai 2014 um 12:36)

  • Lieber guter Live_of_Pi...
    Falls es dir nicht aufgefallen ist, reden wir davon, dass vi immer vorinstalliert ist, nicht von einer billigen vi-Abklatsch-App die (zumindest als ich sie ausprobiert hatte) nichts wesentliches von vim umgesetzt hat außer das man eine Taste drücken musste bevor man editieren konnte (das für Touchscreen sinnloseste Feature!)
    Und gedacht ist das sicher auch nicht für die touchbedienung, man kann ja aber auch per ssh auf Android...

    Am Anfang jeder Session etwas zu tun ist auch etwas blöd... natürlich geht das.

    Und den Zusammenhang zwischen ssh und Syntax Highlighting will mir beim besten Willen nicht in den Kopf, ich arbeite auch 50% remote und ohne X aber habe immer und überall Syntax Highlighting an


    Du scheinst mich nicht zu mögen und kranpfhaft alles zerreden zu wollen was ich schreibe... schade.

  • Hallo Horroreyes,

    wie kommst Du darauf, dass ich irgendwelche Animositäten gegen Dich hege?
    Dazu müsste man sich ja zumindest erstmal kennen.
    Auch lag es nicht in meiner Absicht, Deine Beiträge zu zerreden.

    Ich gebe zu, dass ich eine gewisse Neigung zu weitschweifiger, nicht immer direkt auf den Punkt kommender Ausdrucksweise habe,
    was vielleicht als zerreden wahrgenommen werden kann.
    Eine Schwäche, die mich schon mal als pragmatischen, effizienten Programmierer disqualifiziert.

    Dass ich kein besonderer Freund von Syntax Highlighting bin, hat sicher mit den schrecklichen, scheinbar Augenkrebs auslösenden, Farben der default settings zu tun,
    die ich keine fünf Minuten ertrage und die mir mehr Mühe beim Lesen bereiten, als dass sie es förderten.
    Ich muss aber auch zugeben, dass ich mich nie um augenfreundlichere Farbeinstellungen gekümmert habe.
    Mich persönlich erstaunt schon, dass anscheinend von vielen Entwicklern so grosser Wert auf das Syntax Highlighting gelegt wird.
    Ich dachte eigentlich, dass ein in einer Sprache routinierter Programmierer einen trainierten Blick für Syntax, Strukturen und "Schriftbild" seiner Sprache hat,
    so dass ihm Abweichungen oder Unstimmigkeiten sehr schnell auffallen.
    So ähnlich wie ein routinierter Schachspieler die Stellung der Figuren eines Zugs in einer Partie fast immer fehlerfrei aus dem Gedächtnis wiederherstellen kann,
    sofern sie sinnvoll gewesen ist.
    Natürlich ist mir aber auch einsichtig, dass z.B. durch das Verfärben einer ganzen Codezeile in eine Farbe, die normalerweise z.B. Kommentarzeilen auszeichnet,
    wenn man z.B. bei einem String das Schliessende Quotes bzw. Double Quotes Zeichen vergisst,
    dieses sicher schon unmittelbar beim Eintippen als Syntaxfehler wahrgenommen wird,
    statt erst anhand der darauf folgenden Fehlermeldung des Compilers oder Interpreters.
    Was Syntaxfehler angeht, erscheint mir das aber nur eine unwesentliche Abkürzung.
    Die Fehler, an denen man wirklich kaut, sind doch wohl meistens logische Fehler oder Runtime Errors wie,
    Null Pointer Assignments, Dangling Pointers, Array out of Bounds Überschreitungen, Kontextfehler, nicht freigegebene Ressourcen generell und ähnliches mehr.
    Davor ist man aber auch mit einem Syntax Highlighting nicht gefeit.

    Aber das sind meine sehr persönlichen Wahrnehmungen, die sich erheblich von denen routinierter Hacker unterscheiden mögen,
    da ich lediglich Gelegenheits-Skripter und -Programmierer bin.


    Das mit dem vim für Android Link war von mir keineswegs als ernsthafte Option gemeint,
    sondern vielmehr als skurrile App-Blüte.


    Gruß
    Ralph

  • ok, dann kam das bei mir bloß falsch rüber, ist vergessen :)

    Thema Syntax Highlighting: Wenn du viel fremden Code ließt staunst du, wie viele Möglichkeiten die Syntax dir lässt Code zu verunstalten, zumindest für das persöhnliche Empfinden.
    Bei korrekt eingerücktem Code mit den Standart-Leerzeichen und allem geht das noch, aber das ganze von Farben verdeutlicht zu bekommen ist einfach angenehmer für mich.
    Ich wollte dir erst die "set background=dark" option vorschlagen, aber die ist tatsächlich Augenkrebs! Allerdings kann man die auch bei Sonnenlicht noch wunderbar lesen. Wie gut einem die Standartfarben gefallen ist vermutlich zum großen Teil Gewohnheitssache.


  • Wenn du viel fremden Code ließt staunst du, wie viele Möglichkeiten die Syntax dir lässt Code zu verunstalten, zumindest für das persöhnliche Empfinden.

    Ich glaube, angefangen hatten die Obfuscated Coding Contests mit Obfuscated C,
    und, wie es scheint, werden die immer noch ausgetragen.

    Da Perl aufgrund seiner traditionell idiomatischen und linguistischen Elemente sowie seiner barocken Syntax für sowas geradezu prädestiniert zu sein scheint,
    griff die an Nerds und Nuttern nicht gerade arme Perl Communitity diese Art von Wettbewerb natürlich begierig auf.
    Wenn man sucht, findet man dutzende obfuscated Perl Beispiele eines jedweden just another Perl hacker.
    Es gibt sogar online Perl Obfuscator.

    Und, man soll's kaum glauben -
    womit aber nur ein weiterer Beweis erbracht wäre, dass man in jeder beliebigen Programmiersprache Programme im Stil einer anderen beliebigen Programmiersprache schreiben kann -
    sogar in Python kann man Verschleierungscode schreiben.

    Jedoch davon völlig unberührt, herrscht in der Perl Community das unerschütterliche Credo, Only Perl Can Parse Perl.

    Einmal editiert, zuletzt von Life_of_Pi (4. Mai 2014 um 10:48)

  • Hallo ihr beiden,
    OT:
    KEEP COOL ! :cool:

    Wir wollen uns doch gegenseitig helfen und nicht 'abschlachten'/fertgmachen ... also bitte ! :heart:
    ... das führt doch zu nichts !

    Ist doch ALLES 'Geschmackssache' !
    Nehme es raus (Highlighting), lass es drin, oder passe es deinen Wünschen nach an und gut ist.

    Ich finde Highlighting persönlich auch gut, da ich oftmals Buchstabendreher drin habe und dies somit sofort bzw. leichter erkennen kann. ABER das ist MEIN Problem, das ich mit SyntaxHighlighting gut in den Griff bekommen habe. Jeder hat seine speziellen Vorlieben. Sich hier im Forum darüber auszulassen, ob es gut ist oder nicht, ist doch ziemlich kindisch ... und eher etwas für den Stammtisch zu sehr später Stunde (Hicks - latürnich).

    UND:
    ich mag euch beide :thumbs1: (gute Beiträge und sachlich - bis auf die über mir ...)

    Leben und leben lassen !

    so long
    perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!