Was bietet mir Python und was nicht ?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Vala ist also lediglich eine DSL, die noch dazu nicht mal richtig sinnvoll ist.
Es ist eben C mit C#-Syntaxzucker. Natürlich kann man auch andere Sprachen nutzen, wenn man die besser mag.
Ich habe auch ein wenig den Eindruck, dass Vala das Gegengewicht zu Monos C# - welches ebenfalls in GNOME verwendet wird - werden soll.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Leonidas hat geschrieben:
lunar hat geschrieben:Vala ist also lediglich eine DSL, die noch dazu nicht mal richtig sinnvoll ist.
Es ist eben C mit C#-Syntaxzucker.
Es ist eher GLib-C mit C# Syntaxzucker, und genau das schränkt Vala auch so ein.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Es ist eher GLib-C mit C# Syntaxzucker, und genau das schränkt Vala auch so ein.
Irgendwoher muss ja das OOP auch kommen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Hallo,

nun wie ich sehe, hat sich der Thread nicht ganz so entwickelt wie ich es erwartet habe.

Nichts für ungut, Eure Diskussionen sind spannend und auch ich selber interessiere mich für diverse Sprachen und Ihr Entwicklungen, Ihre Wurzeln, Stärken, bereits realisierte Anwendungen, usw.

Natürlich hat so gut wie Jeder hier seine eiegenen Erfahrungen mit Sprache X, Sprache Y und Z. Daraus entwickelt sich dann eine Art "Pool" an Möglichkeiten und ehrlich gesagt entwickelt sich das eher in die negative Richtung.

Mir liegt doch mehr daran, von Python als Kern auszugehen und darauf basierend direkte Vergleiche zu schaffen zu konzeptionell ähnlichen Sprachen, die eben auch möglichst die selben Aufgabenfelder abdecken und sich somit auf dem selben Niveau mit Python messen können.

Wirklich viele Alternativen kristallisieren sich hier nicht heraus und in Punkto Struktur, Flexibilität, Plattformunabhängigkeit, schneller Entwicklung und Bibliotheksumfang sehe ich IMHO keine gleichwertige Konkurrenz zu Python (jedenfalls bis jetzt nicht).

Vielleicht liege ich mit meinem inneren Bauchgefühl auch einfach richtig, mich mit Python wirklich einzulassen. Schliesslich würde mir die Erfahrung, mit Python zu entwickeln, auch bei einem "Fehlgriff", einiges an Erfahrungen bescheren. Und Erfahrungen zu sammeln kann nie falsch sein.

Egal in welchen Bereich man sich späte entwickelt.


Welcher Punkt mir noch ein wenig Kopfschmerzen bereitet, das sind die bereits mehrfach genannten Webframeworks.

Ich kann da im speziellen eben nur von Java abstrahieren, da ich dort aktiv entwickle. Alledings gehe ich einfach mal sehr stark davon aus, dass selbst Ruby On Rails bei längerer Entwicklungszeit mehr Spass macht und angenehmer ist als meine momentanen Alternativen, mit denen ich Arbeite (Struts, Spring und als DB-Schnittstelle Hibernate).

Auch kann ich die Aussage der vorherigen Seite unterstreichen, dass der Einsatz solcher Frameworks mit Java nicht vom einfachen Umgang und der schnellen und leichten Entwicklung her rührt, sondern eher vom Verbreitungsgrad und der Akzeptanz eines "bekannten" Konzeptes bei diversen Firmen....

Hätte ich die Möglichkeit zu wählen, welche Richtung ich einschlagen muss, um ein eigenes Projekt auf die Beine zu stellen, dann würde mich mein Weg mit sehr hoher Wahrscheinlichkeit nicht in Richtung Java/Webframeworks führen....


Noch etwas zu Obj-C:

Ich habe de facto sehr wenig darüber zu lesen bekommen und auch ist mir keine wirklich namhaftes, großes Projekt bekannt, dass in Obj-C realisiert wurde, ausser eben Mac OS X als omplettes OS (mit schon erwähnten kleineren Teilen in anderen Sprachen).

Welche Richtung ich dort einschlagen werde, ob nun weitehrin nur reines C, Obj-C, C++ oder auch was völlig anderes, lasse ich noch offen und werde mich in Zukunft etwas umsehen und mit verschiedenen Möglichkeiten experimntieren....


ne0h
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

RoR ist eben ein Framework, dass einem wenig Wahl lässt, ähnlich Django in Python. Deswegen mag ich beide nicht wirklich.

Ich sehe nicht ein, mich an einen eigenen Modellayer gewöhnen zu müssen, der mir nichts Neues oder Besseres bringt und dafür erstmal Einarbeitung erfordert und mich an das Framework bindet. In Python nicht auf SQLAlchemy zu setzen scheint dieser Tage irgendwas zwischen frevelhaft und Selbstzerstörung zu sein. Mal davon ab, dass das Django-ORM zwar schon $ewig bei den Jungs intern entwickelt und genutzt wurde, aber dennoch nur mit eineinhalb DBMS vernünftig oder überhaupt umgehen kann.

