Leicht zu erlernende Programmiersprachen, welche viele Bereiche abdecken...

mischaef

Kassettenkind
Teammitglied
Registriert
Aug. 2012
Beiträge
6.151
Moin zusammen,

gerade im Bereich der Programmiersprachen hat sich in der letzten Zeit ja so einiges getan, gerade was den leichteren Einstieg und Erlernbarkeit angeht. Daher meine Frage, welche aktuell so die gut (oder leicht) zu erlernenden Sprachen sind? Sie sollten natürlich auch ein paar Eckpunkte erfüllen:

  • leicht erlernbare Syntax, "schnelle" Resultate zur stetigen Motivierung, aber auch für größere Projekte geeignet
  • auch ohne Interpreter startbar - also einfach per exe-Datei, ohne große Verrenkungen
  • Programmierumgebung sollte bezahlbar sein
  • Datenbankanbindungen ohne weiteres möglich
  • schon gut verbreitet um genügend Literatur zu finden
  • vernünftige GUI-Erstellung

Ich selber habe grundlegende Erfahrungen in PHP/C/C++, welche sich in vielen Dingen ja ähneln, in meinen Augen am Anfang noch einen leichten Einstieg bieten, später aber recht komplex werden.

Was kennt ihr da so? Und wenn ja, was schätzt ihr an der Sprache oder weswegen habt ihr sie gewählt?

Ach ja, noch etwas: Bitte keine spitzfindigen Diskussionen, warum PHP schlecht ist und andere Sprachen so gut sind - nur weil man PHP vielleicht nicht mag. Aber vielleicht könnte diese Diskussion auch Einsteigern helfen.

Beste Grüße

Michael
 
C# + Visual Studio Community Edition (= Kostenlos solange nicht kommerziell)

Von der Einstiegskomplexität nehmen sich alle "verbreiteten" Hochsprachen finde ich nichts. C# ist dank hoher Verbreitung und exzellentem Editor finde ich zZ das Mittel der Wahl solange man Desktopanwendungen programmiert.

Die Einstiegshürde für WinForms Fensteranwendungen ist mMn gering. Wenn man dann schon etwas drin ist kann man zu WPF wechseln und damit sehr flexibel arbeiten.

Einziger nachteil, dass die zur EXE passende .NET umgebung intsalliert sein muss. Ist bei Windows aber eh schon der Fall. Mit .NET Core kann man inzwische sogar auch das gleiche Kompilat auf Linux ausführen.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: areiland und DubZ
C# gegen .Net oder .Net Core. Objektorientiert, viele viele Möglichkeiten, zumindest unter Visual Studio bekommt man Intellisense und das Programm schreibt sich fast von selber.

Weiteres Plus, man kann Bibliotheken erstellen und die in Powershell verwenden. Das spart Batch und ermöglicht unkomplizierte Laufzeitentwicklungen.

PHP fällt raus wegen Interpretersprache. Dasselbe für die restlichen üblichen Kandidaten wie python oder ruby.

Gegenindikation ist die Objektorientierung. Das ist keine Eigenschaft einer spezifischen Programmiersprache... aber hier liegt die gesamte Konzeption zugrunde. Klar kann man einfach eine einzelne Methode in einer einzelnen Klasse haben und einfach prozedural drauflostippen... aber dann verpaßt man die Möglichkeiten von OO.

Lektüre wäre deshalb empfehlenswert in bezug auf alles was OO heißt. Kann auch für JAVA oder komplett sprachneutral sein.
 
  • Gefällt mir
Reaktionen: areiland
Ich würde die Programmiersprache nach meinen Zielen aussuchen statt umgekehrt; also erstmal überlegen, was ich implementieren möchte, und dann schauen, welche Sprache sich eignet.
Abgesehen davon sind Programmieren lernen und eine Programmiersprache lernen zwei unterschiedliche Dinge. Das eine sind Algorithmen, Konzepte etc., und die Programmiersprache ist dann letztlich nur das Werkzeug, Ersteres umzusetzen. (Ob ich einen Hammer oder einen Schraubendreher nehme, hängt dann davon ab, ob ich einen Nagel in die Wand hauen oder eine Schraube eindrehen möchte, nicht davon, was besser in der Hand liegt.)

