Programmieren lernen - welche Sprache?

Hallo,

da ich die Zukunft vor allem im Internet und vor Computern sehe, interessiere ich mich sehr dafür, das Programmieren zu erlernen.

Da ich sehr kreativ veranlagt bin und jetzt schon zahlreiche Ideen hätte, was für Applikationen und Webseiten man erstellen könnte, um die virtuelle Welt noch ein bisschen schöner zu gestalten, möchte ich zu programmieren lernen.

Nun zu meiner Frage: Wenn ich zum Beispiel(!) eine Community programmieren möchte, in der man live miteinander interagieren (chatten) kann, in der man sich registrieren und Profile erstellen kann und so weiter, auf welche Programmiersprache/n sollte ich setzen und vor allem: wieso ausgerechnet auf Sprache X?

Und wenn ich das Ganze dann noch zusätzlich als App für z.B. iOS und Samsung anbieten will, welche Sprache benötige ich für das Vorhaben?

Ich durchstöbere seit gestern zahlreiche Internetseiten, werde aber nur zunehmend noch mehr verwirrt.

Über eine hilfreiche Antwort wäre ich dankbar und verbleibe

mit freundlichen Grüßen :slight_smile:

Hallo,

Das ist eine alte und viel gestellte Frage, geht aber erst einmal am Ziel vorbei.

Das Grundlegende beim Programmieren Lernen ist die Zerlegung einer Aufgabe in viele kleine, mathematisch zu beschreibende, Teilaufgaben. Dabei muss man auch daran denken, wie der Computer reagieren soll, wenn etwas nicht geht oder nicht passt.
Eine Programmiersprache ist eigentlich eine Form reiner Mathematik.

Dies ist die Hauptaufgabe, welche es zu lernen gilt. Dazu gibt es auch noch eine Menge an Hilfsmittel, wie Fluss- und Zustands-Diagramme oder Nassi-Shneiderman usw.

Bis hier hin hat alles einmal gar nichts mit einer Programmiersprache zu tun.

So lange man innerhalb der prozeduralen Sprachen bleibt, gibt es eigentlich keinen grundsätzlichen Unterschied bei der Zerlegung einer Aufgabe in die Teilschritte. Bei den KI-Sprachen ist es dann anders.

Die verschiedenen Sprachen wurden unter verschiedenen Gesichtspunkten entwickelt.
BASIC wurde ursprünglich als einfache Einsteiger-Sprache entwickelt, bei welcher man alles gleich ausprobieren kann (Interpreter). Allerdings verleitet dies zum basteln, also unstrukturierten Programmen.

Pascal, später zu Modula und Delphi weiterentwickelt, war als reine didaktische Sprache gedacht. Da gab es keine Abkürzungen und faule Tricks. Allerdings war Pascal nicht wirklich ideal für Praktische Probleme geeignet.

C, später objektorientiert zu C++ weiter entwickelt, hatte den umgekehrten Ansatz. C wurde entwickelt um Unix schreiben zu können und zwar möglichst Hardware unabhängig. Hier sind die wildesten Tricks möglich, welche in der Praxis manchmal nötig sind.

COBOL war als einfache Sprache für Büroanwendungen gedacht und sollte der normalen englischen Sprache möglichst Nahe kommen. Da tippt man dann eine ganze Menge.
Fortran war gedacht für die einfache Umsetzung mathematischer Formeln.

ADA war dann vom US-Verteidigungs-Ministerium (DoD) als universelle Sprache für alles entwickelt worden. Damit kann man einen kleinen µC genau so gut programmieren wie einen Super-Computer. Damit werden aber auch Atomwaffen wie auch Funkgeräte und GPS gesteuert. Das grosse Problem von ADA ist, dass sie einerseits von einem Gremium geschaffen wurde, welche sich nicht immer einig wurde, als auch die ganz unterschiedlichen Anforderungen von ganz kleinen und sehr grossen Systemen.
Das Problem von ADA ist nun, dass es für die meisten Probleme drei unterschiedliche Methoden gibt. Ein typisches Problem ist z.B. die Synchronisation von Teil-Aufgaben. Mischt man jetzt die Befehle der unterschiedlichen Methoden, kommt es schnell zu eine Katastrophe. :frowning:
Die meisten Entwickler von ADA warnen seit Jahren vor der Verwendung von ADA, das DoD besteht aber auf deren Benutzung.

Strukturierte, saubere und objektorientierte Programme kann man in Jeder Sprache schreiben, selbst in Assembler, aber manche Sprachen zwingen einem mehr dazu als andere. Man bekommt aber auch unlesbaren Spaghetti-Code in jeder Sprache zu Stande!

Das praktische Problem ist also, was man später machen will und wo sich die Sprache einfügen soll.
Deine Aufgabe lässt sich grundsätzlich in jeder Programmiersprache lösen.
Bei der Web-Lösung spielt dann HTML eine grosse Rolle, dies ist die Seitenbeschreibungs-Sprache für den Browser. Hie wäre dann PHP recht einfach.
Die APPs werden meistens in C/C++ oder Java geschrieben.

