Phlip wrote: > Nathan Koren wrote: > > > I'm trying to figure out if Ruby is the right language for a project > > that I'm working on, and I'd appreciate any advice that anyone can > > give me. First, some background about myself and this project: > > > > * Depending on who you talk to, I either am or am not a "real" > > programmer. I have no formal training, and although I have extensive > > experience in scripting languages like Bash, application-specialized > > LISPs, Matlab, and especially PHP, I've never programmed in a "real" > > relatively low-level language. Nor am I particularly eager to. > > The distance between low and high level in languages gets greater all the > time - from microcode and writable instruction sets to app-specific macro > languages. > > Ruby can be used as a high-level macro language. For example, this code > draws a T: > > tubes.longer(5).tube.tube.shorter. > push.right.tube.pop. > left.tube > > Each command is actually a method (on 'tubes') that creates an object. Later > code will traverse the array of objects, executing each one. This makes Ruby > the scripting language for a Ruby project, via the 'eval' method. It takes a > string of Ruby code and executes it. > > http://flea.sourceforge.net/reference.html > > Put another way, one could write a sufficiently clever Ruby object model, > and users would drive it with matlab-style code. > > > * I am currently developing my project with Matlab, but it looks like > > Matlab's GUI capabilities (among other things) may be insufficient. > > Thus I am looking for another language to port my program to, or at > > least use to build a graphical front-end for my Matlab programs. > > This is how to use TkCanvas, the best canvas I have found so far. Each > painted element is itself an object, so you can manipulate its properties on > the fly. http://www.rubygarden.org/ruby?SvgCanvas > There are also probably charting tools for Ruby. There may also be a Matlab > interface. > > > * Whatever language I use should be cross-platform, although initially > > I am developing for Windows only. When thinking "cross-platform," > > Java is the first thing that comes to mind. But Java is a pain in the > > ass, and I'd rather not do it - plus, I've never used a Java > > application that has struck me as anything other than clunky. > > Portability is for canoes. There are three ways to be portable: > > 1. screw it. Satisfy customers on one platform first, quickly > 2. predict portability, pick a portable platform, then apply 1. > 3. test on multiple platforms after writing each line. > > > When searching around for languages, I ran across Python, which seemed > > like it would do everything I need, in combination with the wx widget > > library. Then I noticed some people promulgating this "Ruby" > > language. I'd never heard of it, but I was intrigued. Particularly > > because they all seemed to have this particular glassy-eyed zeal that > > I usually associate with Amiga or BeOS users. Now, I've been an Amiga > > and BeOS user - back in their heyday - and I know that their zeal is > > ABSOLUTELY 100% JUSTIFIED. Those systems were simply a JOY to use, > > which is a selling point that seems to elude most computer people, but > > is important to me. If I can experience some measure of joy while > > learning a new language and porting my project to it, then that is a > > very big selling point indeed. > > Uh, yeah. Guilty. Python sucks. > > > However, if Ruby doesn't actually do what I need, then I'll have to > > find another language to work with. Here are the concerns I have: > > > > * This is going to be commercial software, and I do NOT intend to give > > away the source code. Is their a way that Ruby programs can be > > securely compiled so that the source code is inaccessible? > > r2c? A ruby compiler? I don't know the answers to the remaining questions. > > -- > Phlip > http://industrialxp.org/community/bin/view/Main/TestFirstUserInterfaces > >