Ähnlich sieht es, bei Django als auch RoR, z.B. mit den Template Engines aus. Da kenne ich die Details nicht sehr, aber die angebotenen Lösungen missfallen mir. Vielleicht kann ich da recht einfach eine andere einbinden wie in Pylons, doch dann will ich auch nicht die Vorgabe als ungenutzen Ballast mitschleppen.

In Python gibt es mit Paste und Werkzeug brauchbare WSGI-Implementierungen mit einer Ladung weiterer Utilities, um eine Webanwendung kontrollierter und schlanker aufzubauen, und das ist gut so. Ich brauche kein ORM oder überhaupt einen SQL-Layer? Dann weg damit. Ich möchte die Templates gerne auf eine andere Lösung portieren? Kein Problem. Ich möchte das Model der Webapplikation in einer Nicht-Webapplikation einsetzen? Here you go. Quintessenz für mich: Komponenten sind nur wertvoll, solange sie flexibel kombinierbar sind. Django und teilweise auch RoR haben da mit Komponenten eher wenig gemein.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Noch zwei weitere Anmerkungen.

1. Ich schaue öfters mal beim Tiobe Index vorbei und wenn man dem Glauben schenken darf, dann ist Python auch relativ gut positioniert, zumindest was die Verbreitung betrifft. Aber das ist wohl nicht wirklich Aussagefähig, da dort auch Sprachen zu finden sind, die ich eher zum Bereich "nicht mehr auf der Höhe der Zeit" zähle.

Wen es interessiert:

http://www.tiobe.com/index.php/content/ ... index.html


2. Welche Entwicklungsumgebung ist für Python zu empfehlen?

Ich orientiere mich da sehr gerne an kleineren Umgebungen und für Python selbst habe ich noch keine Auswahl gefunden, die mich zufrieden stellt.

Hier auf dem Windows Rechner schreibe ich bisher alles in einem simplen Editor (Notepad ++) und übersetze dann einfach auf Kommandozeile, ab und zu nutze ich auch IDLE (was mir nicht sooo gut gefällt) und auch für Eclipse habe ich mir das Python Plugin besorgt (Installation war relativ unkompliziert), aber mir persönlich ist Eclipse zu schwerfällig.

Unter Linux habe ich etwas mehr Auswahl (dort habe ich auch die ERIC Umgebung) und diverse andere Editoren.

Unter Mac OS X schreibe ich meisstens alles auch nur im Editor oder direkt in X-CODE, was auch wirklich gross und umfangreich ist, aber für mich zu meinen Lieblings-Entwicklungsumgebungen zählt. Dort schreibe ich auch gerne C mit.


Na ja, also zum Vergleich, um eine vernünftige Umgebung für Windows zu finden:

Unter meinem Win XP habe ich z.B. für C/C++ die Umgebung von Bloodshed am laufen.

