"David Masover" <ninja / slaphack.com> wrote in message news:200909062319.35531.ninja / slaphack.com... > On Sunday 06 September 2009 06:00:06 pm Michael Brooks wrote: >> I'm not a Ruby guru or anything, I still do most of my coding in Delphi >> (I >> love Ruby but it's too slow). > > I'm curious -- do you have any numbers to back this up? Or any real > applications you tried in Ruby, and found it was too slow? > > Or is it that Delphi is somehow faster to develop in? > > I'm not saying you're wrong, but I do most of my coding in Ruby, because I > rarely find places it's too slow. I'm always curious what those edge cases > are > that need another tool. Hello David: Regarding code development speed: For complex web applications (I use Delphi's built-in IntraWeb framework) and many Windows GUI applications I find Delphi much faster to work with. The language and DB data providers are archaic by Ruby / Python standards but the integration between the IDE, language, built in components and the host windowing environment saves so much time for most of the projects I've worked on (e.g. database applications, graphics engines, data visualization, data generation / simulation, general utilities / home projects). I've tried Ruby Rails before Delphi IntraWeb, it was easy to build simple stuff but as the visual and functional complexity went up it was just easier to use Delphi IntraWeb. I didn't know IntraWeb at the time but it's WYSIWYG design environment for the web pages which was tightly integrated with the Delphi code was so much faster to develop with... not like the "code generator / run it and see what it looks like" feel I got from Rails. Regarding execution speed: I love the true OOP and metaprogramming of Ruby but it's so slow executing compared to a compiled language like Java, C++ or Delphi. A while ago I wrote a simple test to calculate prime numbers with Delphi, Python and Ruby (using the same brute force approach in each) and found: Delphi (v6.0) = 1.52s Delphi (v2009) = 3.41s = 2.24 times slower than Delphi v6 Python (v2.8) = 54.25s = 35.69 times slower than Delphi v6 Ruby (v1.8.6) = 121.82s = 80.14 times slower than Delphi v6 Ruby (v1.9.1) = 53.70s = 35.33 times slower than Delphi v6 using a Pentium 4, 3.0 Ghz, 1GB Memory, Windows XP SP2. I did the same test on SUSE Linux 10.2 and found Ruby to be about 30% faster than the results on Windows (note: Python was 20% slower on SUSE Linux so compilers and memory management appear to make a big difference). That's not the only program I've written in both Delphi and Ruby. I ported a Ruby XMLTV viewer (which deals with a little over a gigabyte of data) to Delphi and the Delphi program ran 2.5 times faster (i.e. 63 seconds vs 160 seconds). The Delphi program was at a disadvantage because the Delphi component I used applied an in-memory XML DOM approach vs the Ruby component's XML SAX approach (i.e. more memory overhead and validation for the Delphi program). The OpenGL graphics engine I wrote in Ruby was very fast in the beginning (2100 FPS) for a simple 3D scenes because most of the work was being done on the GPU but as the engine grew to include reflection, shadows, AI (all of which require more passes per frame on the Ruby side) then it really slowed down (i.e. 60 FPS and dropping). I'm still working on this project and hope to find better ways to use Ruby but found that Delphi didn't slow down as quickly in similar situations. I also starting writing a source code translator (which is why I had some advice for this thread) which relied heavily on Ruby gsubs. It's a lot faster than I expected (maybe %80 of the speed of an equivalent Delphi program) but that's likely because the gsubs are doing most of the work. Ruby really gets killed by looping through stuff. For my graphics engines that means multi-passes on 3d objects for the diffuse, reflection and shadow passes. For XML parsing that means going through all the records in the XML file and parsing the tags/containers. For the pirme number calculator that was simple looping. Ruby does great if you can let the behind the scenes optimized functions (or external C/C++ libraries) do most of the work. I"m not saying I used the best designs for either my Ruby or Delphi programs but for all the tricks and neat stuff I can do in Ruby there are limits to the time I'm willing to invest in Ruby (i.e to write external routines or redesign things to use Ruby smarter) to get the speed I need. I've seen the "Ruby / Python / Lua / etc is fast enough for me" discussion on various forums several times and it usually depends on the kind of thing you're trying to use the language for. In my case I'm using Ruby for some of the worst case senarios that you can throw at an interpretive / VM language. However, to Ruby's credit because of it's dynamic nature and true OOP I can do some things in Ruby for my game engine that I've always wished I could do in Delphi so I haven't given up hope on it yet. The speed is the only real issue. Did I answer you question? Michael p.s. Please forgive any poor grammer, etc... it's a long response and I don't want to re-read it to many times.