Laden...

C# vs Ruby

Erstellt von hdsf vor 15 Jahren Letzter Beitrag vor 15 Jahren 5.186 Views
hdsf Themenstarter:in
89 Beiträge seit 2005
vor 15 Jahren
C# vs Ruby

Guten Abend,

ich hab ein bisschen gegoogelt danach, aber so richtig Handfestes nicht gefunden.
Obwohl ich starker C#-Sympathiast bin, scheint mir Ruby nach einer Woche Recherche irgendwie die "bessere" Sprache zu sein vom P/L Verhältnis:

Auf der HABEN-Seite

  • sie hat eine einfachere Syntax allgemein
  • mit Ruby On Rails Framework kann man mal soeben ein doch ansprechende Website in wenigen Tagen kreiern (klar HTML+CSS beherrscht man ja)
  • die Integration der Datenbank via SQL ist sehr eng (bei C# mehr Lernaufwand durch LINQ)
  • kann mir aussuchen ob objekt-orientiert oder prozedural oder funktionell programmiert wird
  • effizientes Konvention ersetzt Konfiguration Prinzip (bezieht Dateinamen und Verzeichnishierachiern mit ein)
  • Von Haus aus sicher konfiguriert für Webanwendungen

Auf der GLEICH-Seite

  • plattformunabhängig
  • Garbage Collector
  • Inkompatibilitäten zu früheren Versionen

Auf der VERLIERER-Seite

  • Interpreter --> langsamer
  • Win GUI-Anwendungen sind nicht so leicht zu erstellen wie mit VC# Express
  • evtl. GUI (aber es gibt ja Eclipse =)

Irgendwie überzeugt mich Ruby einfach mehr. Die heutigen Computer sind schon so schnell, dass die Ausführ-Geschwindigkeit von Büroapplikationen ja zu vernachlässigen ist. Außerdem ist mit Ruby die Erstellung von Web Applikationen um ein vielfaches einfacher zu sein als mit C# + Zusatztechniken. Das sehe ich als wichtiger Vorteil gegenüber C# an, während C# selbst wohl keinen gleichwertigen Vorteil bietet? Als Webseitenprogrammierer bin ich wohl mit Ruby viel besser beraten als mit C# und habe noch eine Option auf Desktop-Anwendungen.

Bin gespannt auf eure Antworten 🤔

365 Beiträge seit 2007
vor 15 Jahren

Hallo hdsf,

schon mal was von IronRuby gehört?!
Kommt mit .NET 4 und ermöglicht die Vorteile von Ruby auch in .NET Programmen zu nutzen.
Ich selbst nutze es nicht und habe es auch nie genutzt,
es war nur ein schöner Artikel darüber in der neuen dotnet.pro 😁

Hier paar Links:Wie verwende ich Ironruby in einem C# Programm
Ironruby: Besser programmieren in der .NET-Architektur

Greetz da kubi.

Edit:
Hier auch was von Golo Roden und Peter Bucher, die auch hier in unserem Forum Support leisten.
Dynamic Language Runtime: .NET, quo vadis?

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo hdsf

Als Webseitenprogrammierer bin ich wohl mit Ruby viel besser beraten als mit C# und habe noch eine Option auf Desktop-Anwendungen.

Wieso? 😃

Was ist mit ASP.NET / ASP.NET MVC?

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

C
401 Beiträge seit 2007
vor 15 Jahren

Ich denke es hängt immer davon ab, was man machen möchte. Der größte Nachteil ist natürlich, dass der Ruby Interpreter sehr langsam ist. Aber dem wird in der nächsten Zeit hoffentlich Abhilfe geschaffen. Ich musste dieses Semester Ruby programmieren und fand es ganz interessant mal eine vollständig dynamische Sprache zu benutzen. Ruby is eben für Rapid Development geeignet, sollte aber da wo es auf "Rapid Execution" ankommt eher vermieden werden.

Man muss halt je nach Einsatzgebiet entscheiden, was man machen möchte. Im Endeffekt kommt es eh auf den Kunden, bzw. den Vorgesetzten an, was man benutzt.

458 Beiträge seit 2007
vor 15 Jahren
  • kann mir aussuchen ob objekt-orientiert oder prozedural oder funktionell programmiert wird

Prozedural programmieren kann ich mit C# auch.
Frage ist nur ob das sinnvoll ist..
Ich gebe dir einen Tipp: ist es nicht.

be the hammer, not the nail!

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo hdsf

  • kann mir aussuchen ob objekt-orientiert oder prozedural oder funktionell programmiert wird

Guter Punkt!

Mit C# 3.0 hast du auch schon funktionale / dynamische Elemente drin.
Weiter gehts dann mit C# 4.0, dort gibts bspw. das Schlüsselwort "dynamic" und mehr.

Ich empfehle das Video von Anders:

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

3.003 Beiträge seit 2006
vor 15 Jahren

Ruby verführt nach meiner Erfahrung dazu, das Design der zu bauenden Software ein wenig zu vernachlässigen. Das kann einem mit jeder anderen Technologie zwar auch passieren, aber wenn die Anwendung dann besch...eiden skaliert, sind die Effekte in Ruby dank der schlechten Ausführungsgeschwindigkeit wesentlich unangenehmer.

In einer Umgebung, wo wirklich agil entwickelt wird (und man das nicht nur auf den Fahnen stehen hat), mag Ruby wirklich eine gute Wahl sein, es passt halt einfach in einen agilen Entwicklungsprozess.

LaTino
PS: und egal, was ASP.NET und ASP MVC können - aus irgendeinem Grund ist Ruby (on Rails) einfach sexy. Keine Ahnung, woran das liegt. Allerdings sollte man halt überlegen, ob man mit jemandem eine Beziehung eingeht, nur, weil er attraktiv ist 😉.

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

X
1.177 Beiträge seit 2006
vor 15 Jahren

huhu,

-kann man mal soeben ein doch ansprechende Website in wenigen Tagen kreiern (klar HTML+CSS beherrscht man ja)

  • die Integration der Datenbank via SQL ist sehr eng (bei C# mehr Lernaufwand durch LINQ)
  • Von Haus aus sicher konfiguriert für Webanwendungen

also diese Punkte von Dir gehören für mich auf die "Gleich" Liste.

  • "Schnell eine Website bauen" geht auch unter ASP.net - man muss es halt können.
  • Ob man einen OR-Mapper einsetzt (wie LINQ) oder einen native-Treiber für SQL bleibt doch dem Entwickler überlassen.
  • Sicher konfiguriert ist ASP.net von Haus-Aus auch; aber ich denke Ruby kann auch keine Programmierer-Fehler ausbügeln
  • sie hat eine einfachere Syntax allgemein
  • effizientes Konvention ersetzt Konfiguration Prinzip (bezieht Dateinamen und Verzeichnishierachiern mit ein)

ersteres kann man immer behaupten (ich persönlich finde z.B: die VB-Syntax absolut unleserlich) zweiteres ist Ansichtssache. Ich kenn zwar die Ruby Konventionen nicht, aber Konventionen schränken einen doch auch gleichzeitig immer ein, oder?

Persönlich denke ich, dass diese Diskussion - wie die meisten dieser Art - komplett überflüssig ist. Denn zu so allgemein gehaltenen Problemstellungen gibt es als Lösung nur die Antwort: Nimm die Sprache, welche dir am besten gefällt. Jede hat Vor und Nachteile im direkten Vergleich - sonst hätte sich vor 20 Jahren schon eine Sprache komplett durchgesetzt und wir würden hier jetzt nicht Diskutieren.

😃

Xynratron

EDIT: noch a bisl was hinzugefügt

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

hdsf Themenstarter:in
89 Beiträge seit 2005
vor 15 Jahren

Einen schönen Wochenendanfang an alle 🙂

@ kubi: Das mit IronRuby ist ja bloß wieder eine Nachahmung für das ROR Framework wie prado, phpCake usw. Klar hat die .NET Implentation Vorteile wie nativen WinVista / Win7 Support, Verwendung mehrerer .NET Sprachen und die vielbetonte Geschwindigkeit... Aber eine Kopie kommt in der Einfachheit wohl nicht im Original und hat immer zusätzliche Workarounds hmmm

@ Peter Bucher: ASP.NET bzw. Derivate habe ich mir nicht angeguckt. Klingt mir aber in der Realisierung viel komplexer als das ROR Framework. Lieber ein zusammengehöriges Paket mit gleicher Sprache als ein zusammengebasteltes mit 2 verschiedenen Sprachen, gell? Wobei ASP.NET natürlich viel Gemeinsamkeiten mit C# hat.

@ Corpsegrinder: Du hast Recht, der Anwendungszweck bestimmt letzenendlich die Mittel, also die Sprache. Ruby ist - wie du meintest - in geschwindigkeitskritischen Szenarien (Industrieprozesse, Spiele, HighspeedDatenbank), Embbed Systeme und Treiberprogrammierung nahezu total ungeeignet.

Aber im "Mainstream" - Programmentwicklung und noch mit einem echt starken Bonus für zukunftsträchtige Webapplikationen in Form eines harmonierenden Web-Frameworkes, ist Ruby wohl eine starke Alternative.

@ LaTino: Und was ist der Grund für das vernachlässigende Design? Aber da Ruby ausgelegt ist, das DRY-Prinzip beharrlich anzuwenden (eigentlich gültig für jede OO Anwendung), sollte ein Redesign relativ einfach zu beheben sein? Das mit sexy, ja da kann ich dir aus eigener Erfahrung Recht geben 👅

@ Xynratron: Das "man muss es halt können" ist ja gerade das Problem bei ASP.NET. Bei Ruby kann man viel früher Ergebnisse bei anschließender ähnlicher Entwicklungszeit erreichen afaik. Man spricht sogar von 10% Java-Code bzw. 50% PHP Code Einsparung. Wohl eher eine Sache des Programmierers, aber Ruby sollte da auch einen Anteil haben. Mit der Datenbank seh ich es ähnlich wie bei ASP.NET, dass die Einbearbeitungszeit wohl zu lang ist.
Klar, als Open Source Sprache / Framework kann Ruby interne Programmierfehler ausbügeln, das wäre noch ein Vorteil für Ruby. Aber sehr theoretisch, da nur für Experten.
Die Syntax finden, wenn man sich umsurft, ebenfalls runde 90% viel angenehmer als PHP und z.T. sogar als C#. Ich fand die 20min Demo auf deren Homepage sehr gelungen und intelligent. Ich hab eine einzige negative Kritik dazu gelesen, wobei an der handfeste Beweise fehlten (ohne Code Beispiele).

Ich habe heute jedenfalls einen Kurzvortrag gehalten und habe zum ersten Mal im Leben echte Anfragen bekommen, dass man sich mehr für Ruby interessiert und wo man weiter forschen soll usw.
Ich selber werde wohl die Finger von Ruby lassen, da zwischen 1.8.7. und 1.9.1 (Anfang Oktober) erhebliche Unterschiede geben soll und ich erst mit den ersten Dokumentationen zur neuen Sprachversion einsteigen und nicht schon wieder umlernen möchte. Vielleicht habe ich aber auch so einen bleibenden Eindruck gegeben, dass selbst die Lehrer sich entscheiden, darauf umzuschwenken.

Ihr seht mir schon die rosarote Brille an, ich weiß 😉, aber eine Frage hätte ich da noch:

Auf der anderen Hand; wenn Ruby wirklich so gut sein sollte, wie 90% der Internetkriterien bescheinigen, frage ich mich, warum nicht mehr Leute mit Ruby programmieren bzw. die Entwicklung leicht stagniert (TIOBE Index 11, 3,x % )?

EDIT: Ich entschuldige mich, falls es so rübergekommen ist, wie es mir gerade vorkam, als ob meine Aussagen allein-allgemeingültig sind. Idz alles natürlich nur mein Feedback...

1.361 Beiträge seit 2007
vor 15 Jahren

Auf der anderen Hand; wenn Ruby wirklich so gut sein sollte, wie 90% der Internetkriterien bescheinigen, frage ich mich, warum nicht mehr Leute mit Ruby programmieren

Weils ja auch noch Python gibt.
(Und da gibs auch Frameworks wie Django und co).
(Ich will jetzt kein "Python vs Ruby" anzetteln, aber ähnlich sind sich die Sprachen schon, und eigentlich is doch Python auch besser. 😉)

Ich persönlich find aber statisch typisierte Sprachen "angenehmer". Auch wenn einem gerade das oft Kopfschmerzen bereitet und man lange daran sitzt und sich vielleicht sogar einige WorkArounds baut.

Aber Mechanismen wie IntelliSense sind doch einfach geil 🙂

beste Grüße
zommi

hdsf Themenstarter:in
89 Beiträge seit 2005
vor 15 Jahren

Verdammt, bis auf das fehlende OpenSource Modell Laut wiki hat es mehrere Nachteile in der Sprachkonstruktion gegenüber Ruby sollte ich mir Python zumindest mal einen Blick rüberwerfen...

Recht herzlichen Dank

C
401 Beiträge seit 2007
vor 15 Jahren

Ich selber werde wohl die Finger von Ruby lassen, da zwischen 1.8.7. und 1.9.1 (Anfang Oktober) erhebliche Unterschiede geben soll und ich erst mit den ersten Dokumentationen zur neuen Sprachversion einsteigen und nicht schon wieder umlernen möchte. Vielleicht habe ich aber auch so einen bleibenden Eindruck gegeben, dass selbst die Lehrer sich entscheiden, darauf umzuschwenken.

Ruby 1.9.1 ist doch scho draußen. Verstehe auch nicht, warum du aufgrund der Änderungen aufhören willst. Die Änderungen bringen viele Vorteile mit sich. Aber du musst es schließlich selber wissen. ^^

Ich persönlich find aber statisch typisierte Sprachen "angenehmer". Auch wenn einem gerade das oft Kopfschmerzen bereitet und man lange daran sitzt und sich vielleicht sogar einige WorkArounds baut.

Aber Mechanismen wie IntelliSense sind doch einfach geil 😃

beste Grüße
zommi

Naja.. dynamische Typisierung verlangt wesentlich mehr Disziplin vom Entwickler. Ständige Invariantenprüfungen etc... Und Code Completion kannst du dir z.B. für Eclipse mit dem DLTK holen.

O
778 Beiträge seit 2007
vor 15 Jahren

ASP.NET bzw. Derivate habe ich mir nicht angeguckt. Klingt mir aber in der Realisierung viel komplexer als das ROR Framework. Lieber ein zusammengehöriges Paket mit gleicher Sprache als ein zusammengebasteltes mit 2 verschiedenen Sprachen, gell? Wobei ASP.NET natürlich viel Gemeinsamkeiten mit C# hat.

Jetzt vergleichst du aber Äpfel mit Birnen. C# ist eine (.NET-)Sprache, ASP.NET eine (.NET-)Technologie für Webseiten. Aber man kann in C# Webseiten ohne ASP.NET machen und man kann noch besser ASP.NET ohne C# benutzen. Und das mit den 2 verschiedenen Sprachen, ja klar, du brauchst für ASP.NET zwei Sprachen: eine .NET-Sprache (z.B. C#) und das bisschen Xml. Aber die sind sauber voneinander separiert. Und jetzt erzähl mir nicht, dass du in ROR kein Html benutzt, damit sinds dann auch schon mal zwei, die aber afaik meist irgendwie verwurschtelt werden.

Wegen den Samples auf der Webseite: Man kann in absolut jeder Sprache verdammten Scheiß zusammenschreiben und meistens geht das sogar noch ziemlich einfach, weshalb das doch relativ verbreitet ist. Aber wenn man Code vorstellt, dann sollte man zusehen, dass man da guten, sauberen Code reinstellt.

109 Beiträge seit 2008
vor 15 Jahren

C# ist denke ich viel mächtiger als Ruby.

Ich weiß ja nicht wie es in Ruby ist aber mit C# ist es sehr einfach möglich unsafe Code zu schreiben und vor allem auf Betriebsinterne Funktionen zuzugreifen!

Außerdem ist der Punkt mit der einfacheren Syntax nichts haltbares, da man dann auch direkt zu VB.net rüberschauen kann, dessen Syntax ist ja sicher genauso einfach wie die von Ruby.

Schlussendlich ist Ruby nicht typensicher, was ich nicht so gut finde.

hdsf Themenstarter:in
89 Beiträge seit 2005
vor 15 Jahren

Pff soviele Fehler in nur 2 meiner Beiträgen 😭

So ist z.B. die Version 1.9.1 - die erste stabile und freigegebene 1.9 Version - natürlich erst Anfang diesen Februar und nicht Oktober geboren.
Nach etwas Recherche erscheint mir Python die bessere Sprache für Windows-Anwendungen und Ruby für Webanwendungen. Aber viel nehmen sich beide nicht.

@ Corpsegrinder:
Ich möchte mir das Umlernen sparen und schiebe anderen Stoff - XML, Javascript und CSS - in die Lücke. Deswegen erst mit den ersten 1.9.1 Tutorials loslegen und ROR müsste dann auch schon angepasst dafür geben. Nur zeigt Amazon, dass es weit und breit keine geplanten Bücher dafür in Mache sind -.-
Zudem bekomme ich 1.9.1 einfach nicht installiert (muss man mit cygwin oder C compilen machen).

@ onlinegurke:
ASP.NET ist eine Technologie? Ja stimmt, der Vergleich war nicht fair. Statt in ASP.NET muss man sich bei Ruby halt in ROR einarbeiten. Dafür ist dort wiederum SQL gleich inklusive. Aber HTML+CSS sind für alle Webapplikationen ein Have-To. HTML hat man im Grunde schon nach 2 Wochen ziemlich gut drauf.

@ MDCoke:
In Ruby kann man C Bibliotheken einklinken, was im Grunde die gleiche Möglichkeit erfüllt, betriebsinternen Code bzw. perfomanten Code zu schreiben.
VB.Net ist schon erheblich an C# angelehnt und hat mit dem alten VB6 (fast) gar nichts mehr zu tun, auf bis das die Schlüsselwörter und einige Konventionen übernommen worden sind. Mit dem typensicher ist wohl wie vielfach erwähnt eine Geschmacksfrage.

C
401 Beiträge seit 2007
vor 15 Jahren

C# ist denke ich viel mächtiger als Ruby.

Ich weiß ja nicht wie es in Ruby ist aber mit C# ist es sehr einfach möglich unsafe Code zu schreiben und vor allem auf Betriebsinterne Funktionen zuzugreifen!

Außerdem ist der Punkt mit der einfacheren Syntax nichts haltbares, da man dann auch direkt zu VB.net rüberschauen kann, dessen Syntax ist ja sicher genauso einfach wie die von Ruby.

Schlussendlich ist Ruby nicht typensicher, was ich nicht so gut finde.

Also das ist so nicht ganz richtig. Ruby hat den Vorteil, dass es selber Code generiert durch einfache Konventionen, wie z.B. Namensgebung und einfache Schlüsselwörter.

Beispiel:


attr_accessor :name, :alter // erstellt Instanzvariable, Getter und Setter für die Symbole
attr_reader :haarfarbe // erstellt Instanzvariable und Getter für das Symbol

Solche Sachen sind es, die in Sachen Rapid Development den klaren Vorteil gegenüber C# oder ähnlichen Sprachen bieten.

Die Typunsicherheit hast du auch nur, wenn du undiszipliniert codest. Durch Prüfen von Invarianten kannst du diese Probleme vermeiden.

Beispiel:


def invariant?
  raise "Invarianten-Fehler in #{self.class.name}." if not @any_attr.kind_of?(AnyClass)
  return true
end

So kann man ausschliessen, dass ein Attribut vom falschen Typ ist.

Natürlich bleibt es Geschmackssache, aber durch die Dynamik der Sprache hat man einige Vorteile, vor allem, wenn man mit Polymorphie arbeitet.

@hdsf: Achso, also ich benutze MacOS X für Ruby und installier es einfach über MacPorts, daher wusste ich nicht, dass es unter Windows Probleme damit gibt. Funkctionieren die Binaries bei dir nicht, oder kompilierst du das selber?

1.361 Beiträge seit 2007
vor 15 Jahren

...So kann man ausschliessen, dass ein Attribut vom falschen Typ ist.

Aber doch dann auch nur zur Laufzeit, richtig?
Ich denke mal die meisten meinen mit Typsicherheit die "statische Typsicherheit". Und die kann eben schon zur Laufzeit ein gewissen Verhalten garantieren. So können spätere Tests und Checks entfallen.

0
767 Beiträge seit 2005
vor 15 Jahren
  
def invariant?  
  raise "Invarianten-Fehler in #{self.class.name}." if not @any_attr.kind_of?(AnyClass)  
  return true  
end  
  

So kann man ausschliessen, dass ein Attribut vom falschen Typ ist.


object x; // angenommen ein parameter
if (!(x is int))
  throw WhateverException();

Und so kann ich in C# ausschließen dass ein Object von irgendeinem Typ ausgenommen int ist...

Die Frage ist wohl, obs Sinn macht überall objects als Parameter zu verwenden und dann mühselig den Typ zu prüfen, wodurch alles erst zur Laufzeit getestet werden kann, oder ob ichs nicht lieber doch dem Compiler überlasse und den Parameter gleich als int deklariere - abgesehen davon, dass mit das zu blöd wär in jeder Methode erst die Parameter auf den gültigen Typ zu prüfen.

Die Typsicherheit führt schneller zu stabilieren Programmen und daher kürzerer Entwicklungs und Testzeit (soviel zu Rapid Development).

loop:
btst #6,$bfe001
bne.s loop
rts

X
1.177 Beiträge seit 2006
vor 15 Jahren

huhu,

VB.Net ist schon erheblich an C# angelehnt und hat mit dem alten VB6 (fast) gar nichts mehr zu tun, auf bis das die Schlüsselwörter und einige Konventionen übernommen worden sind. Mit dem typensicher ist wohl wie vielfach erwähnt eine Geschmacksfrage.

Ahh, jetzt verstehe ich deine Aussagen besser. Du weisst leider nicht ganz was .net, c# oder ASP.net ist.

.net ist ein wenig ein Schlagwort, aber es bezeichnet nur die technologie incl. dem Framework.
c# ist eine von mehreren Programmiersprachen welche dann vom Compiler zu .net-Programmen umgesetzt werden.
ASP ist eine Erweiterung zum schnellen erstellen von Websites.

Das erklärt natürlich warum vb.net und c# sich scheinbar ähneln: Sie benutzen dasselbe Framework - sind aber unterschiedliche Programmiersprachen. Es gibt ja auch noch J#, Pascal C++ für .net. Hier musst du ein wenig aufpassen. Vermutlich baut auch irgendwann mal jemand einen RUBY-Compiler^^

ASP ist übrigens sehr an HTML angelehnt und es werden auch HTML-Elemente verwendet.

Ausserdem finde ich es gefährlich zu versuchen 2 Technologien zu vergleich ohne die eine dann wirklich zu kennen. Aber ich hab ja oben schon etwas zu deinen Punkten geschrieben.

Solche Sachen sind es, die in Sachen Rapid Development den klaren Vorteil gegenüber C# oder ähnlichen Sprachen bieten.

Die Typunsicherheit hast du auch nur, wenn du undiszipliniert codest. Durch Prüfen von Invarianten kannst du diese Probleme vermeiden.

Also dem muss ich energisch wiedersprechen. Hier grasiert schon wieder derselbe mist wie immer: Wirf etwas Gutes weg um dann in 10 Jahren wieder drauf zu kommen dass man sowas braucht. Typsicherheit - also schon durch die Deklaration festzulegen was da benutzt wird - verhindert eben, dass der Programmierer durch Faulheit oder "Rapid-Development" Unsinn macht. Glaubst du im Ernst, dass im Verlauf eines Projektes dann überall immer getestet wird, ob der Typ so in Ordnung ist?

Mein beliebtestes Beispiel für "gute Ideen" wegwerfen ist übrigens das "NX-Flag" - wäre man einfach dabei geblieben, dass man den Speicher explizit als Daten oder Code kennzeichnet, dann hätte man nie das Problem mit Bufferoverflows etc. und der jetzigen Krücke NX-Flag gehabt.

Ausserdem:

string Name { get; set; }

Ist der c#-Code für dein Beispiel 😃 Ich weis da jetzt nicht ob man das in Ruby soo viel schneller schreiben kann.

😃

Xynratron

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

3.003 Beiträge seit 2006
vor 15 Jahren

@ LaTino: Und was ist der Grund für das vernachlässigende Design? Aber da Ruby ausgelegt ist, das DRY-Prinzip beharrlich anzuwenden (eigentlich gültig für jede OO Anwendung), sollte ein Redesign relativ einfach zu beheben sein?

Der übliche. Man verwechselt agiles Entwickeln mit planlosem Entwickeln. Man kann sich nicht ein paar agile Techniken herauspicken, dazu Ruby, und dann behaupten, man sei agil. Der Effekt ist erstmal nur, dass man die Chancen des Projekts, zu scheitern, drastisch erhöht.

Ich vermute, das ist ein Grund, wieso Ruby einen gewissen Ruf als "Sprache von Geeks und Fricklern" hat. Ich kenne viele Leute, die's beherrschen - aber genau gar keinen, der es produktiv einsetzt.

Gruß,

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)

1.361 Beiträge seit 2007
vor 15 Jahren

... für .net. Hier musst du ein wenig aufpassen. Vermutlich baut auch irgendwann mal jemand einen RUBY-Compiler^^

schon mal was von IronRuby gehört?!

=)