(http://www.bloodshed.net/dev/devcpp.html)

Natürlich ist das ganze nicht so umfangreich wie z.B. Visual Studio 6 (oder 5), aber mir gefällt es deutlich besser, da es ein Leichtgewicht ist, genau das tut (und das auch sehr gut) was es soll und mir völlig reicht.

Es ist Open Source und macht auch wirklich Spass.

Sowas in der Richtung suche ich auch für Python.



ne0h
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

ne0h hat geschrieben:Wirklich viele Alternativen kristallisieren sich hier nicht heraus und in Punkto Struktur, Flexibilität, Plattformunabhängigkeit, schneller Entwicklung und Bibliotheksumfang sehe ich IMHO keine gleichwertige Konkurrenz zu Python (jedenfalls bis jetzt nicht).
Hier möchte ich dann aber mal für Perl eintreten!
Perl ist toll, hat eine sehr gute Unterstützung von OOP und Funktionaler Programmierung, lässt sich sehr flüssig schreiben, hat eine unglaublichumfngreiche und tolle Bilbiothek (will ich auch für Python.. :/ ) und flexibler als Python.

Es ist eben...anders. Ich fühle mich bei Python auch heimischer, bin allerdings ebenso begeistert von Perl. Vor allem das CPAN erleichtert einem das Leben sehr, ebenso der Verzicht auf Grenzen. In Perl kann man absolut grausamen Code schreiben, allerdings ebenso in jeder anderen Sprache. Was mir an Python Code bisher so untergekommen ist war nicht wirklich immer schön und verständlich.

Python und Perl sind sich weitaus ähnlicher als mancher hier denkt...
lunar

Dafür geben Django und RoR dem Entwickler die Struktur vor, so dass er sich nicht mehr Gedanken um eine sinnvolle Trennung der einzelnen Komponenten machen muss. Das ist in manchen Fälle sehr hinderlich, da man einzelne Teile einer solchen Anwendung nicht herauslösen kann, für viele Webanwendung allerdings genug.

Ich selbst mag Django, weil man damit schnell zu Ergebnissen kommt, ohne allzu viel nachdenken zu müssen. Ich weiß aber auch, wo die Schwächen und Grenzen von Django liegen.

Zumal das freie Entwickeln ohne feste Vorgaben eines Frameworks ein hohes Maß an Disziplin und Erfahrung erfordert. In diesem Fall ist der Programmierer nämlich für die Trennung der Komponenten verantwortlich, und sowas kann auch katastrophal schief gehen. Man braucht schon ein gewisses Maß an Erfahrung, Disziplin und Erfahrung, um die Vorteile von werkzeug oder paste gegenüber Django oder RoR wirklich auszunutzen, und nicht jeder hat diese Erfahrung.

Zumal Java-Webentwickler sich eher in RoR und Django wiedererkennen dürften, wo vieles fest vorgegeben ist, so wie in den meisten Java-Webframeworks auch.
lunar

audax hat geschrieben:Perl ist toll, hat eine sehr gute Unterstützung von OOP
Ich programmiere kein Perl, aber wenn ich mir so den Code des Perlmeisters im Linux-Magazin anschaue, sieht OOP in Perl ein bisschen abstrus aus.
hat eine unglaublichumfngreiche und tolle Bilbiothek (will ich auch für Python.. :/ )
Ich habe noch nichts gefunden, was es für Python nicht geben würde...
flexibler als Python.
Wie hat jemand im [url=http://forum.ubuntuusers.de/post/127069 ... sers-Forum[/url] doch so schön gesagt: Timtowtdi ist kein Konzept, sondern der Mangel desselben.

Es gibt viele Leute, die mir zustimmen würden, wenn ich sage, dass Flexibilität im Bezug auf Perl mehr Nachteil denn Vorteil ist.
Python und Perl sind sich weitaus ähnlicher als mancher hier denkt...
Die Unterschiede in der Syntax und Semantik sind jedenfalls ziemlich groß...
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

lunar hat geschrieben:
audax hat geschrieben:Perl ist toll, hat eine sehr gute Unterstützung von OOP
Ich programmiere kein Perl, aber wenn ich mir so den Code des Perlmeisters im Linux-Magazin anschaue, sieht OOP in Perl ein bisschen abstrus aus.
Eben. Du programmierst kein Perl. Ich kann kein C und für mich sieht nahezu jeglicher C-Code unglaublich wirr aus, das ist also kein gutes Argument.
hat eine unglaublichumfngreiche und tolle Bilbiothek (will ich auch für Python.. :/ )
Ich habe noch nichts gefunden, was es für Python nicht geben würde...
Auch in der Qualität? Wenn ich mir da Module wie BeautifulSoup anschaue...
Vor allem stört mich bei Python die dämliche Bennenung der Module, da ist Perl wesentlich organisierter. Durch den Cheeseshop und das Tagging gehts mittlerweile halbwegs, aber auch große Teile der Module, die dort rumschwirren sind ziemlich unreif.
Aber ich gebs zu, das Argument der großen Bibliothek ist mittlerweile nicht mehr ganz so stark, da holt Python gut auf,
flexibler als Python.
Wie hat jemand im Ubuntuusers-Forum doch so schön gesagt: Timtowtdi ist kein Konzept, sondern der Mangel desselben.

Es gibt viele Leute, die mir zustimmen würden, wenn ich sage, dass Flexibilität im Bezug auf Perl mehr Nachteil denn Vorteil ist.
Es gibt auch viele PHP-Programmierer...
Python und Perl sind sich weitaus ähnlicher als mancher hier denkt...
Die Unterschiede in der Syntax und Semantik sind jedenfalls ziemlich groß...
Und hier widerspreche ich dir einfach mal komplett. Perl hat weniger syntaktischen Zucker, dafür mehr Freiheiten. Perl braucht keine List-Comprehensions, keine extra Generator Syntax, das funzt auch ganz gut so.
List Comprehensions z.B. werden in Perl durch inline-for-Schleife gemacht, was für mich nicht weniger eindeutig ist und im Prinzip auch das gleiche in Grün.
Weil so etwas in Python nach den Grundprinzipien der Lesbarkeit und Einfachheit gar nicht zu Debatte steht wurden erst die LC eingeführt.

Ich sage hier nicht, dass Python unterlegen ist, Python ist ja immerhin die Sprache meiner Wahl.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35


Hier möchte ich dann aber mal für Perl eintreten!
Perl ist toll, hat eine sehr gute Unterstützung von OOP und Funktionaler Programmierung, lässt sich sehr flüssig schreiben, hat eine unglaublichumfngreiche und tolle Bilbiothek (will ich auch für Python.. :/ ) und flexibler als Python.

Es ist eben...anders. Ich fühle mich bei Python auch heimischer, bin allerdings ebenso begeistert von Perl. Vor allem das CPAN erleichtert einem das Leben sehr, ebenso der Verzicht auf Grenzen. In Perl kann man absolut grausamen Code schreiben, allerdings ebenso in jeder anderen Sprache. Was mir an Python Code bisher so untergekommen ist war nicht wirklich immer schön und verständlich.

Python und Perl sind sich weitaus ähnlicher als mancher hier denkt...

Hi,

wenn ich Perl und Python so vergleiche fallen, jedenfals mir persönlich, schon einige gravierende Unterschiede ein.

Perls OOP-Konzept ist mir persönlich nicht wirklich gelegen und zudem habe ich nicht nur ein Mal herbe Kritik am OOP-Konzept von Perl gelesen/gehört.

Ich finde dort den Objektorientierten Ansatz nicht so wieder, wie ich Ihn kenne und vor allem gelernt habe.

Die Bibliotheken in Perl sind, da hast Du auch völlig recht, sehr umfangreich.

Nur kann ich nicht sagen, dass mir die Flexibilität in Perl jemals wirklich geholfen hat. Ich habe meine ersten Schritte in der Welt der Programmierung mit Pascal/Delphi gemacht und unabhängig von der typisierten Konzeption jener Sprache(n), habe ich in Perl bisher nie so saubere Programme gefunden....

Aber auch das mag nur daran liegen, dass die Perl Programme, die ich mir angesehen habe, von sehr schlechten Programmierern verfasst wurden.

Deshalb möchte ich Perl hier auch nicht schlecht machen, mir liegt nichts an einer Denunziation einer Programmiersprache. Es "liegt" mir nur einfach nicht gut, ich fühle mich zu Perl nicht wirklich hingezogen.

Auch sehe ich keine wirkliche Ähnlichkeit in so großem Maße zwischen Python und Perl, wobei Python ja mit Einflüssen von Perl entwickelt wurde. Mir scheintes jedoch, dass Python gewisse Konzepte einfach direkter und "natürlicher" umsetzt.

Das findet sich auch darin wieder, dass nicht gerade wenige Leute sagen, dass Python tatsächlich so funktioniert, wie man es erwartet und nicht eben "unkontrolliert" oder auch "unnatürlich". Wobei "unnatürlich" vielleicht etwas missdeutig ist. Ich verstehe darunter einfach, dass meine Gedanken beim Aufbau eines Programms, sprich der Programmlogik, in Python einfacher und direkter umgesetzt werden können, einfach so, wie ich es eben erwarte.

Trotz dessen finde auch ich Perl interessant und habe schon das eine oder andere Skript mit Perl realisiert, dass mir gute Dienste geleistet hat. Das gute Gefühl gibt es mir dennoch nicht.


ne0h
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ne0h hat geschrieben:1. Ich schaue öfters mal beim Tiobe Index vorbei und wenn man dem Glauben schenken darf, dann ist Python auch relativ gut positioniert, zumindest was die Verbreitung betrifft. Aber das ist wohl nicht wirklich Aussagefähig, da dort auch Sprachen zu finden sind, die ich eher zum Bereich "nicht mehr auf der Höhe der Zeit" zähle.
TIOBE ist bekannt - ich halte davon aber nicht viel, bis hin zu gar nichts.
ne0h hat geschrieben:2. Welche Entwicklungsumgebung ist für Python zu empfehlen?
In Python benutzt man eher Editoren als IDEs. Da gibt es einen Thread dazu im Forum. Vim und Emacs sind aber eine gute Wahl :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Das Perl-Denken ist eben völlig anders, der OOP Ansatz wird allerdings nur auf den ersten Blick etwas verstörend. Wegen dieses schlimmen ersten Eindruck wird die Syntax dafür in Perl 6 übrigens auch geändert, ebenso wird dafür syntaktischer Zucker eingefügt ;)

So sehen dann übrigens Generatoren und "LC" in Perl aus (wobei ich jetzt kein Perl-Profi bin :D ):

Code: Alles auswählen

#!/usr/bin/perl
use strict;
use warnings;


sub say { print "@_" . "\n"; }

my $iter = range(1, 10, 2);

my @list;
while (my $number = $iter->()) { push @list, $number };
say "@list";
say map {$_ + 10} @list;

sub range {
    my ($from, $to, $step) = @_;
    $from -= $step;
    return sub {
         $from += $step;
         return $from < $to ? $from : undef
    };
}
Ist natürlich weniger syntaktischer Zucker, aber doch eigentlich nicht weniger verständlich.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Objective C totzusagen halte ich für verfrüht. Klar, die Sprache (von NextStep kommend) ist nur auf dem Mac verbreitet, doch dort ist sie der Standard und wer für das iPhone oder den iPod Touch entwickeln will, kommt daran nicht vorbei, da es (wenigstens zur Zeit) die einzige Wahl ist. Und da (zumindest in den Mac-begeisterten USA) der Marktanteil von Apple stetig steigt, wird es auch immer mehr Bedarf an echten Mac-Anwendungen geben. Und Cross-Plattform, darauf stehen Mac-Anwender eher nicht.

Ich kann mir daher nicht vorstellen, dass man mit Qt und C++ schneller gute GUI-Anwendungen für den Mac entwickeln kann als mit Cocoa und Objective C - allerdings ist das eher ein Vorurteil als durch eigene Erfahrung begründet. Aber auch Objective-C wirkt irgendwie total primitiv... PyObjc ist aber auch Mist, da es die Nachrichten verhunzt. MacRuby könnte eine interessante Alternative werden...

Obwohl, man könnte mit python4ply mal eine Python-Variante bauen, die zumindest syntaktisch Schlüsselwort-Nachrichten vernünftig abbildet. Das ganze auf Objective-C 2 mit dessen GC basieren zu lassen, wie es der Ansatz von MacRuby ist, klingt aber besser.

Oder man (irgendwer, ich wohl nicht) baut ein neues Python in Objective-C from scratch. Vielleicht reicht es, wenn es ein Subset ist. Statt C-Extensions kann man dann direkt auf Cocoa-Bibliotheken zugreifen. Eigentlich ist Python ja keine so umfangreiche Sprache - leider steckt der Teufel in der Meta-Ebene.

Vala - das habe ich noch nie gehört und kann es mir leider auch nicht anschauen, da wohl live.gome.org gerade tot ist. Aber ist die Sprache wirklich nach Claudia Black (sie spielte eine Vala bei Stargate) benannt?! Braucht man noch eine weitere Sprache? Auch C++ (C with classes) und Objective-C hatten ja mal als Präprozessoren für C angefangen. Ist Vala auch einer? Das Vala keine Laufzeitbibliothek haben will bedeutet doch wohl, dass es keine automatische Speicherverwaltung gibt. Das erscheint mir dann schon sehr primitiv und als etwas, mit dem zumindest ich mich im 3. Jahrtausend eigentlich nicht mehr auseinandersetzen will.

ne0h, du schreibst, du willst Python mit den Rest verglichen wissen. Wie? Indem es heißt, Python ist schneller als Ruby und langsamer als Java? Oder indem wir aufzählen, was für Bibliotheken es gibt? Oder welches die Vorzeigeanwendungen (für Python vielleicht Zope, allerdings ist mir das zu nahe an JavaEE dran) sind? Konkrete Fragen kann man leichter beantworten.

Zu den Rahmenwerken: Dem einen gefällt es, wenn das Rahmenwerk eine Struktur vorgeben (wie es Django und Rails machen), dem anderen, wenn man selbst basteln kann. Ich finde Struktur und Vorauswahl wichtig, weil auf diese Weise auf in einem Team ohne weitere Konventionen klar ist, was wie gemacht wird. Es ist häufig mein Eindruck, dass die sehr flexiblen Lösungen gerade von "Einzelkämpfern" propagiert werden.

Soll ich Rails und Django vergleichen, dann hat Rails den flexibleren und mächtigeren ORM und hat außerdem das Konzept von Datenbank-Migrationen, das bei Django fehlt. Dessen ORM ist primitiv, für einfache CMS-Aufgaben aber ausreichend. Sich mit etwas wie sqlalchemy (dem Hibernate von Python) erst auseinandersetzen zu müssen ist in diesem Kontext häufig unnötig. Und was dort einige als Vorteil sehen, ist für mich eher ein Nachteil: Das Ding ist mir zu low-level. Es braucht weitere Bibliotheken, um dahin zu kommen, wo ich es benutzen will.

Die unterschiedliche Mentalität kommt vielleicht auch durch das Betriebssystem: Ich will eine Installation, mit der ich dann alles machen. Ich will nicht - wohlmöglich manuell - verschiedene Bibliotheken selbst installieren. Linux-Anwender sind glaube ich bibliotheksaffiner und haben kein Problem damit, dieses und jedes zu installiert (meist ja mit apt-get und co. auch recht einfach).

Auf eine Django-Schulung angesprochen sagte ich, dass ich nur Python 2.5 bräuchte und den Rest als ZIP auf einem USB-Stick mitbringen würde. Ich stieß auf Unglaube, da die Linux-Fraktion irgendwie stundenlang vorher noch Webserver und Datenbanken installieren wollte - jedenfalls nicht erwartet hat, dass einmal kopieren ausreichen würde.

Übrigens etwas, das mir auch bei Java gefällt: Wenn Java installier ist, kann man Webserver, Datenbank, alles andere unter Java betreiben und einfach und plattformübergreifend betreiben.

Was mich an Django übrigens total stört ist, dass die Kernentwickler einfach nicht voran kommen und das newforms-admin- und das queryset-refactor-Seitenprojekt seit Monaten (wenn es nicht schon Jahre sind) vor sich hindümpelt. Schön, dass die ihre trunk-Version stabil halten wollen, aber wenn sie stattdessen sagen wir alle 3 Monate ein Release machen würden, dann könnte man auch man den trunk zweitweilig instabil machen und Änderungen schneller und mehr im Bewußtsein der Community durchführen, auf dass es vielleicht mehr Leute gibt, die Mitmachen würden. So heißt es aber immer, "wartet noch, bis wir's fertig haben" und das ist IMHO total kontraproduktiv. Ich bin jedenfalls eher abgeschreckt als bereit da mitzuarbeiten.

Was ich bei Python allgemein nicht so gut finde, bzw. bei Ruby und Rails bewundere ist, dass dort alle an einem Strang ziehen und ein Rahmenwerk vorantreiben. Rails ist noch nicht so alt wie Django und dennoch deutlich fortschrittlicher. Natürlich verliert so ein Rahmenwerk dann auch irgendwann seine Unschuld und ist so komplex, dass der Ruf nach etwas einfacherem laut wird. Merb ist vielleicht die Antwort auf so einen Ruf und ich finde Rails inzwischen deutlich komplizierter. Als ich das 2005 studiert hatte, war es noch wesentlich leichter zu verstehen. So wie Django jetzt... Ich glaube, Python-Entwickler sind eher Individualisten (um nicht Eigenbrödler zu sagen), was mich ein bisschen beunruhigt, denn dann ist das nicht die richtige Sprache, um sie in der Firma einzuführen.

Durch Rails hat Ruby auch den Vorteil, dass insbesondere Hersteller von Java-IDEs aufmerksam geworden sind (den laufen gefühlt die Entwickler weg; real glaube ich ist da keine große Abwanderung) und sie investieren in Ruby-IDEs. Aufmerksamkeit von der "Industrie" ist nicht so falsch.

Bei Python ist das total dürftig. Ähnlich wie bei Webrahmenwerken ist es so, dass jeder glaubt, sich selbst eine IDE zu bauen, die besser ist, als die ganzen anderen halbfertigen Lösungen und erzeugt eine weitere halbfertige... Schon der Kleinkrieg zwischen den verschiedenen UI-Rahmweken, die man benutzen könnte, sorgt für eine unschöne Verdopplungen. Relativ mächtig ist wohl Eric, aber da der Autor keine unter Windows installierbare Version zur Verfügung stellen kann/will, wird er auch mich nicht als Kunden gewinnen. Ich habe mich mit einer Kombination aus vim bzw. TextMate und KomodoEdit abgefunden. Doll ist das aber alles nicht. Ein gescheiter Debugger wäre schon nett. Zugegeben bin ich dann auch zu geizig, mit Komodo oder WingIDE zu kaufen. Aber hey, von Java bin ich nur die besten IDEs zum 0-Preis gewohnt.

Für Ruby und Rails ist übrigens IMHO Netbeans Klasse. Für Java setzte ich zwar nicht auf diese IDE und tue mich daher schwer, extra für Ruby zu wechseln und würde eigentlich lieber bei Eclipse bleiben, doch das wird auch immer fetter und insbesondere auf dem Mac sieht das einfach hässlich aus. Nicht das XCode jetzt so schick wäre... aber irgendwie hätte ich gerne etwas, das in Ästhetik und Bedienung hübsch und praktikabel ist und dann auf Mac und Windows funktioniert (Linux ist mir recht egal).

Also: Viel Text, wenig Botschaft. Ohne den Anwendungszweck zu kennen, ist das alles eh aus der Historie eingefärbter persönlicher Geschmack, was nun gut ist oder nicht.

Stefan
lunar

audax hat geschrieben:
hat eine unglaublichumfngreiche und tolle Bilbiothek (will ich auch für Python.. :/ )
Ich habe noch nichts gefunden, was es für Python nicht geben würde...
Auch in der Qualität? Wenn ich mir da Module wie BeautifulSoup anschaue...[/quote]
Möchtest du jetzt wirklich behaupten, dass CPAN hätte eine durchweg gute Qualität?
Vor allem stört mich bei Python die dämliche Bennenung der Module, da ist Perl wesentlich organisierter. Durch den Cheeseshop und das Tagging gehts mittlerweile halbwegs, aber auch große Teile der Module, die dort rumschwirren sind ziemlich unreif.
Ein Punkt, in dem ich dir zustimme. Allerdings halten sich mehr und mehr Bibliotheken an PEP 8.
Wie hat jemand im Ubuntuusers-Forum doch so schön gesagt: Timtowtdi ist kein Konzept, sondern der Mangel desselben.

Es gibt viele Leute, die mir zustimmen würden, wenn ich sage, dass Flexibilität im Bezug auf Perl mehr Nachteil denn Vorteil ist.
Es gibt auch viele PHP-Programmierer...
Es gibt auch viele Perl-Programmierer ;) Die Masse allein zählt nicht, aber Namen zählen. Und man findet viele erfahrene Programmierer, die Perl kritisieren (u.a. Eric Raymond)
Python und Perl sind sich weitaus ähnlicher als mancher hier denkt...
Die Unterschiede in der Syntax und Semantik sind jedenfalls ziemlich groß...
Und hier widerspreche ich dir einfach mal komplett.
Du widersprichst dir vor allem selbst, in dem du behauptest, es gäbe wenig Unterschiede, dann aber auf das Fehlen von LCs, von Generatoren, etc. hinweist,

