Kann es sein, dass an den Hochschulen immer mehr Python gelehrt wird? Ich habe auch schon Stellenangebote gesehen, in denen explizit Python-Programmierer gesucht werden. Wie läuft Python unter Windows? Soweit ich weiß, ist Python eher der Linux Welt entsprungen.
Im Studium hatten wir keinen Kontakt damit. Ich habe im Praxissemester damit entwickelt (SPC-Applikation mit viel Mathematik - PyQt, numpy, R). Den Python-Interpreter gibts auch für Windows. Bezüglich der Performance mußt Du mal googlen, wie es sich gegenüber C/C++ und Java schlägt. Bei performancekritischen Dingen kann aber noch optimiert werden oder C-Code eingebunden werden. Praktisch ist in manchen Fällen py2exe, mit dem man aus Python-Code eine ausführbare Datei erstellen kann, welche dann keinen installierten Interpreter erfordert. Über die Sprache an sich kann man geteilter Meinung sein - die dynamische Typisierung z.B. hat Vor- und Nachteile.
Ersetze das "oder" in deiner Frage einfach durch "und". Je nach Studienfach sollte die Hochschule eh nicht als "Programmierkurs für Fortgeschrittene" angesehen werden. Du sollst ja eher "programmieren an sich" lernen, und welches Handwerkszeug (== Programmiersprache) du dafür benutzt ist eher zweitrangig. Wichtiger wäre, aus jeder Sprachenfamilie einen Vertreter zu lernen, Der Umstieg auf eine andere Sprache innerhalb der Familie ist dann mehr oder weniger nur Fleissarbeit: Also z.B: - C++ oder Java oder C# oder ... - C oder Modula oder ASM oder Pascal oder ... - Haskel oder SML oder OCAML ... - Prolog - Ggfs, wem's Spass macht: LISP und FORTH Und dazu noch ein paar nützliche Dinge, die man halt immer wieder braucht: Perl, Python, Ruby, Bash, Javascript, SQL, usw, usf.
> Du sollst ja eher "programmieren > an sich" lernen, und welches Handwerkszeug (== Programmiersprache) > du dafür benutzt ist eher zweitrangig. Eben, und da vermute ich, dass es Java verdrängt. Zumindest das MIT macht es: http://www.youtube.com/watch?v=k6U-i4gXkLM Früher war an den Hochschulen Pascal angesagt, später Java und jetzt wohl Python. Und es scheint mittlerweile Stellenangebote für Python-Entwickler zu geben, z.B.: http://www.stepstone.de/stellenangebote--Software-Entwickler-Python-m-w-Schwerpunkt-Produktionsprozess-Freiburg-Haufe-Lexware-GmbH--Co-KG--1536832-inline.html?cid=backinjob_premium BTW: wie ist eigentlich Python im Vergleich zu Ruby einzuordnen
http://www.heise.de/developer/meldung/TIOBE-Index-Python-ist-Programmiersprache-2010-1166165.html Python hat zwar stark zugelegt, Java ist aber auch nicht schwächer geworden ;-) Und ich würde Technologien an Hochschulen nicht unbedingt als Zeichen dafür nehmen, was in der Industrie angesagt ist. Außerdem hat oberon auch recht, es geht nicht um die einzelne Sprache, sondern um Methoden der SW-Entwicklung. Und die sind sprachenübergreifend. Außerdem ist nicht jede Sprache für jeden Einsatzzweck geeignet.
>Außerdem hat oberon auch recht, es geht nicht um die einzelne Sprache, >sondern um Methoden der SW-Entwicklung. Nicht unbedingt. Ich habe jetzt schon einige Sprachen hinter mir und muss sagen, es ist jedes mal ein erheblicher Aufwand, sich so einzuarbeiten, dass man produktiv damit arbeiten kann. Bei Java z.B. gibt es eine riesige Klassenbibliothek. Bis man damit umgehen kann, dauert es ewig.
oberon schrieb: > Je nach Studienfach sollte die Hochschule eh nicht als "Programmierkurs > für Fortgeschrittene" angesehen werden. Du sollst ja eher "programmieren > an sich" lernen, und welches Handwerkszeug (== Programmiersprache) du > dafür benutzt ist eher zweitrangig. Im Prinzip hast Du ja Recht, nur sind viele Personaler in dem Punkt total beschränkt. Da werden 5 Jahre Java-Kenntnisse verlangt mit genau diesem-und-jenem-Framework, nein C++ Erfahrung im gleichen Umfang zählt nicht, oder mehrjährige Erfahrung in IEC61131 - wie, Sie können Pascal? Nein, Sie müssen Structured Text können! ... :-( Wenn es nicht so traurig wäre, könnte man ja drüber lachen.
chris schrieb: > Kann es sein, dass an den Hochschulen immer mehr Python gelehrt wird? Kann sein. Ich finde aber nicht, dass Python als erste gelernte Programmiersprache so sehr geeignet ist: Es ist zwar leicht zu lernen (kein Vergleich mit C++), es macht es einem aber auch leicht, schlampig zu programmieren. > Ich habe auch schon Stellenangebote gesehen, in denen explizit > Python-Programmierer gesucht werden. Vielleicht deswegen: "I'll call the Python paradox: if a company chooses to write its software in a comparatively esoteric language, they'll be able to hire better programmers, because they'll attract only those who cared enough to learn it." (aus http://www.paulgraham.com/pypar.html) Oliver K. schrieb: > Im Studium hatten wir keinen Kontakt damit. Ich habe im Praxissemester > damit entwickelt (SPC-Applikation mit viel Mathematik - PyQt, numpy, R). Python + NumPy + SciPy scheint immer häufiger als kostenlose Matlab- Alternative eingesetzt zu werden. > Bezüglich der Performance mußt Du mal googlen, wie es sich gegenüber > C/C++ und Java schlägt. Performance des ausgeführten Programms: deutlich schlechter Performance bei der Programmierung: besser Spaßperformance: deutlich besser chris schrieb: > Eben, und da vermute ich, dass es Java verdrängt. Das glaube ich nicht. Java und Python haben beide ihren festen Platz in unterschiedlichen Anwendungsbereichen. Java steht eher mit C#, Python eher mit Ruby in Konkurrenz. > BTW: wie ist eigentlich Python im Vergleich zu Ruby einzuordnen Beide sind recht ähnlich zueinander, sowohl die Sprachen an sich als auch ihre Laufzeitsysteme. Wenn der Arbeitgeber oder Kunde keine speziellen Ansprüche hat, reicht es, wenn man eine von beiden kann. Welche, ist Geschmackssache.
> "I'll call the Python paradox: ....
Ein wenig hat er vermutlich recht, auch wenn die Aussage ein wenig
manipulativ und "Python-fördernd" ist. Zwei meiner Bekannten, die
ziemlich gut sind, haben schon vor einiger Zeit angefangen, Python zu
programmieren.
chris schrieb: >>Außerdem hat oberon auch recht, es geht nicht um die einzelne Sprache, >>sondern um Methoden der SW-Entwicklung. > > Nicht unbedingt. Ich habe jetzt schon einige Sprachen hinter mir und > muss sagen, es ist jedes mal ein erheblicher Aufwand, sich so > einzuarbeiten, dass man produktiv damit arbeiten kann. > Bei Java z.B. gibt es eine riesige Klassenbibliothek. Bis man damit > umgehen kann, dauert es ewig. Das ist schon klar, die Einarbeitung in neue Sprachen/Technologien wird Dir in der SW-Entwicklung allerdings immer wieder blühen - erstens kommen und gehen Sprachen im Laufe der Jahre und zweitens lernt man nicht eine einzige Sprache und setzt diese dann für alle Einsatzzwecke ein - jede Sprache hat ihre Stärken und Schwächen und ist nicht für alle Anwendungsfälle geeignet. Die Wahl der Sprache ist oft vom Anwendungsfall, vom Wunsch des Kunden oder von bestehender Software abhängig. Und so unähnlich sind sich viele Sprachen auch nicht - z.B. Java/C# und Python/Ruby. Und bei der Klassenbibliothek hilft Dir ja die Dokumentation auch - oder ein Buch.
Naja Hier machen die in der FH noch C und dann C++. Ich bin der Meinung man macht es am besten mit C anfangen, hier lernt man die Grundsätze (fast) jeder Programmiersprache, und C braucht man immer mal wieder. C++ ist schon Komplexer, Java ist evtl. besser, weil es Programmunabhängig ist (JAR geht überall), aber auch weil es etwas leichter ist. Python finde ich ist nur wegen dem einfach QT Binding gut für GUIs zu gebrauchen.
Fer T. schrieb: > Python finde ich ist nur wegen dem einfach QT Binding gut für GUIs zu > gebrauchen. Wobei es die QT(-Bindings) auch für C++ (klar) und Java ("Jambi") gibt, und dort die QT auch nicht wesentlich kompizierter ist. Aber für Rapid Prototyping ist Python ne feine Sache... Schnell zusammengestöpselt, und wenn es dann tatsächlich Stellen mit Performance-Problemen gibt, kann man die immernoch durch C++ Fragmente ersetzen.
Python ist eine gute Sprache, die unbedingt gelehrt werden sollte. Gerade so Konzepte wie Closures, Mehrfachvererbung usw. sind wichtig. Wie will man Studenten die Gefährlichkeit von Mehrfachvererbung lehren, wenn es die zu unrecht sehr populäre Sprache nicht hat? C++ unterstützt Mehrfachvererbung, aber C++ hält nur den Lehrbetrieb auf. Python habe ich vor fünf, sechs Jahren gelehrnt und sehr umfangreiche Software damit geschrieben. Python 3 habe ich auch schon für ein privates Projekt benutzt. Zur Performanz: Die Performanz ist auch abhängig von den Algorithmen, den Compilern und von der Architektur und nicht nur davon, ob es jetzt direkt in Maschinensprache übersetzt wird. "Echte" Zielplattformen wie ein Intelprozessor sind zu kompliziert, um gute Compiler zu schreiben, die effektiv optimieren können. Bei idialisierten Maschinen wie der JVM oder wie die Python-Laufzeitumgebung sind ganz andere Sachen möglich. Python ist definitiv langsamer als die JVM, was an der dynamischen Typisierung und Ducktyping liegt. Aber ein Java-Programm kann schneller ablaufen als das gleiche in C++. Ein JIT-Compiler tut ein übriges. Dass man in Python viel schneller entwickeln kann als in Java und in Java viel schneller entwickeln kann als in C++, brauche ich hier nicht mehr erwähnen.
Fer T. schrieb: > Ich bin der Meinung man macht es am besten mit C anfangen, hier lernt > man die Grundsätze (fast) jeder Programmiersprache, und C braucht man > immer mal wieder. Das sehe ich ganz anders. Was sind denn die Grundsätze? Hängende Zeiger? Falscher Zugriff auf den Speicher? Meines Erachtens sind das Dinge, die das Lernen des Programmierens erschweren und vom eigentlichen Inhalt ablenken. Sollte man maschinennah bzw. betriebssystemnah etwas entwickeln, dann sind solche Dinge erst interessant. Ich habe C/C++ noch als Schüler gelernt (nicht in der Schule, sondern privat). Es war ziemlich zäh und ich war ja für die obigen Themen nicht sensibilisiert. Viele Fehlermeldungen des Compilers waren nutzlos. Als Student dachte ich: C++ ist die(!) Sprache. Diesen Gedanken habe ich dann relativ schnell wieder aufgegeben. Die Zukunft liegt in funktionalen Konzepten kombiniert mit Objektorientierung. Sprachen wie Python und Scala gehen diesen Weg.
ich habe Pascal/Delphi in der Schule gelernt, dennoch nie was sinnvolles darin geschrieben. C und danach C++ habe ich neben Pascal für mich gelernt. Es waren noch schöne schlanke DOS-Zeiten. Bis 2004 ist danach die Zeit erstmal für mich stehengeblieben. Python war die Entdeckung des Jahres 2004 für mich. Ich bin der festen Überzeugung, dass jeder der einmal Python (mit Modulen wie re,pylab,matplotlib, urllib,....) gelernt hat, sich in C und auch C++ wie eine Schildkröte vorkommen wird. Aber C hat seine absolute Vormachtsstellung in embedded, da kommt Python nie heran. Ruby hat meinem Empfinden nach weniger Module, aber ich kann mich da auch täuschen, da ich nur wenig damit gearbeitet habe. Das wichtigste war jedoch, dass mir seit Python klar wurde, wie konzeptionell unterschiedlich die Welt der Sprachen ist. Ich habe mich sicherlich nicht von C abgewandt, aber mein Hauptinteresse gilt seitdem den Skriptsprachen und anderen Exoten :) BTW: ist jemand von euch gerade ohne Perl5-Kenntnisse an Perl6 dabei? PS: Java hat einen riesigen (Trägheits)Moment und wird mit ziemlicher Sicherheit nicht von Python abgelöst, zumindest nicht in den nächsten 5 Jahren. Langfristig werden, denke ich, C++ und Java in Popularität etwas runtergehen. PPS: Der Boom um R fängt wohl gerade erst an^^
Daniel -------- schrieb: > PS: Java hat einen riesigen (Trägheits)Moment und wird mit ziemlicher > Sicherheit nicht von Python abgelöst, zumindest nicht in den nächsten > 5 Jahren. Langfristig werden, denke ich, C++ und Java in Popularität > etwas runtergehen. Ich denke, die JVM-Technik wird in jedem Falle bestehen bleiben. Das ist eine gute Sache, schnell und robust, auch wenn es Neunmalkluge gibt, die was anderes behaupten. Ich hoffe innigst, dass Java zugrundegeht und durch Scala abgelöst wird. Scala ist eine tolle Sprache, mit der man nicht nur schnell entwickeln kann, sondern auch Code höherer Güte erstellt als es bei Java der Fall ist. Scala ist eine objektorientierte funktionale Programmiersprache, die den Typinferenzalgorithmus von Robin Milner benutzt. Man schreibt nicht int a = 4; final b = 5; sondern var a = 4 val b = 5 Der Scala-Compiler erkennt automatisch, dass rechts vom Zuweisungsoperator ein Integer steht. Der Compiler unterscheidet auch zwischen Variablen (var) und Werten (val). Er kann aufgrund dieser Informationen Optimierungen vornehmen, die Java nicht vornehmen kann. Scala fügt sich nahtlos in die bestehende Java-Welt ein, was einen kommerziellen Erfolg verspricht. Leider erzeugt Groovy einen viel größeren Hype, was mal wieder zeigt, dass nur wenige Leute wissen, wodrauf es wirklich ankommt. Das Problem bei Java ist doch nicht Unflexibilität, das Fehlen von Closures und die statische Typisierung. Wenn jemand statische Typisierung für ein Problem hält, ist er ein schlechter Architekt. Das Problem bei Java ist, dass man immer noch viel zu viele Fehler machen kann. Ob das jetzt parametrisierte Klassen sind, ob das nun NullPointerExceptions und ClassCastExceptions sind. Java kennt auch keine Mehrfacherbung und man produziert häufig doppelten Code, wenn ein Interface mehrmals implementiert werden muss. Scala verspricht dort Abhilfe.
>Ich denke, die JVM-Technik wird in jedem Falle bestehen bleiben. Das ist >eine gute Sache, schnell und robust, auch wenn es Neunmalkluge gibt, die >was anderes behaupten. JVM-Technik? Vielleicht verstehe ich Dich da falsch. JVM ist ja die Java Virtial Machine, also der virtuelle Prozessor der auf allen Systeme implementiert wird und auf dem Java dann läuft. So weit ich weiß, wurden mittlerweile schon viel mehr Sprachen auf die JVM portiert, z.B. auch Python. (Lustig wäre in diesem Zusammenhang, C++ auf die JVM zu portieren) Aus diesem Grunde ist es etwas seltsam von der JVM-Technik zu sprechen. Richtiger wäre eher, von der "Technik der virtuellen Maschinen" zu sprechen.
....Python ist eine gute Sprache, die unbedingt gelehrt werden sollte... NEIN, nicht lernen. Ist verschwendete Zeit. Python ist mal etwas für langweiler, aber kein ernstzumehmender Prog-Interpreter. Gruss
chris schrieb: > JVM-Technik? Vielleicht verstehe ich Dich da falsch. JVM ist ja die Java > Virtial Machine, also der virtuelle Prozessor der auf allen Systeme > implementiert wird und auf dem Java dann läuft. So weit ich weiß, wurden > mittlerweile schon viel mehr Sprachen auf die JVM portiert, z.B. auch > Python. > (Lustig wäre in diesem Zusammenhang, C++ auf die JVM zu portieren) Zwar über einen Umweg, aber es kommt Bytecode raus... http://nestedvm.ibex.org/ oder die MS-Variante C++/CLI für die CLR oder der bessere gcc aka clang für die LLVM > Aus diesem Grunde ist es etwas seltsam von der JVM-Technik zu sprechen. > Richtiger wäre eher, von der "Technik der virtuellen Maschinen" zu > sprechen.
>Zwar über einen Umweg, aber es kommt Bytecode raus... >http://nestedvm.ibex.org/ Super! Dabei dachte ich schon, es wäre keiner auf die Idee gekommen. Schade ist nur dass man den Cross-Compiler für MIPS Prozessoren installieren muss. Und es entstehen natürlich noch weitere Fragen: Gibt es nur das Interface für stdio oder kann man Graphik?
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.