(wobei es eben kein echter "Compiler" ist, wie auch immer)

hdsf Themenstarter:in
89 Beiträge seit 2005
vor 15 Jahren

@ Corpsegrinder:
Die 19.x muss man selbst kompilieren. Aber ich habe eine Lösung im rubyforum gefunden. Das erste Kompilat ging auch schief, aber ich versuchs nun mit einem zweiten Programm.

@ Xynratron:
Da irrst du dich. Ich beschäftige mich seit ca. 3-4 Jahren mit der .NET Materie (genauer seit Version 1.1), meist auf theoretischer Ebene. Wäre VB6 wirklich dem VB.NET ähnlich, wo hätte ich VB.NET erlernt. Aber wie du siehst habe ich mich für C# entschieden. Nur die Microsoft eigenen Lernbücher sagen, dass diese zwei VB Sprachen sehr ähnlich sind.
Aber ASP schau ich mir davor genauer an; der Name klingt schon an sich soo kompliziert 😉

@ LaTino:
Danke für die Aufklärung... Mal sehen wie sich es so entwickelt...

F
10.010 Beiträge seit 2004
vor 15 Jahren

@LaTino:
Amen

C
401 Beiträge seit 2007
vor 15 Jahren

@ Corpsegrinder:
Die 19.x muss man selbst kompilieren. Aber ich habe eine Lösung im rubyforum gefunden. Das erste Kompilat ging auch schief, aber ich versuchs nun mit einem zweiten Programm.

