Java - sinnvoll als erste Sprache?

Hallo HaBo,

ich habe mich entschieden mir Java als meine erste Programmiersprache anzueignen. Nagut, nicht ganz die erste - QBasic habe ich bereits gelernt. Die ist aber ziemlich leicht und somit sind die Möglichkeiten entsprechend begrenzt.

Nun habe ich mich aber gefragt ob das wirklich sinnvoll ist Java zu lernen denn trotz vieler Vorteile (Plattform unabhängig dank JRE etc.) gibt es nur relativ wenig Referenzsoftware (Eclipse, JDownloader...).

Was ich mir als erstes Ziel gesetzt habe ist eine kleine Buchhaltungssoftware zu schreiben die aber nur recht simple (für einen Anfänger aber eher schwierige) Aufgaben hat. Sie soll bestimmte Benutzer anlegen können und sie soll zeigen ob Monatsbeiträge bezahlt wurden. Das ganze in Tabellenform. Dies soll eingetragen und abgespeichert werden können. Außerdem soll man sich vorher einloggen müssen. Dabei soll es zwei Arten von Benutzer geben. Einer kann die Listen einsehen und bearbeiten und der andere kann sie nur einsehen. Eventuell auch Markierungen machen die der erste Art von Benutzer aber erst bestätigen muss. Das ganze soll auch ausgedruckt werden können.

Wenn ich davon ausgehe das dies möglich ist mit Java stellen sich mir folgende Fragen:

a) Ist es gut so eine Art Software zu schreiben um die Sachen die man gelernt hat praktisch umzusetzen?
b) Mit wie vielen Zeilen Code habe ich zu rechnen?
c) Soll ich von Java ablassen und gleich C/C++ (oder Anderes) lernen?

Vielen Dank für eure Meinungen im Vorraus

MfG,
Apo
 
Java ist mMn eine gute Wahl um (objektorientiert) programmieren zu lernen, aber wenn du 2 Leute fragst hörst du dazu bestimmt 3 Meinungen.

Ich wüsste nicht, was dich daran hindern sollte das Programm welches du beschreibst in Java zu realisieren. Durch Serialisierung (was aber einige andere Sprachen auch out of the box können) wirst du da (vllt auf "primitive" aber sehr einfache Art) auch deine Daten bequem speichern und wieder einlesen können.


a) Ist es gut so eine Art Software zu schreiben um die Sachen die man gelernt hat praktisch umzusetzen?
b) Mit wie vielen Zeilen Code habe ich zu rechnen?
c) Soll ich von Java ablassen und gleich C/C++ (oder Anderes) lernen?

zu a): Es ist nie falsch eine Software zu schreiben um etwas zu lernen. Und je nach dem was für ein Mensch man ist ist es auch besser sich höhere oder niedrigere Ziele zu stecken.

zu b): Das ist nicht immer einfach einzuschätzen, da es auch von deinem Stil abhängt. Jedenfalls kannst du viele Zeilen sparen, wenn du für die Verwaltung deiner Objekte die built-in Listen, HashMaps etc. benutzt.

zu c): Ich verstehe die Frage nicht. Ich finde C/C++ für den Einsteiger schwieriger, aber das ist wieder so eine 2 Leute 3 Meinungen Sache.

Generell solltest du natürlich immer den Blick über den Tellerrand wagen und gucken, ob es nicht irgendwas gibt was leichter zum Ziel führt. Allein die Sprachen die in der JVM laufen sind sehr unterschiedlich (z.B. Scala vs Java vs Groovy) und sie zu benutzen macht mitunter sehr viel Spaß, wenn man sich zwischendurch vor Augen führt, wie viel schneller manches geht als mit "herkömmlichen" Mitteln.

Ich wünsche dir jedenfalls viel Spaß mit Java!
 
Vielen Dank für die schnelle Antwort

Ehrlich gesagt hatte mich das hier zuerst verunsichert bezüglich meiner Entscheidung für Java.
Aber nun ja C++ kann ich ja im Nachhinein immer noch lernen.
Ich denke mit Java werde ich ein gewisses Verständnis für Objektorientierte Programmierung entwickeln worauf ich dann beim lernen von C++ aufbauen kann.

Gruß

EDIT: Wobei das Umsteigen auch Probleme mit sich bringt wie ich in einigen Foren erfahren habe (Vererbung etc.)
 
Der Artikel ist auch alles andere als gut.

