Frage von Andre2709, 112

Welche Programmiersprache | zum lernen?

Ich wollte wissen welche Programmiersprache gut ist bzw die man optimal nutzen kann wenn man dann umsteigen würde auf eine andere Sprache

Ich habe mir vor 2 Tagen dieses Buch gekauft "Java* siehe Bild)

Was sagt ihr dazu war es eine Fehlentscheidung??

Antwort
von Suboptimierer, 70

Mit Java wurdest du eigentlich ganz gut beraten, da viele Programmiersprachen Gemeinsamkeiten aufweisen.
Eventuell taugt das Buch für dich nichts (ich kenne es nicht). Deine Art des Lernens passt vielleicht nicht zu der Art des Lehrens des Autors.

Einfach zum Lernen empfinde ich VB, VBA, VBS, VB.NET, ..., wenn du dir fest in den Kopf gesetzt hast, die Sprache zu wechseln.

Antwort
von androhecker, 33

Mit Java machst du jedenfalls nichts falsch, mit der Sprache kann man viel anfangen und zum Lernen ist sie auch gut.

Bücher von Rheinwerk sind in der Regel gut (wie deins) eine andere Frage ist, ob es dir gefällt.

Kommentar von Andre2709 ,

Danke für die schnelle Antwort

Antwort
von xGlumi, 60

Java zum lernen: Ist Ok, manch einer (auch ich) würden dir evt. eine Basic Sprache anbieten zum lernen (VB.NET, VBA etc.), aber Java tuts auch sehr gut ^^

Umsteigemöglichkeiten: Mit Java machst du auch hier nichts falsch, da die Syntax (Da es eine C-Sprache ist) der von C++, PHP, C# stark ähnelt.

Meine Meinung: Zum lernen ist Java in Ordnung (Aber kein muss), aber ich würde an deiner Stelle sobald du meinst einen guten Kenntnisstand zu haben, mich von dieser Sprache distanzieren (Eine große Hasstirade gegen Java erspare ich mir, da ich glaube es geht deutlich hervor dass ich eine Abneigung gegen diese Sprache habe)

MFG xGlumi

Kommentar von epilepticPi ,

Ich habe schon mehrfach gehört,dass Java diverse Nachteile haben soll, habe aber nie konkretes mitbekommen. Könnten Sie sie bitte aufzählen, es würde mich wirklich interessieren.

Kommentar von xGlumi ,

1. Java ist, wie auch alle .NET-Sprachen von einem Framework abhängig.

Bei .NET ist dieses seit langem immer bei Windows mitinstalliert.

Bei Java wiederrum müssen die Leute sich dieses (z.b Java SDK) erst installieren
(An sich ja kein großes Thema: Doch Java verschwindet immer mehr vom Computer gebrauch, da dort einfach VIEL ZU VIELE Sicherheitslücken lauern)

Java hat sich seinen kleinen Bereich im Smartphone-Segment aufgebaut, und dort kann es auch gerne bleiben (Auch hier gibt es genügend Sicherheitslücken aber die kommen unter anderem auch noch woanders her)

2.  Unperformant:
Da kann man mir mit Benchmarks kommen wie man will...
Wenn man Programme (Die auch in Feier Wildbahn etwas taugen) seperat und so gut es geht gleich programmiert, wirst du merken dass du beim Java-Programm extreme Resourcenfresser hast
(In Relation zum "selben" Tool welches in einer anderen Sprache programmiert wurde)

(Alleine das Paradebeispiel Minecraft: Du benötigst unmengen an RAM für das was dieses Spiel eigentlich bietet)

Das einzige Argument was ich bis jetzt immer von "Java befürwortern" gehört habe ist, dass Java sogut wie keine Plattformabhängigkeit besitzt. (Egal ob Linux, Mac, Windows)

Dies ist aber für mich kein Argument dafür, dass man die vielen Nachteile übersehen könnte.

MFG xGlumi

Kommentar von androhecker ,

Da spricht einer ohne Ahnung... Java soll verschwinden? Die Java Nutzung geht konstant nach oben. Wenn du meinst Java hätte Sicherheitslücken, dann hast du wohl irgendwas verpasst, wie soll eine Sprache Sicherheitslücken haben? Java ist im Enterprise Bereich sehr gut vertreten, auch unter Desktop Anwendungen und auf Mobilgeräten ist es klarer Marktführer durch Android. Komisch, in den Benchmarks ist Java auf Augenhöhe mit C# in .NET und der Unterschied zu den nativen Hochsprachen wie C ist bei so schnellen PCs kaum noch spürbar. Minecraft ist so ziemlich das schlechteste Beispiel dass du hier anführen konntest, das ist ein Beispiel für die Dummheit der Entwickler, mehr aber auch nicht. Die Engine von Minecraft nutzt Jahrzehnte alte OpenGL Versionen und die Engine ist Single Thread und dazu noch enorm ineffizient, das liegt nicht an Java sondern an den Deppen von Mojang. Kurz gesagt sind deine Argumente der letzte Witz, du hast dich nie richtig mit Java beschäftigt und kannst deswegen auch schlecht beurteilen wie gut und schlecht Java ist.

