Forum: PC-Programmierung Ruby on Rails die 2.


von Be B. (bebo)


Lesenswert?

Nachdem ich ungefähr 1 Jahr Erfahrung mit RoR sammeln durfte frage ich 
mich, ob ich nicht doch besser die Finger von RoR lassen sollte.

Nach einigen Monaten Pause finde ich mich nicht mehr wirklich im Projekt 
zurecht. Vieles muß ich mir erst wieder neu anlesen.

Mein persönlicher Eindruck ist, daß es nicht wirklich möglich ist, ein 
Ruby System ohne Aufwand nach einer Neuinstallation wieder zum Laufen zu 
bringen. Durch die automatische Installation werden zu jedem Zeitpunkt 
andere Versionen installiert. Das hat auch schon Probleme und extra 
Arbeit mit sich gebracht. Ein Bekannter von mir, der auch seit einiger 
Zeit mit RoR arbeitet, flucht auch regelmäßig über Rails. Verwendet man 
nicht die letzte Version, wird es auch schwerer Hilfe bei Problemen zu 
finden. Und mit jeder neuen Rails Version darf man anfangen, vieles im 
Projekt zu ändern.
Es gibt auch Leute, die nie auf eine neuere Version upgrade. Nur was 
macht man dann, wenn es mal wieder eine Sicherheitslücke gibt und es nur 
Fixis für neuere Versionen gibt?

Wenn man dann noch bedenkt, daß Ruby langsammer ist als C#, wäre es da 
nicht doch besser ASP.NET zu verwenden, zumal ich mich im Visual Studio 
und C# recht gut zurechtfinde?

Nun raten einem immer wieder Leute zu Ruby On Rails. Auf der anderen 
Seite soll die Community von ASP.NET viel größer sein. Die Dokumentation 
soll auch besser sein. Und die Performance sowieso, da kompiliert.

Kann Ruby On Rails überhaupt mit irgendwelchen Vorteilen auftrumpfen? 
Open Source hat für mich keine Bedeutung.


Gibt's eigentlich eine Möglichkeit abzuschätzen, wie viele Zugriffe ein 
System (RoR, PHP, ASP.NET) pro Sekunde verarbeiten kann? Ich meine nicht 
durch ausprobieren ermitteln, sondern einfache nur ganz Pauschal? 
Zugriffszeiten auf dahinter liegende Datenbanken mal vernachlässigt.

von D. I. (Gast)


Lesenswert?

Kann ich nicht nachvollziehen. Ich habe RoR 3.1, 3.2 und mittlerweile 
4.0 Projekte. Security Fixes sind einfach einzuspielen und ändern 
nichts.
Ich finde mich auch gut in den Projekten zurecht und wenn man Features 
in neuen Versionen nicht braucht zwingt einen niemand zum Upgrade.
Probleme die du beschreibst hast du mit jeder Webtechnologie, weil sich 
die ganzen Bereiche nun mal schnell weiterentwickeln.

Und nein man kann nicht pauschal abschätzen wieviel Zugriff ein System 
abkann, da gibts zu viel Parameter. Ich kann nämlich auch einen Scheiß 
in ASP.NET entwickeln der nicht mal 100 User verkraftet.

Solange du keinen Auftritt hast der nennenswerte Last verursacht, ist 
das von untergeordneter Bedeutung.

Ich kann nur sagen: "A fool with a tool is still a fool". Vielleicht 
sitzt in deinem Fall einfach das Problem vorm Rechner, ohne dich 
angreifen zu wollen. Die Community von Rails ist nun auch nicht gerade 
klein und es gibt viele erfolgreiche Projekte.

Aber du warst ja auch der, der RoR unbedingt unter Windows entwickeln 
wollte, wo ich schon sagte, dass das der absolute Krampf ist. In diesem 
Sinne wirst du mit .net sicher besser fahren.

von Uhu U. (uhu)


Lesenswert?

D. I. schrieb:
> Ich finde mich auch gut in den Projekten zurecht und wenn man Features
> in neuen Versionen nicht braucht zwingt einen niemand zum Upgrade.

