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?
Elias schrieb: > ich > will eben nicht den Mainstream Weg gehen, und mich etwas exklusiver > stellen. Was soll das bringen?
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.
Java ist leichter als Deutsch ;-) Schwierig ist es die generellen Programmierkonzepte zu verstehen - das Problem haste dann aber generell.
@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.
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).
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? ;-)
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.
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.
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.
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.
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
Dieses Forum heißt mikrocontroller.net, oder? Warum werden hier immer wieder Web-"Programmier"-Themen diskutiert? S.
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
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.
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.
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?
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.
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 ;-)
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.
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.
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.
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....
Max D. schrieb: > Texteditor? Und damit debuggst du? Das gehört für mich zumindest zu einer "Entwicklungsumgebung" dazu.
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.
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.
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.
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.
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.
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.
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
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.
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
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/
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
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.
Ey Hans, schön, dass Du diese Leiche ausgräbst. Da freut sich der TO sicherlich!
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?
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.