http://www.ruby-lang.org/en/downloads/

Da gibt es unter "Ruby on Windows" die Binaries. Hoffe das hilft dir.

Um noch mal zum Thema zu kommen:

Ruby ist eben wie viele dynamische Sprachen hauptsächlich im Web anzutreffen. PHP, JavaScript, Python, Perl.. alles dynamisch typisierte Sprachen, alle häufig im Web anzutreffen. Man muss eben immer abwägen, wo es Sinn macht so eine Sprache einzusetzen.

Typsicherheit - also schon durch die Deklaration festzulegen was da benutzt wird - verhindert eben, dass der Programmierer durch Faulheit oder "Rapid-Development" Unsinn macht. Glaubst du im Ernst, dass im Verlauf eines Projektes dann überall immer getestet wird, ob der Typ so in Ordnung ist?

Du verwechselst hier btw. Typsicher mit statischer Typisierung. Ruby ist Typsicher, nur wird die Typprüfung eben zur Laufzeit durchgeführt.

Und zu dem Getter und Setter von C#... Also ersten weiss ich, dass es so geht, zweitens ja, in Ruby geht es schneller, da man nicht für jedes Property alles neu schreiben muss. Angenommen wir haben 5 Properties...

Ruby:


attr_accessor :propA, :propB, :propC, :propD, :propE