Kommentar von Savix ,

Genau. Immerhin lief eines der derzeit beliebtesten Computerspiele ebenfalls über Java, undzwar mit Erfolg.

Kommentar von xGlumi ,

1. Ich habe mit Java genug gearbeitet.
An meinem letzten Arbeitsplatz musste ich Softwarelösungen mit diesem Rotz schreiben.

2. Da ich mich seit 9 Jahren im Sicherheitsthema auskenne und auch tätigt bin würde ich sagen, FALLS jemand keine ahnung hat bist du es. (Ich stelle aber keine wilden behauptungen auf)
Fakt ist Fakt.

3.

ist bei so schnellen PCs kaum noch spürbar.

Das ist ein glattes Eingeständnis, nur weil wir jetzt in RAM baden kann man ruhig mit drecks Werkzeugen arbeiten?...
...wohl kaum


4.  Ich hab nie behauptet Minecraft wäre hoch effizient in Java programmiert.
Ich habe es lediglich als Paradebeispiel genannt (Was es auch definitiv ist)
Dieses "Spiel" ist lahm wie sonst was und Performanceraubend...

die Engine ist Single Thread und dazu noch enorm ineffizient

Schreib nen "Single-Thread"-Programm in einer anderen Sprache, das Tool wird in mehr als vielen Fällen besser laufen als das in Java.

Mir geht es nicht darum, dass das Beispiel(Minecraft) schlecht gewählt ist, sondern würde man es in einer anderen Sprache (Und ja auch C#) programmieren würde es um einiges besser laufen, natürlich nicht perfekt (Da hier ja extra "ineffizient" geschrieben wurde um einen Vergleich zu erzielen)


5. Um der großen weiten Welt etwas vernünftigtes auf die Beine zu stellen, wird einem nicht umsonst von Java abgeraten (Nicht nur von mir)

Gut du könntest jetzt wieder mit sehr starken Argumenten wie:

Wenn du meinst Java hätte Sicherheitslücken, dann hast du wohl irgendwas verpasst

oder

du hast dich nie richtig mit Java beschäftigt und kannst deswegen auch schlecht beurteilen

um dich schmeissen.... erwarte darauf aber bitte keine Antworten mehr...

Auch wenn man nie auslernt, brauchst du mir glaube ich nichts erzählen über irgendwelche Blog-Beiträge die du in den letzten Wochen oder Monaten hoch angeregt "studiert" hast....

Ich möchte keine allzu wage Vermutung aufstellen, aber wenn ich heise, chip, pc-welt erwähne dann bist du wohl ganz hoch dabei, da du deren Blogs täglich auswendig lernst....

Die "Bild-Leser" unserer Generation, da haben wir sie....

Naja das wars jetzt auch hier von meiner Klarstellung und meiner Meinung...

Und @Savix: Bitte hör auf zu kommentieren wenn du allem anschein keine Ahnung davon hast, danke...

Nur weil etwas beliebt ist heisst es nicht dass es Technisch sauber ist.

MFG xGlumi

Kommentar von androhecker ,

Ist dir schon mal aufgefallen, dass dein letzter Absatz kein bisschen besser ist, sinnlose Anschuldigungen ohne Begründung. Ich lese weder Heise, noch Chip oder Bild. Wenn du mal meine Antworten durch schaust, wirst du sehen, dass ich immer wieder vor allem Chip Lesern klar mache, was für ein Schwachsinn da verbreitet wird.

1. Anscheinend hast du dich nicht richtig damit beschäftigt, man kann es mögen oder nicht, ein "Rotz" ist es jedenfalls nicht.

2. Was soll denn an Java unsicher sein? Ein Dateizugriff? Das ist wirklich ein Witz. Wenn die Devs zu blöd sind SSL richtig zu verwenden oder kein Passwort Salt + Hash verwenden, sind die daran Schuld und nicht Java. Eine Programmiersprache ist nichts als ein Syntax und ein paar Sprachelemente, die JVM ist NICHT Java. Aber selbst die hat praktisch keine Lücken. Wenn du die Applets meinst dann bist du wohl genau einer der Chip Leser die du hier meinst, denn dieses Problem wurde von den Medien sehr hochgespielt und es ist in Java SE 8 schon gänzlich gelöst. Oft wird auch JavaScript mit Java verwechselt, daher der schlechte Ruf.

3. Java verbraucht weder sonderlich viel Ram noch viel Leistung, nur der nötige Ram für die JVM ist etwas höher. Wenn man heute ein Programm mit GTK+ oder Qt schreibt ist der Unterschied zu JavaFX praktisch nicht spürbar.

4. Java ist nur ein Beispiel für die Dummheit der Entwickler, wenn du Sprachen vergleichen willst solltest du dafür Programme auf Augenhöhe verwenden.

Die Single Thread Engine von Java würde gerade mal in C++ besser laufen, wodurch man aber die Plattformunabhängigkeit und die guten Erweiterungsmöglichkeiten verloren, wodurch Minecraft erst richtig bekannt wurde. (Minecraft ist Closed Source, viel Spaß beim Reverse Engineering)

Wenn du meinst Java würde in einer anderen Interpreter Sprache schneller laufen irrst du dich enorm, wie schon erwähnt ist gerade mal C# als bekannter Interpreter auf Augenhöhe, alle anderen großen Interpreter sind spürbar langsamer. Wenn du mir nicht glauben willst, kannst du es gerne selber testen.

By the way, auf Android werden die Apps beim installieren nativ kompiliert, da ist der Unterschied selbst zu C++ nicht mehr wirklich vorhanden.

5. Von Java wird wohl kaum groß abgeraten. Wenn du mir die Benutzung nicht glauben willst, dann schau mal das an: http://githut.info/

Klar ist GitHub nicht die Welt, aber es ist der größte Git Anbieter der Welt, woanders sieht es nicht groß anders aus.

Im Enterprise Bereich bietet Oracle Java EE an, und dass das sehr beliebt ist, ist ziemlich klar.

Antwort
von phigeek, 5

Die Sprachwahl ist eigentlich sekundär. Ich empfehle zwar Python, musste aber jahrelang Java als Einstiegssprache unterrichten. Java geht auch sehr gut. Einzig ist man noch öfter an einer fehlenden geschweiften Klammer in Java gestolpert, als an einem falschen Einrücken bei Python. Wichtig jedoch sind

a) Die Konzepte zu verstehen