Gruß Jens
 
C#:
  • ähnlich zu C++ (C-Style, Objektorientierung)
  • kostenlose gute Programmierumgebung: VS Community
  • produziert Exes
  • Datenbankanbindung sehr einfach möglich (nicht einmal SQL ist nötig via Frameworks)
  • vmtl. beste Möglichkeit für GUIs in Windows
  • sehr verbreteitet
  • schnelle Resultate: endlose Anzahl an leicht einzubindenden Libraries + .NET-Framework

mischaef schrieb:
  • auch ohne Interpreter startbar - also einfach per exe-Datei, ohne große Verrenkungen
Anmerkung:
Auch interpretierte Sprachen kann man als exe ausliefern (welche dann den Interpreter enthält).
 
  • Gefällt mir
Reaktionen: BeBur
Ein wichtiger Aspekt ist hier implizit angenommen den man vielleicht nochmal erwähnen sollte, die C# GUI Anwendungen sind erstmal nur für Windows. Wenn die Anwendungen auch unter Linux oder Mac laufen sollen, wäre das wichtig zu wissen. An sich ist aber C# mit .NET Core auch platformunabhängig, aber bisher noch ohne GUI Libraries.

Die Einschränkung auf einfache exe Dateien ist die größte Einschränkung in der Liste, da würde ich mir überlegen ob das wirklich ein hartes Ausschlusskriterium ist.
 
  • Gefällt mir