C#:


public string propA{ get; set; }
public string propB{ get; set; }
public string propC{ get; set; }
public string propD{ get; set; }
public string propE{ get; set; }

Was ist denn nun wohl kürzer?

Ich finde C# persönlich auch gut, sonst wäre ich nicht hier im Forum, aber ich finde es nicht besonders toll eine Sprache mit fadenscheinigen Argumenten schlecht zu machen. Wenn du Ruby, bzw. dynamisch typisierte Sprachen nicht magst ist das dein gutes Recht, aber versuche nicht sie grundsätzlich schlecht zu machen, denn das sind sie nicht.

edit:

btw. ist dein Beispiel von Gettern und Settern erst ab C# 3.0 möglich. Vorher sah es so aus:


public string Property
{
    get{ return _property; }
    set{ _property = value; }
}

Und das ist wohl nochmal ungleich länger. Da meines Wissens C# 3.0 noch nicht in den meisten Projekten eingesetzt wird ist dieser Weg wohl noch der Gängige.

458 Beiträge seit 2007
vor 15 Jahren

Fuer

public string Property
{
    get{ return _property; }
    set{ _property = value; }
} 

drueck ich genau "prop", 2x Tab und tippe den Namen der Property.. fertig 😉

be the hammer, not the nail!

161 Beiträge seit 2007
vor 15 Jahren

