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.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Hallo Python-Gemeinde,

ich kann mir vorstellen, dass Ihr dieses Thema nicht das erste Mal zu lesen bekommt, allerdings bin ich wirklich stark hin- und hergerissen und wollte mir bei Euch Pythonanwendern, oder genauer gesagt, bei Euch Pythonprogrammierern (Anwender ist wirklich nicht so gut gewählt) einige Impressionen holen.

Alos, folgendes: Ich bin grade auf dem Weg zum Anwendungsentwickler und im Zuge meiner Ausbildung entwickle ich mit Java (im Webbereich) sowie mit C (C++ in Kürze).

Da ich aber noch nicht so ganz zufrieden bin (denn C/C++ sind doch mehr zur Systemprogrammierung bzw. Softwareentwicklung geeignet und Java ist m.E. wiederum im Webbereich eher zu Hause) suche ich nach einer geeigneten Sprache, die im Skriptbereich liegt.

Ich will hier nicht über die Vor- und Nachteile bzw. Stärken und Schwächen von C/C++ oder Java diskutieren, das sind einfach nur meine subjektiven Ansichten (Und JA, ich weiss, dass Java natürlich nicht nur im Webbereich seine Stärken hat und dass man mit C sogar CGI programmieren kann :wink: ).

Was mich wirklich interessiert, das ist der direkte Vergleich der interessantesten Programmiersprachen und dabei dort die Vor- und Nachteile sowie eben Stärken und Schwächen.

Ich gebe mal einen kurzen Überblick darüber, wie weit ich gekommen bin mit meinen Abwägungen und würde Euch um Eure ehrliche Meinung dazu bitten (Mir ist klar, dass diese Frage in einem Pythonforum wohl auch eher subjektiv beeinflusst durch Python selbst zu nicht gerade objektiven Antworten führen wird, aber da ich nun schon einige Zeit investiert habe tendiere ich schon sehr stark zu Python).

Also, folgendes steht bei mir zur Auswahl:

Perl

Vorteile:

- Mächtig im Umgang mit Texten/Strings
- Umgang mit Regulären Ausdrücken ist eine sehr große Stärke
- Grosse Usergemeinde
- schnelle Skripte lassen sich recht einfach runterhacken

Nachteile

- Umständliche Syntax
- Objektorientierung ist nicht wirklich schön gelöst
- Der "Fun"-Faktor will bei mir nicht so wirklich entstehen
- Macht m.E. nur wirklich Sinn in Kombination auf einem Webserver und in der Verarbeitung von Webinhalten
- CGI Schnittstelle ist bei höherer Auslastung ziemlich langsam


Ruby

Vorteile:

- Modern und elegant
- einfache und relativ angenehme Syntax
- Die Programmierung macht Spass
- Mit dem Framework "Ruby On Rails" eine interessante Alternative im Webbereich
- Interaktiver Modus ist sehr gut

Nachteile:

- Usergemeinde ist nicht gross
- M.E. keine wirklich guten Dokumentationen
- "Ruby On Rails" hat seine Eigenarten und ist mir zu "speziell" (Hab damit ein kleines Projekt realisiert um es zu testen und obwohl es wirklich interessant ist, liegt es mir nicht)
- Ruby unterstützt meines Wissens bestimmte Zeichensätze nicht


PHP

Vorteile:

- Simpel
- Schnell erlernbar
(Mehr Vorteile finde ich nicht dabei)

Nachteile:

- Unsicher
- Nur auf Webanwendungen ausgelegt
- keine wirkliche Stand-Alone Programmiersprache und somit auch nicht wirklich mächtig
- Programmierung macht keinen Spass


Python

Vorteile:

- Wirklich einfache Syntax (erinnert mich immer an Pascal/Delphi, mit dem ich meine ersten Schritte in der Programmierung machte)
- Mächtig und zwar in extrem vielfältiger Weise
- Kann ebenso gut mit regulären Ausdrücken umgehen wie Perl (so zumindest meine Eindrücke)
- Lässt sich zur Softwareentwicklung, Webprogrammierung (Django) und für einfache, schnelle Skripte einsetzen
- Ebenfalls recht modern
- Was mich mit am meissten fasziniert: Die Programmierung mit Python macht mir wirklich enormen Spass
- Mit dem interaktiven Modus sehr effizient
- Objektoriertierung ist gut umgesetzt

Nachteile:

- Angeblich in der Ausführungsgeschwindigkeit Perl etwas unterlegen
- Sonst fallen mir wirklich keine Nachteile ein :lol:



Na ja, wie Ihr seht, bin ich selber auch subjektiv schon stark von Python beeinflusst, da mir dort kaum etwas nagatives einfällt. Allerdings würde ich mir gerne Eure Ansichten durchlesen und kennenlernen.

Was mir noch einfällt: Plattformunabhängig sind im grunde alle Sprachen. Wobei Python auch meines Wissens mit den wenigsten Modifizierungen auf anderen Systemen läuft.

Dazu ist auch noch zu sagen, dass ein wichtiger Punkt für mich eben diese Plattforumunabhängigkeit ist. Ich möchte auf Windows, sowie auf Linux und Mac OS X entwickeln (alle diese Systeme habe ich auch auf meinen Rechnern) und dabei eben so wenig wie möglich durch betriebssysteme eingeschränkt sein.

Nun ja, wäre schön wenn hier KEIN Programmiersprachen- oder Betriebssystemkapf entbrennt (das gehört in die Kinderecke und ist wirklich nicht Sinn der Sache) sondern einfach nur ehrlich und trotzdem objektiv und vor allem konstruktiv diskutiert werdne kann.

:wink:

Ich freu mich auf Antworten.

Grüsse

ne0h
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Da ist mir ein kleiner Fehler unterlaufen.

Statt: Was mich wirklich interessiert, das ist der direkte Vergleich der interessantesten Programmiersprachen und dabei dort die Vor- und Nachteile sowie eben Stärken und Schwächen.

sollte es heissen:

Was mich wirklich interessiert, das ist der direkte Vergleich der interessantesten Skriptsprachen und dabei dort die Vor- und Nachteile sowie eben Stärken und Schwächen.


Sorry.
BlackJack