Bis auf den Abschnitt über Mehrfachvererbung (die nunmal umstritten ist, wesentlich mehr als Vererbung an sich) kann man so ziemlich alles an dieser "Argumentation" zerlegen.

An Java gibts, wie an jeder Sprache, auch objektiv einiges auszusetzen, aber davon findet sich in diesem Artikel fast garnichts wieder (Soll wohl auch garnicht, der erste Satz ist "Dies ist Xin's persönliche Meinung").

Und solange du nicht mit PHP oder JS anfängst, ist eh alles in Ordnung :)
 
Dieser Xin schien glaubwürdig zu sein und seine Argumente konnte ich als absoluter Anfänger natürlich nicht widerlegen.
Vielen Dank ;)
 
Je nachdem wo du später hinwillst mit dem Programmieren, ist eben doch C/C++ die bessere Wahl, weil es so schön in die Breite geht. Java ist eben nur objektorientierte Programmierung, während C/C++ alles von hardwarenah bis objektorientiert bietet. Als Fachfremder, der sich über die relative Hardwarenähe von C und für masochistische Experimente auch über die Möglichkeit der Verwendung von Inline-Assambler freut, würde ich lieber mit C anfangen und Java später dazulernen, als umgekehrt.
Im Zweifel geht auch C++ tiefer in die Objektorientierung und ist mächtiger.
 
Je nachdem wo du später hinwillst mit dem Programmieren, ist eben doch C/C++ die bessere Wahl, weil es so schön in die Breite geht. Java ist eben nur objektorientierte Programmierung, während C/C++ alles von hardwarenah bis objektorientiert bietet. Als Fachfremder, der sich über die relative Hardwarenähe von C und für masochistische Experimente auch über die Möglichkeit der Verwendung von Inline-Assambler freut, würde ich lieber mit C anfangen und Java später dazulernen, als umgekehrt.
Im Zweifel geht auch C++ tiefer in die Objektorientierung und ist mächtiger.

Ich will das nicht professionell machen. Nur spaßeshalber kleine Software für mich und meinen Verein schreiben. Ich denke für diese Zwecke reicht Java vollkommen aus oder?
 
Ja, vollkommen. Da werden sich sicherlich hier alle einig sein. Aber es gibt auch noch andere, mächtige Alternativen. Python zum Beispiel.
 
Schaue ich mir auch mal an. Und wie sieht's aus mit Delphi? Ist die auch mächtig genug für so etwas? Und wie steht es um die Schnelligkeit und Leichtigkeit (leicht bedeutet in dem Zusammenhang für mich jetzt so wenig Code wie möglich) von Python und Delphi?
 
Und solange du nicht mit PHP oder JS anfängst, ist eh alles in Ordnung :)

Nimm das ruhig so hin. Gerade wenn du das nur nebenbei als kleines Hobby machen willst, passt jede Sprache. Es kommt hier viel eher darauf an welche dir eher liegt. Stell ne Liste aller Sprachen auf, die du kennst und würfel aus welche du zuerst ausprobierst. Das ist durchaus ernst gemeint.

Und falls du auf die Idee kommen solltest sowas auf die Liste zu setzen: streich alle Assambler und alle esotherischen Sprachen :)

Wenn dir das als Antwort nicht reicht, such einen der "Mit welcher Sprache soll ich anfangen?"-Threads raus und genieße endlose, im Kreis gehende Diskussionen und Flames zwischen Fortran, D, Pascal und Chinesisch.

EDIT: Übrigens bedeutet "wenig Code" nicht zwangsläufig "leicht".
 
Eigentlich würde jede "Hochsprache" für deine Zwecke vollkommen ausreichen.

Ich z.B. lehne grundsätzlich Java und Konsorten wie C# ab und verabscheue alle, die in dieser "Sprache" programmieren.

Auch wenn ich es nicht nachvollziehen kann, hat Java die letzten Jahre richtig "geboomt".

Daher sind die Entwicklungsumgebungen um Apps für Android und iOS zu programmieren in Java. Daher würde ich dir auch zu Java raten.

Ansonsten natürlich C/C++ und Python :)
 
Schaue ich mir auch mal an. Und wie sieht's aus mit Delphi? Ist die auch mächtig genug für so etwas? Und wie steht es um die Schnelligkeit und Leichtigkeit (leicht bedeutet in dem Zusammenhang für mich jetzt so wenig Code wie möglich) von Python und Delphi?

