Forum: PC-Programmierung Python oder Java lernen?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Elias (Gast)


Lesenswert?

Hallo.

Ich würde gerne Programmierung fürs Web machen - und zwar Abseits des 
üblichen Wegs mit PHP. Auch wenn meine Aufgabe mit PHP lösbar wäre, ich 
will eben nicht den Mainstream Weg gehen, und mich etwas exklusiver 
stellen.

Ich möchte auf jeden Fall eine andere Programmiersprache als PHP nutzen.

Auch möchte ich mir den Weg zur Android App möglichst offen halten, denn 
Smartphones und Tablets werden heutzutage immer wichtiger.


Nach erster Recherche kommt Python und Java in Frage.

Vorteil von Python: Es soll einfach und schnell zu erlernen sein.
Mit Python lassen sich wunderbar dynamische Webseiten erstellen, es gibt 
auch Frameworks dafür.
Der Weg in Richtung Smartphone steht als sogenannte WebApp offen.
Notfalls, wenn man eine "richtige" app mit python machen will, gibt es 
für Android auch python Frameworks. Die App wird dadurch allerdings 
massiv aufgebläht.



Vorteil von Java: Java auf kann verschiedenen Wegen auch genutzt werden, 
um serverseitig dynamische Webseiten zu erzeugen.
Und man ist mit der Programmiersprache näher am Thema JavaScript / 
jQuery und Servlets dran, was durchaus von Vorteil ist.

Mit Java können Serverseitig durchaus auch WebApps gemacht werden (wäre 
auch Step 1), der Sprung zur "echten" Android App ist jedoch deutlich 
kleiner, mit Java kann man direkt loslegen mit der Entwicklung einer 
richtigen App.
Nichts destro trotz würde ich allein Android als echte App unterstützen, 
sonstige Plattformen müssen sich mit der WebApp zufrieden geben.

Nachteil von Java: Es soll schwer zu erlernen und kompliziert sein.



Was würdet ihr wählen? Python oder Java?

von lächler (Gast)


Lesenswert?

Elias schrieb:
> ich
> will eben nicht den Mainstream Weg gehen, und mich etwas exklusiver
> stellen.

Was soll das bringen?

von Mark B. (markbrandis)


Lesenswert?

Elias schrieb:
> Ich möchte auf jeden Fall eine andere Programmiersprache als PHP nutzen.

Sehr vernünftig :)

> Auch möchte ich mir den Weg zur Android App möglichst offen halten, denn
> Smartphones und Tablets werden heutzutage immer wichtiger.

Wenn Android extrem wichtig für Dich ist, bietet sich Java an.

> Nach erster Recherche kommt Python und Java in Frage.

Und Scala, Ruby, Perl, HTML5 + JavaScript, ...

> Nachteil von Java: Es soll schwer zu erlernen und kompliziert sein.

Nicht wenn man C++ kann :)

> Was würdet ihr wählen? Python oder Java?

Im Idealfall beides. Wobei ich Python bis heute nicht wirklich kann, im 
Gegensatz zu Java.

von gg (Gast)


Lesenswert?

Java ist leichter als Deutsch ;-)
Schwierig ist es die generellen Programmierkonzepte zu verstehen - das 
Problem haste dann aber generell.

von Elias (Gast)


Lesenswert?

@lächler
Naja, PHP macht irgendwie "fast jeder".
Ich selbst kann auch schon einigermaßen PHP.

Ich will etwas lernen, was eben nicht schon 15 Leute im erweiterten 
Bekanntenkreis auch schon auf ähnlichem Niveau können.

Mein Projekt wäre natürlich mit PHP realisierbar. Aber will ich das? 
Nein.

Ich verbau mir zwar den Weg, es auf irgendwelchen 0815 Low cost Shared 
Webhosting Angeboten laufen zu lassen, die meißt nur PHP können. Aber da 
muss es ja auch nicht installiert werden, das würde eh keinen Sinn 
machen da dort die relevanten lokalen Daten gar nicht zur Verfügung 
stehen. (außer man ließe den Raspi erst mal alles da hochladen)

Es ist außerdem ein Unikat, es ist nicht dafür gedacht, es auf den 
allgemeinen Markt zu werfen.

von Ulli N. (Gast)


Lesenswert?

Du mußt die Konzepte hinter einer tragfähigen Softwarearchitektur 
verstehen. In welcher Sprache das dann umgesetzt wird, ist heute 
irrelevant (früher war das nicht unbedingt so).

von Andreas R. (daybyter)


Lesenswert?

Ich kann Java auch besser als Python. Allerdings kann ich auch PHP, C++ 
und paar andere Sprachen. Die Logik, dass Du dann 'exklusiver' bist, 
kann ich so nicht nachvollziehen. Der Einblick in andere Sprachen 
erweitert Deinen Horizont und Du bekommst Zugang zu vielen Sources, die 
Du nutzen kannst (portieren, davon lernen usw).