Womit die Frage aufgeworfen wird, was Du denn als Skriptsprache definierst. Für mich ist Python eine Programmiersprache, die sich auch zum Skripten eignet. Ich würde es aber nicht als Skriptsprache bezeichnen. Da fallen mir eher Shell, JavaScript, und Lua ein.
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Damit hast Du im Grunde auch recht.

Die Wahl der Bezeichnung ist nicht gerade geschickt getroffen und auch für mich ist Python im Grunde eine vollwertige Programmiersprache (Hochsprache).

Ich tendiere (wohl aus schlechter Angewohnheit) dazu, Python intuitiv als Skriptsprache zu werten, genau wie Perl oder Ruby.

Also ums zu berichtigen: Ich nenne diese Sprachen (um eine Abgrenzung zu Sprachen wie C/C++, Java oder Pascal/Delphi zu schaffen) einfach "Interpreter-Sprachen".

Das trifft es dann wohl deutlich besser....


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

ne0h hat geschrieben:Alos, folgendes: Ich bin grade auf dem Weg zum Anwendungsentwickler und im Zuge meiner Ausbildung entwickle ich mit Java (im Webbereich) sowie mit C (C++ in Kürze).
Vielleicht wärst du neben C++ auch an Objective C oder Vala interessiert? :) Das sind zwar keine Sprachen, die dir Jobs einbringen werden (ersteres unter Mac OS X eher noch, als Letzteres auf Linux), aber es ist sicher sinnvoll seinen Horizont zu erweitern. Ansonsten auch das vielgepriesene D.
ne0h hat geschrieben:Da ich aber noch nicht so ganz zufrieden bin (denn C/C++ sind doch mehr zur Systemprogrammierung bzw. Softwareentwicklung geeignet und Java ist m.E. wiederum im Webbereich eher zu Hause) suche ich nach einer geeigneten Sprache, die im Skriptbereich liegt.
Dazu müsstest du definierten was du unter Skriptbereich verstehst. Kleine Skripte die Systemaufgaben erledigen wie User verwalten? Möglichkeit für User von dir geschriebene Programme zu erweitern (wie Firefox Extensions, vims Vimscript, Lua in Spielen, Emacs Elisp etc). Oder geht es um das Schreiben von Mediaplayern (Quod Libet) oder IM-Clients (Gajim). In diesen Bereichen ist Python durchaus brauchbar, das gebe ich zu.

Bashskripte zu schreiben macht Spaß, aber irgendwann ist ja die Schmerzgrenze erreicht.
ne0h hat geschrieben:Ich will hier nicht über die Vor- und Nachteile bzw. Stärken und Schwächen von C/C++ oder Java diskutieren, das sind einfach nur meine subjektiven Ansichten (Und JA, ich weiss, dass Java natürlich nicht nur im Webbereich seine Stärken hat und dass man mit C sogar CGI programmieren kann :wink: ).
Also meine Erfahrungen von Java und Web sind eher in Richtung Schmerz zusammenzufassen. Jedenfalls ist die Einstiegshürde ausreichend groß, dass es keinen Spaß macht. Ist meine Meinung aber lunar, der sich mit der Enterprise Edition beschäftigt und auch Python in Python programmiert bestärkt meine Eindrücke.
ne0h hat geschrieben:Ich gebe mal einen kurzen Überblick darüber, wie weit ich gekommen bin mit meinen Abwägungen und würde Euch um Eure ehrliche Meinung dazu bitten (Mir ist klar, dass diese Frage in einem Pythonforum wohl auch eher subjektiv beeinflusst durch Python selbst zu nicht gerade objektiven Antworten führen wird, aber da ich nun schon einige Zeit investiert habe tendiere ich schon sehr stark zu Python).
Natürlich, eine Antwort wie "Python ist das tolllllste!!1!!einself" kann ich dir geben, damit ist dir aber nicht geholfen. Ich selbst nutze Python seit mehreren Jahren und habe das Problem, dass ich kaum wieder weg komme, weil ich inzwischen für quasi alles andere zu faul geworden bin.
ne0h hat geschrieben:Perl

Vorteile:

- Mächtig im Umgang mit Texten/Strings
- Umgang mit Regulären Ausdrücken ist eine sehr große Stärke
- Grosse Usergemeinde
- schnelle Skripte lassen sich recht einfach runterhacken

Nachteile

- Umständliche Syntax
- Objektorientierung ist nicht wirklich schön gelöst
- Der "Fun"-Faktor will bei mir nicht so wirklich entstehen
- Macht m.E. nur wirklich Sinn in Kombination auf einem Webserver und in der Verarbeitung von Webinhalten
- CGI Schnittstelle ist bei höherer Auslastung ziemlich langsam
Perl hat für Strings eine stark aufgehackte Engine für Reguläre Ausdrücke, eine ähnliche ist via PCRE auch in anderen Sprachen verwendbar, allerdings nicht mit dem gleichen Syntaktischen Zucker. Python hat gar keinen syntaktischen Zucker für Reguläre Ausdrücke, weil sie nicht so zentral in der Sprache stehen. Ich persönlich finde das an sich ganz gut, weil eben Reguläre Ausdrücke eben nicht die Lösung aller Probleme sind. Ich finde einfachere Reguläre Ausdrücke + etwas Programmlogik einfacher zu lesen als komplizierte Ausdrücke + ganz wenig Programmlogik. Davon abgesehen ist Pythons Engine für Reguläre Ausdrücke, SRE ziemlich robust und funktional, so dass du selten das Problem hast, dass etwas fehlen würde. Wenn du Oniguruma, PCRE oder TRE brauchst, kannst du sie (mit mehr oder weniger großem Aufwand) verwenden.
Übrigens, du brauchst CGI nicht, du kannst Perl auch via mod_perl oder FastCGI nutzen. Perl hat mit Catalyst auch ein Webframework, jedoch keinen Web-Standard wie Pythons WSGI.
Ein Vorteil von Perl ist das sehr umfangreiche CPAN, wo es viele Module schon gibt. Jedoch ist Python mit dem neuen PyPI stark am aufholen - es herrscht selten ein Mangel an Python-Bibliotheken.
ne0h hat geschrieben:Ruby

Vorteile:

- Modern und elegant
- einfache und relativ angenehme Syntax
- Die Programmierung macht Spass
- Mit dem Framework "Ruby On Rails" eine interessante Alternative im Webbereich
- Interaktiver Modus ist sehr gut

Nachteile:

- Usergemeinde ist nicht gross
- M.E. keine wirklich guten Dokumentationen
- "Ruby On Rails" hat seine Eigenarten und ist mir zu "speziell" (Hab damit ein kleines Projekt realisiert um es zu testen und obwohl es wirklich interessant ist, liegt es mir nicht)
- Ruby unterstützt meines Wissens bestimmte Zeichensätze nicht
Ruby ist etwas dynamischer als Python und du kannst einige nette Dinge machen, die in Python nicht möglich sind. Allerdings hast du auch mehr Möglichkeiten dir in den Fuß zu schießen. Auch finde ich Ruby-Code unübersichtlicher, aber es ist teilweise einfach Gewöhnungssache. Diese dynamik erkaufst du dir aber dann auch mit geringerer Performance. Zu bedenken ist, dass Rails bei weitem nicht das einzige Framework für Ruby ist - es gibt mehrere die durchaus interessant aussehen. Aber gleiches gilt auch für Python: Django, Pylons, Werkzeug, TurboGears sind nur einige. Ich habe mit einigen von denen auch schon teilweise umfangreiche Seiten erstellt und würde wenn dann höchstens eines der Ruby-Frameworks oder etwas exotischeres wie Seaside oder ähnliches ausprobieren.
Ruby ist jetzt, ähnlich wie Python im Umbruch zu 1.9.1 (oder war es 2.0?), allerdings ist irgendwie wenig klar und es ist alles etwas stark im Wandel. Die Gestalt von Python 3.0 steht schon seit einiger Zeit fest und es kommt im September als Finalversion raus, mit Unicode überall, so ähnlich wie in Java.
ne0h hat geschrieben:PHP

Vorteile:

- Simpel
- Schnell erlernbar
(Mehr Vorteile finde ich nicht dabei)

Nachteile:

- Unsicher
- Nur auf Webanwendungen ausgelegt
- keine wirkliche Stand-Alone Programmiersprache und somit auch nicht wirklich mächtig
- Programmierung macht keinen Spass
Als Vorteil von PHP sehe ich eher die Verbreitung und die dadurch simplen Möglichkeiten zum Deployment. Simpel finde ich es nicht wirklich, zumindest im Vergleich zu Ruby, Perl, Python. PHP selbst ist naja, mäßig unsicher, das Problem sind die bekannten PHP-Applikationen. PHP fördert sichere Programmierung nicht, aber viele PHP-Programmierer scheinen schlicht Idioten zu sein, die ihre Programme aus Snippets gecopypastet haben. Vor allem von bekannten Applikationen würde man erwarten, das man sich bei den Lösungen nicht an den Kopf fassen müsste.

ne0h hat geschrieben:Python

Vorteile:
...
Nachteile:

- Angeblich in der Ausführungsgeschwindigkeit Perl etwas unterlegen
- Sonst fallen mir wirklich keine Nachteile ein :lol:
Die Ausführungsgeschwindigkeit interessiert einen in der Regel weniger. Der Python-Interpreter ist in der Tat nicht der schnellste, aber wer absolute Performance braucht, ist bei Skriptsprachen generell nicht gut aufgehoben. Du kannst sowohl schnelle als auch langsame Programme schreiben. BlackJack hat mal ein Python-Programm so weit optimiert, bis es schneller als ein nicht optimiertes C-Programm lief. Vieles hängt auch vom Optimierungsgrad ab - du kannst auch C-Module in Python verwenden (in Ruby natürlich auch). Man kann auch Python-Subsets direkt zu C-Modulen kompilieren.

Natürlich, ich werd dir jetzt nicht einreden, dass du einzig mit Python glücklich wirst. Du kannst viele Dinge auch in den anderen Sprachen machen. Einzig von PHP würde ich doch stark abraten, da du damit recht Eingeschränkt bist. Perl finde ich auch nicht so toll, was auch teils daran liegt, dass Python das Anti-Perl ist ;) Ruby ist interessant, mir liegt Python einfach besser, YMMV. Python ist aber eine gute Wahl.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ne0h hat geschrieben:Also ums zu berichtigen: Ich nenne diese Sprachen (um eine Abgrenzung zu Sprachen wie C/C++, Java oder Pascal/Delphi zu schaffen) einfach "Interpreter-Sprachen".

Das trifft es dann wohl deutlich besser....
Nein, eigentlich auch nicht. Python läuft ebenso wie Java in einer VM. CPython hat seine eigene VM, IronPython-Programme laufen auf der CLR(+DLR) und Jython läuft auf der Java-VM.

Eine Programmiersprache nach der Ausführungsart einzustufen ist keine gute Idee. Ich würde eher von der Sprachebene argumentieren und da würde man Python wohl als Very High Level Language, VHLL einstufen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Hallo Leonidas,

erstmal vielen Dank für Deine so ausführliche Antwort.

Ich gehe das mal der Reihe nach durch.


Vielleicht wärst du neben C++ auch an Objective C oder Vala interessiert? Smile Das sind zwar keine Sprachen, die dir Jobs einbringen werden (ersteres unter Mac OS X eher noch, als Letzteres auf Linux), aber es ist sicher sinnvoll seinen Horizont zu erweitern. Ansonsten auch das vielgepriesene D.


Objective C ist in der Tat bei mir schon angepeilt, gerade weil MAC OS X selbst zum Grossteil darin implementiert ist. Allerdings schaffe ich "noch" einige Grundlagen und bewege mich deshalb erstmal nur in C. Die nächsten Schritte zu C++ bzw. Objective C folgen dann... :wink:

D habe ich mir nur mal am Rande angesehen aber zur Zeit bin ich daran ehrlich gesagt noch nicht interessiert. Ich möchte mein Feld auch nicht zu sehr verstreuen, da ich mich auf weniges konzentrieren möchte und dort erstmal vorankommen will. Ab einem gewissen Entwicklungsgrad kommt das Interesse für andere (und evtl. speziellere) Sprachen von selbst, denke ich.


Dazu müsstest du definierten was du unter Skriptbereich verstehst. Kleine Skripte die Systemaufgaben erledigen wie User verwalten? Möglichkeit für User von dir geschriebene Programme zu erweitern (wie Firefox Extensions, vims Vimscript, Lua in Spielen, Emacs Elisp etc). Oder geht es um das Schreiben von Mediaplayern (Quod Libet) oder IM-Clients (Gajim). In diesen Bereichen ist Python durchaus brauchbar, das gebe ich zu.

Bashskripte zu schreiben macht Spaß, aber irgendwann ist ja die Schmerzgrenze erreicht.



Wie ich schon berichtigt habe, ist das etwas falsch ausgedrückt gewesen von mir. Im Grunde sehe ich als Skriptbereich eher das von Dir erwähnte Skripten für kleine Aufgaben (CronJobs u.Ä.). Deshalb gefällt mir Python auch sehr gut, weil damit eben auch grössere Softwareprojekte bewältigt werden und zugleich aber auch ganze Webseiten bzw. Webapps geschriebenw erden (also wieder der Bezug zur Vielfältigkeit der Sprache).


Also meine Erfahrungen von Java und Web sind eher in Richtung Schmerz zusammenzufassen. Jedenfalls ist die Einstiegshürde ausreichend groß, dass es keinen Spaß macht. Ist meine Meinung aber lunar, der sich mit der Enterprise Edition beschäftigt und auch Python in Python programmiert bestärkt meine Eindrücke.

Da muss ich Dir teilweise zustimmen. Momentan entwickle ich eine Webanwendung im Enterprise Bereich, dazu auch eine Software im Mobile bereich mit Micro Edition und im Webbereich spielen auch diverse Frameworks mit rein.

Der Spass vergeht einem tatsächlich recht schnell, weil nicht wirklich ALLES so gut zusammenspielt wie man es oft hört und auch weil Java selbst meiner Meinung nach nicht ganz "sauber" implementiert ist (was sich in vielen Kleinigkeiten bemerkbar macht und auf Dauer - wie in Projekten über mehrere Monate- wirklich nervt und einem die Lust nimmt).


Perl hat für Strings eine stark aufgehackte Engine für Reguläre Ausdrücke, eine ähnliche ist via PCRE auch in anderen Sprachen verwendbar, allerdings nicht mit dem gleichen Syntaktischen Zucker. Python hat gar keinen syntaktischen Zucker für Reguläre Ausdrücke, weil sie nicht so zentral in der Sprache stehen. Ich persönlich finde das an sich ganz gut, weil eben Reguläre Ausdrücke eben nicht die Lösung aller Probleme sind. Ich finde einfachere Reguläre Ausdrücke + etwas Programmlogik einfacher zu lesen als komplizierte Ausdrücke + ganz wenig Programmlogik. Davon abgesehen ist Pythons Engine für Reguläre Ausdrücke, SRE ziemlich robust und funktional, so dass du selten das Problem hast, dass etwas fehlen würde. Wenn du Oniguruma, PCRE oder TRE brauchst, kannst du sie (mit mehr oder weniger großem Aufwand) verwenden.
Übrigens, du brauchst CGI nicht, du kannst Perl auch via mod_perl oder FastCGI nutzen. Perl hat mit Catalyst auch ein Webframework, jedoch keinen Web-Standard wie Pythons WSGI.
Ein Vorteil von Perl ist das sehr umfangreiche CPAN, wo es viele Module schon gibt. Jedoch ist Python mit dem neuen PyPI stark am aufholen - es herrscht selten ein Mangel an Python-Bibliotheken.



Da gebe ich Dir auch hier wieder recht. Reguläre Ausdrücke sind zwar mächtig und teils auch eine Kunst für sich aber auch hier schaffen sich viele ganz neue Probleme die durch Logik einfach(er) zu lösen sind.

Ja, CGI ist nicht das absolute MUSS, aber Pythons Schnittstelle gefällt mir da doch um einiges besser (mod_python).



Ruby ist etwas dynamischer als Python und du kannst einige nette Dinge machen, die in Python nicht möglich sind. Allerdings hast du auch mehr Möglichkeiten dir in den Fuß zu schießen. Auch finde ich Ruby-Code unübersichtlicher, aber es ist teilweise einfach Gewöhnungssache. Diese dynamik erkaufst du dir aber dann auch mit geringerer Performance. Zu bedenken ist, dass Rails bei weitem nicht das einzige Framework für Ruby ist - es gibt mehrere die durchaus interessant aussehen. Aber gleiches gilt auch für Python: Django, Pylons, Werkzeug, TurboGears sind nur einige. Ich habe mit einigen von denen auch schon teilweise umfangreiche Seiten erstellt und würde wenn dann höchstens eines der Ruby-Frameworks oder etwas exotischeres wie Seaside oder ähnliches ausprobieren.
Ruby ist jetzt, ähnlich wie Python im Umbruch zu 1.9.1 (oder war es 2.0?), allerdings ist irgendwie wenig klar und es ist alles etwas stark im Wandel. Die Gestalt von Python 3.0 steht schon seit einiger Zeit fest und es kommt im September als Finalversion raus, mit Unicode überall, so ähnlich wie in Java.



Auf die neue Version von Python bin ich gespannt. Was da auf uns zukommt kann ich nicht beurteilen, aber ich hoffe auch auf die Unicode Umarbeitung.

Mein bisheriger Ausflug zu den Frameworks liegt bisher eben nur in Ruby On Rails und da läuft auch einfach nicht alles so "rund" wie ich es mir wünsche und wie ich es erwarte.

Django macht auf mich einen übersichtlicheren und strukturierteren Eindruck, wobei ich dazu sagen muss, dass ich mit Django noch nicht wirklich aktiv zugange war.


Als Vorteil von PHP sehe ich eher die Verbreitung und die dadurch simplen Möglichkeiten zum Deployment. Simpel finde ich es nicht wirklich, zumindest im Vergleich zu Ruby, Perl, Python. PHP selbst ist naja, mäßig unsicher, das Problem sind die bekannten PHP-Applikationen. PHP fördert sichere Programmierung nicht, aber viele PHP-Programmierer scheinen schlicht Idioten zu sein, die ihre Programme aus Snippets gecopypastet haben. Vor allem von bekannten Applikationen würde man erwarten, das man sich bei den Lösungen nicht an den Kopf fassen müsste.

Ok, lassen wir PHP einfach ganz bei Seite. Wie ich merke, wird PHP hier keine Pluspunkte ernten, mit denen man PHP und Python messen kann.
:lol:


Natürlich, ich werd dir jetzt nicht einreden, dass du einzig mit Python glücklich wirst. Du kannst viele Dinge auch in den anderen Sprachen machen. Einzig von PHP würde ich doch stark abraten, da du damit recht Eingeschränkt bist. Perl finde ich auch nicht so toll, was auch teils daran liegt, dass Python das Anti-Perl ist Ruby ist interessant, mir liegt Python einfach besser, YMMV. Python ist aber eine gute Wahl.

Mir fallen auch nicht mehr viele Alternativen ein, die sich mit Python messen können. TCL ist keine gleichwertige Alternative, Smalltalk ist m.E. auch nicht auf der Höhe der Zeit, Lua ist mit TCL auf einem Niveau und dient mehr als "Erweiterung" als eine eigenständige Sprache.

Da leigt auch noch ein Pluspunkt für Python, dass die Schnittstelle zu C recht einfach ist und sich Python mit C sehr gut ergänzen.


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

ne0h hat geschrieben:Objective C ist in der Tat bei mir schon angepeilt, gerade weil MAC OS X selbst zum Grossteil darin implementiert ist. Allerdings schaffe ich "noch" einige Grundlagen und bewege mich deshalb erstmal nur in C. Die nächsten Schritte zu C++ bzw. Objective C folgen dann... :wink:
Der BSD-Superserver wird wohl immer noch in C sein und Mach vermutlich genauso. Die oberen Ebenen wohl eher, wobei ich da auch nicht ganz sicher bin, wie viel überhaupt. WebKit ist ja in C++ geschrieben, damit Safari vermutlich auch. Ist aber eigentlich auch egal.
ne0h hat geschrieben:Der Spass vergeht einem tatsächlich recht schnell, weil nicht wirklich ALLES so gut zusammenspielt wie man es oft hört und auch weil Java selbst meiner Meinung nach nicht ganz "sauber" implementiert ist (was sich in vielen Kleinigkeiten bemerkbar macht und auf Dauer - wie in Projekten über mehrere Monate- wirklich nervt und einem die Lust nimmt).
Da haben die "freien" Sprachen schon ihre Vorteile - die Implementationen sind seit jeher frei und damit recht brauchbar implementiert - außerdem besteht die Möglichkeit nachzubessern, wenn man es besser weiß. Wobei im Fall CPythons größe Änderungen auch nicht so einfach sind - insbesondere der GIL wird oft als Kritikpunkt angesehen. Von der Hinsicht sieht Ruby aber auch nicht besser aus, eher schlechter. Die Thread-Probleme von PHP sind auch vergleichsweise bekannt (von mod_php + MPM Worker wird ja öfters abgeraten). Wie es bei Perl aussieht, weiß ich nicht - vermutlich ähnlich. Parallelität ist im Moment ein Schwachpunkt, auch wenn es da in Python Ansätze gibt, das Problem durch mehrere Prozesse anzugehen. Wenn du also wirklich High-Performance Perallelität haben wolltest dann ist Python nicht so der Hit (mit Kamaelia und Twisted lässt sich aber auch an der Front einiges erreichen).

Aber Parallalelität ist eben ein Problem, das zu lösen auch andere Ansätze erfordert. Da punktet Erlang mit seinem funktionalen Ansatz, was unter anderem Locking und damit Deadlocks löst sowie die einfache parallelisierbarkeit. Aber du scheinst ja nicht ganz so hoch zu greifen.
ne0h hat geschrieben:Ja, CGI ist nicht das absolute MUSS, aber Pythons Schnittstelle gefällt mir da doch um einiges besser (mod_python).
Vergiss dass es ``mod_python`` gibt. mod_python ist nicht nur an den Apache gebunden sondern auch nicht mehr auf der Höhe. Es stammt aus einer Zeit vor WSGI. Außerdem ist es konzeptuell kaputt, also auf eine Weise die nicht zu reparieren. Den Interpreter in Webserver-Prozesse zu laden ist der falsche Weg. Ich habe das schon mal erklärt. Für das Deployment fürde ich eher zu FastCGI/SCGI oder mod_wsgi raten. FastCGI ist nicht serverabhängig und recht alt, aber wenigstens nicht konzeptuell kaputt. mod_wsgi wird die Standardlösung um Python-Programme im Apachen zu verwenden.
ne0h hat geschrieben:Auf die neue Version von Python bin ich gespannt. Was da auf uns zukommt kann ich nicht beurteilen, aber ich hoffe auch auf die Unicode Umarbeitung.
Wird sich im Vergleich zu Python 2.x nicht so sehr ändern nur dass es jetzt konsequenter und weniger tolerant wird. Das heißt, dass eine Menge Programme jetzt sofort daran zerbrechen. Das heißt aber, dass Programme von Amerikanern nicht mehr crashen werden wenn man Umlaute eingibt, weil die Programmierer genötigt werden sich damit auseinanderzusetzen.
Dadurch wird es natürlich etwas anspruchsvoller, aber generell werden Python-Programme in Zukunft in der Hinsicht robuster werden.
ne0h hat geschrieben:Mir fallen auch nicht mehr viele Alternativen ein, die sich mit Python messen können. TCL ist keine gleichwertige Alternative, Smalltalk ist m.E. auch nicht auf der Höhe der Zeit, Lua ist mit TCL auf einem Niveau und dient mehr als "Erweiterung" als eine eigenständige Sprache.
Ich könnte noch JavaScript nennen, aber das ist außerhalb des Webbrowsers wenig verbreitet. Ändert sich aber langsam (siehe Helma). Währenddessen wird es auch immer mehr Python-ähnlich :D
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ne0h
User
Beiträge: 115
Registriert: Samstag 16. Februar 2008, 11:35

Der BSD-Superserver wird wohl immer noch in C sein und Mach vermutlich genauso. Die oberen Ebenen wohl eher, wobei ich da auch nicht ganz sicher bin, wie viel überhaupt. WebKit ist ja in C++ geschrieben, damit Safari vermutlich auch. Ist aber eigentlich auch egal.
Über die Verteilung bin ich mir auch nicht ganz sicher, ich weiss nur, dass Obj-C eben als Primärsprache für OS X gilt. Es gibt auch einzelne Teile von OS X die in Java implementiert sind und auch irgendwo angeblich was in Python. :lol:

Mach ist mit ziemlicher Sicherheit in C.


Ich glaube, es wird noch etwas dauern, bis ich dahin komme, selbst in/an Python irgendwelche Implementierungen zu ändern. Aber das ist durchaus ein interessanter Aspekt der so seltener zu finden ist.

Vergiss dass es ``mod_python`` gibt. mod_python ist nicht nur an den Apache gebunden sondern auch nicht mehr auf der Höhe. Es stammt aus einer Zeit vor WSGI. Außerdem ist es konzeptuell kaputt, also auf eine Weise die nicht zu reparieren. Den Interpreter in Webserver-Prozesse zu laden ist der falsche Weg. Ich habe das schon mal erklärt. Für das Deployment fürde ich eher zu FastCGI/SCGI oder mod_wsgi raten. FastCGI ist nicht serverabhängig und recht alt, aber wenigstens nicht konzeptuell kaputt. mod_wsgi wird die Standardlösung um Python-Programme im Apachen zu verwenden.
Darauf werde ich mit grosser Sicherheit in naher Zukunft zurück kommen, wenn ich nun wirklich mit Python anfangen sollte. Ich werde mich da noch etwas einlesen, zumal ich bisher nur "mod_python" als empfehlenswert gefunden habe.

Danke schonmal für den Tip!

Wird sich im Vergleich zu Python 2.x nicht so sehr ändern nur dass es jetzt konsequenter und weniger tolerant wird. Das heißt, dass eine Menge Programme jetzt sofort daran zerbrechen. Das heißt aber, dass Programme von Amerikanern nicht mehr crashen werden wenn man Umlaute eingibt, weil die Programmierer genötigt werden sich damit auseinanderzusetzen.
Dadurch wird es natürlich etwas anspruchsvoller, aber generell werden Python-Programme in Zukunft in der Hinsicht robuster werden.

Wenn es zur Internationalisierung beiträgt dann sehe ich im Mehraufwand die positiven Dinge die damit Einzug halten. Zumal es sich wohl in Grenzen halten dürfte, was da an Umstellungsarbeit aufkommen wird.

Ich könnte noch JavaScript nennen, aber das ist außerhalb des Webbrowsers wenig verbreitet. Ändert sich aber langsam (siehe Helma). Währenddessen wird es auch immer mehr Python-ähnlich Very Happy
JavaScript ist mein kleines Anhängesl bei der täglichen Arbeit und ich nenne es immer das "Schoßhündchen" des Browsers. Ich sehe in JavaScript nicht wirklich viel Zukunft ausserhalb von Browsern, damit kann ich aber auch falsch liegen. Wer weiss, obs nicht das neue C wird? :D


So, gute Nacht.


ne0h
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

ne0h, ich teile dein Einschätzung der Stärken von Java und C(++) zwar nicht komplett, aber wenn dich Webprogrammierung interessiert, ist Python keine schlechte Wahl. Javas Vorteil ist einfach nur, dass es bei Unternehmen akzeptiert ist und dafür nimmt man im Vergleich zu anderen Sprachen teils extreme Mehraufwände in Kauf.

Für mich ist bei einer Programmiersprache wichtig, dass sie einen kleinen und klar definierten Sprachkern hat. Dies ist bei Python der Fall und spricht gegen Ruby oder Perl. Es würde auch für Scheme oder Smalltalk sprechen, zwei IMHO ebenfalls lernenswerte Sprachen. PHP ist in meinen Augen konzeptionell eine Katastrophe und ich werde es nicht weiter erwähnen. PHP hat natürlich den Vorteil, extrem verbreitet zu sein.

Weiter ist mir wichtig, dass eine Sprache dynamisch und interaktiv ist. Trifft aber für alle deine Nominierungen, die von mir erwähnten Sprachen Scheme und Smalltalk und weitere Kandidaten zu. Ich halte es für einen Irrglauben, dass statische Typisierung hilft, Programmfehler zu finden, doch das ist eine Diskussion, die ich schon vor 15 Jahren nicht mehr führen wollte. Typannotationen helfen unbestritten, wenn es um die Dokumentation von Schnittstellen geht.

Ich empfand Python als recht einfach zu meistern, für Ruby habe ich länger gebraucht, auch wenn ich diese Sprache anfangs sehr mochte, da ich da Smalltalk mit etwas anderer Syntax wiederentdeckt hatte und Smalltalk lange Zeit (und in den frühen 90ern) mein Favorit war. Aus dem Grund der Nähe zu Smalltalk und da ich einen Mac besitze, werde ich mir demnächst mal Objective C vornehmen. Mir gefällt diese Sprache besser als C++, das ich als zu komplex empfunden hatte, als ich es noch so leidlich konnte.

Rubys großer Vorteil ist IMHO, das man genau eine Wahl (Merb ist noch nicht so weit) für ein Web-Rahmenwerk hat: Rails. Bei Python teilt sich die Community auf ein halbes Dutzend größere und wahrscheinlich Miriaden kleinerer Rahmenwerke auf. Selbst wenn es mehr Python-Entwickler gäbe als Ruby-Entwickler (was ich vermute, aber nicht weiß) wirken Python und Python-basierte Webrahmenwerke dadurch weniger stark als Rails.

Den gleichen Vorteil gibt es bei ASP.NET im Vergleich zu den unmengen an Web-Rahmenwerken bei Java. Leute mögen selten zu viel Auswahlmöglichkeiten, da dies Unsicherheit erzeugt. Manchmal ist weniger Auswahl besser. Daher empfehle ich für Python einfach mal Django, auch wenn dies nicht wirklich mit Rails vergleichbar ist, da es mehr in Richtung CMS geht.

Oh, ich teile übrigens Leonidas Aussage, dass es Blödsinn ist, Programmiersprachen nach ihrer ersten Implementierungsart zu beurteilen. Fast alles kann man sowohl unmittelbar interpretieren als auch übersetzen und es gibt diverse Zwischenformen. Mit Scriptsprache könntest du kleine, in andere Anwendungen einbettbare Programmiersprachen meinen. Da sollte dann noch Lua und JavaScript erwähnt werden. Für den Mac gibt es übrigens F-Script, einen Smalltalk-Dialekt mit Array-Operationen wie sie APL schon bot.

Nochmal zu der Aussage, dass du von C zu C++ und dann erst zu Objective C wandern willst: Lass C++ aus. Das schafft dir keine Grundlagen, die du für Objective C brauchen könntest. Man denke immer an Alan Kays Zitat: "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind" ;)

Noch ein Punkt, der IMHO gegen Ruby (und für Java) spricht ist Unicode-Support. Python kann's zumindest ein bisschen, aber da es erst später zu einer doch schon recht alten Sprache dazu gekommen ist, schenken viele Entwickler dem Thema nicht genug Aufmerksamkeit. Es ist kompliziert, aber Java scheint es mir doch recht gut und vor allen Dingen umfassend gelöst zu haben. Apropos: Für die Java-Plattform ist vielleicht Groovy - ein Bastard aus Python, Ruby und Java - eine Alternative. Das ist scriptartig, hat ein von Rails inspiriertes Web-Rahmenwerk und passt sehr gut auf die Java-Plattform. Für .NET gibt es mit Boo eine ähnlich gut an die Ausführungsplattform angepasste Programmiersprache, die von Python inspiriert ist, aber deutlich statischer wirk. Wenn gerne statisch sein darf und funktionale Programmierung dir keine Angst einflöst, kann ich übrigens für die Java-Plattform noch Scala empfehlen. Prall gefüllt mit diversen spanndenden Konzepten ist dieses Möchtegern-Haskell (vom Typsystem aus gesehen, nicht von der verzögerten Auswertung her) eine interesse Forschungssprache.

Oh, und keine "Abhandlung" über dynamische Sprachen ist komplett, ohne Erlang erwähnt zu haben - die eigentlich einzige Sprache, die das Programm der immer stärkeren Verteilung von Software auf mehrere Prozessoren schon (vor 20 Jahren) gelöst hat.

Zu Leonidas Aussage, Betriebssysteme werden immer in C entwickelt werden, möchte ich anmerken: Microsoft Research entwickelt mit Singularity ein Betriebssystem in (managed) C# und kann damit z.B. bessere Thread-Wechselzeiten als beim aktuellen NT-Kernel erreichen. Lisp-Maschinen waren vor 25 Jahren schon bereits bis zum (speziellen) Prozessor in Lisp geschrieben und auch Smalltalk begann als bare metall Betriebssystem. Alan Kay hat letztes Jahr mehrere Millionen US$ Forschungsgelder bekommen, um seine Vision, ein Betriebssystem dank Hochsprache in einem Bruchteil der heutzutage üblichen Codemenge schreiben zu können. Man muss daran denken, dass die Systeme, die wir heute benutzen, konzeptionell ca. 30 Jahre alt sind. Und da war C gerade neu und modern.

Das JavaScript Python-ähnlich wird kann ich übrigens nicht finden, EcmaScript 4 aka JavaScript 2 sieht aus wie eine Mischung aus Java und C# ;) Man versucht der Sprache (die übrigens auf den Konzepten von Self, einem Smalltalk-Dialekt, der erforscht hat, was passiert, wenn man die Sprache noch stärker zusammenstreicht; die Sprache Io ist ein weiteres Kind von Self) die Dynamik (optional) auszutreiben, damit sie für größere Projekte besser skaliert. Man könnte auch boshaft sagen: damit mittelmäßige Programmierer vor sich selbst geschützt werden.

Wie auch immer: Python ist eine gute Wahl für ein breites Spektrum an Einsatzmöglichkeiten und es gibt mit IronPython eine Variante für .NET (insbesondere für Silverlight, was, wenn Adobe im Kampf gegen Microsoft verlieren sollte, das neue Flash wird und damit die nächste Generation von Web-Anwendungen formen wird) und hoffentlich gewinnt Jython für die Java-Plattform auch wieder durch stärkeres Engagement von Sun wieder an Fahrt. Wenn sich jetzt Python 3 schneller, als selbst die Entwickler planen, durchsetzt (was ich hoffe, um dem ganzen nicht die Dynamik zu nehmen) hat Python eine interessante Zukunft.

Stefan
lunar

Leonidas hat geschrieben:
ne0h hat geschrieben:Alos, folgendes: Ich bin grade auf dem Weg zum Anwendungsentwickler und im Zuge meiner Ausbildung entwickle ich mit Java (im Webbereich) sowie mit C (C++ in Kürze).
Vielleicht wärst du neben C++ auch an Objective C oder Vala interessiert? :) Das sind zwar keine Sprachen, die dir Jobs einbringen werden (ersteres unter Mac OS X eher noch, als Letzteres auf Linux), aber es ist sicher sinnvoll seinen Horizont zu erweitern.
Für diese Empfehlungen konnte ich dich eigentlich hauen ;)

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. Wenn ich für den Mac entwickeln würde, dann eher mit C++ und Qt4. Diese Anwendungen haben nämlich eine reele Chance, auch mal von vernünftigen Menschen und nicht nur von ausgeflippten Computer-Hippies genutzt zu werden (nichts für ungut, lieber Mac-User ;)

Vala dagegen kann gar nicht richtig sterben, weil es nie wirklich lebendig war und außerhalb der GLib-Umgebung eh absolut unbrauchbar ist. Und nicht jeder findet GLib so toll, dass es sich auf ewig daran binden möchte...

Wenn wir schon auf andere Sprachen hinweisen, dann lieber auf komplett andere Sprachen mit ganz anderen Ansätzen. Das Erlernen einer funktionalen Sprache wie Haskell bringt sicherlich mehr, als das Erlernen von Vala.
Bashskripte zu schreiben macht Spaß
Masochist.
Also meine Erfahrungen von Java und Web sind eher in Richtung Schmerz zusammenzufassen. Jedenfalls ist die Einstiegshürde ausreichend groß, dass es keinen Spaß macht. Ist meine Meinung aber lunar, der sich mit der Enterprise Edition beschäftigt und auch Python in Python programmiert bestärkt meine Eindrücke.
Nur für den Fall, dass das niemand glaubt, ich bestärke seine Eindrücke tatsächlich. Die verbreiteten Webframeworks für Java sind nicht nur enorm anstrengend in der Programmierung, weil sie viel Boilerplate-Code erfordern, sondern sie befördern auch Overengineering. Fazit: Wenn man in einer Firma ein Webfrontend für den bürokratischen Arbeitsprozess X schreiben muss, ist Java vielleicht keine schlechte Idee, weil dessen Webframeworks ähnlich bürokratisch sind ;)

Wenn man einfach nur eine coole und benutzbare Webanwendung schreiben möchte und dabei schnell zu Ergebnissen gelangen möchte, ohne Erweiterbarkeit und gutes Design aufs Spiel zu setzen, ist man mit anderen Sprachen wesentlich besser beraten.

Es hat irgendwo schon seinen Grund, warum viele Java-Webentwickler, sogar Alteingesessene, zu JRuby umlaufen, nur um RoR zu programmieren ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

sma hat geschrieben:Zu Leonidas Aussage, Betriebssysteme werden immer in C entwickelt werden
Dies habe ich nicht behauptet. Ich habe gemeint, dass der BSD-Superserver in C ist, sowie Mach es vermutlich auch sei. Linux ist auch in C. Mir ist Slate und die libd durchaus bekannt. Singularity wollte ich mir zwar ansehen, aber bin bisher nicht dazu gekommen (und so sehr interessiert es mich wiederrum auch nicht).

Und das Vala stirbt habe ich ebenfalls nicht behauptet. Im Gegenteil, im Gegensatz zu Objective-C ist es eher im Aufwind. Ob es sich durchsetzt werden wir sehen - C mit der Glib zu programmieren ist ja nicht so der Hit.

Haskell zu lernen, ja - sicher. Aber ich habe es nicht erwähnt, da es um Skriptsachen geht. Da ist Haskell nicht so spezeill für geeignet. Von der Nutzung von Scheme würde ich auch an dieser Stelle absehen, obwohl die Sprache konzeptuell cool ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Leonidas hat geschrieben:
sma hat geschrieben:Zu Leonidas Aussage, Betriebssysteme werden immer in C entwickelt werden
[...]
Wobei man doch guten Gewissens behaupten kann, dass jedes ernst zu nehmende Betriebssystem zumindest zu einem guten Teil in C geschrieben ist. Diese Sprache bietet sich in diesem Bereich nämlich einfach an, sie eignet sich hervorragend.

Und das Vala stirbt habe ich ebenfalls nicht behauptet. [/quote]
Ich habe auch nicht behauptet, dass du das behauptet hättest ;) Ich bezog mich nur auf meine Aussage, dass Objective C langsam stirbt. Ich wollte lediglich ausdrücken, dass vala sich noch weniger lohnt als Objective C, weil es im Gegensatz dazu nie richtig lebendig war.
Im Gegenteil, im Gegensatz zu Objective-C ist es eher im Aufwind.
Echt? Das muss mir entgangen sein... sollte es mittlerweile tatsächlich ein ernst zu nehmende Anwendung in Vala geben? Ich kann es kaum glauben...
Ob es sich durchsetzt werden wir sehen - C mit der Glib zu programmieren ist ja nicht so der Hit.
Leicht euphemistisch ausgedrückt... ich würde eher sagen, es ist eine einzige Katastrophe. Ob Vala sich durchsetzt, kann imho keine Frage sein: Es wird sich nicht durchsetzen. Außerhalb des GLib-Kosmos schon gar nicht, weil es ohne GLib schlicht weg nicht funktioniert. Da es für die GLib und darauf aufbauende Bibliotheken mittlerweile Bindings für jede x-beliebige Sprache gibt, halte ich es auch für fraglich, dass Vala sich innerhalb des Glib-Kosmos eine nennenswerte Verbreitung erreicht. Zumindest ich würde, sollte ich jemals in der Verlegenheit kommen, GLib-Anwendungen zu programmieren (wovor mich das Schicksal tunlichst bewahren möge), eher zu Python oder meinetwegen auch zu C++ greifen, bevor ich nochmal eine neue Sprache lerne, die mir auch nirgendwo anders was nutzt.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Ich habe auch nicht behauptet, dass du das behauptet hättest ;) Ich bezog mich nur auf meine Aussage, dass Objective C langsam stirbt. Ich wollte lediglich ausdrücken, dass vala sich noch weniger lohnt als Objective C, weil es im Gegensatz dazu nie richtig lebendig war.
Was nicht inst kann ja noch werden. Wir werden sehen. Im GNOME-Land gibt es ja einige recht interessante Entwicklungen wie gobject-introspection und damit auch pybank.
lunar hat geschrieben:Echt? Das muss mir entgangen sein... sollte es mittlerweile tatsächlich ein ernst zu nehmende Anwendung in Vala geben? Ich kann es kaum glauben...
Nö, bisher nicht. Aber Vala hat jetzt Version 0.1.7, da kannst du das auch schlecht erwarten. Python hatte zu dem Entwicklungsstand keine ernst zu nehmenen Anwendungen. Ich würde sagen es ist noch schlicht zu früh da zu urteilen. Haskell hat bis auf darcs, welches inzwischen von drei nicht in Haskell geschriebenen DVCS in der Popularität überholt wurde auch keine ernst zu nehmende Anwendungen, trotzdem heißt es nicht, dass Haskell schlecht ist.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

lunar hat geschrieben:Echt? Das muss mir entgangen sein... sollte es mittlerweile tatsächlich ein ernst zu nehmende Anwendung in Vala geben? Ich kann es kaum glauben...
Nö, bisher nicht. Aber Vala hat jetzt Version 0.1.7, da kannst du das auch schlecht erwarten. Python hatte zu dem Entwicklungsstand keine ernst zu nehmenen Anwendungen. Ich würde sagen es ist noch schlicht zu früh da zu urteilen. Haskell hat bis auf darcs, welches inzwischen von drei nicht in Haskell geschriebenen DVCS in der Popularität überholt wurde auch keine ernst zu nehmende Anwendungen, trotzdem heißt es nicht, dass Haskell schlecht ist.
Ich sage ja nicht, dass Vala schlecht ist, ich sage allerdings, dass es sich nicht lohnt, und das es wohl im Allgemeinen eher unbrauchbar ist. Was Vala kann, das erreicht man - ohne eine neue Syntax lernen zu müssen - auch mit entsprechenden Bindings in anderen Sprachen, mit dem zusätzlichen Vorteil, dass man diese Sprachen auch in anderen Umgebungen einsetzen kann, was bei Vala prinzipbedingt nicht möglich ist. Vala ist also lediglich eine DSL, die noch dazu nicht mal richtig sinnvoll ist.
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.
Antworten