Einsteiger Programmiersprachen

C# hat den Nachteil das es nicht zu 100% kompatibel zu Mono ist was bedeutet das es unter anderen Plattformen zu z.B. Linux passieren kann das es ein Programm nicht läuft. Das gleiche gilt auch für Java.
 
new Account() schrieb:
Man gewöhnt sich zu schnell an die Bibliotheken und deren teilweise echt praktischen Zusatzfunktionen. Nur, macht man sich dann keine Gedanken mehr, wie man rudimentäre Sachen selbst entwickeln kann.
Ich merke das bei uns in der Firma immer sehr schnell, ob die an der FH/Uni C# oder Java genutzt haben. Die Denke von "Java-Studenten" ist in der Regel weiter entwickelt, was grundlegende Konzepte angeht.
Ergänzung ()

ModellbahnerTT schrieb:
Das gleiche gilt auch für Java.
Inwiefern? Es gibt wohl keine Sprache die Systemübergreifend besser genutzt werden kann als Java. Mono ist eben nur ein "wir bringen C# auch wo anders hin". Aber nicht wirklich gut eben
 
rg88 schrieb:
Nur, macht man sich dann keine Gedanken mehr, wie man rudimentäre Sachen selbst entwickeln kann.
Ich merke das bei uns in der Firma immer sehr schnell, ob die an der FH/Uni C# oder Java genutzt haben. Die Denke von "Java-Studenten" ist in der Regel weiter entwickelt, was grundlegende Konzepte angeht.
Beispiel? (Ich "kann" nicht wirklich Java).

Neben Mono gibts auch noch .NET Core :freaky:
 
ModellbahnerTT schrieb:
C# hat den Nachteil das es nicht zu 100% kompatibel zu Mono ist was bedeutet das es unter anderen Plattformen zu z.B. Linux passieren kann das es ein Programm nicht läuft. Das gleiche gilt auch für Java.

Das sollte man sich halt klar machen....C# ist primär für Windows gedacht. Wenn man sich aber eh in der Windows-Welt bewegt, ist C# wohl mit der unkomplizierteste Einstieg z.Zt.
 
  • Gefällt mir
Reaktionen: new Account()
rg88 schrieb:
Es gibt wohl keine Sprache die Systemübergreifend besser genutzt werden kann als Java
Python ist besser als plattformübergreifend geeignet. Java hat das Problem das es Fälle gibt wo es zwischen Oracle und dem freien Openjdk zu Inkompatibilitäten kommt.
 
ModellbahnerTT schrieb:
Python ist besser als plattformübergreifend geeignet. Java hat das Problem das es Fälle gibt wo es zwischen Oracle und dem freien Openjdk zu Inkompatibilitäten kommt.

Was aber gerade bei Anfängern eher kein großes Problem sein wird. All die Basic-Sachen laufen eigentlich überall problemlos.
 
rg88 schrieb:
Man gewöhnt sich zu schnell an die Bibliotheken und deren teilweise echt praktischen Zusatzfunktionen.
Das "Problem" hat man aber bei jeder modernen Sprache, denn alle bringen ihr eigenes Framework mit, auch Python oder Java, selbst C++. Ich find das sogar eher einen Vorteil: wozu alles selber entwickeln wenn es schon tausende vorher ebenfalls getan haben? Die Umgewöhnung auf ein anderes Framework erfordert eigentlich nur die effiziente Nutzung einer Suchmaschine wie Google...
 
  • Gefällt mir
Reaktionen: new Account()
Und warum genau ist "plattformübergreifend" jetzt ein ausschlaggebendes Kriterium für einen Programmiereinsteiger? In erster Linie geht es doch erstmal darum, Programmieren zu lernen. Ich bezweifle, dass ein Einsteiger seine Hallo-Welt-Programme auf zig verschiedenen Plattformen laufen lassen wird... Ich würde für einen Einsteiger daher eher eine adäquate IDE, gute Literatur und dergleichen als Kriterien ansetzen.
 
  • Gefällt mir
Reaktionen: BeBur und new Account()
Einfach so programmieren lernen ist nicht. Erstmal klar werden wohin man möchte.

Programme für Windows? Java für Androidapps? C für Arduino und Co? Webseite mit JS, Python, PHP und so weiter.

Vielleicht Brainfuck oder Befunge. Ich persönlich mag Assembler.

Das wichtigste ist ein Ziel. "Ich lerne jetzt programieren" ist schlecht, besser "ich will XY machen".

Ansonsten Logo und Turtle.