Im Übrigen finde ich deine Behauptungen angesichts der nun mal real existierenden großen syntaktischen Unterschiede zwischen Perl und Python mehr als merkwürdig.

In Python gibt es keine Präfixe für Namen, je nach dem, welcher Typ dahinter steht. In Python gibt es keine Semikolons und keine geschweiften Klammern, es gibt keine '=>' und '->' Operatoren, und auch =~ fehlt.

Pakete als Klassen zu missbrauchen, ist für mich reichlich seltsam, ebenso wie der Zwang zu Präfixzeichen für Namen. Wo liegt der Sinn in dynamischer Typisierung, wenn ich dann wieder typbezogenen Präfixe für die Namen verwenden muss?

Summa summarum mag in Perl programmieren, wer will, aber ich kann jeden verstehen, der diese Sprache seltsam oder gar schlecht findet, Ich tue das ja auch ;)

Edit: Quotes korrigiert
Zuletzt geändert von lunar am Freitag 21. März 2008, 15:40, insgesamt 2-mal geändert.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

lunar hat geschrieben:Objective C ist außerhalb von OS X ziemlich total tot, und wird in Zukunft auch unter Mac immer mehr an Bedeutung verlieren, weil solche Anwendungen nur in geringen Maße portabel sind.
Das hat in den letzten Jahren weder ObjC noch Win32-API totgekriegt und wird es auch nicht. Eine native Anwendung fühlt sich immer anders an, als eine mit einem Crossplatform-Toolkit. Bei Windows merkt man das bloß nicht so stark wie auf OSX weil sich da sowieso jeder seit Jahren sein eigenen Süppchen kocht.

