Ruby feasibility?

D

Dave Kubasiak

Good morning,

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?

Any input greatly appreciated!

Thanks in advance,
Dave
 
P

Pascal J. Bourguignon

Dave Kubasiak said:
Good morning,

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?
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...
 
R

Robert Klemme

2009/6/16 Pascal J. Bourguignon said:
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. =A0There are libraries to
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.
I'd bet a Ruby solution would be better (easier to write, debug and
maintain). =A0The 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.

Kind regards

robert

--=20
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/
 
B

Bosko Ivanisevic

2009/6/16 Pascal J. Bourguignon <[email protected]>:





Good idea!  Another alternative would be SNMP if integration into some
existing monitoring framework is required.



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.

Kind regards

robert

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.

Best regards,
Bosko
 
J

James Herdman

[Note: parts of this message were removed to make it a legal post.]

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.

James
 
J

James Britt

Robert said:
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.

Or use JRuby + Monkeybars and Swing. Best of both worlds.

Plus, if SNMP is needed, the better Java libraries can be used in place
of the the Ruby SNMP libs.



--
James Britt

www.jamesbritt.com - Playing with Better Toys
www.ruby-doc.org - Ruby Help & Documentation
www.rubystuff.com - The Ruby Store for Ruby Stuff
www.neurogami.com - Smart application development
 
J

Jonathan Rochkind

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.
 
E

Eleanor McHugh

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.

By loading GDI+ with Ruby/DL lol
Otherwise there's TK which ships with Ruby.


Ellie

Eleanor McHugh
Games With Brains
http://slides.games-with-brains.net
 
E

Eddie Corns

Dave Kubasiak said:
Good morning,
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.

Eddie
 
J

James Herdman

[Note: parts of this message were removed to make it a legal post.]

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.

James
 
T

Tony Arcieri

[Note: parts of this message were removed to make it a legal post.]

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:

http://www.asterisk.org/

If you use Asterisk to manage the dialing/data collection, there are a
number of excellent Ruby packages for interfacing with Asterisk:

http://adhearsion.com/
http://www.snapvine.com/code/ragi/
http://rubyforge.org/projects/rami/

Would Ruby be appropriate for this task


I think if you massaged your requirements a little (as noted above) Ruby
would make this task extremely simple in comparison to other environments.
 
O

Omnifroodle

Good morning,

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?

Any input greatly appreciated!

Thanks in advance,
  Dave

wxRuby and RubyScript2exe:

1) they work great in windows

2) 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.

Good Luck,

-matt
 
D

Dave Kubasiak

Thanks for all the replies/info! I'll take all this to The Powers That
Be and we'll see where I end up! :)

Thanks again!

Dave
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,015
Latest member
AmbrosePal

Latest Threads

Top