Wenns aber ne echte Sprache sein soll.
Lua oder Python. Recht universell. Webseiten, Scripte für CLI, Windows und Linux. Es gibt Implementierungen für Arduino und ESP8266. Und mit Lua kann man in Computercraft und Opencomputers programmieren ;)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: ghecko
JavaScript / TypeScript wäre zum Einstieg auch ganz brauchbar. Da kann man im Browser sehr schnell sichtbare Ergebnisse erzielen. Allerdings ist JavaScript an manchen Stellen ziemlicher brainfuck, daher würde ich in diesem Fall eher zu TypeScript raten im strict mode. Das ist dann zwar auch nur ein restriktiveres JavaScript, aber einige Unschönheiten sind dann "beseitigt" (oder anderes gesagt: "untersagt").
Nach dem Einstieg steht man bei JavaScript allerdings vor einem Problem(chen): Das Ökosystem. Es gibt nicht, wie bei Java oder C#, eine große Auswahl an Standardfunktionalität, sondern man muss sich seinen Kram selbst im npm zusammensuchen. Das ist für einen Anfänger wahrscheinlich ziemlich unübersichtlich und frustrierend.
Aber wie gesagt: Um einfach mal in die Programmierung reinzuschnuppern, ist die Sprache nicht verkehrt.

Ansonsten würde ich auch zu Java oder C# raten. Die Sprachen sind sehr restriktiv (im Vergleich zu JavaScript). Das zwingt dich auf jeden Fall schon mal dazu halbwegs ordentlich strukturiert zu programmieren. Zudem sind Fehlermeldungen während der Programmierung gut brauchbar - was natürlich auch damit zusammenhängt, dass diese Sprachen so manch verrückten Code gar nicht erst erlauben.

Zu Beginn wirst du dich eh erst mal mit Variablen, Typen, Funktionen, Schleifen, If-Else und so herumschlagen. Da sind die aktuellen Hochsprachen alle sehr ähnlich.

Also mach dich nicht verrückt, nimm irgendeine der vorgeschlagenen Sprachen und leg los! Die ersten Wochen sehen eh überall gleich aus. Das wichtigste sind die Konzepte. Wenn man die verinnerlicht hat kann man dann auch ganz schnell auf eine andere Sprache umsatteln.
 
Ich persönlich finde objektorientierte Programmiersprachen wie Java gar nicht so einfach. Klar ist das Auto Beispiel mit vier Rädern, der Klasse Fahrzeuge etc. auf den ersten Blick einfach nachzuvollziehen, doch in der Realität sind Programme viel komplexer. Die saubere(!) Modellierung eines objektorientierten Programms ist meiner Meinung nach sehr komplex und erfordert tiefgreifendes Fachwissen und Erfahrung.
 
Raijin schrieb:
Und warum genau ist "plattformübergreifend" jetzt ein ausschlaggebendes Kriterium für einen Programmiereinsteiger?
Das ist für Einsteiger besser da er sich dann von der Sprachsyntax nicht direkt wieder umlernen muss wenn er eine andere Plattform nutzen möchte.
 
ModellbahnerTT schrieb:
Das ist für Einsteiger besser da er sich dann von der Sprachsyntax nicht direkt wieder umlernen muss wenn er eine andere Plattform nutzen möchte.
Eine neue Platform nutzen ist natürlich genau etwas, was man beim Erlernen einer Sprache machen möchte.
 
  • Gefällt mir
Reaktionen: Loopman
@BoaTheCrafter: Du kannst mit Python als Einsteiger erstmal deutlich mehr anfangen als mit Java oder C#.
Weil du kein komplettes Programm schreiben musst, sondern viel vorhandene Software "tunen" / automatisieren / verändern kannst. Ich habe noch zig Sachen, die ich mit Python in Gimp, LibreOffice und Inkscape einbauen könnte. Oder du schreibst Skripte für die Kommandozeile.
 
Zuletzt bearbeitet:
ModellbahnerTT schrieb:
Java hat das Problem das es Fälle gibt wo es zwischen Oracle und dem freien Openjdk zu Inkompatibilitäten kommt.

OpenJDK und Oracle JDK sind seit Java 11 praktisch identisch. Unterschiede sind eher kosmetischer Natur.

https://blogs.oracle.com/java-platform-group/oracle-jdk-releases-for-java-11-and-later

Die Mehrheit wird in Zukunft OpenJDK nutzen, weil es nichts kostet. Für die ersten Schritte muss man sich darüber aber keine Gedanken machen.

Python, JavaScript, Java und C# sind so die typischen Einsteigersprachen. Losgelöst würde ich zu Python oder JavaScript tendieren. Will man sich von Anfang an, in einer bestimmten Domäne (z.B. Mobile) bewegen, kann man auch auf die dort vorherrschende Sprache setzen. Aber ich würde Grundlagen an den Anfang stellen und dafür ist eine Skriptsprache sehr gut geeignet.
 
BoaTheCrafter schrieb:
Oh je, da hab ich ja eine Diskussion losgetreten :confused_alt:
Das passiert automatisch wenn Informatiker über Superlativen von Programmiersprachen wie "einsteigerfreundlichste", "einfachste", "beste", "performanteste" usw. philosophieren. :D

Um beim Thema zu bleiben, würde an deiner Stelle auch mit Java loslegen. Das wird nicht ohne Grund an vielen Unis zu Beginn eines Informatikstudium unterrichtet. Wir haben im Zuge des ersten Semesters übrigens mit diesem Buch gearbeitet, welches die Grundlagen recht simpel erklärt und auch die Konzepte der objektorientierten Programmierung (OOP) vermittelt: Java von Kopf bis Fuß
 
  • Gefällt mir