Ich würd Dein Vorhaben in VB (oder delphi) machen. Ist Leicht-Klickibunti, hast aber schnell sichtbare Ergebnisse. Und du musst nicht soviel über Code/Datenbank/Oberfläche nachdenken. :D
VB ist "mächtig", und schneller als java... und vielleicht hilft Dir Deine QBasic Erfahrung auch dabei :D

C++ würd ich erstmal seinlassen, damit Du Dich nicht mit den Betriebssystemeigenen Schwierigkeiten (z.B. Windows Handle) verprellst.
 
Ich rate jedem der nur nebenbei programmieren will um kleine Programme für den Eigengebrauch zu schreiben grundsätzlich von C/C++ ab. Denn diese Leute wollen es nicht um des Programmierens Willen lernen, sondern um etwas zu erreichen, mit minimalem Aufwand wie der TE hier auch. Daher ist er mit Sprachen wie Java, Python, C# und Ruby wesentlich besser bedient als mit C/C++ denke ich. Da lernt man im Grunde auch alles, was man können muss um ein Programm für den Eigengebrauch entwickeln zu können und die Bedienung der Sprachen ist auch leichter für den Einsteiger, weil man außer imports im wesentlichen nicht viel beachten muss, während ich mich in meinen Anfängen in C/C++ oft wunderte, warum etwas nicht funktionierte, nur weil ich libXYZ nicht gelinkt hatte. Das finde ich etwas hinderlich, wenn man eigentlich nur "so schnell wie möglich" sein Programm realisieren will.

Wenn jemand wirklich professionell programmieren wollte gab es vielleicht damals keinen Weg um C/C++ herum. Aber heute würde ich das so auf keinen Fall mehr behaupten.
 
Daher sind die Entwicklungsumgebungen um Apps für Android und iOS zu programmieren in Java.

Das stimmt so nicht, die Entwicklung von iOS-Apps erfolgt mittels Objective-C.


Solange du keine Sonderwünsche (z.B. Entwicklung von iOS-Apps oder Android-Apps hast), kannst du, wie schon von einigen hier geschrieben, irgendeine Sprache auswählen. Einfach hinsetzen und anfangen...

mfg
justj
 
Und schon sind wir wieder mitten in der sich endlos drehenden Diskussion :)

Der Wert von Würfeln wird unterschätzt.
 
Das es mir nicht um das Programmieren an sich geht stimmt nicht so ganz. Ich will halt wie du richtig erkannt hast schnelle Erfolge erzielen. Zu Anfang jedenfalls damit ich Motivation habe. Bei C/C++ würde ich aufgrund des breiten Stoffes der zu lernen ist abbrechen - glaube ich zumindest.

Vielen Dank an Alle. Ich werde nun tatsächlich zwischen Java, Python, Delphi und VB (wobei VB immer so schlecht angesehen ist - warum eigentlich?) würfeln.

MfG
Apo
 
@ApokalypZo, mit Java liegt Du schon ganz gut. Ich entwickel nun seit 10 Jahren in Java und auch seit 3 Jahren in Android und sehe in meinem Umfeld, das Java-Entwickler gefragt sind.

Motivationstechnisch könntest Du anfangen Android-Apps zu entwickeln. Die basieren auf Java und XML. Da solltest Du aber schon einige Grundlagen mitbringen.

Was Grundlagen angeht könntest Du Dir den Oracle Java Certified Associate anschauen. Ich habe vor einigen Jahren den Sun Certified Programmer gemacht und mache hier bei Oracle alle paar Jahre das Upgrade auf die neueste Version.
 
Zuletzt bearbeitet:
Also ich persönlich habe mit VB begonnen, hat aber eine Syntax, die sich deutlich von den meisten andern Sprachen (u.A. Java) unterscheidet. Allerdings ist sie teilweise intuitiver, allerdings gibt es auch mehr zu Tippen (naja, dank tab-complete ist das jetzt nich so ein großes Problem :P). Von C(++) rate ich für anfänger eher ab, da man da ziemlich schnell mal schwer zu findende fehlerchen shreibt...

.NET (welches auch von VB benutzt wird) hat außerdem viele Möglichkeiten dinge einfach zu machen. Java hat allerdings auch vorteile. Java hat eine bessere platformunäbhöngigkeit als .NET und ich persönlich mag die namenskonventionen lieber. Mittlerweile benutze ich eigentlich nur noch java (inbesondere seit ich auf linux umgestiegen bin). Im enteffekt musst du trotzdem selbst entscheiden ob nun mit Java starten willst.
 
Zurück
Oben