Ich würde auch jedem raten erstmal Englisch zu lernen statt Urdu. Ist 
vielleicht weniger exklusiv, aber dafür mehr nützlich? ;-)

von Max D. (max_d)


Lesenswert?

Also Python ist mehr so eine quick&dirty bastel-Kiste.
Das geht schon damit los, dass schleifen nicht per klammer sondern per 
einrückung definiert sind. Sowas kann in einem großen Projekt nur schief 
gehen.
Der große Vorteil ist halt die Interpreter-Natur davon. Die macht es 
einem leichter ein Stück Code einfach mal so hinzurotzen, der 
Interpreter sucht sich dann schon die Datentypen raus.


Java ist gezähmtes C++ und damit sehr mächtig, aber auch sehr komplex. 
Die gadgets wie garbage collection machen einem das Leben etwas 
leichter, aber kosten natürlich Performance.


Meine Empfehlung geht eher Richtung Java für ein "richtiges" Projekt.
Python ist eher nützlich wenn man in fünf Minuten irgendwas laufendes 
zusammenwerfem will/muss.

von Elias (Gast)


Lesenswert?

Mark Brandis schrieb:
> Elias schrieb:
>> Ich möchte auf jeden Fall eine andere Programmiersprache als PHP nutzen.
>
> Sehr vernünftig :)

Ja, ich will nicht den Mainstream Weg gehen :)

>
>> Auch möchte ich mir den Weg zur Android App möglichst offen halten, denn
>> Smartphones und Tablets werden heutzutage immer wichtiger.
>
> Wenn Android extrem wichtig für Dich ist, bietet sich Java an.

Ja, ich habe Andriod Geräte, für die ich auch gerne irgendwann mal 
entwickeln würde. Zunächst als WebApp, irgendwann aber gerne auch mal ne 
"richtige" App. (Die dann aber der einfachheit halber nur Android only 
wird). Falls ich das Projekt irgendwann doch mal weitergebe, wird halt 
ein bestimmtes Android Gerät als "Monitor" einfach vorrausgesetzt, 
basta. Oder man nutzt halt die WebApp.

>
>> Nach erster Recherche kommt Python und Java in Frage.
>
> Und Scala, Ruby, Perl, HTML5 + JavaScript, ...

HTML5 und JavaScript brauch ich sowieso.

Scala und Ruby kenne ich nur vom Namen her. Mit Perl habe ich mich mal 
grundlegend befasst, aber da ziehe ich dann doch Python vor.
>
>> Nachteil von Java: Es soll schwer zu erlernen und kompliziert sein.
>
> Nicht wenn man C++ kann :)
>
>> Was würdet ihr wählen? Python oder Java?
>

C++ kann ich die Grundlagen. Leicht eingerostet, ist schon ne weile her.

Da hab ich sogar einen Kurs besucht.
Allerings wurden da ehr die absoluten Grundlagen erklärt. Also es wurden 
Dinge wie z.B. Programmablaufplan oder verschiedene Programmierparadigma 
wie z.B. oop / prozedurale Programmierung erklärt. Auch das EVA Prinzip, 
getter, setter. Und auch Klassen, Objekte, Methoden usw.
Basics wie z.B. Variablentypen, Schleifen, Bedinungen, usw, natürlich 
auch.

Wirklich programmiert wurde da allerdings kaum, war eigentlich fast nur 
Theorie.

Ich habe Kursbegleitend selbst ein wenig herumprogrammiert, es klappte 
auch einigermaßen.
Probleme hatte ich in C++ mit Pointern und Casts.
Und dass ich oftmals schlicht den Faden verloren habe.

Meine Abschlussarbeit hab ich dann jedoch leider mit Hilfe von 
VisualBasic und weiteren Microsoft Programmen erstellt. (Asche über mein 
Haupt, aber es gab keine Vorgabe, wie es zu lösen war)

> Im Idealfall beides. Wobei ich Python bis heute nicht wirklich kann, im
> Gegensatz zu Java.


Python kann ich auch noch nicht. Aber das kann sich ändern :)
Falls ich mich nicht für einen Einstieg in Java entscheide.

von Elias (Gast)


Lesenswert?

Max D. schrieb:
> Also Python ist mehr so eine quick&dirty bastel-Kiste.
> Das geht schon damit los, dass schleifen nicht per klammer sondern per
> einrückung definiert sind. Sowas kann in einem großen Projekt nur schief
> gehen.

Python zwingt so aber auch zu einem "sauberen Programmierstil". Die 
Einrückungen sind da ja nicht nur Optik, sondern funktionsrelevant.

> Der große Vorteil ist halt die Interpreter-Natur davon. Die macht es
> einem leichter ein Stück Code einfach mal so hinzurotzen, der
> Interpreter sucht sich dann schon die Datentypen raus.
>
Ja, man muss Strings z.B. nicht als solche definieren. Eine notwendige 
Variablendeklaration sehe ich nun nicht als Hindernis an.
Kompliziert wirds erst dann, wenn Typenumwandlungen ins Spiel kommen.

