[Wegweise]Mit dem Programmieren Anfangen: Die Wahl der Sprache

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [Wegweise]Mit dem Programmieren Anfangen: Die Wahl der Sprache

      Als ich mit dem gedanken gespielt habe selbst Programme zu schreiben hatte ich absolut keine ahnung von Programmiersprachen, algorythmen etc. Also möchte ich denen die vorhaben die sache ein wenig erleichtern und euch die Sache mit den Programmiersprachen näher bringen.

      Programmieren besteht im wesentlichen daraus den PC zu sagen was er machen soll, und wie er sich in welcher Situation wie verhalten soll. Dies geschieht über so genannte Programmiersprachen. Es gibt viele von ihnen, mehrere 100, und ich werde auf keinen Fall alle ansprechen, aber ich werde auf die bekannten, und auf die die meiner Meinung nach zum Einsteigen geeignet sind kurz eingehen.

      Der erste Schritt beim Programmieren ist die Wahl der Programmiersprache. Ich werde hier nicht sagen das Delphi die beste Einsteigersprache ist, das machen andere in tutorials (u. a. hier im Forum). Das Erste was ihr zu den Programmiersprachen wissen müsst, ist das es keine ultimativ Perfekte gibt, man kann nicht mal sagen das es die perfekte Sprache für irgend einen Bereich der Programmierung gibt, das einzige was man machen kann ist die auswahl für sich persönlich einzugrenzen.
      Die wahl letztendlich liegt vollkommen bei euch, und kann euch auch nicht abgenommen werden. Jede Programmiersprache hat Vor- und Nachteile, und man muss sehen welche einem am ehesten zu sagt.

      Im Folgenden werde ich einige der bekannten und auch weit verbreiteten Programmiersprachen ansprechen:

      Den anfang macht Java: Eine sehr weit verbreitete Sprache, und ihr werdet auch oft lesen das das die beste sprache sei, dennoch hat auch dieser Gigant der Programmiersprachen seine schattenseiten hat.
      Aber zu erst zu den Vorteilen:
      Java programme kann man auf annähernd jedem Betriebsystem programmieren und ausführen, und bietet fast komplette unabhängigkeit. Desweiteren ist Java sehr umfangreich, und bietet sehr viele und vor allem einfach wege ideen in Form eines Programmes umzusetzten, was diese Sprache auch recht leicht macht.
      Java findet Anwendung in der Entwicklung von simplen Programmen, Handy Software(unter anderem Android) und auch bei Minecraft.

      Aber gerade diese Vorteile bringen Nachteile mit sich:
      Damit Java unter jedem System gleich funktionieren kann wird die sprache von dem Programm Java oder genauer gesagt der JRE ausgeführt und überwacht. Das bedeutet das diese unabhängigkeit auch seine Grenzen hat, so lassen sich Java programme nur unter einem System ausführen das Java auf dem aktuellen Stand hat. Nun der warscheinlch größere Nachteil ist das durch dieses ausführen durch die JRE die Java Programme langsamer und Resource fressender als vom PC direkt ausgeführte Programme sind.

      Mehr zu Java gibt es im Java Unterforum.

      Eine weitere sehr weit verbreitete Sprache ist C: C fand vor allem früher eigentlich überall Einsatz, da man in dieser Sprache alles umsetzten kann, und dir lediglich dein Können dir Grenzen aufweist. C ist absolut kostenfrei, sehr Systemnah, und auch unter allen Systemen verwendbar. C findet häufig einsatz bei der Programmierung von Treibern, Systemen, allerdings auch bei kleineren Programmen, obwohl da meist auf C++, eine erweiterung umgestiegen wird.

      Als Nachteile ist lediglich anzumerken, das C von haus aus sehr wenig bietet und von daher oft sehr umständlich ist, und daher eher anfänger unfreundlich ist. Und C ist nicht Objekt orientiert, ein Feature das seit 30 Jahren bei keiner modernen Sprache wegzudenken ist.

      C++ die Erweiterung: C++ ist die neuere Objekt orientierte version von C, und hat viele Anwendungsbereiche von C übernommen. Alle Vorteile von C kann man auch auf C++ anwenden, sowie C++ umfangreicher ist. Dennoch muss man auch in C++ sehr vieles selbst machen was in anderen Sprachen schon integriert ist und von daher ist diese dennoch nicht ganz so Anfängerfreundlich wie z.b. Java.

      Objektive C der Apple Hype geht weiter: Eine andere Objekt orientierte weiterentwicklung von C ist Objective C. Diese geriet aber lange Zeit in vergessenheit. Apple packte die Sprache dann wieder raus und Entwickelte das Cocoa Framework, ein Fester bestandteil des Mac OS und iPhone OS systems.
      Das Cocoa Framework ist sehr Umfangreich, und bietet den Mac und iSoftware Entwicklern zahlreiche möglichkeiten dinge elegant zu lösen. Neben der anwendung des Cocoa Frameworks ist es auch möglich standart C Befehle zu verwenden, so ist auch in Objective C alles möglich. Desweiteren entwickelte Apple auch Objective C++, ein Feature das Erlaubt die beiden Sprachen Objective C und C++ zu mischen, Objektive C ist die einzige Sprache mit einem derartigen Feature. Und die Sprache wird immer beliebter. Das Cocoa Framework hat auch als eine ersten Sprachen eine Einfach möglichkeit Fenster zu erstellen, etwas woran man früher mit C++ gut und gerne 1-2 Stunden verbracht hat.

      Doch so verlockend die Vorteile auch klingen, die Nachteile sind gerade für Anfänger gewaltig:
      Die Programme die mit Cocoa geschrieben sind benötigen Mac OS 10.x oder iPhone OS, zwar lässt sich die Sprache auch ohne Cocoa verwenden, bietet aber dann keinerlei Vorteile gegenüber C++. Für Ein und Umsteiger das warscheinlich auffälligste ist das die Sprache sehr komplex ist, und vor allem sehr an das System angepasst. Um nicht zu sagen Objective C ist eigentlich komplett user Unfreundlich. Viele Vorgänge die bei anderen Sprachen automatisiert wurden müssen in Objective C noch vom Programmierer erledigt werden. C++ ist komplex, aber bei Objective C liegt C++ noch weit vorn. Auch wenn Apple sehr dran arbeitet ist diese sprache dennoch sehr Anfänger unfreundlich.

      Visual Basic, 20 Jahre Windows Programmierung: Mit Windows brachte Microsoft eine neue Sprache raus mit der die Entwicklung von Windows Programmen erleichtert werden sollte, und Visual Basic hielt sich über 15 Jahre hinweg unter den Top 10 der meistgenutzten Sprachen. Vor 10 Jahren kam das .Net, und brachte somit eine komplett neue Version von VB mit sich. VB ist eine Syntaktisch sehr einfache und gut nachvollziehbare sprache, und allein deshalb schon unter Anfängern sehr beliebt. Durch das .Net wurde auch der Befehls Umfang enorm erhöt, so ist es mitlerweile möglich mit wenigen zeilen Code Komplexe programme zu schreiben. Desweiteren bietet Visual Basic sehr einfach wege um Fenster, sogenannte Forms unter Windows zu erstellen. Das alles macht VB zu einer sehr anfängerfreundlichen Sprache.
      VB fand früher einsatz in Simplen Fenster programmen wie z.b. dem Windows Task Manager, und auch einige teile des Windows Explorers wurden in VB (Damals VB 6) geschrieben. Mittlerweile sind allerdings viele VB Programmierer auf C# Umgestiegen.

      Doch die Nachteile sind auch nicht wegzulassen: Nun als Microsoft Sprache ist VB an Windows gebunden, und als das .Net kam, ist es auch an die .Net version gebunden.
      Das .Net funktioniert ähnlich wie Java, und ist daher auch Langsam und Resource fressend. Es sind zwar nur 2 Nachteile, dafür sehr gravierende.

      C# Die Microsoft Lösung: C# kam mit dem .Net und bietet somit den selben Umfang wie VB, um genau zu sein hat C# nur eine andere Syntax. C# bietet die selben vor und nachteile wie Vb.

      Delphi: Delphi ist eine Objekt orientierte weiterentwicklung der Sprache Pascal, ist etwa 40 Jahre alt, und somit eine der ältesten Sprachen. Delphi ist die älteste noch genutzte Objekt Orientierte Programmiersprache, und entgegen anderer sprachen wurde über 40 Jahre hinweg nie aufgehört dran weiter zu Entwickeln. Damit hat Delphi einen sehr großen befehlsatz, und gehörte auch mehr als 20 Jahre lang zu den Top 3 der Meistgenutzen Sprachen, und wurde sehr oft zum Einstieg in die Programmierung gelehrt/gelernt. Das liegt daran das Delphi eine sehr strukturierte Sprache ist, und Anfängern wird somit schon von Anfang an das Strukturierte und Saubere Programmieren beigebracht. Die Delphi Entwicklungsumgebung ist sehr gut durchdacht und bietet alles was man zum entwickeln von Programmen braucht. So kann man in Delphi ganz einfach Fenster/Forms erstellen, erziehlt somit auch schon schnell erste erfolge. Delphi hatte einen großen einfluss auf viele Sprachen wie z.B. Java oder C# und VB, was das umsteigen sehr leicht macht. Dazu ist Delphi gerade wegen dieser Struktur sehr schnell, und hat eine sehr gute Fehler erkennung. Ein weiterer Vorteil ist das Delphi programme unter jeder Windows version von Dos bis Windows 7 Ausführbar sind. Und mitlerweile gibt es auch eine Delphi version für das .Net (Siehe Visual Basic).

      Der haupt Nachteil an Delphi ist das es was Kostet. Die Personal kostet jeh nach dem wo man sie holt / welche Version man sich holt zwischen 25€ und 100€, und die damit verwendete Software darf nicht kommerziell verwendet (Verkauft) werden. Dafür benötigt man die 2000€ Version. Ein weiterer nachteil ist das Delphi Windows gebunden ist, und so nicht unter Mac oder Linux verwendet werden kann. Auch als nachteil könnte man anführen, dass man nicht den Windows XP/ Vista/7 Style verwenden kann, die Programme sehen aus wie aus Windows 2000.
      Und gerade diese Strukturierung kann zu manchen "unbequemlichkeiten führen"

      Free Pascal: Da Delphi was kostet gibt es das Projekt Free Pascal, was die entwicklung in Object Pascal (Früherer Name von Delphi) kostenfrei und unter allen Betriebsystemen (Windows, Linux, Mac, Game Boy, iPhone etc) ermöglicht. Und Lazarus Programme haben Styles (also sehen nicht wie windows 2000 aus)

      Allerdings ist die Entwicklungsumgebung von Free Pascal, Lazarus, noch in der Entwicklungsphase, und weist daher noch ein paar "Features" (Bugs) und unbequemlichkeiten auf, die man bei Delphi nicht hat. Außerdem ist Lazarus in manchen Beziehungen einfach unheimlich kompliziert.


      Da ich die Sprachen nur kurz angesprochen habe solltet ihr bei Interresse auch noch einmal Wikipedia zu rate ziehen, oder seht euch einfach mal hier im Forum um.

      Nun wie wählt man am besten die Programmiersprache. Beim Abwägen der Vor- und Nachteile solltet ihr auf folgende Faktoren achten:
      1. Unter welchem System entwickle ich: Wenn ihr vorhabt unter Windows Programmieren zu lehrnen, so fallen natürlich alle nicht Windows Sprachen weg, gleiches gilt für Linux und Mac
      2. Welche Sprache sagt mir am ehesten zu: Nach dem Ansehen der Sprache, ist das beste einfach mal sich zu fragen, welche Sprache einem spontan am ehesten zusagt.
      3. Budget: Will ich geld ausgeben, wenn ja wie viel.
      4. Interressen: Will man sich lediglich das leben mit 1-2 simplen hilfs programmen erleichtern so brauch man sich nicht an etwas sehr kompliziertes wie C zu setzten. Da sich die interressen aber auch im laufe der Zeit ändern sollte man diesen punkt nicht allzu sehr gewichten
      5. Komplexität: Willst du eine sehr einfache sprache wie z.B. VB oder willst du was komplexes wie z.B. C, wo du dich zwar mehr reinhängen musst, aber auch wesentlich bessere Resultate rausbekommen kannst.


      Nach dem entscheiden geht es nur noch ans lehrnen, dafür schwören einige auf Bücher, andere lehrnens auch ohne, wiederum andere gebens nach 2 Wochen auf.

      Einige Bücher:
      Java: Java ist auch nur eine Insel.
      C: C von A Bis Z
      VB, C#: Irgend ein OpenBook
      Objective C: Cocoa Programming vor Mac OS X (NUR AUF ENGLISCH LESEN!!)
      C++: C++ von A bis Z
      Delphi/Free Pascal: Delphi für Kids (ist Delphi 7 dabei, was eigentlich sonst 70€ kostet) für einen sehr leichten Einstieg


      Abschlusswort: Programmieren lernen ist ein vorgang über mehrere Jahre, das sollte man bedenken.
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • Vielen dank! Besonders durch den "Fragebogen" am Ende, konntest du mir helfen.

      1. Windows
      2. C++, C#, Visual Basic
      3. Nein
      4. mehrere Umfangreiche Programme
      5. bessere Resultate und schnelle Programme

      Habe es ausgefüllt, ich denke C#, Visual Basic
      (ist ja beinahe das selbe, außer der Syntax) oder C++ zu nehmen.
      Ich werde es mir nochmal überlegen,
      da ich im Moment wenig Zeit habe,
      lohnt es sich so wie so noch nicht anzufangen.
    • @Assaki
      Nimm am besten C#, da VB ja durch das .NET Framework soweit den gleichen Funktionssatz hat.
      Somit fällt dir der spätere Umstieg auf C++ schonmal durch die Syntax nich so schwer.
      Außerdem hast du bei C# den Vorteil von XNA, was sich gut eignet, um mal ins Spieleprogrammieren reinzuschnuppern, falls du das irgendwann mal vor hast.

      Falls du mal weitere Informationen haben möchtest, kannst du ja gerne mal die Links in meiner Signatur ansehen, dort findest du immer wieder auch ein paar Dinge, u.a solche, die nicht auf MCore veröffentlicht werden aus verschiedenen Gründen
    • Hab mir bereits C++ angeschaut und Java programmiert.
      Java gefiel mir an sich besser, weil die Sprache einfacher gestaltet ist und ohne große Hürden auch auf Linux rennt. C++ sah ich nur den Vorteil der flexibilität, da man alles selbst machen musste und dadurch auch soweit alles machen konnte und natürlich der Vorteil der Stabilität. Es ist eben eine ausgereifte Sprache, die sehr viel Potential hat.
      Andere Sprachen wie Java sollte man aber dennoch nicht irgendwie nach hinten stellen. Auch diese haben ggü. C++ ihre Vorteile. Und die hier genannten Nachteile von z.B. Java sollte man nicht übertrieben wahrnehmen. Nicht, dass die Sprache im vgl. zu C++ keine Resourcen frisst oder langsamer ist, aber natürlich auch nicht wirklich merklich mehr als C++. ;)
    • aber bei C++ kann man auch viel falsch machen, gerade weil man so viel selbst machen muss kann es sein das man letztendlich so einen scheiss sich zusammenschreibt der dann einfach nur lahm ist
      und doch java braucht merklich mehr als eine kompilierte sprache, es kommt nur auf die anwendung an, bei schleifen die z.b. +300000 mal durchlaufen ist der unterschied schon extrem, aber bei ganz normalen programmen die vllt nur 1-2 schnelle algorythmen haben ist der unterschied kaum da
    • Was muss ich im Vergleich zu anderen Sprachen in C++ selber machen (bis auf die Verwaltung vom Heap)?

      und doch java braucht merklich mehr als eine kompilierte sprache, es kommt nur auf die anwendung an, bei schleifen die z.b. +300000 mal durchlaufen ist der unterschied schon extrem, aber bei ganz normalen programmen die vllt nur 1-2 schnelle algorythmen haben ist der unterschied kaum da

      Hast du schonmal Programme wie den JDownloader, Netbeans oder Eclipse unter Linux ausgeführt? Bei einer solchen Aussage wohl eher nicht ...
    • Hast du schonmal Programme wie den JDownloader, Netbeans oder Eclipse unter Linux ausgeführt? Bei einer solchen Aussage wohl eher nicht ...

      Wer java nur unter linux programmiert nutzt ja nichtmal den hauptvorteil von java

      Was muss ich im Vergleich zu anderen Sprachen in C++ selber machen (bis auf die Verwaltung vom Heap)?

      Vergleich mal den mitgelieferten funktionsumfang von C++(von den ganz normalen gcc libs) und dem .Net, der ist wesentlich kleiner da musst du wesentlich mehr selbst machen
    • Wer java nur unter linux programmiert nutzt ja nichtmal den hauptvorteil von java

      Was hat das mit meiner Aussage zu tun? oO

      Vergleich mal den mitgelieferten funktionsumfang von C++(von den ganz normalen gcc libs) und dem .Net, der ist wesentlich kleiner da musst du wesentlich mehr selbst machen

      Konkrete Beispiele?
    • Was hat das mit meiner Aussage zu tun? oO

      wenn du sagst dass diese programme unter Linux schnell sind, bedeutet das das Java unter Linux schnell ist, aber wenn man Java verwendet will man gerade nicht nur unter Linux programmieren. und java unter mac z.b. ist übelst lahm (Eclipse kann man vergessen)
      Konkrete Beispiele?

      Sockets. Die TCP client klasse macht das verwenden von sockets so einfach weil MS einem schon einiges an arbeit abgenommen hat