Eine Sprache anhand der Property Deklaration zu vergleichen ist doch wohl etwas weit hergeholt... Wobei statische Typensicherheit sicherlich ein Vorteil ist!

Prinzipiell gilt für mich, je besser der Code von einem nachfolgenden (vlt. nicht so erfahrenen) Programmierer zu lesen ist, desto einfacher fällt ihm das weiterarbeiten. Da lob ich mir doch eine so leserliche Sprache wie C# (VB.Net wäre noch besser zu lesen, aber wir reden hier ja über Programmiersprachen g)

Generell find ich, das ein Vergleich 2er Technologien auf einem solchen Level immer in eine Glaubensfrage ausartet. Würdest du mich fragen, würd ich dir immer C# empfehlen, da ich einfach sehr sehr gute Erfahrungen damit gemacht habe, jemand anderer würde dir vielleicht Java für den selben Einsatzfall empfehlen usw. usw. usw.

Im Endeffekt muss man versuchen sich die Problemstellung anzuschauen und anhand seiner Fähigkeiten so objektiv wie möglich zu entscheiden was nun die beste Wahl zur Lösung ist.

"Eine wirklich gute Idee erkennt man daran,
dass ihre Verwirklichung von vorneherein ausgeschlossen erscheint."
(Albert Einstein)

