BeBur schrieb:
Ich bevorzuge letztendlich übrigens ebenso statisch und stark typisierte Sprachen, genau aus den von dir genannten Gründen ;-)
Wobei es ja durchaus auch Zwischenwege gibt wie z.B. Gradual-Typing, wo Du dann halt Dir aussuchen kannst, ob Du Typangaben hinterlegst oder nicht und auch typed und untyped Code mischen kannst. Der bekannteste Vertreter dürfte TypeScript sein, was ja im Prinzip getyptes Javascript ist.
Bei Python gibts inzwischen zumindest type-hints, die dann (maschinell) ausgewertet werden können.
BeBur schrieb:
Nein, also das ist falsch. Dafür müsstest du schon Domänen-relevante Benchmarks (also WebApps) bzw. Belege liefern damit man das überhaupt sinnvoll diskutieren kann
Ruby ist langsam also ist auch Rails langsam. Wobei "langsam" und "schnell" natürlich relative Begriffe sind. Oftmals recht es ja, wenn es "schnell genug" ist. Und bei einer typischen Rails-Applikation die überschaubare Business-Logik hat und im wesentlichen auf irgendeiner Datenbank rumkratzt ist das ja meist auch nicht wirklich ein Problem.
Und das Ruby langsam ist, ist wohl unstrittig. Ich hatte das tatsächlich mal vor Jahren bei einer Ruby-Applikation wo auch eine etwas umfangreichere Berechnung lief und das war dann zu langsam. Ich hab natürlich zunächst versucht es trotzdem hinzukriegen. Ruby konnte damals schon Native-Threads. Die Berechnung ließ sich gut parallelisieren. Das reichte aber immer noch hinten und vorne nicht. Auch mit JRuby auf die JVM zu gehen war zwar ganz gut, aber immer noch nicht gut genug. Also hab ich die entsprechende Routine in C implementiert. Das war deutlich schneller und hat dann letztlich auch gereicht.
Ich musste ja die Ruby-Applikation auch nicht wegwerfen oder so. Die entsprechende Routine wurde dann einfach über die C-Schnittstelle eingebunden und gut war.
Also selbst wenn Performance-Probleme auftreten, schließt das automatisch eine Technologie nicht völlig aus und mann kann da durchaus was machen.
Nur muss man es eben wissen. Und dann kann man auch was machen. Bringt ja nix den Kopf in den Sand zu stecken und sich immer wieder zu sagen "Ruby ist schnell genug". :-)
Anders ists ja bei Python/NumPy ja auch nicht. Python ist ja auch recht langsam. Also hat man die NumPy -Routinen im Wesentlichen C und Co implementiert. Benutzt wird es dann aber mit Python, was dann auch den wesentlich angenehmeren Zugang bietet als wenn man dafür auch C nehmen würde.
BeBur schrieb:
Das ist ein vertretbarer Standpunkt den ich nicht teile.
Wäre ja auch langweilig, wenn alle der gleichen Meinung wären. :-)
Es ist ja genau dann am Spannensten, wenn jemand nicht der gleichen Meinung ist und einem dann Dinge aus einem Blickwinkel schauen lässt, den man vorher gar nicht so auf dem Radar hatte.
BeBur schrieb:
Die Alternative besteht darin, die Defaults zu überschreiben, also zu konfigurieren und dann macht man nichts anderes als man "anderswo" (ist heute nicht mehr ganz so schlimm wie früher mal) sowieso die ganze Zeit machen muss.
Hab auch nie was anderes behauptet. :-)
Generell hat man ja zwei Möglichkeiten. Man kann ein Framework ultraflexibel machen (so im Stile vonm alten J2EE, worauf Du ja vermutlich auch anspielt). Das heißt wirklich jede Anwendung die Du damit bastelst bringt Overhead mit. Selbst ein 'Hello World' ist nicht unter 2 Stunden machbar :-)
Die Alternative ist ein spezialisiertes Framework. Spezielle Aufgaben hast Du damit fix erledigt. Allerdings kannst Du nicht jegliche Aufgabenstellung damit so fix lösen und bei Manchen Aufgaben steht die die Spezialisierung sogar im Weg.
Rails gehört eher zu Letzterem. Aber auch das ist keine Kritik, sondern eher ein Hinweis.
Gibt ja so immer die schönen Rails-Beispiele, wo Du dann mit relativ wenig Code coole WebApps basteln kannst. Das sollte aber nicht darüber hinwegtäuschen, das es halt auch Szenarien gibt wo das nicht so einfach funktioniert. Das muss ja alles keine dramatischen Folgen haben, aber man sollte es halt wissen.
hi-tech schrieb:
Generell aber würde ich sagen, wenn man in Java die Entwurfsmuster einsetzen gelernt hat
Java ist ja berühmt-berüchtigt für so Entwurfsmuster. Kein Programm ohne irgendeine BlödsinnsFactory. :-)
Ja. Entwurfsmuster haben schon irgendwo ihre Berechtigung. Aber das sie in Java so präsent sind und vor allem wie sie da umgesetzt werden, liegt vor allem an den Unzulänglichkeiten von Java. Das kann man beispielsweise gut an solchen Sachen wie Singletons bestaunen. :-)