Rofl: Welche Sprache sollte man zuerst lernen?

Hallo,

bisher kann ich Sprachen wie HTML, CSS, PHP, JS und den Umgang mit MySQL, PostgreSQL, PDO.

Alles webbassierend...

Ich möchte nun anfangen eine richtige große Programmiersprache zu lernen. In der Schule haben wir früher mal VB6 gelernt, aber ich denke das ist mehr als veraltet.

Ich will die Sprache lernen die in 5 Jahren wahrsch. die wichtigste Sprache sein wird. Bzw die Sprache die man in 5 Jahren auf jeden Fall beherrschen soll um was zu erreichen.

In Frage kommen für mich(persöhnlich):
C
C#
C++
Visual C++
Java
Perl
Assembler
Delphi
Python
C#.NET
APS.NET
C++.NET

Wenn ihr sagt.. lieber eine andere - die später mehr von bedeutung sein wird, dann sagts.

Sollte ich heute eher eine OOP Sprache wählen oder nicht?

Fragt mich nicht danach was ich werden will, ich habe auch kein Projekt vor Augen das ich umsetzen will. Ich will lernen, lernen, lernen um die wahrsch.keit zu Erhöhen später damit "Erfolg" zu haben.

mfg

Rolf

  1. Hi,

    C

    eher nicht.

    C#

    auf jeden Fall. Ich verdiene heute auch mein Geld damit.

    C++

    wohl auch noch relevant.

    Visual C++

    ??

    Java

    auch sehr wichtig, große ähnlichkeite zu C#

    Perl

    da kenn ich die Einsatzgebiete nicht so. Im Web wohl nicht mehr.

    Assembler

    LOL...

    Delphi

    siehe Perl.

    Python

    siehe Perl.

    C#.NET

    == C#

    APS.NET

    keine Sprache

    C++.NET

    hm!?

    Also auf jeden Fall eine OOP Sprache denke ich. C# und Java sind eh ähnlich, also such dir von denen eine aus.

    Gruß
    Christian

    1. Hallo.

      Es sollte für Rolf in erster Linien darum gehen, 'Programmieren' zu lernen - die Details des eingesetzen Frameworks sind von Projekt zu Projekt verschieden, und wer z.B. Java verstanden hat, wird auch in C# keine Probleme bekommen, mit C aber erstmal wenig anfangen können. Mein Rat daher: So viel wie möglich ausprobieren und sich zumindest mit einer Hardware-nahen, einer Objekt-orientierten und einer funktionalen Sprache auseinandersetzen...

      Jetzt zu deinen Aussagen:

      C
      eher nicht.

      [...]

      Assembler
      LOL...

      Das würde ich so nicht stehen lassen - gerade diese beiden Sprachen werden vermutlich auch noch in 5 Jahren wichtig sein, nämlich überall dort, wo es auf Hardware-nahe Programmierung ankommt - Betriebssysteme, 3d-Spiele, Embedded-Geräte, ... - und um guten C Code zu schreiben, sollte man wenigsten ein wenig Ahnung vom Funktionieren der zugrundeliegenden Architektur haben, da ist Assembler hilfreich. (Es ist generell immer wichtig, die 'Stufe' unterhalb der eingesetzen Umgebung zu kennen, in Java/C# z.B. in etwa zu wissen, wie die VM funktioniert, um bewerten zu können, wie sich der eigene Code in Sachen Performance, Speicherauslastung, etc. auswirkt...)

      Hardware-nahe Sprachen wie C eignen sich natürlich weniger für Anwendungsentwicklung oder Webdevelopment (bzw. man macht sich das Leben unnötig schwer, kann aber durchaus ansehliche und performante Resultate erzielen - dieses Forum hier ist in C geschrieben!).

      Alles, was man in C machen kann, geht natürlich auch in C++, das für Anwendungsentwicklung geeigneter ist - der Vorteil von C als Anfängersprache ist, dass der Sprachumfang relativ überschaubar ist - man kann C viel leichter 'verstehen' als C++. Allerdings besitzt C auf Grund der historischen Entwicklung einige Eigenarten, z.B. eine Syntax, die nicht unbedingt intuitiv ist (wo muss ich 'const' platzieren, wenn ich einen konstanten Zeiger und keinen Zeiger auf ein konstantes Objekt möchte, wie muss ich klammern, wenn ich ein Array von Zeigern und kein Zeiger auf ein Array haben möchte,...)

      Man sollte auch anmerken, dass alle genannten Sprachen (mehr oder weniger) dem imperativen Paradigma genügen - funktionale Sprachen wie z.B. Haskell, Dylan, Lisp, Erlang, OCaml,... verfolgen einen anderen Ansatz, sind aber meist weniger populär (aus der Arbeitsmarkt-Perspektive sind wohl vor allem Java und C# gefragt(?) - angeblich gibt es aber auch vor allem im Bankwesen noch viele COBOL-Anwendungen, die seit Jahrzehnten im Einsatz sind, und in den Naturwissenschaften ist FORTRAN noch weit verbreitet - man sollte also vorsichtig damit sein, nur 'populäre' Sprachen zu empfehlen ;)).

      Funktionale Sprachen erlauben viele Dinge, die in imperativen unmöglich sind: Z.B. operieren Lisp-Makros direkt auf dem Syntaxbaum und können das Programm 'transformieren', und Erlang erlaubt es, zehntausende Prozesse parallel zu verwalten...

      Christoph

  2. habe d'ehre Rofl

    Ich will die Sprache lernen die in 5 Jahren wahrsch. die wichtigste Sprache sein wird.

    Immer praktisch: Englisch, Spanisch, zukünftig vielleicht Mandarin.

    Programmiersprachen werden überbewertet, da diese nur für eine Berufsbranche wichtig sind.

    man liest sich
    Wil*SCNR*helm

  3. Hallo,

    bisher kann ich Sprachen wie HTML, CSS, PHP, JS und den Umgang mit MySQL, PostgreSQL, PDO.

    Alles webbassierend...

    Klar...

    Ich möchte nun anfangen eine richtige große Programmiersprache zu lernen. In der Schule haben wir früher mal VB6 gelernt, aber ich denke das ist mehr als veraltet.

    In Frage kommen für mich(persöhnlich):
    C

    Würde ich als allererstes lernen. C ist der Großvater (fast) aller Programmiersprachen... wenn du das kannst, kannst du fast alles

    C#

    Ja, das ist ziemlich wichtig

    C++

    ...sowieso

    Visual C++

    kenn ich nicht

    Java

    Ja, hat große Bedeutung

    Perl

    Ist im Web ziemlich bedeudent... und du wolltest keine Websprache

    Assembler

    Wenn du nen Parser oder so machen willst... gerne

    Delphi

    Das is nu wirklich das allerleichteste

    Python

    kenn ich nicht

    C#.NET

    kenn ich nicht

    APS.NET

    kenn ich nicht

    C++.NET

    kenn ich nicht

    Wenn ihr sagt.. lieber eine andere - die später mehr von bedeutung sein wird, dann sagts.

    Ja, vor einem gutn Monat ist die neueste Programmiersprache herausgekommen: D (vorgänger C++)

    Sollte ich heute eher eine OOP Sprache wählen oder nicht?

    OOP auf jeden Fall, wenn du Programme wie Texteditore, Browser etc. also alles mit Grafischer oberfläche machen willst.

    Fragt mich nicht danach was ich werden will, ich habe auch kein Projekt vor Augen das ich umsetzen will. Ich will lernen, lernen, lernen um die wahrsch.keit zu Erhöhen später damit "Erfolg" zu haben.

    Das ist ein gutes Motto, das hatte ich nämlich auch... :-)

    MfG

    1. Hallo,

      Wenn ihr sagt.. lieber eine andere - die später mehr von bedeutung sein wird, dann sagts.
      Ja, vor einem gutn Monat ist die neueste Programmiersprache herausgekommen: D (vorgänger C++)

      D - das interessiert mich.
      Macht es Sinn das zu lernen?

      Heise-Leser haben insgesammt eine schlechte Einstellung dazu, obwohl der Heise Beitrag weitaus positiv ausgerichtet ist.

      mfg

      Rolf

    2. Sup!

      Alles webbassierend...

      Deutsch, in Deinem Fall.

      *SCNR*

      Gruesse,

      Bio

      --
      Never give up, never surrender!!!
    3. Hallo glan,

      Würde ich als allererstes lernen. C ist der Großvater (fast) aller Programmiersprachen... wenn du das kannst, kannst du fast alles

      Das ist im Wesentlichen falsch.
      C ist eine einfache, alte, hardwarenahe prozedurale/imperative Programmiersprache.
      Durch ihre Verbreitung wurde die Syntax vieler Programmiersprachen daran angelehnt, wenn man die Programmierer nicht mit neuem überfordern wollte, mehr aber im Grunde auch nicht.
      C unterstüzt nur sehr wenige Konzepte (das ist für den Zweck, hardwarenah zu programmieren, nicht unbedingt schlecht), hat meiner Meinung nach keine besonders elegante Syntax (das Pointerzeugs und so) und ist auch keine besonders komfortable Sprache.

      Visual C++

      Eine IDE für C++ von MS oder so.

      Perl

      Perl ist vor allem in der Unix-Systemadminstrationswelt ziemlich wichtig und vielleicht noch in der Computerlinguistik. Im Web dürfte sie mittlerweile eine Sprache unter vielen sein.

      Assembler
      Wenn du nen Parser oder so machen willst... gerne

      Warum um alles in der Welt sollte man einen Parser in Assembler schreiben?
      Assembler nimmt man vielleicht, wenn man komisch Controller für irgend welche Embedded-Systeme programmiert oder Grafikkartentreiber entwickelt oder so.

      Delphi
      Das is nu wirklich das allerleichteste

      Delphi ist auch eine halbwegs moderne, objektorientierte Programmiersprache.
      Ich kenn Delphi und vor allem den aktuellen Entwicklungsstand kaum, aber einfacher als andere Programmiersprachen dieses Typs dürfte sie auch nicht sein.

      Python

      Eine wirklich moderne Skriptsprache mit einigen interessanten Konzepten.
      Zum Einsteigen sicher recht geeignet, in Skriptsprachen kann man recht locker los programmieren ohne sich in technischen Details zu verheddern.

      Ja, vor einem gutn Monat ist die neueste Programmiersprache herausgekommen: D (vorgänger C++)

      Die "neuste Programmiersprache". Es entstehen praktisch dauernd neue Programmiersprachen, D ist eine davon. Keine besonders innovative und keine, von der zu erwarten ist, dass sie besonders bedeutend werden wird. Mit nichten ist sie der Nachfolger von C++.
      D ist einfach ein versuch, eine aufgeräumtere, um einige moderne Konzepte ergänzte Programmiersprache, mit einer ähnlichen Ausrichtung wie C++ zu entwickeln, mehr nicht.

      Sollte ich heute eher eine OOP Sprache wählen oder nicht?
      OOP auf jeden Fall, wenn du Programme wie Texteditore, Browser etc. also alles mit Grafischer oberfläche machen willst.

      OOP kann man auch ganz vorzüglich für Dinge ohne GUI brauchen.
      Eigentlich setzen alle neueren (zumindest imperativen) Sprachen auf OOP. Ich würde mir auch keine Sprache antun, die das nicht unterstützt (zum Beispiel C (jaja, man kann überall versuchen OOP zu spielen und sich dabei was zu brechen)). Das ist so ungefähr wie Schreibenlernen mit Meißel und Steintafeln. Für mache Dinge mag man das heute noch brauchen, aber es ist doch irgendwie umständlich ;-)

      Fragt mich nicht danach was ich werden will, ich habe auch kein Projekt vor Augen das ich umsetzen will. Ich will lernen, lernen, lernen um die wahrsch.keit zu Erhöhen später damit "Erfolg" zu haben.

      Ein komisches Ziel, vielleicht solltest Du eher versuchen, etwas zu tun, was Dich interessiert...

      Grüße

      Daniel

      1. Hello,

        C unterstüzt nur sehr wenige Konzepte (das ist für den Zweck, hardwarenah zu programmieren, nicht unbedingt schlecht), hat meiner Meinung nach keine besonders elegante Syntax (das Pointerzeugs und so) und ist auch keine besonders komfortable Sprache.

        Das "Pointerzeugs" macht überhaupt erst intelligente Programmierung möglich.
        Der Unterscheid zwischen "Call by Value" und "Call by Reference" ist die Grundlage unserer heutigen Programmierung mindestens seit Konrad Zuse, also seit ca. 1941.

        Ich bin mir aber sicher, dass sich da voerhergehende Theoretiker übesehen habe...

        Harzliche Grüße vom Berg
        http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau

        1. Hello,

          C unterstüzt nur sehr wenige Konzepte (das ist für den Zweck, hardwarenah zu programmieren, nicht unbedingt schlecht), hat meiner Meinung nach keine besonders elegante Syntax (das Pointerzeugs und so) und ist auch keine besonders komfortable Sprache.

          Das "Pointerzeugs" macht überhaupt erst intelligente Programmierung möglich.
          Der Unterscheid zwischen "Call by Value" und "Call by Reference" ist die Grundlage unserer heutigen Programmierung mindestens seit Konrad Zuse, also seit ca. 1941.

          Ich bin mir aber sicher, dass sich da voerhergehende Theoretiker übesehen habe...

          Und die Daten der Entwicklungen sind:

          1936 Konrad Zuse
            1945 Johann von Neumann

          Die Prinzipien gelten bis heute.

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau

        2. Hallo Tom,

          Das "Pointerzeugs" macht überhaupt erst intelligente Programmierung möglich.

          Ich sprach hier ja erstmal von Syntax nicht von Semantik. Man kann Pointer auch mit anderer Syntax haben und natürlich auch mit ausgefeilterer Semantik.
          (Referenzen statt Pointer, Schutz vor falscher Verwendung von Pointern und so)

          Der Unterscheid zwischen "Call by Value" und "Call by Reference" ist die Grundlage unserer heutigen Programmierung mindestens seit Konrad Zuse, also seit ca. 1941.

          Der Unterschied ist vor allem eine recht triviale Sache und hat mit Pointern im Sinne von Verweisen in einen Heap nicht viel zu tun. Call-by-Reference-Semantik lässt sich auch realisieren, wenn man nur einen Stack hat.
          Darüber hinaus ist Call-by-Reference ziemlich aus der Mode gekommen, viele Sprachen verfügen darüber gar nicht. Stattdessen werden oft Referenzen by-value übergeben.

          Grüße

          Daniel

          1. Hallo Daniel,

            Das "Pointerzeugs" macht überhaupt erst intelligente Programmierung möglich.
            Ich sprach hier ja erstmal von Syntax nicht von Semantik. Man kann Pointer auch mit anderer Syntax haben und natürlich auch mit ausgefeilterer Semantik.

            das mag wohl sein - aber dann auch mit einem Verlust an Möglichkeiten.

            Referenzen statt Pointer, ...

            Das ist IMHO nur eine Verschleierung der tatsächlichen Vorgänge, die das Verständnis der tatsächlichenAbläufe nicht gerade einfacher macht, sondern eher schwieriger. Vor allem, wenn man komplexe Datenstrukturen (Arrays) mit einem Zeiger abgrasen möchte.

            Darüber hinaus ist Call-by-Reference ziemlich aus der Mode gekommen, viele Sprachen verfügen darüber gar nicht. Stattdessen werden oft Referenzen by-value übergeben.

            ... was ja im Endeffekt wieder dasselbe ist, nur mit einem anderen Namen.

            So long,
             Martin

            --
            Es sagte...
            ein korpulenter Lehrer zu einem Schüler, der ihn ein Fass genannt hatte: "Nein. Ein Fass ist von Reifen umgeben, ich dagegen von Unreifen."
            1. Hallo Martin,

              das mag wohl sein - aber dann auch mit einem Verlust an Möglichkeiten.

              Sicher, nur ist es aber so, dass praktisch alle Programme, die in Sprachen mit unsicheren Pointern geschrieben sind, irgend welche Bufferoverflows haben.
              Vor dem Hintergrund, dass die allermeisten Anwendungen bestimmt nicht direkt auf Speicheradressen arbeiten müssen, ist das eben nur nervig.
              Selbst in Betriebssystemen und ähnlichem kämen wahrscheinlich große Teile des Codes ohne solche Möglichkeiten aus. Man sollte also vielleicht eine Programmiersprache verwenden, die das bei expliziter Aktivierung für einige Codeteile zulässt.

              Es ging hier aber auch nicht darum, Programmiersprachen im Allgemeinen zu Diskutieren, sondern eine für den Einstieg vorzuschlagen. Beim Programmieren ist meines Erachtens vor allem Abstraktion, Algorithmik und die Organisation  der Software insgesamt wichtig und nicht das Wissen, wie man mit einem Pointer über ein Array iteriert.

              Das ist IMHO nur eine Verschleierung der tatsächlichen Vorgänge, die das Verständnis der tatsächlichen Abläufe nicht gerade einfacher macht, sondern eher schwieriger.

              Wenn man die verstehen will, muss man natürlich von der Hardware anfangen.
              Meines Erachtens gewinnt man aber keinen Eindruck davon, wie Programme oder Algorithmen strukturiert sind, wenn man mit Assembler Zahlen zwischen Registern hin und her schuppst.
              Da sieht man einfach nicht mehr, welche Idee dahinter steckt und kann seine Ideen auch nicht so einfach Formulieren. Das Wissen ist sicher Hilfreich, aber kein direkter Einstieg ins Programmieren sondern eher in Rechnerarchitektur.

              Vor allem, wenn man komplexe Datenstrukturen (Arrays) mit einem Zeiger abgrasen möchte.

              Und wieso möchte man das? Warum möchte man nicht "for element in array" schreiben oder so ähnlich?

              ... was ja im Endeffekt wieder dasselbe ist, nur mit einem anderen Namen.

              Nein, zumindest so wie das typischerweise umgesetzt ist, nicht.
              Call-by-reference referenziert die aufgerufenen Variablen und verändert diese. Übergibt man Referenzen by-value verändert man keine anderen Variablen sondern nur referenzierte Datenstrukturen (so fern es keine Referenzen auf Variablen gibt, was dann aber oft nicht der Fall ist).
              Das führt zu etwas gutartigeren Seiteneffekten.

              Grüße

              Daniel

              1. Hallo,

                Sicher, nur ist es aber so, dass praktisch alle Programme, die in Sprachen mit unsicheren Pointern geschrieben sind, irgend welche Bufferoverflows haben.

                nein, nur wenn der Programmierer nicht aufgepasst hat. :-)

                Vor dem Hintergrund, dass die allermeisten Anwendungen bestimmt nicht direkt auf Speicheradressen arbeiten müssen, ...

                Aber könnten! Und das macht viele Operationen erheblich performanter.

                Beim Programmieren ist meines Erachtens vor allem Abstraktion, Algorithmik und die Organisation der Software insgesamt wichtig ...

                Da stimme ich unbedingt zu.

                [...] die das Verständnis der tatsächlichen Abläufe nicht gerade einfacher macht, sondern eher schwieriger.
                Wenn man die verstehen will, muss man natürlich von der Hardware anfangen.

                Richtig, und das gehört meines Erachtens ebenso elementar zu den Grundzügen der Programmierung wie das eben angesprochene Verständnis von Algorithmen und Strukturen.

                Meines Erachtens gewinnt man aber keinen Eindruck davon, wie Programme oder Algorithmen strukturiert sind, wenn man mit Assembler Zahlen zwischen Registern hin und her schuppst.

                Stimmt, da ist man schon eine (oder mehrere) Abstraktionsebene tiefer. Und ich finde es schade, wenn ein Hochsprachen-Programmierer auf dieser Ebene plötzlich passen muss. Das ist so, als wenn ein Facharzt plötzlich nicht mehr weiter weiß, wenn es um elementare biochemische Vorgänge geht.

                Da sieht man einfach nicht mehr, welche Idee dahinter steckt und kann seine Ideen auch nicht so einfach Formulieren. Das Wissen ist sicher Hilfreich, aber kein direkter Einstieg ins Programmieren sondern eher in Rechnerarchitektur.

                Der Einstieg erfolgt im Idealfall von beiden Enden aus simultan.

                Call-by-reference referenziert die aufgerufenen Variablen und verändert diese.

                Genau.

                Übergibt man Referenzen by-value verändert man keine anderen Variablen sondern nur referenzierte Datenstrukturen (so fern es keine Referenzen auf Variablen gibt, was dann aber oft nicht der Fall ist).

                So wie beim Call-By-Reference, wo man ja auch nur die referenzierten Daten verändern kann. Also wo liegt der Unterschied, außer in der Schreibweise?

                Gut's Nächtle,
                 Martin

                --
                Ja, ja... E.T. wusste schon, warum er wieder nach Hause wollte.
                1. Hello,

                  Call-by-reference referenziert die aufgerufenen Variablen und verändert diese.

                  ... und ist notwendig, um z.B. den indirekten Aufruf zu verstehen.

                  Die Idee des Befehlszeigers, des nahen und fernen Sprungs, des Calls und Interrupts, ... versteht man doch erst dann, wenn man in den Assembler-Code hineingeschaut hat.

                  Deshalb war die Empfehlung an Rofl gekommen, sich auch mit Assembler zu beschäftigen.

                  Harzliche Grüße vom Berg
                  http://www.annerschbarrich.de

                  Tom

                  --
                  Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                  Nur selber lernen macht schlau

              2. Hello,

                Sicher, nur ist es aber so, dass praktisch alle Programme, die in Sprachen mit unsicheren Pointern geschrieben sind, irgend welche Bufferoverflows haben.

                Du meinst damit also vermutlich, dass durch Unachtsamkeit des Programmierers oder durch Faulheit der zulässige zugewiesene Speicherbereich für einen Datenwert (oder auch mehrere) überschritten wird?

                Die Kontrollen sollte also daher lieber die Entwicklungsumgebung automatisch einbauen?

                Dafür hatte selbst das frühe Turbo-Pascal von Broeland schon Methoden. Das nannte sich Bereichsüberprüfung oder Range Check mit der Compilereinstellung $R
                Und wenn man verstehen wollte, was da passiert, dann hat man sich eben mal den Assemblercode angeschaut, den der Compiler erzeugt hat. Die Überprüfung war sehr effektiv, hat aber den Code auf den langsamen Maschinen von damals ziemlich ausgebremst.

                Diese "super Errungenschaften" sind meistens, wenn man mal hinter die Kulissen schaut, ziemlich bodenständig gestrickt.

                Harzliche Grüße vom Berg
                http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau

  4. Hi,

    bisher kann ich Sprachen wie HTML, CSS, PHP, JS und den Umgang mit MySQL, PostgreSQL, PDO.
    Alles webbassierend...

    und schonmal eine ganz gute Grundlage. Denn wenn man sich die Denkweise der Programmierung (ich beziehe das mal auf SJ und PHP) mal in den Grundzügen angeeignet hat, ist es meistens nicht gar so schwer, eine andere Sprache zu erlernen.

    Ich möchte nun anfangen eine richtige große Programmiersprache zu lernen. In der Schule haben wir früher mal VB6 gelernt, aber ich denke das ist mehr als veraltet.

    Ich würde nicht sagen "veraltet". Es ist immer noch halbwegs up-to-date, aber eben wenig verbreitet.

    In Frage kommen für mich(persöhnlich):
    C
    C#
    C++
    Visual C++
    Java
    Perl
    Assembler
    Delphi
    Python
    C#.NET
    APS.NET
    C++.NET

    Ich persönlich würde dir empfehlen, auf jeden Fall C zu lernen, und diese Kenntnisse dann auf C++ auszudehnen (C++ basiert auf C). Für Standalone-Projekte ist C/C++ meiner Ansicht nach immer noch eine der wichtigsten Programmiersprachen, die man einfach kennen und -zumindest ansatzweise- können sollte. Visual C++ ist übrigens keine eigene Programmiersprache, sondern nur der Name der MS-Entwicklungsumgebung für C++.

    Java ist, soweit ich das überblicken kann, bei weitem nicht so verbreitet, hat sich aber in einigen Bereichen etabliert. Es kann sicher nicht schaden, wenn man sich damit beschäftigt (ich habe keine Ahnung von Java). C# ist AFAIK trotz der Bezeichnung eher mit Java als mit C verwandt.

    Delphi würde ich links liegenlassen. Das ist eine aus Pascal gewachsene Sprache, die insgesamt wenig verwendet wird.

    Perl ist eine weitere Scriptsprache, die häufig in Webprojekten eingesetzt wird, aber auch für Standalone-Scripte geeignet ist. Ich bin bisher ganz gut ohne ausgekommen, im Zweifelsfall kann man es aber vermutlich schnell erlernen - natürlich nicht gleich in allen Feinheiten beherrschen, aber das kommt mit der Zeit beim Anwenden.

    Assembler ist heutzutage nur noch dann wirklich wichtig, wenn man in die Treiber- und Betriebssystemprogrammierung einsteigen möchte, oder Embedded-Projekte auf kleinen Microcontrollern entwickelt. Ansonsten werden die Assembler-Experten zwar vielleicht bewundert, aber eher ein wenig belächelt.

    Zu Python kann ich nichts sagen, ich kenne es nur vom Hörensagen, und die .NET-Geschichten sind auch keine Programmiersprachen, sondern nur eine Anwendung verschiedenster Sprachen unter Verwendung einheitlicher Schnittstellen.

    Sollte ich heute eher eine OOP Sprache wählen oder nicht?

    Beides: Sowohl klassische prozedurale, als auch objektorientierte Sprachen sollte man drauf haben, um von Fall zu Fall beurteilen zu können, was für eine bestimmte Aufgabe geeigneter ist. OOP ist ein geniales Konzept und hat sicher ihren Stellenwert, eignet aich aber nicht für jedes Projekt.

    Fragt mich nicht danach was ich werden will, ich habe auch kein Projekt vor Augen das ich umsetzen will. Ich will lernen, lernen, lernen um die wahrsch.keit zu Erhöhen später damit "Erfolg" zu haben.

    Guter Gedanke - aber dann ist dir sicher auch klar, dass du viel lernt, was du später nie wieder brauchen wirst. Das trifft aber auch auf die übliche Schulbildung zu, ebenso wie auf jedes Studium. ;-)

    So long,
     Martin

    --
    Paradox ist, wenn jemand eingefleischter Vegetarier ist.
    1. Hi Martin,

      Ich möchte nun anfangen eine richtige große Programmiersprache zu lernen. In der Schule haben wir früher mal VB6 gelernt, aber ich denke das ist mehr als veraltet.

      Ich würde nicht sagen "veraltet". Es ist immer noch halbwegs up-to-date, aber eben wenig verbreitet.

      verallgemeinern kann ich natürlich nicht, aber ich wäre froh, wenn ich mal einen Auftrag in einer anderen Sprache ausführen könnte. Vielleicht ist es ja Zufall - aber momentan schreibe ich fast nur in VB6 und bin damit voll ausgelastet. Also scheint die Nachfrage doch da zu sein …

      Viele Grüße

      Jörg

      1. Hallo Jörg,

        [VB6]
        Ich würde nicht sagen "veraltet". Es ist immer noch halbwegs up-to-date, aber eben wenig verbreitet.
        verallgemeinern kann ich natürlich nicht, aber ich wäre froh, wenn ich mal einen Auftrag in einer anderen Sprache ausführen könnte. Vielleicht ist es ja Zufall - aber momentan schreibe ich fast nur in VB6 und bin damit voll ausgelastet. Also scheint die Nachfrage doch da zu sein …

        liegt es vielleicht daran, dass du dich offensichtlich auf VB/VBS/VBA spezialisiert hast und das auch entsprechend kommunizierst?  ;-)

        So long,
         Martin

        --
        Irgendwann in grauer Vorzeit benutzte einer unserer prähistorischen Vorfahren ein Schimpfwort anstelle der Keule.
        Die Zivilisation hatte begonnen.
        1. Hi Martin,

          liegt es vielleicht daran, dass du dich offensichtlich auf VB/VBS/VBA spezialisiert hast und das auch entsprechend kommunizierst?  ;-)

          ja, sicher, aber da steht ja auch noch mehr …
          (Oder habe ich das zu schlecht zum Ausdruck gebracht?)
          Aber streiche bitte das VBS. ;-)

          Wobei es wirklich so ist, dass sich die Masse der Anfragen um VBA dreht. Wenn man sich die Sachen dann näher ansieht, kommt man schnell zum Schluss, dass VBA nicht unbedingt die richtige Lösung ist. Dann berät man den Kunden und schon ist man bei VB.

          Im vorigen Jahr wurde z. B. ein Kassenprogramm mit diversen individuellen Funktionalitäten für einen Imbiss benötigt. Die Ausstattung des PCs ist minimal, da die Diebstahlsgefahr in dieser Branche wohl sehr hoch ist. Deshalb war es da Quatsch, eine VBA-Lösung zu erstellen - wozu soll man das in dieser Hinsicht nicht gerade ressourcenschonende Excel dazu immer offen haben?

          Insofern hast Du schon Recht - Ausgangspunkt ist eigentlich meist VBA. Naja, nun winkt aber ein anderer interessanter Auftrag, mal in PHP …

          Viele Grüße

          Jörg

    2. Hi Martin

      Nur zwei kurze Anmerkungen:

      Delphi würde ich links liegenlassen. Das ist eine aus Pascal gewachsene Sprache, die insgesamt wenig verwendet wird.

      Zwar nicht so verbreitet wie C/C++, aber wesentlich leichter zu erlernen und ebenso leistungsfähig.

      Assembler ist heutzutage nur noch dann wirklich wichtig, wenn man in die Treiber- und Betriebssystemprogrammierung einsteigen möchte,

      Das ist Quatsch. Überall dort, wo es um rechenintensive und zeitkritische Dinge geht, ist Assembler nach wie vor ein Muß (z.B. im Bereich der Grafikverarbeitung).

      Gruß

      Uwe
      Portland, Oregon

      1. Hallo Uwe,

        Delphi würde ich links liegenlassen. Das ist eine aus Pascal gewachsene Sprache, die insgesamt wenig verwendet wird.
        Zwar nicht so verbreitet wie C/C++, aber wesentlich leichter zu erlernen und ebenso leistungsfähig.

        leichter zu erlernen? Hmm, weiß ich nicht. Wirklich vertraut bin ich nur mit dem zugrundeliegenden Pascal. Das zwingt einen zwar unbarmherzig zur Disziplin und ist daher vielleicht wirklich leicht zu lernen. Aber C hat dafür weniger eigene Sprachelemente und ist IMHO von seiner Struktur her etwas einfacher gestrickt.
        Ich würde, nachdem ich sowohl Pascal als auch C kenne, C als einfacher zu erlernen einschätzen (obwohl Pascal gerade wegen seiner strengen Form eine ideale Einsteigersprache ist).

        Assembler ist heutzutage nur noch dann wirklich wichtig, wenn man in die Treiber- und Betriebssystemprogrammierung einsteigen möchte,
        Das ist Quatsch. Überall dort, wo es um rechenintensive und zeitkritische Dinge geht, ist Assembler nach wie vor ein Muß (z.B. im Bereich der Grafikverarbeitung).

        Ja, ich wollte noch ein Beispiel aus der Ecke bringen, habe aber schon öfter die Erfahrung gemacht, dass man hier entweder entrüstetes Geschrei oder lautes Gelächter hervorruft, wenn man sich als Assembler-Fürsprecher outet. Deswegen habe ich mich auf diese schwer anfechtbaren Beispiele beschränkt.

        So long,
         Martin

        --
        Niemand ist überflüssig: Er kann immer noch als schlechtes Beispiel dienen.
        1. Hi Martin

          C++ benutze ich heutzutage nur noch für Auftragsarbeiten, meine eigenen Projekte realisiere ich durchweg in Delphi/ Assembler.

          ...dass man hier entweder entrüstetes Geschrei oder lautes Gelächter hervorruft, wenn man sich als Assembler-Fürsprecher outet.

          Na ja, das sind wahrscheinlich die Leute, die von der Materie null bis keine Ahnung haben.

          Cheers

          Uwe
          Portland, Oregon

        2. Hello,

          Ja, ich wollte noch ein Beispiel aus der Ecke bringen, habe aber schon öfter die Erfahrung gemacht, dass man hier entweder entrüstetes Geschrei oder lautes Gelächter hervorruft, wenn man sich als Assembler-Fürsprecher outet. Deswegen habe ich mich auf diese schwer anfechtbaren Beispiele beschränkt.

          ich bleibe bei der Meinung, dass man erst wirklich versteht, was programmierung eigentlich bewirkt, wenn man Assembler gelernt hat.

          Man kann dann von dort aus selber mal versuchen, die Entwicklungsschritte zu den Hochsprachen nachzubauen. Das schafft mMn eine hohe Achtung vor deren Entwicklern, aber auch Verständnis für deren Irrwege...

          Harzliche Grüße vom Berg
          http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau

  5. Hello,

    ich selber habe mal mit Basic angefangen... Nix geschnallt. Hatte auch kein Lehrbuch und keinen Lehrer, nur die Fehlermeldungen eiens Commodore PET ;-(
    Dann kam Algol60, das ging Dank Lehrbuch, Lehrer, Aufgaben, Kontrollen schon ganz fix.
    Fortran durfte nicht fehlen :-(

    Später kam ein Kursus in Pascal dazu, der war sehr gut.
    Wirklich Spaß gemacht hat es aber erst, als wir in Assembler programmiert haben.
    Da haben einige von uns die frühe Objektorientierung und ihre Probleme "erfunden".
    Auch Pascal haben wir da erst richtig schätzen gelernt und verstanden.

    Als dann später C kam (noch nicht OOP), war das kein Problem mehr, obwohl ich bis heute meine, dass C eine Geheimniskrämersprache ist, die nur aus Ausnahmeregeln besteht.

    Mein Tipp also:
    Zieh dir ein wenig Assemnler rein. Da gibt es heute auch gute Emulatoren, mit denen Du das auf Deinem Desktop-PC erlenren kannst. Danach ist das Verständnis und die Wertschätzung für die Hochsprachen einfach besser!

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

  6. gruss Rolf,

    bisher kann ich Sprachen wie HTML, CSS, PHP, JS und den Umgang mit MySQL, PostgreSQL, PDO.

    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^-----------------^^

    *schmunzel* - das glaub' ich Dir nicht, sonst haettest Du nicht
       nach einer programmiersprache gefragt, die ...

    ... in 5 Jahren wahrsch. die wichtigste Sprache sein wird. Bzw
    die Sprache die man in 5 Jahren auf jeden Fall beherrschen soll
    um was zu erreichen.

    natuerlich wird das ECMAScript in allen moeglichen auspraegungen
       sein. und das meine ich schwankend zwischen scherz und vollem ernst:

    ~~~html <div id="boeserJavaScriptDealer">
         <p class="verschwoererisch lockend">
           zumindest kann man schon jetzt mit dieser sprache mehr
           erreichen, als Du bisher fuer moeglich gehalten hast.
         </p>
       <div>

      
    
    > Alles webbassierend...  
      
       klaro.  
      
    
    > Ich möchte nun anfangen eine richtige große Programmiersprache  
    > zu lernen. In der Schule haben wir früher mal VB6 gelernt, aber  
    > ich denke das ist mehr als veraltet.  
    
       ------------------^^^^^^^^^^^^^^^^^^  
      
       darauf kommt es nicht an. viel wichtiger ist es, dass die erste  
       sprache nicht schon den programmierstil fuer die zukunft versaut.  
      
       wenn Ihr einen richtig guten lehrer hattet, hat auch VB6 keinen  
       grossen schaden angerichtet ;-)  
      
       wichtig ist der willen und die faehigkeit zu logik und abstraktion.  
      
       ausserdem ist es wichtig, auf einem einmal verstandenen sprachkonzept  
       nicht den tunnelblick zu bekommen.  
      
       ganz ehrlich, Du klingst noch ziemlich jung und unerfahren; und  
       das ist gut so - schiele nicht nach einer \*sprache der zukunft\*.  
      
       jetz hast Du noch genug muse und zeit dich >>verspielt<< mit  
       problemloesungen zu einem gebiet zu beschaeftigen, das nur Dich  
       zu hundert prozent interessiert. in Deinem kopf wird es ja wohl  
       mindestens ein anspruchsvolles thema/projekt/... geben, dass auf  
       umsetzung wartet - DAS wird Deine zukuenftige baustelle, und erst  
       jetzt ist es an der zeit, das feld zu sondieren und die adequaten  
       werkzeuge (entwicklungsumgebung/programmiersprache) zu waehlen.  
      
    
    > In Frage kommen für mich(persöhnlich):  
    > C  
    > C#  
    > C++  
    > Visual C++  
      
       wie waers mit Objective-C - aber ich denke, ...  
      
    
    > Java  
      
       ... genau darauf wird es fuer Dich hinauslaufen.  
      
    
    > Perl  
    > Assembler  
    > Delphi  
      
      
    
    > Python  
      
       sehr schoen - aber selbst fuer einen einstieg auf  
       hoeherem niveau dann doch etwas ueberambitioniert.  
      
      
    
    > C#.NET  
    > APS.NET  
    > C++.NET  
      
       ... hmm ..., da wird es zumindest immer einen markt geben.  
      
    
    > Sollte ich heute eher eine OOP Sprache wählen oder nicht?  
      
       fuer einen einstieg, wie Du ihn suchst - ja.  
      
    
    > Fragt mich nicht danach was ich werden will, ich habe auch  
    > kein Projekt vor Augen das ich umsetzen will.  
      
       suboptimal, wegen siehe oben. und fehlende phantasie passt  
       auch nicht zum von Dir erwarteten »"Erfolg" ... haben«.  
       und wenn die treibende kraft Deiner motivation wirklich nur  
       dem hier entspringt -  
      
    
    > Ich will lernen, lernen, lernen um die wahrsch.keit zu Erhöhen  
    > später damit "Erfolg" zu haben.  
      
       - bleiben ebenjene (die motivation) und das lernen ueber kurz  
       oder lang auf der strecke, noch bevor Du ueberhaupt mit Deinem  
       ersten privaten projekt auf basis von dem, was Du lernen wolltest,  
       vernuenftig geld verdient hast.  
      
       die so ziemlich allen saeugetierjungen in die wiege gelegten  
       gaben >>spieltrieb<< und >>neugierde<< sollten im moment noch  
       Dein einziger turbo sein.  
      
      
       so long - peterS. - pseliger@gmx.net  
      
      
    
    -- 
    »Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
    Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
      
    ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]
    
  7. C
    C#
    C++
    Visual C++
    Java
    Perl
    Assembler
    Delphi
    Python
    C#.NET
    APS.NET
    C++.NET

    Mit C(++) und Perl bspw. machst Du m.E. nichts falsch, VB ist auch OK.

    COBOL könntest Du Dir mal reinziehen.   ;)

  8. Ich empfehle dir eine Sprache, die du gar nicht genannt hast: Common Lisp

    Grund: Der mögliche Abstraktionsgrad ist gewaltig, verschiedenste Programmierparadigmen sind problemlos nutzbar, so dass du dich nicht zwangsweise auf eines festlegst (Beispiel C: imperative Programmierung*). Andere Sprachen zu lernen ist dann weniger schwierig.

    Linktipp: Paul Graham: Lisp

    * Ja, man kann in C auch funktional programmieren und auch objektorientiert. Aber die Sprache unterstützt einen wenig dabei.

    --
    Reden ist Silber, Schweigen ist Gold, meine Ausführungen sind Platin.
    Self-Code: sh:( ch:? rl:( br:> n4:( ie:{ mo:) va:) de:> zu:} fl:| ss:| ls:~ js:|
  9. Hello,

    da musste ich gerade grinsen...
    Auf ZDF gibt's eine Serie zum Thema Zukunft.

    Und gerade sagten sie: "Das Virus beutzt einen fünzig Jahre alten Code in den untersten Schichten des Betriebssystems"

    Das kommt mir irgendwie vor, wie "Assembler ist doch noch wichtig"

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau

  10. Der Doppelposting-Verdacht ist auch da:
    https://forum.selfhtml.org/?t=149065&m=967685

  11. Um ganz sicher gutes Geld zu verdienen mußt Du eine Ausbildung zur
    Bäckereifachverkäuferin machen!