> Java ist gezähmtes C++ und damit sehr mächtig, aber auch sehr komplex.
> Die gadgets wie garbage collection machen einem das Leben etwas
> leichter, aber kosten natürlich Performance.

Ja, Java und C++ sind sich schon irgendwie ähnlich, vielleicht ist das 
auch ein Vorteil, weil man dann einfacher "wechseln" kann.

>
> Meine Empfehlung geht eher Richtung Java für ein "richtiges" Projekt.
> Python ist eher nützlich wenn man in fünf Minuten irgendwas laufendes
> zusammenwerfem will/muss.

Für das Projekt müsste ich dann zunächst mal auf Dinge wie JSP setzen.

Oder ich muss als "Zwischenschicht" noch ein kleines PHP bzw Python 
Script basteln.
Dann lass ich das Java Programm aber nur die Rohdatenverarbeitung machen 
und das was mit Darstellung zu tun hat (z.B. html zusammensetzen) wird 
auf die Scriptsprache verlagert.

von Achim H. (anymouse)


Lesenswert?

Die Sprache allein ist nicht der große Unterschied, wenn es um 
Web-Applikationen geht.


Java an sich finde ich nicht besonders schwierig bzw. man kann mit einem 
geringen Grundstock schon einiges machen. Sobald es etwas komplexer 
wird, wird man um die Verwendung von Bibliotheken nicht herumkommen, von 
denen Java bzw. das JDK schon etliche mitbringt.

Zusätzlich könntest Du bei Java für Web-Applikationen schnell an einen 
Punkt kommen, wo es Richtung JEE geht -- und dann ist die eigentliche 
Sprache nur ein kleiner Teil.

von Anon (Gast)


Lesenswert?

Elias schrieb:
> Für das Projekt müsste ich dann zunächst mal auf Dinge wie JSP setzen.

Kann man machen, für eine richtige WebApp muss man aber auch den ganzen 
Käse mit Ajax etc selbst ausprogrammieren.
JSP ist nicht mehr ganz so up-to-date.
JSF mit einem (Frontend-)Framework wie 
http://www.primefaces.org/showcase/
nimmt einem da wahnsinnig viel ab und man kann sich um die wirkliche[TM] 
Programmierung (in Schlipssprech: Businesslogic) kümmern.
Einen Blick ist das allemal wert, v.a. weil sich Primeface auch um 
responsive-foo kümmert und man, wenn das nichtmehr reicht, auch eine 
mobile-Version hätte.

Grüße

von Stefan (Gast)


Lesenswert?

Dieses Forum heißt mikrocontroller.net, oder? Warum werden hier immer 
wieder Web-"Programmier"-Themen diskutiert?
S.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Ok, nicht Mainstream. Was haben wir denn da so im Angebot?

Hmm, zum Beispiel Go. Machen nur so rund 0,3% aller Programmierer. Sogar 
weniger als noch PL/I machen. Mit Go bist du voll 1337. Und Go ist von 
Google, also 2*1337, oder sogar 1337^2.

Oder wie wäre es mit Lua? Machen nur rund 0,4% aller Programmierer. 
Allerdings plärren die so laut rum wie geil Lua ist, dass man glaubt Lua 
wäre voll Mainstream. Hmm, eventuell also doch nichts für dich.

He, ich hab's. FORTRAN oder COBOL. Das ist so richtig voll Old School 
und Retro. Machen nur so rund 0,6% bis 0,7% aller Programmierer. Damit 
bist du DAS Gespräch auf jeder Party. Zumindest wenn du schon graue 
Haare hast.

Nächster Versuch. Ein neuer Shooting Star soll ja F# sein. Es steht bei 
sagenhaften 1,5%. Vielleicht schon zu mainstreamig? Stammt von Microsoft 
Research. Oh je, uncool.

Also doch Python. 2,6%. Die Sprache ist zwar scheiße und die Fanboys 
geben an wie eine Tüte Mücken, aber gegenüber Java mit fast 16% ist das 
so richtig ghetto und voll underdog. Yo, wir haben es: Python ... läuft!

: Bearbeitet durch User
von Daniel A. (daniel-a)


Lesenswert?

Ich habe früher auch php verwendet, habe aber festgestellt, dass 
serverseitig htmlseiten zu generieren nur das cacheing stört und 
Serverrechenzeit verschwendet. Zudem kann sie nicht mit apache cordova 
als locale Seite verwendet werden. Ich empfehle Templateisierung und 
konzepte wie mvc vollständig und ausschlieslich clientseitig zu lösen. 
Die Daten kann man sich per REST-Schnitstelle und/oder websocket liefern 
lassen. Ich kombiniere gerne beide, indem ich per Websockets 
informationen über geänderte REST-Inhalte versende, um die vorteile des 
cacheings mit echtzeit updates zu kombonieren. Mit html5 offline app ( 
mittels application cache und manifest datei ) können dabei alle 
requests auf unveränderte Ressourcen vermieden werden.

