I know just about zero about Ruby but the company I work for is doing
some Ruby development and I need to eventually learn the language.
There is a program re-write project I need to complete and I was
wondering if Ruby would be appropriate for it.
The app I need to write is a communication app. It reads a list of
devices from a database and uses a bank of modems/phone lines to call
out and collect data from them at different times. There are hundreds
of devices so the app is always running, though it’s idle periodically
throughout the day. It needs to have a GUI so someone can see at a
glance what it’s doing, and it needs to be multi-threaded. It would
most likely be running on Windows since that’s the only GUI OS we
currently have running (we have Solaris and Linux boxes but they’re only
console, not GUI).
Would Ruby be appropriate for this task? I’ve read that it can be
sluggish and that GUI programming is somewhat lacking. But I also don’t
know how old those comments were or how Ruby has progesses since they
were made. Or would something like Java, C#, etc, be better suited?
of devices so the app is always running, though it’s idle periodically
throughout the day. It needs to have a GUI so someone can see at a
glance what it’s doing, and it needs to be multi-threaded. It would
most likely be running on Windows since that’s the only GUI OS we
currently have running (we have Solaris and Linux boxes but they’re only
console, not GUI).
Would Ruby be appropriate for this task?
Definitely.
I’ve read that it can be
sluggish and that GUI programming is somewhat lacking. But I also don’t
know how old those comments were or how Ruby has progesses since they
were made.
Well, I would rather provide the user interface as an embedded web
server, so this application can run in background and can be
monitorized from the LAN from any web browser. There are libraries to
allow you to write simple web servers in ruby very easily.
Or would something like Java, C#, etc, be better suited?
I’d bet a Ruby solution would be better (easier to write, debug and
maintain). The only improvement would be to use Common Lisp, but I
guess your company isn’t prepared to jump to Common Lisp right now.
In a few years…
devices from a database and uses a bank of modems/phone lines to call
Definitely.
allow you to write simple web servers in ruby very easily.
Good idea! Another alternative would be SNMP if integration into some
existing monitoring framework is required.
Or would something like Java, C#, etc, be better suited?
I’d bet a Ruby solution would be better (easier to write, debug and
maintain). The only improvement would be to use Common Lisp, but I
guess your company isn’t prepared to jump to Common Lisp right now.
In a few years…
I wouldn’t bet on that a solution in Ruby is better. A Java based
solution with a Swing UI would probably be as good.
Greetings.
Your requirement for Windows, alone, basically discounts Ruby. I use
Ruby on
a Windows PC at work and it’s the very opposite of fun. Another poster
recommended C#. I think he’s on the money.
There is a program re-write project I need to complete and I was
console, not GUI).
Well, I would rather provide the user interface as an embedded web
maintain). The only improvement would be to use Common Lisp, but I
–
remember.guy do |as, often| as.you_can - without endhttp://blog.rubybestpractices.com/
Although I prefer Ruby for lot of tasks over other programming
languages I would recommend you C#. Since you are already on MS
Windows platform using C# is definitely the best choice. Creating form
(s) for monitoring is very easy and development is quite fast. In
addition debugging C# applications in Visual Studio is much, much
better than you’ll find for Ruby.
…It needs to have a GUI so someone can see at a
glance what it’s doing, and it needs to be multi-threaded. It would
most likely be running on Windows since that’s the only GUI OS we
currently have running…
Would Ruby be appropriate for this task?
The threading issue is something to look into more. Ruby threading is a
bit… odd.
I’m also not sure how you’d create a Windows GUI in Ruby, that’s worth
looking into more too.
I know just about zero about Ruby but the company I work for is doing
some Ruby development and I need to eventually learn the language.
There is a program re-write project I need to complete and I was
wondering if Ruby would be appropriate for it.
If Ruby on windows is really a problem (I wouldn’t know) do the work on
a Unix
box and serve the results with a web server so you get remote access
too.
Serving web pages can range from incredibly trivial up to as
sophisticated as
you want to get.
I’ve found it to be a little awkward, and sometimes downright
frustrating.
An excellent example of this is Thor. AMAZING Ruby app. It kicks the
pants
off of Rake. Early versions had issues with traversing directory
structures
though (I’ve since sent in patches to fix this). Sometimes its the
authors
of the libraries forgetting that Windows exists, other times it’s
Windows
failure to include developer tools (e.g. a C compiler) by default. The
fact
that Ruby reports win32, mingw and a few other values for RUBY_PLATFORM
on
Windows is equally annoying.
But yes, it’s getting better.
The app I need to write is a communication app. It reads a list of
devices from a database and uses a bank of modems/phone lines to call
out and collect data from them at different times. There are hundreds
of devices so the app is always running, though it’s idle periodically
throughout the day. It needs to have a GUI so someone can see at a
glance what it’s doing, and it needs to be multi-threaded. It would
most likely be running on Windows since that’s the only GUI OS we
currently have running (we have Solaris and Linux boxes but they’re only
console, not GUI).
Well, a couple of things:
What about a web-based GUI? It’s quite easy to use frameworks like
Rails,
Sinatra, etc. to build web-based interfaces to your Ruby code.
Also, bank of modems/phone lines? That sounds like a rather antiquated
way
of going about what you’re doing. You might consider entering the age
of
VoIP:
of devices so the app is always running, though it’s idle periodically
Any input greatly appreciated!
Thanks in advance,
Dave
Posted viahttp://www.ruby-forum.com/.
wxRuby and RubyScript2exe:
they work great in windows
they don’t require a framework install (thanks to RubyScript2exe)
I’ve got decent experience in windows client development with .NET and
I switched completely to ruby when I found these two.
You might also consider having a worker app do the calling and update
the database, and a gui app that users can launch when they want to
see the status.
Still, it sounds like a web gui (and server side dialer app) still
beat the pants off a desktop app for this.