Grosse Projekte werden oft in unterschiedlichen Sprachen geschrieben. Je nach Problemstellung sind eben unterschiedliche Sprachen für manche Aufgaben besser oder schlechter geeignet. Allerdings wird ganz am Anfang die Aufgabe in Teilaufgaben zerlegt und da kann man dann entscheiden, welche Sprache für eine solche Teilaufgabe am besten geeignet ist. Allerdings braucht man dazu auch die nötigen Programmierer, welche diese Sprache beherrschen.
Manchmal ist es eine reine Kapazitäts-Frage, welche Sprach man verwendet.
Was machst du, wenn das Ganze in APL mit 10 Zeilen lösbar wäre, du aber niemanden hast der APL kann? Dann muss man halt das Problem mit 500 Zeilen C-Code lösen.

Es gibt also keine eindeutige Antwort auf deine Frage und deshalb sind die Aussagen im Netz auch recht widersprüchlich.

In deinem Fall, solltest du eine Sprache wählen zu der du in deinem Umfeld die beste Unterstützung bekommen kannst.
Zuerst geht es darum zu lernen wie man ein Problem zerlegen muss.
Aber zuerst musst du kleine Brötchen backen, so etwas wie Facebook, ein bekanntes Game oder was hier als Forum vorhanden ist, bekommst du erst in Jahren hin.

MfG Peter(TOO)

Hallo,

Mit einer Sprache ist es da nicht getan. Für iOS benötigst du Objective C (auf dem die iOS Programmiersprache Cocoa aufbaut), für Android wird Java nötig, und für die Datenbank SQL. Für Windows hast du viele Möglichkeiten, von Java bis zu den Sprachen der .NET Plattform. JavaScript für den Client, CSS natürlich. Du wirst dich mit Client- Server Architektur auseinandersetzen müssen und mit Security (du willst ja nicht, dass dein Forum gehackt wird), mit Grafik, Layouttechniken und User Interface, mit serverseitiger Programmierung und Datenbanken, u. U. auch O/R-Mapper.

Ohne fundierte Ausbildung und einfach so mit einer Programmiersprache wird das also leider nicht funktionieren.

Aber ich hoffe du hast nun genug Stichworte um eigenständig weiter googlen zu können.

Gruß
t.

Das ist der grund warum wie andere es schon beschrieben haben eben nicht so einfach ist wie Kuchen backen. Auch mit Kreativität hat das nicht viel zu tun.
Aber um ersteinmal bei Deinem Beispuel zu bleiben. Zum einen solltest Du die Seitenbeschreibungssprache HTML anschauen. Dazu natürlich CSS, Java, Javascript, XML, etc.
Dann solltest Du zum üben einfach mal eine „Community“ unter z.B. der Joomla, Typo3 oder wordpress erstellen. Das sind wie Du nachlesen kannst entsprechende ContentManagementSysteme unter denen man etwas einfacher (zum üben!) solche Strukturen erarbeiten und an halbfertigen Modulen sehen kann wie alles zusammenhängt. wer-weiss-was besteht ja auch „nur“ aus so einem System welches angepasst wurde. DANN benötigst Du noch ein bisschen Wissen über Webserver, Datenbanken, etc. aber das wird eh mit der Zeit von alleine kommen. DANN so in ca. 1Jahr (minimum) werden hier dann weitere Fragen zu Themen wie Security, etc. kommen und dann schauen wir weiter. Da sind Themen wie Design, Benutzerführung / Usability, etc. noch garnicht behandelt. Apps unter iOS oder Android kann man z.B. unter Eclipse in Java programmieren lernen.
Zu all den Themen gibt es natürlich mehr als genug Bücher und ggf. noch ein paar Lehrvideos. Enjoy.

Hallo,
will Programmieren lernne, welche Sprache, hoert sich ein wenig so an wie, will Kuchen backen lernen, welcher Herd, Gas, Elektro, Holzkohle. es kommt auch beim Programmieren auf die Systematik an, zuerst nicht auf Details. Erst mit der zweiten Programmiersprache lernt man, was prinzipiell gleich ist, das ist das Programmieren, die Grundlage. Nimm das erstbeste, nimm dazu spaeter das zweit-naechstbeste, und dann kommst Du allmaehlich rein. Erst danach zielorientiert fuer EINE Aufgabe EINE Programmiersprache waehlen. Nochmal uebertragen auf die Strasse, wenn Du den LKW Fuehrerschein hast, und fuer Moped, dann lernst Du fuer PKW in wenigen Tagen, weil Du das Prinzip drauf hast.
Gruss Helmut

Hallo,

Unter iOS gibt es keine „echte“ JVM, man kann auf JVM-basierende Cross Plattform Development Umgebungen wie Codename One oder RoboVM setzen, oder auf Oracle’s JVM, die die JVM mit der App bündelt. Zu letzterem brauchst du aber JDeveloper und die ADF Mobile Extension. Wie „mächtig“ diese Optionen unter iOS tatsächlich sind, kann ich aber nicht sagen.

Die kommen ganz von alleine, und meistens schneller als man möchte… Ich halte es für fahrlässig ohne entsprechende Vorbereitung irgend etwas selbst programmiertes online zu stellen.

Gruß
t.