Reaktionen: BeBur und Hayda Ministral
Ich empfehle Electronjs (https://electronjs.org/):

  • Plattform unabhängig
  • Man braucht keine Libraries (nur die „EXE“ reicht)
  • JavaScript als Basis (einfache Extrem verbreitete Sprache)

Anwendungen auf Electron-Basis:

  • Discord
  • Slack
  • Atom
  • Teams

....

IDE:

  • Atom
  • Visual Studio Code

oder jede beliebige Text-Editor
 
Electron ist ein Framework, keine Programmiersprache.
Und Javascript ist ebenfalls keine Programmiersprache. Ok, das ist nur meine persönliche Meinung. Es gibt ja auch die Leute, die auf die Frage nach einem bequemen Nachtlager empfehlen sich einen glühenden Fleischerhaken durch die Schulter zu rammen und diesen dann an einem Astloch zu befestigen um daran hängend die Nacht zu verbringen.
 
  • Gefällt mir
Reaktionen: merlin123, r15ch13, mental.dIseASe und 2 andere
Ok, dass es jetzt C# ist wundert mich dann doch ein wenig - hatte bis jetzt immer das Gefühl, dass recht "verächtlich" auf die Sprache geblickt wird.

Das manche Interpreter-Sprachen auch in Exe-Dateien "gepackt" werden können weiß ich, aber ich habe mich vor ein paar Jahren mal mit Python beschäftigt, da war das noch ein Graus. Keine Ahnung wie das heute ist.

Das Anwendungsgebiet spielt bei meiner Frage erst mal keine Rolle - es geht ja um die Grundlage und wie weitreichend diese ist. Da wäre eine Sprache, die von sich bereits viele Bereiche abdeckt, sicherlich besser als eine spezielle Lösung. Oftmals eröffnen sich ja erst mit der Erfassung der Möglichkeiten neue Ansprüche oder Ideen - wenn man also erst weiß, was alles möglich ist.
 
Ich verstehe auch nicht ,warum hier so viele C# empfehlen. Das sind alles persönliche Meinungen und Eindrücke. Dann gibt es welche die meinen Javascript wäre keine Programmiersprache etc. Also mit Objektivität hat das nichts zu tun. Fraglich ist, warum hier nach "schnelle" Ergebnisse gezielt wird. Soll nichts gelernt werden? PHP/C/C++ waren am Anfang leicht und wurden dann schwerer. Hä? Das wird sich auch mit allen anderen Sprachen nicht ändern. Keine Sprache übernimmt das Programmiren von alleine.

Grundsätzlich würde ich sagen, dass man das Programmieren nicht mit einer bestimmten Sprache am besten lernt. Hat man sich Wissen zu bestimmten Design Patterns, Programmierparadigmen und ähnliches angeeignet, ist die Programmiersprache nur eine Wahl des Projektes/der Anforderung an die Software.

Nimm dir einen Editor und eine Sprache deiner Wahl und fang einfach an zu Programmieren, bzw. vervollständige deine Kenntnisse. Klassen, Vererbung das alles sind Dinge, die dir in jeder Sprache irgendwann in größeren Projekten begegnen werden. Von vorner herein DIE perfekte Sprache zu finden ist ein problematisches Unterfangen. Programmieren lernen, anstatt eine spezifische Sprache zu lernen ist am Anfang das wichtigste.
 
  • Gefällt mir
Reaktionen: JP-M und GustlPC
Ohne die Anforderung dass eine .exe leicht erstellbar sein soll und dass "vernünftige GUI-Erstellung" möglich sein soll hätte ich sofort Python empfohlen. Warum ich es nicht tue, ist weil ich nicht weiß wie kompliziert das bei Python zur Zeit ist und wie viel Aufwand man da treiben muss.

Von der Syntax her zum Beispiel empfinde ich Python aber (gerade am Anfang) sehr viel leichter als C#. Auch muss weniger Aufwand betrieben werden, um zum Beispiel eine Datei zu öffnen, auf eine Datenbank zuzugreifen etc. Und es ist auch für größere Projekte geeignet.

Unterm Strich ließt sich der erste Beitrag aber bissel wie "ich möchte EINE Programmiersprache die ALLES kann und SUPERLEICHT leicht erlenbar ist". Das gibt es glaub so nicht; es ist immer mehr oder weniger Lernaufwand nötig und meist kommt es drauf an, was denn gemacht werden soll. Mit den hier genannten Sprachen kann man sogut wie alles irgendwie machen, es sind halt bestimmte Sachen mit der einen einfacher als mit der anderen.

Unterm Strich würde ich sogar drei Programmiersprachen lernen (und vermutlich mit einer der ersten zwei anfangen): C#, Python und Javascript. Warum? C# ist, ähnlich wie Java, C++ etc., ein Beispiel für eine Klasse an Programmiersprachen, die sehr stark klassenorientiert sind und einen gewissen Stil haben. Python ist ein Beispiel für eine (interpretierte) Skriptsprache mit recht sauberer Syntax, die sich recht anders programmiert wie C#. Und Javascript ist einfach DIE Websprache zur Zeit, die würde ich lernen nach dem Motto "kann man immer brauchen, spätestens wenn man irgendwas im Web macht".

Zuletzt stimme ich @Tokolosh zu: Das wichtigste ist anfangen. Ein Projekt raussuchen, eine der hier genannten Sprachen, los geht's. Der Rest ergibt sich auf dem Weg. Und mit mehr Erfahrung (und mehr Einsicht in verschiedene Sprachen) lernt man dann auch, welche für was besser geeignet ist, welche einem persönlich eher zusagt etc.
 
  • Gefällt mir
Reaktionen: jlnprssnr
schasi schrieb:
Unterm Strich ließt sich der erste Beitrag aber bissel wie "ich möchte EINE Programmiersprache die ALLES kann und SUPERLEICHT leicht erlenbar ist".

Nö, das hat damit nichts zu tun - PHP und C/C++ beherrsche ich zumindest soweit, dass ich meine eigenen Projekte damit umsetzen kann - ich bin vielleicht kein Profi aber sicherlich weit von einem Anfänger entfernt. Es ging eher um den Blick über den Tellerrand hinaus...
 
Die "schnellsten Ergebnisse" erzielt man und "einfach zu erlernen" sind grafische Programmiersprachen wie zB Labview. Solche Sprachen sind für Rapid Prototyping prädestiniert, weil man sich eben gerade nicht um Syntax Gedanken machen muss, sondern nur Symbole zusammenklickt.

Ich will damit nicht sagen, dass Labview hier wirklich das Passende ist, sondern nur, darauf hinweisen, dass es keine allgemeingültige Antwort gibt.
(Günstig ist Labview im übrigen nicht, würde diesbezüglich also rausfallen)
 
mischaef schrieb:
Moin zusammen,

gerade im Bereich der Programmiersprachen hat sich in der letzten Zeit ja so einiges getan, gerade was den leichteren Einstieg und Erlernbarkeit angeht. Daher meine Frage, welche aktuell so die gut (oder leicht) zu erlernenden Sprachen sind? Sie sollten natürlich auch ein paar Eckpunkte erfüllen:

  • leicht erlernbare Syntax, "schnelle" Resultate zur stetigen Motivierung, aber auch für größere Projekte geeignet
  • auch ohne Interpreter startbar - also einfach per exe-Datei, ohne große Verrenkungen
  • Programmierumgebung sollte bezahlbar sein
  • Datenbankanbindungen ohne weiteres möglich
  • schon gut verbreitet um genügend Literatur zu finden
  • vernünftige GUI-Erstellung

Ich selber habe grundlegende Erfahrungen in PHP/C/C++, welche sich in vielen Dingen ja ähneln, in meinen Augen am Anfang noch einen leichten Einstieg bieten, später aber recht komplex werden.

Was kennt ihr da so? Und wenn ja, was schätzt ihr an der Sprache oder weswegen habt ihr sie gewählt?

Ach ja, noch etwas: Bitte keine spitzfindigen Diskussionen, warum PHP schlecht ist und andere Sprachen so gut sind - nur weil man PHP vielleicht nicht mag. Aber vielleicht könnte diese Diskussion auch Einsteigern helfen.

Beste Grüße

Michael

Python. Easy erlernbar, Gui geht, man kann als Exe kompilieren wenn man mag, gut dokumentiert, Syntax easy, wenige Fallstricke.
Ergänzung ()

schasi schrieb:
Ohne die Anforderung dass eine .exe leicht erstellbar sein soll und dass "vernünftige GUI-Erstellung" möglich sein soll hätte ich sofort Python empfohlen. Warum ich es nicht tue, ist weil ich nicht weiß wie kompliziert das bei Python zur Zeit ist und wie viel Aufwand man da treiben muss.

Das ist nicht weiter wild. http://www.py2exe.org/index.cgi/Tutorial
 
Zuletzt bearbeitet von einem Moderator:
  • Gefällt mir
Reaktionen: Kanibal
Warum C#? Ganz einfach.
  • Ist eine C-orientiere Sprache, sprich für einen mit PHP/C/C++ Kenntnissen trivial zu erfassen.
  • Ist verbreitet, man findet also breit Unterstützung dafür, einschließlich fertigen Framworks, Howtos, sonstwas.
  • Läuft seit Net Core "überall" , wie erwähnt mit ein paar Einschränkungen, aber das wird sich absehbar noch geben.
  • Geht leicht von der Hand.

Natürlich kann man auch Python nehmen oder PHP oder sonst irgendwas. Aber die Annahme, daß man eine konkrete PS für ein konkretes Problem braucht, ist einfach falsch. Die sind ALLE turingvollständig, ja, auch javascript. Man kann mit jeder Progammiersprache dasselbe machen auch mit Visual Basic, wenn man das will. Es gibt von Seiten der Sprache nicht den GERINGSTEN Grund, X zu nehmen und Y in die Tonne zu tun AUSSER persönlicher Präferenz.

... Und anderen Meta-Angelegenheiten, wie zB Support für die bereits lizensierte IDE oder breite Akzptanz oder Plattformunabhängigkeit oder weiß ich was.


Natürlich muß man zunächst mal die Grundlagen haben. Aber wie oft wollen wir das noch durchkauen? Wenn wir jemandem gesagt haben: du sollst dich mit der Strukturierung von Problemen befassen, um erstmal das real existierende Problem am PC umzusetzen, was kommt dann danach? Gar nichts mehr?

Ich persönlich find es albern, hier in diesem konkreten Fall mit einem gänzlich anderen Ansatz anzufangen. Wer geschweifte Klammern kennt, wird mit Einrücken und def xyz: zumindest anfänglich nicht zurechtkommen. Dann lieber JAVA oder eben C# oder sonst irgendeine C-orientierte Sprache, wo man sich gleich zuhause fühlt.

In fact wäre JAVA meine Standardempfehlung. JAVA hat aber das Problem, daß die JVM immer noch ein Ressourcenfresser sondergleichen ist. JAVA daher idealerweise für Portabilität (wobei mit Net Core weiter abgegraben wird) ansonsten C# als lose Variante von JAVA. Python oder Ruby nur, wenn man mit C-basiert nicht klarkommt oder wenn man neu anfangen will. Interpretersprachen allgemein, wenn man schnell entwicklen können möchte.

Prozedural, wenn man lineares Denken gewohnt ist oder lange Erfahrung mit sowas wie Batch hat. Funktional gibts kaum noch, mag aber dem einen oder anderen Spaß machen.
Was bleibt ist OO.

Javascript würde ich persönlich weglassen, außer es geht wirklich um Webanwendungen. Nicht ohne Grund gibts heutzutage noch drölf Spachen mehr, die alle zu JS kompiliert werden können -- standard-JS erlaubt einfach zuviel, man kann viel zuviel Mist bauen, nur noch gefolgt von VBS, was aber schon lange abgekündigt ist.


Schraube? Nagel? Wenn ich was aufhängen will, dann guck ich, was ich da hab, und fange nicht an, drei Monate Wissenschaft zu betreiben. Wenn ich einen Hammer hab, dann nehm ich den Nagel. Wenn ich die Schraube hab, dann guck ich nach dem Schraubenzieher. Wenn ich in die Wand nicht schrauben KANN, muß ich halt den Hammer und den Nagel nehmen. Und wenn die Erfahrung gezeigt hat, daß Hammer plus Irgendwas üblicherweise in blauen Fingern resultiert, dann versuch ich zu kompensieren.
Immer nach Kontext.
Der Kuckucksuhr ist es aber wurstpiepegal, woran sie hängt; da ist wichtiger, ob ein Kopf oben dran ist am Nagel (oder der Schraube) weil sie sonst beim nächsten Anschauen runterfliegen würde.
 
  • Gefällt mir
Reaktionen: Defender1st, Raijin und KeyKon
ich denke anhand der Beiträge kannst du eine Tendenz erkennen die ich befürworte: c# und python wird deinen Eckpunkte denke ich am Nahesten kommen
 
Tokolosh schrieb:
Ich verstehe auch nicht ,warum hier so viele C# empfehlen.

Punkte die für C# sprechen:

- sauber strukturierte Sprache (das spricht gegen JavaScript, welches bei jedem der eine höhere Programmiersprache kennt einen Würgereflex auslösen dürfte)

- mit Visual Studio Community steht eine ausgesprochen Einsteiger- und Bedienerfreundliche Entwicklungsumgebung bereit - FALLS Du Windows als Betriebssystem hast und Dich darauf beschränkst

- die "ruhende Masse" an Supportern in Form von Webseiten, Blogs, Foren, Projekten, Frameworks, Tools, etc. ist groß

- durch Mikrosofts neu erwachte Liebe zu Open Source ist zwar nicht ausgeschlossen, aber ausreichend unwahrscheinlich dass die erreichte Plattformunabhängigkeit wieder zurück genommen wird

Punkte die gegen C# sprechen:

  • es stammt von Mikrosoft
  • es stammt vom Bösen unter der Sonne
  • es stammt von dem Konzern der dem Teufel Schulungsunterlagen zur Verfügung stellt
  • es ist des Teufels weil (siehe die ersten drei Punkte)

- C# ohne Dotnet Core zu verwenden ist nahezu Sinnfrei, .Net Core ist, da ohne GUI, nur für einen Bruchteil der Aufgaben unter Linux verwendbar

- C# ist für portable Anwendungen etwa so gut geeignet wie ein 30 Tonnen Bergepanzer um damit die Kinder zur Schule zu fahren


Das sind alles persönliche Meinungen und Eindrücke.

Ja. Und nun?

Dann gibt es welche die meinen Javascript wäre keine Programmiersprache etc. Also mit Objektivität hat das nichts zu tun.

Natürlich nicht. Nur Scharlatane würden behaupten bei der Auswahl der Programmiersprache objektive Kriterien zu verwenden.

Grundsätzlich würde ich sagen, dass man das Programmieren nicht mit einer bestimmten Sprache am besten lernt. Hat man sich Wissen zu bestimmten Design Patterns, Programmierparadigmen und ähnliches angeeignet, ist die Programmiersprache nur eine Wahl des Projektes/der Anforderung an die Software.

Du meinst wie so ein ZEN-Ding wo man 5 Jahre lang mit einem Bogen auf eine Zielscheibe zielt, das Atmen übt, die Körperspannung optimiert, den richtigen Stand erlernt - und dann sagt einem der ZEN-Meister: "So, nun kannst Du perfekt Bogenschießen"?

ImA: Vollkommen an der Realität vorbei. Man lernt Programmieren indem man programmiert. Man lernt am leichtesten wenn man sich beim Programmieren auf solche Dinge wie DesignPatterns, Programmierparadigmen und ähnliches Konzentrieren kann weil man eben nicht ein halbes Jahr damit verbringt heraus zu finden was die 2376 Fehlermeldungen beim npm update wohl bedeuten mögen oder was eine von klingonisch nach Transcript übersetzte Compilermeldung wohl besagen könnte. Hilfreich sind auch möglichst direkt lesbare Programmbeispiele. Schlechten und/oder unlesbaren Code zu erzeugen ist in jeder PS möglich, es gibt aber einige in denen das deutlich schneller unabsichtlich geschieht als in anderen.




Nimm dir einen Editor und eine Sprache deiner Wahl und fang einfach an zu Programmieren

Ja, guter Ratschlag.
Ergänzung: Bevorzuge die Programmiersprache und das Framework, mit dem Deine Umgebung arbeitet. Mach Dich zum Teil einer Gruppe (Lerngemeinschaft), das erleichtert vieles.
 
Dann geb ich auch nochmals kurz meinen Senf dazu.

Kotlin:
https://kotlinlang.org/
https://kotlinlang.org/docs/reference/basic-syntax.html

Baut auf Java auf ist aber nicht komplett davon abhängig.

Multifunktional: Nativ, JVM, Javascript; C style ohne Semikolon

IDE Intellij community ist open source und gratis

Im Vergleich aber zu Python durch die statische Typisierung meiner Meinung nach um einiges komplexer für Anfänger...
Ansonsten wurde eigentlich schon alles gesagt
 
Zuletzt bearbeitet:
###Zaunpfahl### schrieb:
Im Vergleich aber zu Python durch die Typisierung meiner Meinung nach um einiges komplexer für Anfänger...
Python hat auch Typisierung, aber keine statische -> eher schwieriger
Außerdem haben wir hier keinen Anfänger.
 
Zurück
Oben