Ansonsten ist das schade, dass ObjC so wenig verbreitet ist, eine sehr schöne Sprache. Eine der wenigen dynamisch typisierten Sprachen(die einzige?) außerhalb der interpretierten Spachen.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

lunar hat geschrieben:Möchtest du jetzt wirklich behaupten, dass CPAN hätte eine durchweg gute Qualität?
Nein, aber eine riesige Auswahl von Qualitativ hochwertigen Modulen, toller Doku gleich Dabei und der Möglichkeit als einfacher Benutzer Anmekrungen in der Doku zu hinterlassen.
Vor allem stört mich bei Python die dämliche Bennenung der Module, da ist Perl wesentlich organisierter. Durch den Cheeseshop und das Tagging gehts mittlerweile halbwegs, aber auch große Teile der Module, die dort rumschwirren sind ziemlich unreif.
Ein Punkt, in dem ich dir zustimme. Allerdings halten sich mehr und mehr Bibliotheken an PEP 8.
Python wird langsam etwas reifer \o/
Wie hat jemand im Ubuntuusers-Forum doch so schön gesagt: Timtowtdi ist kein Konzept, sondern der Mangel desselben.

Es gibt viele Leute, die mir zustimmen würden, wenn ich sage, dass Flexibilität im Bezug auf Perl mehr Nachteil denn Vorteil ist.
Es gibt auch viele PHP-Programmierer...
Es gibt auch viele Perl-Programmierer ;) Die Masse allein zählt nicht, aber Namen zählen. Und man findet viele erfahrene Programmierer, die Perl kritisieren (u.a. Eric Raymond)
Er kritisiert hauptsächlich die Syntax von Perl, und die Perlsche-Ausdrucksweise. Wem die nicht liegt, der soll Perl auch ruhig links liegen lassen :D
Python und Perl sind sich weitaus ähnlicher als mancher hier denkt...
Die Unterschiede in der Syntax und Semantik sind jedenfalls ziemlich groß...
Und hier widerspreche ich dir einfach mal komplett.
Du widersprichst dir vor allem selbst, in dem du behauptest, es gäbe wenig Unterschiede, dann aber auf das Fehlen von LCs, von Generatoren, etc. hinweist,