Java mit spring, hibernate, etc. ist perfekt um solide 
REST-Schnittstellen zu erstellen.

Websocket fand ich mit nodejs am einfachsten.

Am ende liegt die Umsetzung aber bei dir.

von 8==============D (Gast)


Lesenswert?

Ich kann besser Python als Java.

Ich mag das Motto "Batteries Included" bei Python einfach, es gibt super 
viele Libs die einfach dabei sind... und um so mehr die man einfach 
nachinstallieren kann.

Diese imense auswahl macht es manchmal ehr schwierig sich für eine zu 
entscheiden.

Ich glaube wenn man schnell Ergebnisse will ist python einfach 
meilenweit vorraus...

Java ist in meinen Augen mehr so eine Hipstar Geschichte. Aber grade 
wenn man kram für Android entwickeln möchte wohl das mittel der Wahl.

von Udo S. (urschmitt)


Lesenswert?

Stefan schrieb:
> Dieses Forum heißt mikrocontroller.net, oder? Warum werden hier immer
> wieder Web-"Programmier"-Themen diskutiert?
> S.

Vieleicht weil das das Unterforum "PC Programmierung" ist?

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

8==============D schrieb:
> Java ist in meinen Augen mehr so eine Hipstar Geschichte. Aber grade
> wenn man kram für Android entwickeln möchte wohl das mittel der Wahl.

Typisch Python Fanboy.

Seit 15 Jahren (Java ist älter, aber da finden sich keine Zahlen), 
befindet sich Java durchgehend unter den Top 3 der am häufigsten 
verwendeten Programmiersprachen (zusammen mit C und C++). Seit 10 Jahren 
befindet sich Java sogar durchgehend unter den Top 2 (zusammen mit C). 
Java alleine ist mehr als 6 mal populärer als Python. Zusammen sind Java 
und C mehr als 12 mal populärer als Python.

Java war schon etabliert, da gab es keine Hipster und keine Android 
Apps. Python hingegen ist genau so eine Hipster-Geschichte. Rossum 
musste seine  Klammern-Phobie öffentlich ausleben, und die Fanboys 
erklären das irrelevante Ergebnis zur neuen Superwaffe.

Die einzige Programmiersprache, die ihr Überleben Apps zu verdanken hat 
ist Objective-C. Objective-C war fast tot, bevor Apple es für iPhone 
Apps verwendete. Jobs hatte Objective-C stark auf seinen NeXT-Systemen 
propagiert, war aber mit der Firma auf die Schnauze gefallen. Erst mit 
dem iPhone ging es wieder aufwärts.

von ( . ) ( . ) (Gast)


Lesenswert?

Hannes Jaeger schrieb:
> Seit 15 Jahren (Java ist älter, aber da finden sich keine Zahlen),
> befindet sich Java durchgehend unter den Top 3 der am häufigsten
> verwendeten Programmiersprachen (zusammen mit C und C++). Seit 10 Jahren
> befindet sich Java sogar durchgehend unter den Top 2 (zusammen mit C).
> Java alleine ist mehr als 6 mal populärer als Python. Zusammen sind Java
> und C mehr als 12 mal populärer als Python

Und wo macht es das jetzt besser oder schlechter? Java ist jedenfalls 
weit weniger portabel (und jeder der was anderes sagt, sagt wohl auch 
das analsex besser is weils auf beiden geschlechtern funktioniert)

Na du sagst es schon "populärer" älter... leute haben sich mehr dran 
gewöhnt.

Java stinkt in meinen Augen in so vielen hinsichten. Irgendwo gabs mal 
schön zusammen gefasst 100 Gründe warum Java scheiße is. Google selbst 
;-)

von Sebastian (Gast)


Lesenswert?

Ja, Java ist lange etabliert. Aber das muß man im historischen Kontext 
sehen: "plattformübergreifend" war damals der letzte Schrei, während es 
heute - auch und gerade für die Skriptsprachen - fast selbstverständlich 
ist.
Die Popularität von Java beruht nicht darauf, daß es eine besonders gute 
Sprache wäre, sondern vielmehr auf dem zeitlichen Vorsprung, mit dem die 
damals vorhandene Nische besetzt wurde. Wenn es dann erst einmal genug 
existierenden Code gibt, ist die langfristige Existenz der Sprache 
gesichert. Genauso eroberte Microsoft damals den Markt, Windows 
(3.0/3.1) wurde halt den Programmierern massiv schmackhaft gemacht, und 
wenn es erst einmal Applikationen dafür gibt, etabliert sich auch ein 
Betriebssystem.
Ob Python technisch besser ist, lasse ich mal dahin gestellt, denn Java 
und Python sind eigentlich wie Äpfel und Birnen.

von Max D. (max_d)


Lesenswert?

Elias schrieb:
> Python zwingt so aber auch zu einem "sauberen Programmierstil". Die
> Einrückungen sind da ja nicht nur Optik, sondern funktionsrelevant.

