Lohnt es sich, java zu lernen?
lima-city → Forum → Programmiersprachen → Java
anfang
code
einstieg
empfehlen
frage
jahr
lernen
leute
machen
methode
nutzen
problem
programm
programmieren
programmierer
programmiersprache
sagen
scala
sprache
url
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Also wenn du noch überhaupt nicht programmieren kannst, würde ich von Java abraten. Das ist einfach kein besonders günstiger Einstieg.
Java als Sprache hat ein paar interessante und gute Ideen umgesetzt, aber mittlerweile gibt es einen Haufen Sprachen, die einfach viel "cooler" sind, weil Java sich leider nur sehr langsam weiterentwickelt. Also wenn man die Zeit hat, dann ist Java durchaus einen etwas umfangreicheren Blick wert, weil man schon einiges dabei lernen kann.
Mitlerweile gibt es auch immer mehr neuere Sprachen, die kompatibel mit Java sind, indem sie auch auf der Java Virtual Machine laufen. Beispielsweise Groovy, Clojure, Kotlin, Scala, .... Diese Sprachen sind deutlich eleganter als Java, aber es lohnt sich auf jeden Fall vorher Java gelernt zu haben, da man schließlich die gleiche Infrastrukur nutzt.
Von daher: Anschauen schadet nicht. Darf man fragen, was du dir so vorstellst, damit zu machen?
Beitrag zuletzt geändert: 22.1.2012 22:40:45 von bladehunter -
Auf jeden Fall!
Ich selber habe vor kurzem damit angefangen und es tuen sich schon erste Erfolge auf, gebrauchen kannst du es sicherlich! -
Es kommt drauf an, es sollte nicht deine erste Programmiersprache sein, wenn du aber schon welche gelernt hast würd ich Java auf alle Fälle lernen.
Für die Erste Sprache finde ich c++ o. c# gut. -
mrsaphen schrieb:
Es kommt drauf an, es sollte nicht deine erste Programmiersprache sein, wenn du aber schon welche gelernt hast würd ich Java auf alle Fälle lernen.
Für die Erste Sprache finde ich c++ o. c# gut.
Da möchte ich dann doch nachfragen, warum du C++ oder C# für sinnvolle Einsteiger-Sprachen hälst. Diese sind schließlich komplexer bzw. ähnlich komplex wie Java. -
mrsaphen schrieb:
Ein Einsteiger wird sich bei C++ SEHR schwer tun zu verstehen warum sein Programm abstürzt. In Java hingegen wird dir eine genaue Fehlerbeschreibung mit Zeilennummer des Fehlers gezeigt. Du kannst in Java auch nicht über Array-Grenzen hinaus lesen/schreiben, in C(++) geht das aber, was in unerklärbaren Programmabstürzen/-verhalten endet.
Für die Erste Sprache finde ich c++ o. c# gut.
Für Anfänger ist Java weit besser geeignet als C/C++!!!
bladehunter schrieb:
Wie soll sich deiner Vorstellung nach Java weiterentwickeln?
Java als Sprache hat ein paar interessante und gute Ideen umgesetzt, aber mittlerweile gibt es einen Haufen Sprachen, die einfach viel "cooler" sind, weil Java sich leider nur sehr langsam weiterentwickelt.
An meiner Schule wird als erste Sprache Java gelehrt, danach erst C/C++. So schlecht kann Java also für Anfänger nicht sein. -
hackyourlife schrieb:
Für Anfänger ist Java weit besser geeignet als C/C++!!!
Da stimme ich dir sogar fast vollständig zu. Aber trotzdem ist Java nur das geringste Übel von den dreien und nicht eine gute Wahl.
bladehunter schrieb:
Wie soll sich deiner Vorstellung nach Java weiterentwickeln?
Java als Sprache hat ein paar interessante und gute Ideen umgesetzt, aber mittlerweile gibt es einen Haufen Sprachen, die einfach viel "cooler" sind, weil Java sich leider nur sehr langsam weiterentwickelt.
Da muss ich mir nichts groß vorstellen. Andere Sprachen machen das längst vor. Gerade wenn es darum geht, ein "besseres Java" zu schaffen ist beispielsweise Scala nenneswert. Scala macht meiner Ansicht nach auch nicht alles richtig, ist aber eine deutliche Verbesserung gegenüber Java.
Was Java beispielsweise vollkommen fehlt ist eine vernünftige Unterstützung für funktionale Programmierung. Da triumphieren selbst C und C++ mit Funktionszeigern noch über Java.
An meiner Schule wird als erste Sprache Java gelehrt, danach erst C/C++. So schlecht kann Java also für Anfänger nicht sein.
Es stimmt, dass Java als Lehrsprache recht weit verbreitet ist. Normalerweise ist es so, dass Programmiersprachen in der Lehre sich für ca. 8 Jahre halten können. Ein erfolgreicher Nachfolger für Java ist eigentlich längst überfällig. Es ist daher in der Tat bemerkenswert, das Java sich so lange halten konnte und Ich will auch nicht bestreiten, dass diese Sprache auch ihre guten Seiten hat, aber die Welt der Programmiersprachen hat sich weiterentwickelt. Und wenn ich die Komplexität von Java mit der von Lua oder Python vergleiche, ist es eigentlich recht offensichtlich, dass man auch viel leichter in die Programmierung einsteigen kann, ohne dafür andersweitig fundamentale Nachteile in Kauf nehmen zu müssen.
Eine fundamentale Schwäche von Java sind die ganzen Konzepte, an denen man nicht vorbeikommt. Beispielsweise die Sichtbarkeitsmodifier public, protected und private. Wozu das alles? Diese und viele andere Konzepte werden erst nützlich, wenn man an einer größeren Aufgabe mit mehreren Leuten arbeitet. So etwas ist in der Schule aber praktisch nie der Fall. -
Es kommt halt ganz darauf an was möchtest du den dann machen =?
Wenn du vllt ein kleines Spiel entwickeln willst wurde ich dir C++ empfehlen.
Aber für Internetseiten ist java eigentlich relativ gut ! -
blacknats schrieb:
Wenn du vllt ein kleines Spiel entwickeln willst wurde ich dir C++ empfehlen.
Aber für Internetseiten ist java eigentlich relativ gut !
Ist zwar nett, dass du dich zu dem Thema äußerst, aber was du sagst ist leider ziemlicher Unfug.
Gerade wenn es um kleine Spiele geht, dürfte C++ in der Regel Overkill sein. C++ ist eher bei komplexen und daher (in der Regel) rechenaufwändigen Spielen gefragt.
Und was Java und Webseiten angeht, hast du das Thema leider auch völlig verfehlt. Man kann Java zwar auf Webseiten in Form von Applets nutzen, aber das wird praktisch kaum gemacht. Was du vermutlich meinst ist die Verwendung von JavaScript. Und JavaScript hat mit Java absolut nichts zu tun. -
bladehunter schrieb:
blacknats schrieb:
Wenn du vllt ein kleines Spiel entwickeln willst wurde ich dir C++ empfehlen.
Aber für Internetseiten ist java eigentlich relativ gut !
Ist zwar nett, dass du dich zu dem Thema äußerst, aber was du sagst ist leider ziemlicher Unfug.
Gerade wenn es um kleine Spiele geht, dürfte C++ in der Regel Overkill sein. C++ ist eher bei komplexen und daher (in der Regel) rechenaufwändigen Spielen gefragt.
Und was Java und Webseiten angeht, hast du das Thema leider auch völlig verfehlt. Man kann Java zwar auf Webseiten in Form von Applets nutzen, aber das wird praktisch kaum gemacht. Was du vermutlich meinst ist die Verwendung von JavaScript. Und JavaScript hat mit Java absolut nichts zu tun.
oh du hast recht mit Java ich habe Java Script gemeint aber mit c++ habe ich recht denn, du kannst damit z.b ganz einfach Galgenmännchen machen ! -
bladehunter schrieb:
Da gäbe es noch die Java Servlets und JavaServerPages (JSP). Beides wird aber von keinem(?) Freehoster angeboten da es zu Ressourcenverbrauchend ist. Allerdings gibt es einen haufen professioneller Webseiten die Servlets und JSP einsetzen.
Und was Java und Webseiten angeht, hast du das Thema leider auch völlig verfehlt. Man kann Java zwar auf Webseiten in Form von Applets nutzen, aber das wird praktisch kaum gemacht. Was du vermutlich meinst ist die Verwendung von JavaScript. Und JavaScript hat mit Java absolut nichts zu tun. -
blacknats schrieb:
oh du hast recht mit Java ich habe Java Script gemeint aber mit c++ habe ich recht denn, du kannst damit z.b ganz einfach Galgenmännchen machen !
ich lenke ungerne vom Hauptthema ab. Von daher schlage ich einen kleinen Wettkampf vor: Du programmierst dein Galgenmännchen in C++, lädst den Code auf den Webspace hoch, schickst mir den Link per pn und ich programmiere dann ebenfalls Galgenmännchen in einer anderen Sprache um zu beweisen, das es viel einfacher geht.
Die Links zu deiner Lösung und zu meiner Lösung werde ich dann in *dieses* Post einfügen. Aber ansonsten bitte nicht weiter vom Thema abdriften. Falls du trotzdem einen eigenen Thread dazu haben willst, dann mach bitte was entsprechendes im Spamforum auf.
hackyourlife schrieb:
bladehunter schrieb:
Da gäbe es noch die Java Servlets und JavaServerPages (JSP). Beides wird aber von keinem(?) Freehoster angeboten da es zu Ressourcenverbrauchend ist. Allerdings gibt es einen haufen professioneller Webseiten die Servlets und JSP einsetzen.
Und was Java und Webseiten angeht, hast du das Thema leider auch völlig verfehlt. Man kann Java zwar auf Webseiten in Form von Applets nutzen, aber das wird praktisch kaum gemacht. Was du vermutlich meinst ist die Verwendung von JavaScript. Und JavaScript hat mit Java absolut nichts zu tun.
Das ist vollkommen richtig und das habe ich auch gedanklich berücksichtigt. Er hat aber lediglich "Internetseiten" geschrieben und nicht Webservices. Daher habe ich mir gespaart das noch auszuführen, zumal es ja noch viel mehr Möglichkeiten auf der Serverseite gibt, die man ebenfalls noch erwähnen kann. Dies ist natürlich auch wieder ein Argument dafür Java zu lernen, weil man auf der Serverseite einiges damit anfangen kann.
Beitrag zuletzt geändert: 24.1.2012 20:02:46 von bladehunter -
Also wenn man ernsthaft programmieren lernen will,würde ich mit c++ beginnen. Tutorials und Bücher leiten einen durch die basics des programmierens in langweiligen konsolenanwendungen. Bei Java werden Programme schnell in einer gui programmiert,wobei für eine gut funktionierende,interessante gui man bereits gute Kenntnisse im programmieren haben muss.
-
Ich habe, abgesehen von Spielereien mit HTML & Co, ganz klassisch mit Pascal in der Schule angefangen.
Es ist mit Sicherheit keine spannende Programmiersprache, aber eine sehr leichte und man lernt ohne viel Umwege die Grundlagen der Programmierung. Wenn man diese dann verstanden hat, wird es allerdings auch schnell langweilig -
ich habe auch zuerst mit html angefangen aber mittlerweile kann ich vb,java,c++ n bisschen,css,js,php...das trägt sich alles mit der zeit zusammen...
aber java würde sich sehr lohnen zu lernen da es meiner meinung nach zukunft hat! -
hallo
ich denke die frage solltest du dir evtl selbst beantworten.
stell dir doch fragen wie:
hast du vor etwas mit java zu machen?
hast du kenntnisse in dem bereich?
eröffnet es dir evtl neue möglichkeiten zb beruflich?
hast du die zeit und die möglichkeiten/finaziellen mittel um dich ausreichend damit zu beschäftigen?
sprich einen abwiegen zwischen zeitaufwand,nutzen und evtl entstehende kosten.
gruß -
bladehunter ich weiß nicht wo ich anfangen soll, aber du redest absoluten ...
Was bitteschön macht eine Programmiersprache "cool"? Und woran machst du bitte fest, dass sich Java kaum weiterentwickelt? Du stellst hier Behauptungen auf, die du in keiner Weise begründest, und die ebensowenig der Wahrheit entsprechen.
bladehunter schrieb: Beispielsweise die Sichtbarkeitsmodifier public, protected und private. Wozu das alles? Diese und viele andere Konzepte werden erst nützlich, wenn man an einer größeren Aufgabe mit mehreren Leuten arbeitet.
Diese Aussage nur mal als eines von vielen Beispielen. Ich glaub du hast den grundsätzlichen Sinn dieser Schlüsselwörter nicht verstanden!
Sorry, ich muss jetzt erst mal etwas runterkommen, und dann zurück zum Thema
Prinzipiell würd ich zum Einstieg entweder Java, C/C++ oder C# empfehlen - ganz einfach, da diese Sprachen weit verbeitet sind, und man daher auch im Internet jedemenge Hilfen findet. In Lehrveranstaltungen wird in der Regel entweder mit Java oder mit C/C++ angefangen, jenachdem worauf die Lehrkraft am meisten Wert legt.
Vorteile von Java sind auf jeden Fall, dass man sich ganz auf die wesentlichen Konstrukte konzentrieren kann. Man muss sich keine Gedanken um das Allokieren von Speicher, um Zeigerarithmetik und ähnliches machen. Desweiteren bekommt man in der Regel verständlichere Fehlermeldungen, was bei C meist nicht der Fall ist - da stürzt das Programm auch gern mal ab, ohne dass man einen direkten Hinweis auf die Ursache bekommt.
Nachteile sind widerum, dass man bei einem späteren Umstieg auf C größere Probleme hat, sich die oben genannte Dinge einzuprägen - schließlich hat sich bislang immer die VM um solche Dinge gekümmert. Desweiteren nimmt man die Objektorientierung von Beginn an als gegeben, was aus meinen Erfahrungen vielen das Verständnis davon erschwert.
Ich persönlich bevorzuge als Einstiegssprache da ganz klar C. Man hat es Anfangs zwar etwas schwerer als mit Java, aber man eignet sich jede Menge zusätzliche Kenntnisse an, die einem das Erlernen neuer Sprachen in Zukunft sehr vereinfacht.
Aber im Endeffekt bleibt es jedem selbst überlassen, es gibt nicht die "perfekte" Einstiegssprache - da scheiden sich die Geister. -
In der Schule hatten wir damals folgende Reihenfolge C#, dann Java und C++. C ist sehr simpel und braucht wenig Einarbeitungszeit, womit man erst mal sehr schnell ein Gefühl für das Programmieren bekommen kann. Das Prinzip der Programmiersprachen ist mehr oder weniger das gleiche. Wenn du ein wenig C programmiert hast, wird dir der Umstieg in C++ und Java leichter fallen. Java und c++ bieten halt zusätzlich die Möglichkeit objektorientiert zu programmieren. PHP ist ebenfalls sehr ähnlich, auch wenn es nur eine Scriptsprache ist. Du hast deine Objekte, Funktionen und Schleifen, ist bei Java, C++ oder PHP^^ das gleiche, sogar die meisten Befehle sind gleich oder unterschieden sich nur im geringen Masse. C++ und Java sind sehr weit verbreitet, es ist also nicht falsch diese zu lernen.
-
Ich finde, es kommt ganz darauf an, was man genau bezwecken möchte, wenn man sich eine Programmiersprache (auch bei der ersten) beibringt.
Ich würde ja fast empfehlen, sich XAMPP aufzusetzen und vielleicht erstmal mit PHP zu beginnen.
Das lässt sich sehr leicht erlernen. Viel weiter als Webanwendungen damit zu entwickeln wird man aber meistens nicht kommen.
Üblich in der Schule ist Java. Das Thema wird aber in den meisten Schulen falsch angegangen, als dass die Schüler es wirklich lernen würden. Konzepte, wie OOP, die bspw. in PHP (noch) nicht so stark ausgeprägt ist, sind nicht die leichtesten. Bei Java hat man allerdings eine solide, weit verbreitete Sprache, die auf allen Plattformen läuft und mit der mittlerweile auch Business-Applikationen geschrieben werden.
Möchte man schnell irgendwelche Programme mit einer GUI basteln und hat Windows, ist C# definitiv kein falscher Anfang, zumal es genauso einfach, wie Java zu erlernen ist. Besonderes Hauptaugenmerk ist hier das Verarbeiten von Events, da C# doch oftmals sehr guilastig eingesetzt wird.
C++ würde ich als Einsteigersprache nicht empfehlen. Die Restriktionen, die die Sprache mit sich bringt und den Kampf mit Speicherallokation und Zeigern sollte man nicht unterschätzen. C++ ist gut, wenn man Java oder C# einigermaßen sicher programmieren kann und sich weiter entwickeln möchte.
Ich selber habe, obwohl Informatikstudent, bisher keine Applikation in C++ geschrieben, da ich dafür bisher keinen Anwendungsfall hatte, den ich nicht genauso gut hätte in Java/C#/PHP/Scheme hätte lösen können.
An Universitäten ist eine Einsteigerprogrammiersprache übrigens oftmals Scheme. Was da allerdings auch genutzt wird um die Studenten im ersten Semester etwas anzugleichen, da manche schon Erfahrung haben und manche noch nicht. -
Was bitteschön macht eine Programmiersprache "cool"?
Möglicherweise trifft "cool" es nicht ganz. Daher habe ich das (wie du es ja auch bemerkt hast) in Anführungszeichen geschrieben. Man beobachtet diese "Coolness", wenn man mit unterschiedlichen Sprachen arbeitet und dann feststellt "Hey, ich will Foo machen und das ist in Sprache X ja nur ein Dreizeiler!". Programmiersprachen entwickeln sich eben weiter und stellen immer mächtigere und elegantere Konstrukte zur Verfügung, um ans Ziel zu kommen. C ist "cooler" als Assembler, aber nicht "cooler" als beispielsweise Python.
Und Java ist leider eine Sprache, wo man viel Boilerplate-Code schreiben muss. Alles muss in Klassen verpackt werden und elegante Prinzipien wie funktionale Programmierung sind Java 6 nicht Teil der Sprache. Und wenn man sich dann noch an die Bean-Konventionen halten will, darf man für jedes Member auch noch getter- und setter schreiben. Klar, das kann auch die IDE erledigen, aber schön ist es trotzdem nicht.
Und woran machst du bitte fest, dass sich Java kaum weiterentwickelt? Du stellst hier Behauptungen auf, die du in keiner Weise begründest, und die ebensowenig der Wahrheit entsprechen.
Treffer versenkt! Hier habe ich mich tatsächtlich fundamental geirrt. Mein Kenntnisstand war eigentlich immer noch, das Oracle Java 7 immer noch nicht komplett fertig gekriegt hat. Das sie das fertig gestellt haben, ist an mir seltsamerweise vollkommen vorbeigezogen und ich möchte mich für die entstandene Verwirrung entschuldigen.
Ich habe mich wohl zu sehr an den Lambda-Expressions orientiert, die zwar immer groß angekündigt wurden, aber dann doch verschoben worden. Sie sind ja immer noch nicht Teil von Java 7. In diesem Sinne: Danke für den Hinweis!
bladehunter schrieb: Beispielsweise die Sichtbarkeitsmodifier public, protected und private. Wozu das alles? Diese und viele andere Konzepte werden erst nützlich, wenn man an einer größeren Aufgabe mit mehreren Leuten arbeitet.
Diese Aussage nur mal als eines von vielen Beispielen. Ich glaub du hast den grundsätzlichen Sinn dieser Schlüsselwörter nicht verstanden!
Nun, dann korrigiere mich, falls ich falsch liege: Wie ich in diesem Kontext erwähnt habe, sind diese Schlüsselwörter nützlich, wenn man mit mehreren Leuten an einer größeren Aufgabe arbeitet. Der Hintegrundgedanke ist dabei, das der Modifier "public" ein Versprechen abgibt. Eine Methode, die public ist, bleibt in ihrer äußeren Erscheinung auch in den nachfolgenden Versionen einer Software in dieser Form bestehen. Durch dieses Versprechen können andere Programmierer die Methoden nutzen, ohne sich Sorgen zu machen, das die Schnittstelle irgendwann einmal nicht mehr kompatibel ist.
Dem gegenüber stehen Methoden, die als protected oder private gekennzeichnet sind. Diese sind ein klares Signal, das besagt "Änderungen sind vorbehalten". Also kann sich beispielsweise die Art und Weise, wie eine Methode aufgerufen wird, vollständig ändern, wenn der Autor der Klasse es für nötig hält. Solche Methoden dienen in der Regel auch wirklich nur für die innere Verwaltung der Zustände von Objekten oder stellen Hilfsmethoden dar, um wiederholten Code auszulagern.
Aber wie gesagt: Für kleinere Progrämmchen in der Schule ist sowas eigentlich Overkill.
Prinzipiell würd ich zum Einstieg entweder Java, C/C++ oder C# empfehlen - ganz einfach, da diese Sprachen weit verbeitet sind, und man daher auch im Internet jedemenge Hilfen findet. In Lehrveranstaltungen wird in der Regel entweder mit Java oder mit C/C++ angefangen, jenachdem worauf die Lehrkraft am meisten Wert legt.
Geht dein eigener Sprachhorizont denn wesentlich über diese Sprachen hinaus, so dass du für diese Empfehlung eine größere Anzahl an Sprachen in Betrachtung ziehen kannst?
Vorteile von Java sind auf jeden Fall, dass man sich ganz auf die wesentlichen Konstrukte konzentrieren kann. Man muss sich keine Gedanken um das Allokieren von Speicher, um Zeigerarithmetik und ähnliches machen.
Sorry, aber das ist mittlerweile längst Standard. Da kann man auch jede andere moderne Sprache nehmen.
Desweiteren bekommt man in der Regel verständlichere Fehlermeldungen, was bei C meist nicht der Fall ist - da stürzt das Programm auch gern mal ab, ohne dass man einen direkten Hinweis auf die Ursache bekommt.
Und schon wieder ein Vergleich mit C. Es gibt wirklich genügend andere Sprachen, die die gleiche Fähigkeit haben.
Wobei man C sich auch coredumps erzeugen lassen kann und dann mit dem Debugger schauen kann, wo das Programm verreckt ist, was die lokalen Variablen in den Stack Frames waren ect.
Nachteile sind widerum, dass man bei einem späteren Umstieg auf C größere Probleme hat, sich die oben genannte Dinge einzuprägen - schließlich hat sich bislang immer die VM um solche Dinge gekümmert.
Och, in C musst du nur deinem Speicher auf dem Heap nachrennen. Wenn du wirklich auf den Boden der Tatsachen kommen willst, darfst du mit Assembler zusätzlich noch den Stack verwalten
Desweiteren nimmt man die Objektorientierung von Beginn an als gegeben, was aus meinen Erfahrungen vielen das Verständnis davon erschwert.
Definitiv. Daher halte ich Java auch nicht für eine gute Sprache für den Einstieg. Erfahrungsgemäß sind die anfänglichen Probleme, mit denen man sich beschäftigt, nicht durch Objektorientierung leichter zu lösen.
Ich persönlich bevorzuge als Einstiegssprache da ganz klar C. Man hat es Anfangs zwar etwas schwerer als mit Java, aber man eignet sich jede Menge zusätzliche Kenntnisse an, die einem das Erlernen neuer Sprachen in Zukunft sehr vereinfacht.
Hachja, das Latein-Argument^^. Natürlich kann man mit C einsteigen, aber ich sehe ehrlich gesagt keinen wirklichen Nutzen darin. Da soll man lieber erstmal die Grundlagen der Programmierung in einer leichteren Sprache lernen und kann sich dann später immer noch an C ranwagen. Ich habe schließlich auch nicht mit C angefangen.
Aber im Endeffekt bleibt es jedem selbst überlassen, es gibt nicht die "perfekte" Einstiegssprache - da scheiden sich die Geister.
Perfektion ist ein sehr hoch gestecktes Ziel. Es gibt aber definitiv Sprachen, die für diesen Zweck besser geeignet sind als andere. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage