Python und/oder Ruby Webentwicklung in Firmen?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
TDO
User
Beiträge: 25
Registriert: Montag 10. Juli 2006, 19:49
Kontaktdaten:

Hi,

mir ist kein gescheiterer Titel eingefallen.. falls einem was passenderes einfällt.. kann ich ihn gerne ändern... naja zu meinem eigentlichen anliegen...

Also mir geht es im speziellen um den Webbereich... wie es in anderen Bereichen aussieht weiss ich nicht... ich könnte mir jedoch vorstellen das es ned viel anderst ist..

Naja mir geht es darum das es bei Python und Ruby anderst als bei z.B. Java keine großen Firmen gibt die hinter irgendwelchen Libs stehen und dort irgendeine Art von Standard durchsetzen...

Wie handhabt ihr das? Ich meine könnt ihr eurem Chef vorschlagen Webapps in Python zu Programmieren? Das Problem was ich halt sehe ist das viele Libs eher ne One-Man-Show sind... und das man da immer fürchten muss, dass dort der Developer keine Zeit oder Lust mehr hat und somit die Lib einfach stirbt...

Ehrlich gesagt habe ich mir darüber bisher keine großen Gedanken gemacht... aber wir Benutzen an der FH zum programmieren Java und wie sehr ich die Sprache auch nicht mag... so gefällt mir trotzdem, dass da einige große Firmen hinter den Technologien stehen und diese pushen/standardisieren und pflegen...

Wir haben z.b. in eclipse ein Maven-Plugin benutzt welches von einem Developer als One-Man-Show entwickelt wurde... und dieser hat wohl aus Zeitmangel den Versionierungssupport eingestellt... sprich man kann in eclipse nicht mehr ohne weiteres Maven Projekte auschecken...

Und da hab ich mir gedacht... shit... wenn ein Dev von den Libs die man Produktiv nutzt aufhört dann ist man bissle aufgeschmissen...

In der Ruby Welt gibt es ja das so propagierte allheilmittel Rails.. wo auch viele Devs dahinterstehen... und so weit ich weiss Sun auch so nen bissle... allerdings wenn man sich von Rails entfernt sieht es wieder eher düster aus... sogar mit der Sprache selbst... ich glaube da gibt es keinen richtigen standard...

In Python gibt es als großes Webframework Django... welches so weit ich weiss von einer Firma entwickelt wurde... aber ich weiss nicht wie sehr man sich darauf verlassen kann... wenn man sich von diesem entfernt sieht es glaub wieder bissle düsterer aus...

Wobei es mir nicht nur um die Webframeworks geht .. sondern eben auch um andere benutzte Libs... z.b. sqlalchemy usw..

Ich weiss nicht so recht ob, dass was ich eigentlich sagen und fragen wollte richtig rübergekommen ist... und das soll jetzt wirklich kein rumgetrolle sein... mich interessiert das wirklich... Kümmert ihr euch um solche Sachen oder ist euch das eigentlich egal? Ich würde mich über nen paar Gedanken von euch zu dem Thema freuen...

Danke...
BlackJack

@TDO: Du hast da ziemlich oft "ich glaub(e)" geschrieben. Es gibt halt Projekte die von Einzelpersonen betrieben werden, solche wo Firmen dahinter stehen, und welche mit einer Community. Und das recht unabhängig von den Programmiersprachen. Man muss sich halt jeweils die Projekte anschauen und eine Risikoanalyse machen.

Um Python selbst mache ich mir nur wegen dem "global interpreter lock" (GIL) Gedanken. Nach dem die Taktgrenze mehr oder weniger erreicht ist, werden Prozessoren ja mit mehr Kernen ausgestattet. Die Python Foundation, Google, und viele Linux-Distributionen "stehen hinter" Python.

Auf Migrationen auf neue Techniken und Bibliotheken muss man sich IMHO sowieso immer gefasst machen, auch und gerade in der Java-Welt mit den *vielen* "Standards" weil da auch ständig neue hinzukommen, oder nochmal hunderte von Seiten Spezifikation zu bestehenden, und die ganze Meute gerne irgendwelchen Moden hinterherhechelt, die dann in jede zweite Bibliothek Einzug halten. War jetzt vielleicht etwas überspitzt formuliert, aber die IT- und Softwaretechnik-Landschaft ist im stetigen Wandel begriffen. Man muss halt immer im Einzelfall abwägen ob man einer Bibliothek "traut", wie "gefährlich" es ist sich darauf zu verlassen, und welche Optionen man hat, wenn alle ihre Entwickler vom Bus überfahren werden.

Deine Frage ist IMHO ziemlich schwammig. So konkret bei Django denke ich, dass die Community gross genug ist, dass das nicht nächste Woche in sich zusammenfällt. Abseits davon gäbe es noch Pylons und TurboGears. So etwas wie Standards entwickeln sich auch bei Python. WSGI, die ElementTree-API, oder die DB 2.0-API beispielsweise.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Zudem ist es im Extremfall immer noch möglich, sich bei Freier Software selbst um die Sachen zu kümmern. Bei proprietären Schnittstellen ist das nicht möglich.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

@mkesper Mag in der Theorie stimmen in der Praxis kann man oft leichter von vorne anfangen.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

TDO hat geschrieben:Ich meine könnt ihr eurem Chef vorschlagen Webapps in Python zu Programmieren?
Ja. Es gibt da den schönen Ausdruck: "Die normative Kraft des Faktischen."
TDO hat geschrieben:Ehrlich gesagt habe ich mir darüber bisher keine großen Gedanken gemacht... aber wir Benutzen an der FH zum programmieren Java und wie sehr ich die Sprache auch nicht mag... so gefällt mir trotzdem, dass da einige große Firmen hinter den Technologien stehen und diese pushen/standardisieren und pflegen...
Du hast die aktuellen Entwickungen rund um Java nicht verfolgt, oder? Oracle macht sich gerade ziemlich unbeliebt.
TDO hat geschrieben:Und da hab ich mir gedacht... shit... wenn ein Dev von den Libs die man Produktiv nutzt aufhört dann ist man bissle aufgeschmissen...
Setze auf freie Software und verwende externe Bibliotheken die eine breite Benutzerbasis haben.
TDO hat geschrieben:In Python gibt es als großes Webframework Django... welches so weit ich weiss von einer Firma entwickelt wurde... aber ich weiss nicht wie sehr man sich darauf verlassen kann...
Ich sehe das wie folgt:
Ich verwende Django und glaube auch, dass über die nächsten Jahre noch viele Entwickler damit und daran arbeiten. Selbst wenn das Projekt plötzlich zusammenbrechen würde wäre das nicht tragisch. Es ist doch nicht so, dass Software automatisch nicht mehr funktioniert, nur weil niemand sie aktiv weiterentwickelt. Ich habe den Sourcecode hier, er funktioniert prima und damit gibt es keinen Grund dafür, dass ich mir Sorgen machen müsste. Schlimmstenfalls würde ich im Lauf einiger Jahre alles auf eine andere technologische Basis umstellen.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Letztlich läuft alles auf Vertrauen hinaus. Auf das Vertrauen, dass andere das schon richten werden oder auf das Vertrauen, es notfalls eben selbst machen zu können. Große Firmen helfen nicht immer. Oracle ist gerade recht erfolgreich dabei, seine Glaubwürdigkeit in der Open-Source-Community dauerhaft zu zerstören (ich sage nur OpenSolaris oder OpenOffice oder die Patentstreiteren um Android oder die Verwirrung um eine kommerzielle JDK-Version). Gerade haben sie das Hudson-Team aufgefordert, das Projekt auf der (aus der Sicht der Kernentwickler brüchigen) java.net-Infrastruktur zu belassen und nicht zu Google/Github zu migrieren. Man hielte das Recht an dem Namen Hudson und wolle auf diese Weise an dem Projekt festhalten. Und auch große Firmen können Projekte von dem einen Tag zum anderen aufgeben. Wie viele Datenbank-Adapter-Technologien gab es schon von Microsoft?

Aber es stimmt schon, in der Regel ist das Vertrauen größer, wenn die Verantwortung für das Projekt auf mehreren Schultern ruht, die vielleicht auch noch ein kommerzielles Interesse am Erfolg haben und nicht von der Zeit (und den Launen) eines unbekannten Entwicklers abhängt.

Hinzu kommt, dass je größer die eigene Organisation, desto verbreiteter ist die Einstellung, "niemand ist je dafür gefeuert worden, dass er $marktführer propagiert". Das galt für IBM oder Microsoft, das gilt für Java. Wahrscheinlich auch noch für Oracle. Das gilt definitiv nicht für Python bzw. Django oder Ruby bzw. Rails.