Reaktionen: blöderidiot und Loopman
violentviper schrieb:
Ich persönlich finde objektorientierte Programmiersprachen wie Java gar nicht so einfach.

Wenn man komplett neu mit dem Programmieren anfängt, dann ist weder das eine, noch das andere wirklich einfacher.
Objektorientiert ist aber halt z.Zt. modern und irgendwie auch der Standard.

Es ist schlimmer, erst das alte zu lernen und dann später gezwungenermaßen wieder was neues zu lernen. Würde deshalb direkt mit dem objektorientierten anfangen.

Deshalb immer noch mein Tipp: Unter Windows würde ich mit C# anfangen, wenn aber schon abzusehen ist, dass man nicht nur für Windows programmieren möchte, dann kann man auch gut mit Java anfangen.
 
Voila! Die "einfachste" Programmiersprache? Wenn man mit dem Programmieren anfängt, möchte man auch mal was visuell wahrnehmen. Und das ist imho wichtig für die Motivation! Also: die Möglichkeit haben, einen Kreis zu malen, ein Dreieck zu zeichnen etc.

Ich behaupte mal in den Raum hinein: das ist heute am einfachsten und am portabelsten mit Basic zu machen. Beispiel: Ein Dreieck in FreeBasic malen und beschriften. Ich installiere hier auf dem Windows-Rechner:
  • Free Basic (nach C:\Freebasic), und eine
  • IDE (FBEdit, auspacken, nach z. B. C:\FreeBasic\IDE kopieren)
Dann, in FBEdit beim ersten Start das zugehörige Basic auf Nachfrage angeben (C:\FreeBasic). Im Editor folgenden Quelltext "entwickeln":
Code:
ScreenRes 640,480,8

'Dreieck malen in Grau
Color 7
Line (220,140) - (220,340)
Line (220,140) - (420,340)
Line (220,340) - (420,340)

'Rechten Winkel kennzeichnen in Hellrot
Color 12
Line (220,320) - (240,320)
Line (240,320) - (240,340)

'Winkel in Magenta beschriften
Color 13
Locate 20,29
Print "a"
Locate 42,50
Print "b"

'Seiten in Gelb beschriften
Color 14
Locate 31,43
Print "Z"
Locate 31, 26
Print "Y"
Locate 45, 40
Print "X"

Sleep
Resultat:
basic.jpg
Dazu braucht man kaum 10 min - von der Idee übers Herunterladen zum copy/paste und der Modifikation eines entsprechenden Programms aus der Community. Wie geht das in den anderen "einfachen Programmiersprachen für Anfänger"? Welche Schritte muss ich konkret und nachvollziehbar ausführen und wie lange brauche ich dazu.
Und: FreeBasic kann auch objektorientiert, so man das denn auch gerne lernen möchte.

Und: it works on Linux too!
 
Zuletzt bearbeitet:
Also so richtig sehe ich grade nicht wie einem Basic + Dreiecke zeichnen in der heutigen Programmierwelt weiterhelfen ...
Aber ist wohl auch Geschmackssache. Da würde ich ja sogar noch eher mal in C als Beispiel für eine imperative Sprache reinsehen.
Übrigens bieten auch Java, Python etc. eine REPL an. Ich denke der Aufwand bis zur ersten Zeile Code resp. Hello World hält sich heutzutage doch ehct in Grenzen.

Evtl. sollte man auch generell erstmal erwähnen, dass es unterschiedliche Programmierparadigmen gibt. Ich bin z.B. ein Fan von funktionaler Programmierung, ob das jetzt was für Einsteiger ist und vor allem, wie weit die Praxisrelevanz für u.a. den Arbeitsmarkt gegeben ist, das ist nochmal eine andere Sache.
Man kann auch so ein bisschen an der realen Welt vorbeilernen. Gibt n ganzen Sack voll exotischer, meist nur in der Wissenschaft verwendeter Sprachen, die später in einer Firma z.B. kein Mensch kennt noch in Produktivsystemen zum Einsatz kommt.

Aber hey, wie schon von einigen erwähnt: Evtl. auch mal überlegen, was genau man den gerne mal programmieren möchte.
 
Ich habs jetzt nur überflogen, aber meiner Ansicht fehlt die Frage der Fragen, in welche Richtung soll es gehen?

Ist es bevor das nicht geklärt ist, total egal ob es unter Linux lauffähig ist?

z.b.
Windows Programme mit UI -> C#, WPF, Forms oder Python/C++ Qt etc
Web Entwicklung -> Python, Django, HTML, CSS, Javascript, C# ASP.Net etc

Ich finde mit C# kann man vieles realisieren.
Die IDE ist kostenlos.
Man wird von der IDE unterstütz.
Community ist riesig und man findet viele Informationen im Internet.
OpenBook gibt es sogar Bücher umsonst zum Thema. http://openbook.rheinwerk-verlag.de/visual_csharp_2012/

Aber vorher sag mal was du machen willst?
 
Zurück
Oben