0
767 Beiträge seit 2005
vor 15 Jahren

Was ist denn nun wohl kürzer?

Also ich finde, das letzte worum es bei einer Sprache geht, ist wieviel ZEICHEN man schreiben muss. Für sowas gibts Intellisense, Autovervollständigung, Snippets...

Wenns drum geht, möglichst wenig Zeichen zu schreiben landet man automatisch dabei, möglichst kurze Variablennamen zu verwenden und wo das hinführt, ist bekannt.

loop:
btst #6,$bfe001
bne.s loop
rts

C
401 Beiträge seit 2007
vor 15 Jahren

Ich wollte damit nicht ausdrücken, dass Ruby toll ist, weil man Properties schnell schreiben kann. Ich habe lediglich auf Xynratrons Post geantwortet. Und ich habe auch schon gesagt, dass man je nach Einsatzfall selber entscheiden muss, was die beste Sprache für den Zweck ist. Ruby ist wie gesagt für Web sehr gut geeignet, weil de Syntax einfach ist, man schnell viel erreichen kann und Webspace mit Ruby einfach wesentlich günstiger ist, als mit ASP.net. Für Desktopanwendungen würde ich persönlich mich zum Beispiel immer für C++ entscheiden, weil diese Anwedungen dann auf Linux, Windows und UNIX Systemen laufen. Und ja, ich weiss, dass es Mono gibt, aber das ist ja lange noch nicht vollständig und auch imho nicht unbedingt performant.