Security-Patches gibt es für die 2er-Versionen nicht mehr lange - man 
kommt also um Upgrades doch nicht grundsätzlich herum.

von D. I. (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> D. I. schrieb:
>> Ich finde mich auch gut in den Projekten zurecht und wenn man Features
>> in neuen Versionen nicht braucht zwingt einen niemand zum Upgrade.
>
> Security-Patches gibt es für die 2er-Versionen nicht mehr lange - man
> kommt also um Upgrades doch nicht grundsätzlich herum.

Ja du hast recht, 2.3 ist bald durch, aber wenn man bedenkt wie lange es 
schon Rails 3 gibt...
irgendwann muss man auch im Webbereich einfach mal upgraden...

Mit Rails 2 zu entwickeln macht ja auch nur noch bedingt Spaß, wenn ich 
Freiberufler wäre würde ich wohl einen Upgrade Service auf Stundenbasis 
anbieten ;)

von Uhu U. (uhu)


Lesenswert?

Und wenn es ein eigenes Projekt ist? Sich selbst das Taschengeld 
erhöhen? ;-)

von D. I. (Gast)


Lesenswert?

Uhu Uhuhu schrieb:
> Sich selbst das Taschengeld
> erhöhen? ;-)

Genau :)

von Be B. (bebo)


Lesenswert?

Also, ich habe inzwischen RoR auf einer Virtual Machine mit MintOS 14 
laufen.

Richtig, ich war der mit dem Windows. Und die Installationen waren jedes 
mal anders. Haben am Ende zwar alle funktioniert, aber ich bin mir nicht 
sicher, ob ich in der Lage wäre nach einem Systemcrash oder 
Rechnerwechsel die Installation eins zu eins wieder herzustellen.

Vielleicht liegt es auch daran, daß sich kein Fan von dem ganzen Voodoo 
bin, der in Ruby On Rails steckt. C#/.NET sind mir halt vertraut. Viele 
Sachen in RoR hingegen bringen mich zum verzweifeln.

Beispiele:
Ich wollte einen Tabelleneintrag in mySQL editieren und ein History Feld 
erweitern. Ich habe also mit "<<" (glaube ich) eine neue Zeile an das 
History Feld angehängt. Dann habe ich die save funktion von ActiveRecord 
aufgerufen und mich beim nächsten aufrufen der Seite gewundert, wieso 
sich mein History Eintrag nicht verändert hat. Es hat nur ein paar 
Stunden gedauert, bis ich herausgefunden habe, daß ich mit "= alt + neu" 
hätte arbeiten müssen. Wieso? Weil Rails mal wieder weiser war als die 
Person vor dem Rechner. Offensichtlich gibt es Optimierungen im Rails 
Framework, die Datensätze nicht speichern wenn sie sich nicht verändert 
haben. Dabei wird offensichtlich bei Strings die Speicheradresse 
verwendet um herauszufinden, ob sich ein String geändert hat. Hängt man 
nun einfach mit der schnelleren << funktion etwas an einen String an, 
hat sich die String Adresse ja nicht verändert. Also optimiert Rails 
meine Erweiterung des History Feldes einfach weg und verwirft meine 
Änderungen am History Feld.

An einer anderen Stelle wollte ich ein Objekt im Konstruktor 
initialisieren. Vielleicht min ich C++ verdorben, aber ich habe 
tatsächlich geglaubt, Konstruktoren würden immer ausgeführt. Nun kennen 
Ruby und Rails aber offensichtlich Wege, den aufruf des Konstruktors zu 
umgehen. Ich habe es dann irgendwann aufgegeben und die Initialisierung 
dann irgendwie in die Programmlogik eingebaut.

Solche Sachen kommen in der ein oder anderen Form immer wieder vor. Und 
was nützt es mir, wenn man für vieles nur eine Zeile braucht, ich aber 2 
Tage danach suchen muß. Dann schreibe ich lieber 100 Zeilen Code und 
weiß genau, was mein Programm macht.

Natürlich kann man auch in ASP.NET schlecht Programmieren. Aber wenn man 
das Internet durchsucht findet man viele Blogs, die eben genau sagen: 
ASP.NET ist besser als PHP ist besser als ROR.