Im Übrigen finde ich deine Behauptungen angesichts der nun mal real existierenden großen syntaktischen Unterschiede zwischen Perl und Python mehr als merkwürdig.

In Python gibt es keine Präfixe für Namen, je nach dem, welcher Typ dahinter steht. In Python gibt es keine Semikolons und keine geschweiften Klammern, es gibt keine '=>' und '->' Operatoren, und auch =~ fehlt.

Pakete als Klassen zu missbrauchen, ist für mich reichlich seltsam, ebenso wie der Zwang zu Präfixzeichen für Namen. Wo liegt der Sinn in dynamischer Typisierung, wenn ich dann wieder typbezogenen Präfixe für die Namen verwenden muss?
[/quote]
Ich muss zugeben, dass ich rein syntaktischen Unterschieden keine große Bedeutung zumesse. Der eingebaute Regex-Kram von Perl ist historischer Natur, die Prefixe ergen sich daraus, dass ein in Arrays und Hashes eben nur Skalare gespeichert werden können und man deshalb zwischen dem Objekt selbst und der Referenz auf das Objekt unterscheiden muss. Aus dieser Referenzsache ist dann auch der '->' entstanden, ebenso wie der '=>' nur syntaktischer Zucker.
In Perl wegen Hashes/Dicts ebenso aus Paaren erstellt und der '=>' ist nur dafür da, es hübscher aussehen zu lassen.