M
303 Beiträge seit 2006
vor 15 Jahren

Also erstmal solltest du .NET einmal verstehen.
ASP.NET lässt sich nicht mit C# vergleichen. ASP.NET ist ein Subframework, das sich mit C# und anderen .NET Sprachen programmieren lässt.

Zweitens glaube ich nicht, dass der von .NET gebotene Stack mit Ruby on Rails vergleichbar ist. Entschuldige, aber .NET bietet eine Vielzahl von Technologien und Komponenten, die fuer das Design (verteilter) Geschäftsanwendung ausgerüstet sind.

Ruby hingegen ist eine Interpretersprache, fuer die es ein ganz nettes Web Framework gibt (ROR). Und will man mit ROR programmieren, muss man alles in das ROR-Schema pressen, wenn man nicht das halbe Framework auseinander nehmen will:

  • Beachtung der Konvention
  • Nur eine Datenbank
  • Möglichst nicht so hohe Ansprüche an Internationalisierung
  • Jede Anwendung muss eine relationale Datenbank nutzen
  • Primary Keys müssen autoincremented sein,
  • etc.

Leider lassen sich viele große Anwendungen nicht in das ROR-Schema pressen. ROR/Ruby und .NET zu vergleichen ist einfach eine Beleidigung für .NET. Mir gefällt Ruby auch, ich mag auch Ruby on Rails weil es für kleinere Anwendungen sehr effizient ist. Aber sorry, .NET spielt einfach in einer anderen Liga.