Mir fehlt die Erfahrung um es selber zu beurteilen. Und selber erst 
alles auszuprobieren dauert mir einfach zu lange. Und darum starte ich 
lieber den 10-tausensten x VS y Thread.

Es ist ja auch immer die Frage was man will. Und manchmal ist es mir 
eben wichtig die schnellste und leistungsfähigste Lösung zu suchen, auch 
wenn ich sie nicht brauche. Mit Rails würde ich wahrscheinlich 
problemlos ans Ziel kommen. Die Arbeit mit dem Visual Studio macht aber 
um längen mehr Spaß als die Arbeit mit Aptana Studio. Und mein 
Bauchgefühl sagt mir, daß die meißten Rails Beführworter auch Open 
Source Fans sind und somit ohnehin Microsoft hassen. Somit suche ich 
immer noch nach dem entscheidenden pro-Rails Argument. Microsoft kann 
mit einer Leistungsfähigen IDE und einem exzellenten Debugger aufwarten.

von D. I. (Gast)


Lesenswert?

Be Bo schrieb:
> Die Arbeit mit dem Visual Studio macht aber
> um längen mehr Spaß als die Arbeit mit Aptana Studio.

Aptana ist auch ein Scheiß. Ich arbeite mit RubyMine von JetBrains (ja 
kostet einen kleinen Obulus).
Aber wenn man VS über educational hinaus einsetzen will, kostets ein 
bisschen mehr.

von Uhu U. (uhu)


Lesenswert?

Be Bo schrieb:
> Also optimiert Rails
> meine Erweiterung des History Feldes einfach weg und verwirft meine
> Änderungen am History Feld.

Das hat mit Rails nicht die Bohne zu tun - das macht Ruby.

von Be B. (bebo)


Lesenswert?

@Autor: D. I.:
Aber mit VS kann ich auch Windows Programme schreiben. Und damit ist der 
Preis gar nicht so schlecht. Ok, die Standard Edition gibt's nicht mehr. 
Aber die Expressversionen dürfen, so weit ich weiß, auch kommerziell 
genutzt werden. Selbst, wenn nicht. Sollte es wirklich mal Geld bringen, 
dann ist auch die Professional Version erschwinglich.

@Autor: Uhu Uhuhu:
Letztlich ist es doch egal, was genau dahinter steckt. Tatsache ist, daß 
es sich nicht so verhält, wie man es erwarten dürfte. Oder kann mir 
einer die Stelle in der Dokumentation nennen, die diese Verhalten 
beschreibt?

Alternative wäre ja auch noch PHP denkbar. Wir in den meißten Blogs 
irgendwo zwischen ASP.NET und RoR eingestuft.

von D. I. (Gast)


Lesenswert?

Nun, Ruby ist Ruby und C# ist C#, jede Sprache hat so ihre Eigenheiten.

Ich weiß ja nicht welche Blogs du liest, aber wenn die Lösung zu einem 
Problem PHP lautet, dann will ich lieber wieder das Problem zurück haben 
;)

Warum nimmst du denn nicht einfach ASP.NET, entwickelst mit deinem 
bekannten VS und deployst auf nen IIS? Wir müssen dir nicht krampfhaft 
RoR ans Knie diskutieren wenn du damit nicht zurecht kommst. Ich habe 
mir auch mal ASP.NET angeschaut und finde es eher nicht so nett zum 
entwickeln. Jedem sein Ding.
Ich möchte einfach diese nahtlose Integration von Assets, HAML, SASS, 
CoffeeScript etc. und Deployment mit Capistrano nicht missen. Für meine 
Zwecke ausreichend. Und die ganzen MVC-Frameworks für PHP sind doch mehr 
Behelfskrücken als alles andere, IMO.

von Be B. (bebo)


Lesenswert?

So, habe inziwschen folgende pauschale Aussagen gefunden:

C# (Compiler) ist deutlich schneller als Ruby (Interpreter). Das macht 
sich aber nur bemerkbar, wenn man intensive Aufgaben abarbeiten will. Da 
die Hauptlast bei Anfragen aber vom (my)SQL Server erledigt werden, ist 
die Sprache nur geringfühgig für die Schnelligkeit verantwortlich. 
Gleiches gilt für die Bildverarbeitung (da Ruby rmagick verwendet, hat 
man C Geschwindigkeit). Ebenso sollen die Linux Dateisysteme schneller 
sein (gut für Download von z.B. Bilder). Wenn man jetzt noch davon 
ausgeht, daß man RoR mit dem Passenger und Apache verwendet, sollte es 
außerdem möglich sein, einmal generierte Seiten zu cachen. So daß Ruby 
wie es so schön genannt wurde, im Grunde nur die Aufgaben verteilt und 
alle Komponenten miteinander verbindet. Die eigentliche Arbeitslast 
verteilt sich dann auf Apache/Passenger/Das Dateisystem/Rmagick...

Da ich keine großartige Datenverarbeitung betreiben will und es sich 
eher auf das dynamische Generieren von sich selten ändernden Seiten 
beschränkt, scheint die letztere Möglichkeit mit Apache/Linux 
interessant zu sein. Nun kann ich mich also zwischen PHP und RoR 
entscheiden. PHP kenne ich nicht, aber mit dem was ich bisher in RoR 
gemacht habe, würde ich schnell ans Ziel kommen.

Stellt sich nur eine Frage: Welchen Hoster würde man für RoR Projekte 
nehmen? Wenn ich Ruby On Rails Hoster mit Wald und Wiesen PHP Hostern 
vergleiche, stelle ich fest, daß es für PHP mit 100GB HHD und 
Unlimitiertem Trafic recht günstige Angebote gibt. Ruby On Rails Hoster 
hingegen bieten häufig nur 1-4GB HHD und nicht selten 
Traficbeschänkungen. Dazu kommt, daß man offensichtlich an eine 
Bestimmte Ruby/Rails Kombination gebunden ist. Habt ihr da eine 
Empfehlungg?

Oder ist sowas (http://www.strato.de/server/) der Weg, den man gehen 
sollte. Und dann alles selber installieren?

Wie sieht es eigentlich mit der Performance von Servern aus. Zu Hause 
läuft alles auf einem neuen 4 Kern PC. Aber für die Preise, die da 
angeboten werden, wird einem wohl nur ein Bruchteil der Leistung zur 
Verfügung stehen. Gibt's da irgendwelche Erfahrungswerte? Hoster die 
dafür bekannt sind, langsammer oder schneller zu sein als die 
Konkurrenz?

von D. I. (Gast)


Lesenswert?

Also entweder du nimmst Heroku oder einen anderen Rails-Cloudhoster oder 
du mietest dir einen VServer und setzt den selbst auf (so habe ich es 
gemacht).

Shared-Hosting für Rails ist selten und funktioniert auch nicht so 
knorke wie bei PHP.

Aber einen Ubuntu VServer mit RVM, Passenger und Nginx aufzusetzen ist 
keine schwarze Magie.

Ich persönlich würde mehr zu Nginx als zum fetten Apache tendieren als 
Webserver, ist aber Geschmackssache, finde Nginx deutlich einfacher zum 
konfigurieren.

von Be B. (bebo)


Lesenswert?

Also wäre diese Strato Server geeignet und ich muß nicht weiter suchen? 
http://www.strato.de/server/

Arbeitet der Passenger eigentlich mehrer Anfragen parallel ab?

von D. I. (Gast)


Lesenswert?

Nun ich hoste bei HostEurope, aber ja die tuns denke ich auch, aber auf 
Apache würd ich bei 1-2GB eher dann verzichten.

Ja Passenger und Nginx kann man so konfigurieren, dass parallel 
gearbeitet wird. Passenger ist mittlerweile der quasi-standard zum 
Einstieg.

von Be B. (bebo)


Lesenswert?

Dann werde ich mal starten.

Danke

von T.roll (Gast)


Lesenswert?

Sehr zu empfehlen sind immer auch die ubernauten: http://uberspace.de
Doku für RoR: https://uberspace.de/dokuwiki/cool:rails
Allerdings wird grundsätzlich alles über die Shell erledigt. Gibt 
natürlich auch grafische Programme um einiges leichter zu machen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.