Sun (bzw. Oracle) hat nichts mehr mit JRuby am Hut. Selbigen hat das 3Mann-Team genommen, als Sun von Oracle übernommen wurde. Auch der Entwickler von Jython arbeitet nicht mehr für Oracle. Eigentlich passiert bei Oracle gar nichts in Sachen alternative Sprachen für die JVM mehr.

Hinter Rails steht in erster Linie Engineyard und ein kleines bisschen noch 37signals. Wichtiger ist aber IMHO, dass es eine relativ große und aktive Community gibt, in der auch viele kleine Firmen unterwegs sind, die mit Beratung und Schulung rund um Rails ihr Geld machen und daher darauf angewiesen sind.

Tatsächlich gibt es für Ruby 1.8.7 offiziellen japanischen Standard (zur Zeit als Draft), der dann zu einem ISO-Standard werden soll. Das wurde von japanischen Unternehmen als Voraussetzung für stattliche Projekte mit Ruby angestrebt.

Hinter Django steht keine Firma. Es gibt eine nicht-kommerzielle Foundation, aber das hat eher rechtliche Gründe, als dass das jetzt zu angestellten und bezahlten Entwicklern (wie bei Engineyard und Rails) führt. Es ist richtig, dass Django mal für eine Zeitung entwickelt wurde, aber das ist schon länger Geschichte.

Für Python gibt es keinen offiziellen Standard, aber zumindest ein echt gutes Referenzdokument. So etwas fehlte bzw. fehlt immer noch für Ruby, wo einfach gilt, die Implementierung von Matz ist der Standard. Dieser wird durch 30.000 oder so Testfälle abgedeckt und das war's dann.

Ich bin in der Situation, dass ich für meine Firma selbst entscheiden kann, worauf wir setzen und damit keinem Chef verantwortlich sondern nur mir. Macht es das einfacher? Ich weiß es nicht. Den Wunsch, auf das zu setzen, was die anderen auch machen, um so auf der sicheren Seite zu sein, spüre ich wohl. Aber andererseits brauchen wir als kleine Firma auch einen Wettbewerbsvorteil und den sehe ich durchaus in modernen Scriptsprachen.

So sehr mir auch Python und Django gefallen, tendiere ich (leider - wie ich in dieser Gruppe wohl ergänzen muss) dennoch zu Ruby und Rails - zum einen aufgrund der höheren Bekanntheit und zum anderen aufgrund der aus meiner Sicht aktiveren und attraktiveren (amerikanischen) Community. Django oder Python hat keinen Dave Thomas oder Jim Weirich, keinen Uncle Bob, Martin Folwer, usw. die als alte Smalltalker mit Ruby liebäugeln und sich in dieser Community eher tummeln als in der von Python.

Wer fest verwachsen mit der Linux-Community ist, für den ist Python bestimmt eine gute Wahl. Ich finde zwar Ubuntu nett und habe seit vielen Jahren immer mal wieder auch ein bisschen was mit Linux gemacht, doch ich bin Mac-User und da finde ich mit MacRuby (von dem ich hoffe, dass es auch zukünftig iOS-kompatibel wird) eine interessante alternative zu Objective-C, das auf mich wie aus den frühen 90ern entlaufen wirkt.

Blackjack erwähnte noch den GIL von CPython. MRI Ruby ist da leider nicht besser. JRuby vermeidet ihn, doch bietet auch keinen wirklichen Support (vergleichbar zu Clojure, Erlang oder einer anderen echten concurrency oriented programming language) für nebenläufige Programmierung. Hier sind glaube ich die Würfel noch nicht gefallen. Aus meiner Sicht muss aber eine zukunftsträchtige Sprache so funktional wie möglich sein und veränderliche - wohlmöglich noch ge-share-te Daten weitestgehend vermiden. Dies ist aber leider komplett entgegengesetzt zu Python, wo die Semantik des Interpreters auf veränderlichen Dictionaries fußt. Das ist ein weiterer Grund, warum ich strategisch nicht auf Python setze - auch wenn Ruby da nicht besser ist. Ich denke, man muss JavaScript und node.js (dessen Kernentwickler sich gerade Joyent gekauft hat) im Auge behalten. Clojure ist zu exotisch, ideal wäre IMHO eine Art leichtgewichtiges dynamisch getyptes Haskell oder etwas wie Go, nur ohne die vielen Ausnahmen in Syntax und Semantik.

Stefan
Antworten