Gelöschter Account
vor 15 Jahren

Hallo Zusammen,

ich finde, ruby und ROR ist ganz nett um mal eben einen funktionsarmen prototypen hinzuklatschen, damit man definitv den selben nenner mit dem kunden findet. der 2. vorteil von einem prototypen in dieser sprache ist, das im nachhinein der chef nciht auf die idee kommen kann, den prototypen als basis für die konkrete implementation zu nehmen um "kosten zu sparen".

gruß
Jack

0
767 Beiträge seit 2005
vor 15 Jahren

der 2. vorteil von einem prototypen in dieser sprache ist, das im nachhinein der chef nciht auf die idee kommen kann, den prototypen als basis für die konkrete implementation zu nehmen um "kosten zu sparen".

ogott, genau das kenn ich von wo...

loop:
btst #6,$bfe001
bne.s loop
rts

F
10.010 Beiträge seit 2004
vor 15 Jahren

Wer ROR mal in .NET "erleben" will sollte sich mal das anschauen.
http://www.castleproject.org/monorail/index.html

X
1.177 Beiträge seit 2006
vor 15 Jahren

huhu,

ja ,irgendwie hab ich das oben gemeint, das ich es persönlich als "gefährlich" bezeichnete das alles zu vergleichen.

Noch als Klarstellung: ich hab keine Erfahrung mit Ruby, ich finde die Syntax schon unsympatisch (ja, ich mag auch keine VB-Derivate) - und konnte hier leider auch keine Vorteile im ganzen erkennen... 😦

😃

Xynratron

PS: will wieder Pascal^^

Herr, schmeiss Hirn vom Himmel - Autsch!

Die Erfahrung zeigt immer wieder, dass viele Probleme sich in Luft auslösen, wenn man sich den nötigen Abstand bzw. Schlaf gönnt.

C
401 Beiträge seit 2007
vor 15 Jahren

Also aufgrund der Syntax sollte man nicht gleich auf eine schlechte Sprache schließen. Ich fand die Objective-C Syntax auch erst grausam, habe aber schnell den Sinn dainter erkannt und finde es jetzt total Super. Wenn man wirklich die Vorzüge von Ruby erkennen will muss man sich natürlich auch damit beschäftigen. RoR zeigt diese sehr deutlich.