Gerade aber wenn man Funktionsblöcke zwischen Projekten hin&her kopiert 
(wer recycelt denn nicht gerne) führt das leicht zu Störungen.
Wie heißt es so schön: "never rely on whitespace"
Ich will Python die Eignung für schnelle, einfache und performante 
Lösungen nicht absprechen (ich verwende es ja auch, ist einfach sau 
praktisch). Ich würde jetzt, aber kein Großprojekt damit entwickeln. 
Ein, zwei Klicki-Bunti-Fenster sind so das Maximum was ich (mir mit) 
Python zutrauen würde.

Elias schrieb:
> Ja, man muss Strings z.B. nicht als solche definieren. Eine notwendige
> Variablendeklaration sehe ich nun nicht als Hindernis an.
> Kompliziert wirds erst dann, wenn Typenumwandlungen ins Spiel kommen.

Also egal wie man es betrachtet, man wird über die meisten "nicht 
Standard" Variablen-deklarationen zumindest einen Moment nachdenken 
müssen. Das spart man sich bei Python.

Aus Erfahrung kann ich sagen, dass Python deutlich schneller 
"hingeschludert" werden kann und trotzdem wie erwartet funktioniert 
(solange man die Einrückungen beachtet und sowas).

Elias schrieb:
> Ja, Java und C++ sind sich schon irgendwie ähnlich, vielleicht ist das
> auch ein Vorteil, weil man dann einfacher "wechseln" kann.

Was ich so aus der Java-Fraktion gesehen hab ist ein Wechsel eher die 
Ausnahme als die Regel. Wenn man sich mal an Zeug wie GC gewöhnt hat, 
dann gibt das auf C++ ein wahres Fest an Speicher-Müll.

von Elias (Gast)


Lesenswert?

Hi.

Wahrscheinlich werde ich mich für Java entscheiden.
Es ist für Adroid Apps meiner Meinung nach der zielführendste Weg.
Außerdem ist die Ähnlichkeit mit JS, ActionScript und was man sonst noch 
für moderne Webprojekte braucht, am größten.


Mir kommt es übrigens nicht drauf an, möglichst eine wenig verbreitete 
Programmiersprache zu nehmen, ich will nur nicht den 0815 PHP Weg gehen.
Ich lehne PHP aber auch nicht strikt ab. Als Ergänzung würde ich es auch 
mit verwenden. Genauso wie Perl oder auch andere Programmiersprachen, 
wenn es sich für ein Teilproblem sehr gut anbietet.

Es spricht nichts dagegen, mehrere Sprachen zu beherrschen, aber man 
sollte sich meiner Meinung nach schon eine "Hauptsprache" suchen, die 
man dann wirklich intensiv lernt.
Und da werde ich nun erst mal Java nehmen, da es die meißten 
Überlappungen in die Bereiche hat, die ich abdecken möchte.

Ich habe mir nun mal den Netbeans herunter geladen.
Damit kann man sogar HTML5 und PHP machen. (Per Plugin auch Python)
Android Apps sind auch möglich.
NetBeans gibts auch für Linux, so dass der Umstieg auf Linux dann 
leichter fällt.

Bei Python würde es sich komplizierter gestalten, sich eine 
OS-unabhängige, aber einheitliche Entwicklungsumgebung zu schaffen.

von Max D. (max_d)


Lesenswert?

Elias schrieb:
> Bei Python würde es sich komplizierter gestalten, sich eine
> OS-unabhängige, aber einheitliche Entwicklungsumgebung zu schaffen.

Texteditor?
Python is eine Skriptsprache....

von Udo S. (urschmitt)


Lesenswert?

Max D. schrieb:
> Texteditor?

Und damit debuggst du?
Das gehört für mich zumindest zu einer "Entwicklungsumgebung" dazu.

von A. H. (ah8)


Lesenswert?

Elias schrieb:
> Es spricht nichts dagegen, mehrere Sprachen zu beherrschen, aber man
> sollte sich meiner Meinung nach schon eine "Hauptsprache" suchen, die
> man dann wirklich intensiv lernt.

Vielleicht hilft Dir ja das folgende Buch weiter:

http://books.google.de/books/about/Programming_language_choice.html?id=fZ1QAAAAMAAJ&redir_esc=y