Die großen Unterschiede sind eigentlich nur die Handhabung der Referenzen, die in Perl ganz explizit geschieht, in Python aber hinter den Kulissen geschieht und das Verwenden von Klammern und Semikolons...
lunar

Schon der Kleinkrieg zwischen den verschiedenen UI-Rahmweken, die man benutzen könnte, sorgt für eine unschöne Verdopplungen.
Es gibt nun mal unterschiedliche GUI-Frameworks, auch für Ruby gibt es nicht das Framework.
Relativ mächtig ist wohl Eric, aber da der Autor keine unter Windows installierbare Version zur Verfügung stellen kann/will, wird er auch mich nicht als Kunden gewinnen.
Es existieren Windows-Binaries für PyQt4, die Eric4 mitbringen. Im Übrigen dürfte es dem Autor von Eric wohl herzlichst egal sein, ob du seine IDE nun benutzt, oder nicht ;) Zumal der Mensch wohl Linux-User ist, und ich ihn folglich verstehen kann. Ich habe auch keinen Bock, mich mit cx_freeze, pyinstaller oder py2exe herumzuschlagen, nur damit Windows-Nutzer glücklich sind. Mein Code läuft auf Linux, das reicht mir.

Und wenn du jetzt das "ein Entwickler muss auf seine User achten"-Argument herausholen willst, oder das "es würde aber mehr User die Software nutzen"-Argument, dann lass es gleich sein. Du kannst freien Entwicklern nicht vorschreiben, was sie wie wofür zu programmieren haben. Das ist nun mal der Preis der Freiheit, den du bezahlen musst.
Darii hat geschrieben:
lunar hat geschrieben:Objective C ist außerhalb von OS X ziemlich total tot, und wird in Zukunft auch unter Mac immer mehr an Bedeutung verlieren, weil solche Anwendungen nur in geringen Maße portabel sind.
Das hat in den letzten Jahren weder ObjC noch Win32-API totgekriegt und wird es auch nicht.
Die Win32-API ist aber nicht besonders lebendig. Oder kennst du ein reines Win32-API-Programm für Windows, welches wirklich noch aktiv entwickelt wird?