b) Üben Üben und noch einmal Üben (z. B. programmieraufgaben.ch)


Haben wir uns nämlich einmal für eine Sprache entschieden, so müssen wir die Grundkonzepte der Programmiersprachen verinnerlichen; diese sind dann einfach auf eine andere Sprache zu adaptieren. Hierzu gehören (jedoch
nicht ganz bei allen Sprachen):



* Datentypen (Zahlen, Zeichen, Wörter)
* Ausdrücke (Rechenarten, ...)
* Variable (Speichern von Zwischenschritten)
* Sequenzen (Abfolgen)
* Selektion und Iteration (Verzweigung {if} und Wiederholung {while}; auf Maschinenebene kurz der «jump»)
* Unterprogramme (Subroutinen, Funktionen, Prozeduren)
* Arrays (Felder)

Höhere Konzepte kommen beim Programmieren bald dazu, auch wenn wir
sie zunächst selbst nur kopieren, bevor wir sie wirklich kapieren ;-)



* Datenstrukturen (Verbund-Datentyp, Record, Struct, Class, Wiederverwendung von Komponenten)
* Rekursion (Sich selbst aufrufende Programme)
* Delegation (Modularisierung und Verantwortichkeiten)
* Vererbung (Erweiterung bestehender Komponenten)
* Polymorphismus
* abstrakte Klassen und Schnittstellen
* Simulationen
* Algorithmen
* Graphische Benutzerschnittstellen
* Trennung in Daten, Anzeige und Verarbeitung (Model-View-Controller)
* Persistenz
* Multi-User
* Sicherheitsaspekte
* Echtzeitprogrammierung
* ...

Antwort
von Savix, 73

Auf gar keinen Fall! Java ist ein guter Einstieg, vielleicht sogar ist das sogar schon ein wenig hoch angesetzt.

HTML hättes es am Anfang sicher auch erstmal getan, je nach dem, was du herstellen möchtest.

Lerne die Sprache, die dir am meisten zusagt.

LG,
Savix

Kommentar von PeterWolf42 ,

HTML ist keine Programmiersprache.

Kommentar von Savix ,

Wär als Einstieg dennoch nicht schlecht gewesen...

Antwort
von RLEXBuilding, 2

Ich finde die Sprache C# am besten

Keine passende Antwort gefunden?

Fragen Sie die Community