Du findest darin auch einen Artikel von einer Marian Petre von der Open 
University. Sie hat einmal in einer Feldstudie untersucht, was einen 
Experten eigentlich von dem unterscheidet, was in solchen Arbeiten 
typischerweise als naive programmer bezeichnet wird. Herausgekommen 
ist, dass es nicht die eine oder andere Sprache ist, die einen Experten 
zum Experten macht, sondern die Fähigkeit, extrem schnell zwischen 
verschiedenen Paradigmen wechseln zu können, wobei auch gerne 
verschiedene Paradigmen kombiniert werden. Ein wirklicher Experte wird 
sich also nie auf eine Sprache festlegen lassen und Sprachen bevorzugen, 
die möglichst viele Paradigmen abdecken können. Es kann also keinesfalls 
schaden möglichst viele und d.h. insbesondere auch möglichst viele 
unterschiedliche Sprachen zu lernen, gerne auch Exoten oder reine 
Lehrsprachen wie etwa Forth, Lisp oder Prolog, bei denen die 
Wahrscheinlichkeit, sie mal in einem realen Projekt einzusetzen, 
heutzutage eher gering ist. Es sind die Konzepte und Modelle, die 
dahinter stehen, die Paradigmen eben, auf die es ankommt. Wer die 
verstanden hat, für den ist eine neue Sprache nicht mehr als einen neue 
Syntax, also nicht viel mehr als ein paar neue Vokabeln.

von Andreas R. (daybyter)


Lesenswert?

Ich glaub, Eclipse ist weiter verbreitet als Netbeans. Wobei ich mich 
seit Jahren für Eclipse begeistern möchte, und dann nehm ich doch wieder 
emacs und ein build File...

Nur für Android nehm ich gelegentlich Eclipse. Wobei das ja quasi knapp 
über Assembler-Niveau ist, wenn man mal Sachen wie phonegap benutzt hat.

von Rolf M. (rmagnus)


Lesenswert?

Was mir an Python ganz gut gefällt, ist die Möglichkeit, es interaktiv 
zu nutzen und auf die Weise mal einfach kurz was "live" auszuprobieren.

Sebastian schrieb:
> Ja, Java ist lange etabliert. Aber das muß man im historischen Kontext
> sehen: "plattformübergreifend" war damals der letzte Schrei, während es
> heute - auch und gerade für die Skriptsprachen - fast selbstverständlich
> ist.

Bei Java ist es das aber bis heute nicht. Plattformunabhängigkeit hat da 
noch nie funktioniert. Die hat man aber einfach trotzdem gut vermarktet 
und damit Java zum Hype gemacht.

Hannes Jaeger schrieb:
> Java war schon etabliert, da gab es keine Hipster und keine Android
> Apps.

Java hat sich erst durch die Hipster etabliert. Das waren aber keine 
Android-Hipster, sondern die aus der Dotcom-Blase.

Max D. schrieb:
> Was ich so aus der Java-Fraktion gesehen hab ist ein Wechsel eher die
> Ausnahme als die Regel. Wenn man sich mal an Zeug wie GC gewöhnt hat,
> dann gibt das auf C++ ein wahres Fest an Speicher-Müll.

Naja, die anderen Ressourcenlecks bemerken viele oft nicht. Denn Java 
hat leider einen großen konzeptionellen Schwachpunkt in der Hinsicht. 
Speicher ist ja nicht die einzige Ressource, die wieder freigegeben 
werden muss. Es ist aber die einzige, um die sich der GC kümmert.

von Joschua C. (Gast)


Lesenswert?

Wo du gerade was vom Umstieg auf Linux gesagt hast: Meiner Erfahrung 
nach machen Java und Linux nicht mehr so wirklich Spaß. Python dagegen 
ist auf Linux sehr geil zu benutzen. Bei Android siehts halt ganz anders 
aus: Da kannst du mit Java Apps gescheit programmieren und mit Python 
wirst du nicht wirklich glücklich. Ich finde beide Sprachen haben ihre 
Vor- und Nachteile und  beide haben ihre Berechtigung. Von daher 
solltest du dir genau überlegen, worauf das was du programmierst mal 
hauptsächlich laufen soll und danach entscheiden.

von outofthebox (Gast)


Lesenswert?

Hannes Jaeger schrieb:
> Also doch Python. 2,6%.

Python ist mittlerweile schon bei 3,4%

von sparks (Gast)


Lesenswert?

Irgendwie ist das alles ein bisschen so, als würde ein Schreiner fragen, 
ob er sich Werkzeug von Hersteller a oder b kaufen soll. Und glaubt, die 
Wahl des (richtigen) Werkzeug würde automatisch dazu führen, dass er 
bessere Möbel baut und mehr Aufträge bekommt. Und dabei vergisst, dass 
man nicht deswegen ein guter Handwerker ist, weil man Werkzeug eines 
bestimmten Herstellers nutzt, sondern aufgrund zahlreicher anderer 
(handwerklicher) Fähigkeiten.

Eine Programmiersprache ist nur Mittel zum Zweck. Also ein Werkzeug. Nur 
weil man z.B. Java anderen Sprachen wie Python oder PHP vorzieht, 
entsteht nicht automatisch besser Code oder gar bessere Programme / 
Apps. Es sind die Konzepte und Paradigmen, die man verstanden haben 
muss. Das macht einen guten Programmierer aus. Und nicht die Wahl einer 
bestimmten Sprache.

Ich finde, A. H. (ah8) hat das in seinem Post sehr schön beschrieben.

von ... (Gast)


Lesenswert?