Was Objective-C angeht angeht, so ist es noch lebendig, aber eben nur auf dem Mac. Außer Apple und anderen, auf den Mac spezialisierten Firmen entwickelt niemand wirklich damit. Und ob das IPhone der Sprache wirklich so viel Auftrieb gibt, bleibt erstmal abzuwarten.
Eine native Anwendung fühlt sich immer anders an, als eine mit einem Crossplatform-Toolkit.
Ja und? Das ändert nichts daran, dass Cross-Plattformanwendung mehr und mehr an Bedeutung gewinnen.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

@sma

Danke für Deinen langen Beitrag.

In vielen Punkten hast Du recht und in vielen Punkten kann ich nichts dazu beitragen, weil ich mich nicht so gut auskenne wie Du bzw. mir noch die Erfahrungen fehlen.

Vielleicht ist es nicht so sinnvoll gewesen, hier diesen Thread zu eröffnen und nach einem solchen Vergleich zu fragen.

Wie man sieht, führt das Ganze schnell zu Grundsatzdiskussionen (die auch nicht falsch sind, aber des öfteren zu Streit führen) und jeder Programmierer wird letzten Endes für das Einstehen, was ihm die besten Erfolge beschert hat.

Ich werde einfach mal in Python investieren und mich dann umorientieren, wenn ich keine Erfolge damimt erzielen werde.

Vielleicht wird es in absehbarer Zukunft eine ähnliches Framework geben wie ROR , welches gewisse Vorzüge vereint und als de facto Standard gelten wird.

Ich lasse mich überraschen.....



ne0h
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Wenn du sowas wie RoR suchst, schau dir Pylons und Django an.
Antworten