Ich finde das ist die falsche herangehensweise. Eine Programmiersprache 
zu lernen nur um sie zu können bringt nicht viel. Du musst den Spass am 
Programmieren finden. :-)

Mir persönlich macht es zum Beispiel Spass kleine mathematische Probleme 
zu lösen, wie z.B. sowas hier:

https://projecteuler.net

Eine App für sich selbst programmieren, die es so noch nicht gibt, ist 
auch eine super Motivation.

Wichtig ist auch überhaupt erstmal programmieren zu lernen, die Sprache 
ist dabei egal. Für viele Anfänger ist es gar nicht so einfach, große 
Probleme in zu lösende Teilprobleme zu zerlegen.

Mein Rat wäre als Programmiersprache C#/.Net. Ist aber leider nur für 
Windows. Da kann man dann relativ leicht Java, C/C++, Javascript und PHP 
lernen. Zumindest sieht die Syntax ähnlich aus, wobei man nie den Fehler 
machen darf, sich nicht über die Feinheiten und Unterschiede zu 
informieren. Jemand der in C++ wie in C# programmiert, wird scheitern.

von Arc N. (arc)


Lesenswert?

Elias schrieb:
> Hi.
>
> Wahrscheinlich werde ich mich für Java entscheiden.
> Es ist für Adroid Apps meiner Meinung nach der zielführendste Weg.
> Außerdem ist die Ähnlichkeit mit JS, ActionScript und was man sonst noch
> für moderne Webprojekte braucht, am größten.

ActionScript... Flash... Für was? Dazu gibt es spätestens seit HTML5 
eigentlich keinen einzigen Grund mehr. Selbst dort, wo es mal häufig 
genutzt wurde, z.B. bei Videos ist es obsolet. Youtube hat seit Anfang 
des Jahres HTML5 als Voreinstellung für den Player, Netflix, Vimeo und 
andere ebenso.

Java und JavaScript haben außer einer zum Teil an C angelehnten Syntax 
nur vier Buchstaben gemeinsam ansonsten sind die Sprachen völlig 
unterschiedlich.
U.a. "dynamische" Typisierung in JavaScript vs. statischer in Java oder 
prototypenbasiert vs. klassenbasiert in Java. Zudem bietet JavaScript 
drastisch mehr Möglichkeiten zur Metaprogrammierung als Java.

: Bearbeitet durch User
von Daniel A. (daniel-a)


Lesenswert?

Gleichzeitig fehlt javascript aber auch die möglichkeit, interfaces zu 
erstellen, und es besitzt keinen blockscope:
1
(function(){
2
  x=1;
3
  var x;
4
  {var y=2}
5
  console.log(x,y);
6
  for(var i=0;i<2;i++)(function(j){
7
    console.log(i,j);
8
    setTimeout(function(k){
9
      console.log(i,j,k);
10
    },100,i);
11
  }).call(this,i);
12
})();
13
console.log(window.x);
14
// ausgabe:
15
// 1 2
16
// 0 0
17
// 1 1
18
// undefined
19
// 2 0 0
20
// 2 1 1

Es gibt auch kein Multithreading, nur asynchrone callbacks und worker, 
wobei sich worker keine ressourcen teilen können und nur mit events 
textnachrichten versenden/empfangen.

In java kann man dafür keine funktionen mit variablen referenzieren, und 
muss ein interface schreiben dass man als Anonyme classe oder lambda 
verwendet, und dann kennt java nichteinmal einen closurescope, wie ihn 
javascript besitzt.

von Karl Käfer (Gast)


Lesenswert?

Hallo Max,

Max D. schrieb:
> Elias schrieb:
>> Python zwingt so aber auch zu einem "sauberen Programmierstil". Die
>> Einrückungen sind da ja nicht nur Optik, sondern funktionsrelevant.
>
> Gerade aber wenn man Funktionsblöcke zwischen Projekten hin&her kopiert
> (wer recycelt denn nicht gerne) führt das leicht zu Störungen.

Wer "Funktionsblöcke zwischen Projekten hin&her kopiert", der hat den 
Sinn von Modularisierung und Objektorientierung nicht verstanden.

> Ein, zwei Klicki-Bunti-Fenster sind so das Maximum was ich (mir mit)
> Python zutrauen würde.

Sorry, aber nach Deiner oben zitierten Aussage würde ich Dir das auch 
mit keiner anderen Sprache zutrauen.

Liebe Grüße,
Karl

von Karl Käfer (Gast)


Lesenswert?

Hallo Rolf,

Rolf Magnus schrieb:
> Was mir an Python ganz gut gefällt, ist die Möglichkeit, es interaktiv
> zu nutzen und auf die Weise mal einfach kurz was "live" auszuprobieren.

Kennst Du schon IPython [1]?

Liebe Grüße,
Karl


[1] http://ipython.org/

von Karl Käfer (Gast)


Lesenswert?

Hallo Elias,

Elias schrieb:
> Vorteil von Java: Java auf kann verschiedenen Wegen auch genutzt werden,
> um serverseitig dynamische Webseiten zu erzeugen.

Sowas will man ohnehin mit einer Template-Engine machen, und dabei tun 
sich Java und Python ziemlich wenig.

> Und man ist mit der Programmiersprache näher am Thema JavaScript /
> jQuery und Servlets dran, was durchaus von Vorteil ist.

Nein. Java ist genauso nah an Javascript und / oder jQuery wie Python. 
Und der praktische Vorteil von Java-Servlets gegenüber Funktionen oder 
Klassen in einem modernen Python-Webframework wie Bottle.py, Flask oder 
Django hat sich mir bis dato nicht erschlossen.

Die Unterschiede zwischen diesen beiden Sprachen -- kompiliert versus 
interpretiert, Typsicherheit mit deklarierten Typen versus dynamischer 
Typisierung mit Autovivikation, ... -- wirst Du vermutlich wissen. Dann 
weißt Du auch, daß das beides leistungsfähige, moderne Allround-Sprachen 
sind, die weit über das Web hinaus angewendet werden können und werden.

Für mich persönlich ist Python das Mittel der Wahl. Für alles: Skripte, 
Systemverwaltung, Automatisierung, aber auch kleine bis mittelgroße 
GUI-Werkzeuge, Numbercrunching, Statistik, Datenvisualisierung ... und 
wenn ich mal mehr Rechenpower brauche, hab' ich ja immer noch C, C++ und 
Boost.Python zur beiderseitigen Integration von C++ und Python.

Andererseits ist Java ein Industriestandard und weit verbreitet. Wenn Du 
später mal hauptberuflich Software entwickeln willst, ist es sicher 
nicht verkehrt, Java zumindest rudimentär zu beherrschen und schon 
einmal etwas damit gemacht zu haben. Und wenn die App-Entwicklung der 
Primärziel ist, könnte Java ebenfalls die bessere Wahl sein.

Da beide Sprachen ziemlich unterschiedlich sind, muß es aber auch nicht 
schaden, einfach beide zu lernen. Java ist dabei der deutlich 
aufwändigere Teil; ein erfahrener Skriptsprachenentwickler kann Python 
in einer Woche gut genug erlernen, um es praktisch zu benutzen, dazu 
vielleicht noch ein oder zwei weitere Wochen für eines der oben 
genannten Webframeworks. Für Java würde ich bis zum "produktiven 
Stadium", je nach Vorkenntnissen und Zeitkontingent, eher mit drei bis 
sechs Monaten rechnen.

HTH,
Karl

von Hans (Gast)


Lesenswert?

Python oder Java lernen?

Ich mache die komplexesten Web Programme mit PHP - geht super! Und 
herrlich wie die Datenbank mit einfachstem Code die dynamischen Seiten 
aufbaut. Ich wär doch bescheuert, wenn ich was komplizierteres nehmen 
würde..

Ich würde mit PHP aber keine S7 von SIEMENS für einen Industrieprozess 
programmieren. Da nimmt man z.B. Java. Vermutlich geht auch C++.

Überleg Dir was Du machen möchtest. Jede Aufgabe benötigt das richtige 
Werkzeug. Und dann den einfachsten Weg gehen.

von Zeitreisender (Gast)


Lesenswert?

Ey Hans,
schön, dass Du diese Leiche ausgräbst.
Da freut sich der TO sicherlich!

von Axel (Gast)


Lesenswert?

eine Leiche in einen Forum??
was für ein Blödsinn
die Zeit wandelt sich und ich bin jetzt grad mit exakt dieser Frage hier 
aufgekreuzt und freue mich darüber, das auch jetzt noch Leute hierzu 
schrieben, einfach weil die Zeit schreitet und die Eindrücke heute 
andere sein können als noch vor 2, 3 Jahren

wen interessiert denn da dann der Threadersteller?

von Markus (Gast)


Lesenswert?

Axel schrieb:
> die Eindrücke heute
> andere sein können als noch vor 2, 3 Jahren

Quark, der Vergleich 'Python vs. Java' fällt heute genauso aus wie zu 
Zeiten der Threaderstellung vor drei Jahren!

von Martin H. (horo)


Lesenswert?

Das ist wie die Frage: "Soll ich mir einen Schlitz- oder 
Kreuzschlitz-Schraubenzieher kaufen", die auch nur beantwortet werden 
kann mit: "Auf jeden Fall einen Schlitzschraubenzieher, der passt auch 
in Kreuzschlitze, wenn Du ihn etwas verkantest".
Es gibt kein Programmiersprache for die gilt "one size fits all".
Konzepte kann man leicht mit Python lernen, auch Objetorientirung und 
Modularisierung und dann auf Java oder vergleichbare Schlachtschiffe 
unzusteigen.

Disclaimer: Mit ...zieher sind auch alle Arten von ...drehern mit 
eingeschlossen. Wir lassen niemanden zurück.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.