Ruby on Rails

Posts   
 
    
mattsmith321 avatar
Posts: 146
Joined: 04-Oct-2004
# Posted on: 18-Dec-2005 06:01:54   

Not sure if you guys follow much outside of .Net but there has been a lot of ooh'ing and aah'ing over Ruby on Rails (http://www.rubyonrails.org/) ever since 37 Signals released Basecamp/Backpack/TaDaLists/etc. months and months ago. The framework consists of: - Ruby: "a pure object-oriented programming language with a super clean syntax that makes programming elegant and fun." - Rails: "a full-stack framework for developing database-backed web applications according to the Model-View-Control pattern."

A key part of Rails is Active Record (http://wiki.rubyonrails.com/rails/pages/ActiveRecord) which "connects business objects and database tables to create a persistable domain model where logic and data is presented in one wrapping."

If you watch some of the Screencasts (http://www.rubyonrails.org/screencasts), you have to admit that it is pretty impressive (And for the record, I realize that you can't create a fully functional production ready application in 5 minutes, but it does get you pretty far down the path pretty quickly). One of the really neat features is the ability to automagically adjust to database changes. Granted, that functionality probably doesn't do much for performance, but still pretty neat not having to recompile.

Obviously, to a certain extent, Active Record and LLBL Gen Pro have a lot in common. But what I want to know is how come we don't have the Rails part of the equation? I know that Frans started a competition early this year to entice people to put together some UI templates but I never saw anything come out of that. I realize that everyone has different UI needs and expectations, but it would seem to me that we should have some tool to help us out. I know there are code generation tools out there like CodeSmith and CodeCharge (yes, they are quite different) and you can do RAD with Visual Studio and Web Developer, but how come we don't have something that works nicely with the ORM path that we have chosen to go down? I think Paul Wilson went down this route at some point in time but I'm not sure if he ever came up with anything.

Sorry if this comes off negative. I'm a big fan of LLBL and I think it has done wonders for backend productivity, but now I want the LLBL equivalent for my front-end. Any suggestions? Any takers? Any comments?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 18-Dec-2005 12:22:38   

Generating a tier using code generation requires meta-data. That's the core part of every code generator: the meta-data. It has to be rich enough to create what you need.

For a DAL, meta-data is generally your relational model + some tweaks.

The tier on top of that (bl), you have the DAL + some additions how you want to have the BL behave.

The tier on top of that (gui), you have the BL + some additions how you want to have the gui to behave /look etc.

So, the meta-data gets bigger and bigger, if you want to be able to produce what you NEED at the GUI level. To be able to generate whatever you want, at the gui level, you need a heck of a lot of meta-data. So most of these apps use 'middle of the road' tactics: use a general set of meta-data and let the user produce code which falls in a set of categories.

This often isn't flexible enough, but in other occasions it can be good enough. See it as those CMS-es which have a fixed layout: menu on top, menu at the side and content in the middle. You can create great websites with that, but if you want something else, you're in for a lot of fun wink .

With LLBLGen Pro, you can generate whatever you want, all meta-data is available to you through .lgp templates. It's however harder than you think to come up with 2 tiers of code which are exactly what you want, unless you offer a set of, say, 3 different 'applications' which are generated using those templates and which are then customizable with stylesheets and gfx.

We deliberately didn't go the 'generate all tiers' way like some competitors have. First of all, as we know from our past (we were a webdesign firm before we started developing software full time (CMS, o/r mapper)), generating GUI's is impossible in general, they're design driven, not code driven. So, you'll never get it right. Add to that that till today there's not even a 100% functional wysiwyg HTML editor out there, left a lone a designer which can produce template code.

Second of all: companies should focus on what they do best. This is crucial for a succesful product. Although we know how to create websites, we don't think it should be the focus of LLBLGen Pro. LLBLGen Pro is for a solid, nothing-else-to-wish-for data access tier, which gives you all the functionality you want/need to access your data in your applications. We believe that focussing all our energy on creating the best O/R mapper-code generator out there will give a better O/R mapper-code generator than in the situation where we spend some of our time/energy on other tiers in an application stack: it will not result in the amount of time/energy on the O/R mapper core plus it won't result in us spending all our energy on the other tiers.

And third: LLBLGen Pro is used in so many different applications today, that it's simply impossible to produce a gui tier for all those applications, simply because they're so different. simple_smile

I know, it would be cool if there were some templates which produce a set of simple edit screens for the entities selected. Those templates will be there, though the project is only worked on when time's there, it doesn't have a high priority. We hoped with the contest to get those templates earlier, but there was just 1 entry and not gui related. Which was a little bit dissapointing considering our large installed base, but in a way understandable.

Frans Bouma | Lead developer LLBLGen Pro
arschr
User
Posts: 893
Joined: 14-Dec-2003
# Posted on: 18-Dec-2005 16:35:03   

Note: This should probably be moved to the code generation forum.

With LLBLGen Pro, you can generate whatever you want, all meta-data is available to you through .lgp templates.

Could you expand on this, and the format and contents of the project file?

It contains structural information about the database and additional information added through the llblgen gui that defines the meta data the templates use. The gui also lets you attach custom key/value bags to some objects.

What are the ways for the developer to expand the information held (or extend the contents ) for use in holding meta data to be used in generating other layers or for other purposes?

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39614
Joined: 17-Aug-2003
# Posted on: 19-Dec-2005 11:05:07   

arschr wrote:

Note: This should probably be moved to the code generation forum.

With LLBLGen Pro, you can generate whatever you want, all meta-data is available to you through .lgp templates.

Could you expand on this, and the format and contents of the project file?

The format of the project file is a serialized object graph and the classes in that graph are all described in the reference manual in the SDK simple_smile . In an .lpt template you'll get a Generator object, which has a reference to the project object. The Project object is the root of the complete graph, with that you can reach everything, from table field type to typed list to stored proc to relation.

It contains structural information about the database and additional information added through the llblgen gui that defines the meta data the templates use. The gui also lets you attach custom key/value bags to some objects.

What are the ways for the developer to expand the information held (or extend the contents ) for use in holding meta data to be used in generating other layers or for other purposes?

It's about application design. So if you want to have manager classes, like 'usermanager', 'ordermanager', you can perhaps generate those directly from the meta-data in the project file. To have better results, it's often required to have guiding data for the tiers you want to generate. For the DAL you don't need that much guiding data. Guiding data is a name I made up and is for the data which is used to control specific code generation actions, like 'for entity X, I want not this but that'. However you can get a lot of things retrieved from the meta-data already in the project. For example, if an entity has an 1:n relation, you can generate master-detail editing screens. If you want to edit an entity which has a m:1 relation, you need to display the parent entity so the user has more knowledge and context. Etc.

It also depends on how you design your system. most often, you have a set of functional requirements: the system has to do this, this and that. How the data is stored is often way different than how it is presented / edited on screen: several entities edited on one screen, or just one entity edited on a screen... So if you generate up till the BL, the gui is often handwork, or at least should be, as screens have to be ergonomic, easy to use and have completely different goals than a BL component.

You could think of formulating the rules of screens in XML. You then create a task performer, which parses that XML and creates objects in a graph and places that in the taskcache (a cache available for all taskperformers). In your gui templates, you have the meta-data of the project, and thus know how the BL looks like, and with the rules in the taskcache you can generate code for gui's. You can also parse the xml from an .lpt template, that's up to you. With that, you add new meta-data to the generator and combine that metadata with the already available meta-data and generate code using both.

Frans Bouma | Lead developer LLBLGen Pro
pilotboba
User
Posts: 434
Joined: 05-Aug-2005
# Posted on: 19-Dec-2005 18:58:53   

mattsmith321 wrote:

A key part of Rails is Active Record (http://wiki.rubyonrails.com/rails/pages/ActiveRecord) which "connects business objects and database tables to create a persistable domain model where logic and data is presented in one wrapping."

But what I want to know is how come we don't have the Rails part of the equation?

Have you taken a look at the Castle Project. MonoRail is modeled after Ruby on Rails but done for .Net. It actually used to be named Castle On Rails but they changed it due to a request from Ruby on Rails developer.

BOb

swallace
User
Posts: 648
Joined: 18-Aug-2003
# Posted on: 20-Dec-2005 03:55:54   

Faster! Better! Easier! And it makes cheese sandwiches!

Geez I've seen a lot of these.

I watched the Ruby on Rails screencasts, and, after I got over the guy's very annoying voice, I was impressed by the hack job they were able to produce in just five minutes.

(watch out, it gets a little blue...)

But then, I could masturbate in five minutes, and I would enjoy it, but that doesn't it make a quality product if you know what I mean...

The best tool is the one you know and love, and that works with you in your own style and manner. And regarding the above, replace "tool" with "woman."

Call me a ludite, but as long as the tools I'm using continue to advance I'm going to stick with them. They stop growing and then I look around. I'm productive because I've invested time, energy, knowledge, and yes, love into the tools; not because my tools give me quickie methods to get things done, but because I give as much as I take.

Again, regarding the above, replace "tool" with "woman."

Now, if you'll excuse me I have to go smoke a cigarette...

mattsmith321 avatar
Posts: 146
Joined: 04-Oct-2004
# Posted on: 20-Dec-2005 05:10:28   

pilotboba wrote:

Have you taken a look at the Castle Project. MonoRail is modeled after Ruby on Rails but done for .Net. It actually used to be named Castle On Rails but they changed it due to a request from Ruby on Rails developer.

Looks interesting. I had not seen any of the Castle/MonoRail info before. I looked at it a little bit but there still seemed to be something lacking when compared to RoR. At least their quick video didn't come off quite as impressive or wowing.

mattsmith321 avatar
Posts: 146
Joined: 04-Oct-2004
# Posted on: 20-Dec-2005 05:42:12   

swallace wrote:

... I was impressed by the hack job they were able to produce in just five minutes. ... but that doesn't it make a quality product if you know what I mean...

I acknowledged that very same fact in my initial comment. However, I spend a lot of time over in the PHP world (that's where the design and CSS folks tend to live) and there is a significant amount of buzz about RoR. Part of that buzz has to do with 37 Signals (http://www.37signals.com/) and their four hugely successful applications they've released in the past year or so. That's kind of putting your money where your mouth is.

This would be another case of just another new language or framework if it weren't in fact for the buzz from people that are firmly entrenched in other languages such as PHP and Java. These tend to be very skeptical people and for them to sit up and take notice tends to mean on lot. What they're saying: Ruby, as a language is concise and very easy to work with; Rails, as a framework implements the MVC pattern beatifully; out of the box RoR outputs exactly what is needed with UI touches like validation and it supports complete flexibility to allow me to do things the way I want/need to; and it comes with such aesthetic urls.

The whole point of LLBL is to alleviate the complexities of the data access layer. I think they've taken it a step further and applied a similar principle to the whole web application (yes, granted their ActiveRecord probably isn't nearly as complex and powerful as LLBL, but you know what I mean).

I think the only reason I bring RoR up is because there are times when I would love to have the basic underpinnings of a complete web app autogenerated by just pointing an application at my database. But, I'd want it based on business objects/entities rather than datasets and datatables and I'd want the generated code to be good code and not the crap that I've seen rendered by some. Having the basics in place based on the relationships in the database is a good starting point and allows me to fine-tune/hand-craft from there. That's what I miss.

Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 20-Dec-2005 17:38:32   

swallace wrote:

Faster! Better! Easier! And it makes cheese sandwiches!

Geez I've seen a lot of these.

I watched the Ruby on Rails screencasts, and, after I got over the guy's very annoying voice, I was impressed by the hack job they were able to produce in just five minutes.

(watch out, it gets a little blue...)

But then, I could masturbate in five minutes, and I would enjoy it, but that doesn't it make a quality product if you know what I mean...

The best tool is the one you know and love, and that works with you in your own style and manner. And regarding the above, replace "tool" with "woman."

Call me a ludite, but as long as the tools I'm using continue to advance I'm going to stick with them. They stop growing and then I look around. I'm productive because I've invested time, energy, knowledge, and yes, love into the tools; not because my tools give me quickie methods to get things done, but because I give as much as I take.

Again, regarding the above, replace "tool" with "woman."

Now, if you'll excuse me I have to go smoke a cigarette...

Obviously this quote is from someone who hasn't used the Rails framework. Anyone that actually goes through ONLamps tutorial ends up loving it.

I just finished my companies website on it. I have a nice admin section where my boss can upload PDF files for customer viewing on our main page, submit news/events, mass email people that subscribed to our newsletter, etc. This took about a week in rails. This was also converting the site from php. This site would not have been written in such a short time (full test code written as well) without the rails framework. Anyone that calls it a "hack job" has no idea what they are talking about.

There is a lot more than active record too. The framework comes with migrations (http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations), built in testing (http://manuals.rubyonrails.com/read/book/5), automated generators (http://wiki.rubyonrails.com/rails/pages/AvailableGenerators), custom routing (http://manuals.rubyonrails.com/read/chapter/65), an excellent IDE (http://www.radrails.org), and a lot more.

The fact that so many other frameworks are trying to copy Ruby on Rails must tell you something. smile

BTW - I still use LLBLGen for our core product here at work. Personally, I would like to see LLBLGen copy rail's migration idea (http://wiki.rubyonrails.com/rails/pages/UnderstandingMigrations).

alexdresko
User
Posts: 336
Joined: 08-Jun-2004
# Posted on: 20-Dec-2005 18:10:27   

Personally, I'm a DotNetNuke junkie. I get many of the same benefits that exist in RoR (Including built in Ajax-esque support) and I even get to use LLBLGen in my custom modules. simple_smile

jmcervera
User
Posts: 27
Joined: 03-Jun-2004
# Posted on: 20-Dec-2005 23:25:26   

There is a very interesting blog entry from Robert Scobbled where people is talking about why they left .NET Web Develoment for Rails.

http://scobleizer.wordpress.com/2005/12/19/i-made-phil-ripperger-stand-in-line-for-an-xbox-360/

And LLBLGen is mentioned when somebody talks about Object Relational Mapping.

Very interesting, Ruby on Rails is something that it is worth to see. No doubt!

pilotboba
User
Posts: 434
Joined: 05-Aug-2005
# Posted on: 21-Dec-2005 00:07:24   

mattsmith321 wrote:

pilotboba wrote:

Have you taken a look at the Castle Project. MonoRail is modeled after Ruby on Rails but done for .Net. It actually used to be named Castle On Rails but they changed it due to a request from Ruby on Rails developer.

Looks interesting. I had not seen any of the Castle/MonoRail info before. I looked at it a little bit but there still seemed to be something lacking when compared to RoR. At least their quick video didn't come off quite as impressive or wowing.

Did you read the two articles that the primary developer wrote? They explain it very well.

BOb

mattsmith321 avatar
Posts: 146
Joined: 04-Oct-2004
# Posted on: 21-Dec-2005 07:36:34   

jmcervera wrote:

There is a very interesting blog entry from Robert Scobbled where people is talking about why they left .NET Web Develoment for Rails.

http://scobleizer.wordpress.com/2005/12/19/i-made-phil-ripperger-stand-in-line-for-an-xbox-360/

And LLBLGen is mentioned when somebody talks about Object Relational Mapping.

Very interesting, Ruby on Rails is something that it is worth to see. No doubt!

That was a very good read. I knew it wasn't just me that felt like RoR had validity and that something like it appears missing on our side of the fence.

Valdar
User
Posts: 24
Joined: 07-Oct-2005
# Posted on: 24-Dec-2005 19:35:32   

My post is #74 in the that weblog, I just made it today so go ahead and check it out and let me know what you think. I've tried rails, but I don't think it's going to help me out much, but I could be wrong.

The power of rails doesn't lie in it's "automatic UI generation", it lives in Activerecord, which is basically an ORM mapper. So you get your ORM mapper and a very nice setup for MVC, but you sacrifice all your compile time checking and, for me, ability to maintain the code effectively when working with multiple developers.

Anyway, would love to hear some responses to this.

Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 27-Dec-2005 18:38:15   

Valdar wrote:

My post is #74 in the that weblog, I just made it today so go ahead and check it out and let me know what you think. I've tried rails, but I don't think it's going to help me out much, but I could be wrong.

The power of rails doesn't lie in it's "automatic UI generation", it lives in Activerecord, which is basically an ORM mapper. So you get your ORM mapper and a very nice setup for MVC, but you sacrifice all your compile time checking and, for me, ability to maintain the code effectively when working with multiple developers.

Anyway, would love to hear some responses to this.

I read your post and will leave my responses by number to match yours.

  1. You make a valid point about the compiler checks. Obviously ruby isn't compiled, so you don't get this. However, 9 times out of 10 errors in my application aren't compile time errors, they are run time/logic errors. In your short time on rails, did you even bother to look at the built in testing? When you generate a model or a controller, it generates all your test classes for you. Did you look at fixtures? Set up a test database for your "sample app"?

  2. I use LLBLGen as well, but you have to re-generate for every little change, then recompile. Other developers have to know of the change as well. I am a lead developer, and changing database schemas, and re-generating is kind of a pain right now (our devs are located in Peru). Ruby on rails puts validation in the model, much like LLBLGen validation.

  3. I just recently did my companies website in rails, along with a fairly complex administration section. I can tell you right now, changing the database and refactoring is extremely easy and painless. The website is now in production, and the code is still easy to maintain, and extremely easy to add features.

  4. Did you try RadRails IDE? It doesn't pick up intellisense for your models (rails doesn't even do this until runtime with reflection). My application doesn't quite have 40 tables, but I didn't find this to be a problem while developing. RadRails has a data perspective simple_smile

  5. This goes back to good unit testing. Each model in my application is filled with different types of data, and saved, modified, and deleted from the test database. This is easily done with fixtures. You should also check out script\console, where you can use the command line to "type out" your method and see the results.

  6. Rails has action webservices. I wrote a .NET winforms application to grab news articles from our main page. Took roughly 10 minutes.

  7. Can you point out where in the rails framework business logic is duplicated? It uses MVC to avoid that in the first place. If business logic is being duplicated in rails, it's sloppy programming not the frameworks fault. I would also like to point out all the logic that is put into an ASP.NET UI page. It seems to me UI's in .NET are always at fault for double validation. When you put validation in the model in rails, it doesn't need to be added to the UI, for example: a required field in the database.

  8. You are 100% correct about the salary. .NET jobs are easy to find right now, and they pay fairly well. To rails credit though, it is extremely new simple_smile

Lastly, you put it was more difficult to go more "in-depth" with rails. I found this to be opposite. For example: check out migrations. It seems like every day I am on rails I find new tools/ideas to fool around with.

Like you, I am using LLBLGen. I have been for quite some time now. It is a great tool and has saved me many hours of work (our offshore developers love it as well). I find my development in ruby fun. I purchased a "Programming Ruby" book when I purchased the Agile Web Development with Rails book. The language has some pretty neat things simple_smile I have heard a lot of bad things about Visual Studio 2005. I now shutter when I have to open VS 2003 to do any work. The subversion addon for it is a pile of sh*t too.

Here are some links:

http://wiki.rubyonrails.com/rails/pages/RealWorldUsage http://wiki.rubyonrails.com/rails/pages/AvailableGenerators http://penso.info/rails/auth_generator/ http://wiki.rubyonrails.com/rails/pages/HowTosPlugins http://wiki.rubyonrails.com/rails/pages/RailsWebHosts http://wiki.rubyonrails.com/rails/pages/HowtosTesting http://glu.ttono.us/articles/2005/10/27/the-joy-of-migrations

Valdar
User
Posts: 24
Joined: 07-Oct-2005
# Posted on: 28-Dec-2005 04:03:08   

Thank you for the response, I was hoping someone would respond and give me some areas to explore of RoR that I haven't yet, but should.

Compiler Checks: For me, using the compiler eliminates a lot of the errors I run into with scripting languages. I remember when I could compile for the first time when moving from ASP, it was a godsend. No more change code, refresh page see typo, change code, refresh page, mispelled function name, etc.

Unit Testing: I skipped over most of the unit testing section figuring it was very similar to how I currently do my unit tests. It would be nice to have unit tests autogenerated, does anyone know how to do this for .Net? But I'd still need to setup classes to put my database in a known state, and i'd be duplicating all my unit testing logic that I would have to do for NUnit anyway.

RadRails: I did try the radrails IDE, but the intellisense didn't help me much as I was expecting a lot since I'm used to VS 2003. I distrinctly remember thinking that I didn't use a single thing the intellisense popped up for me except for find().

Business Logic Duplication: I didn't mean that ruby duplicates logic, one thing I liked was how re-usable everything is across web apps. I meant that all of my .Net applications use the same object classes. I have one dll that every application (web, winforms, services) references that encapsulates all the business logic and security so I do not re-create anything. Because I cannot use these .Net classes creating the necessary logic in ruby would introduce bugs and has a large potential to produce inconsistent code. Also, because all of my application use the same objects bugs are exposed faster and a bug fix for one app means it's fixed for ALL apps.

Validation: This is one nice thing about ruby, that it integrates the validation with the UI. But we simply have our business layer throw an error and it is displayed by our UI in red so the user knows what they have done wrong. It doesn't require using any validation controls, works very similar to how ruby does with their error messages in the web page.

Ruby is great for web development if that's the ONLY thing you're planning for. But for my business I need integration with third party apps, services, front end web apps, back end web apps, and back end winforms apps.

I was a little dissappointed because I had wasted so much of time learning ruby and playing with it hoping it would increase my development time 10x, or even 5x, but I didn't really see that increase in productivity.

If I could use ruby to program services and interact with COM and .Net components then I could put all my logic into it, but then I lose the Rails part, which gives me all the convenience.

Migrations: I've always kept a record of db changes from version to version. We have our base sql file and then we other sql files that says version .01 to version .02 so we know what changes have been made and can rollback to any previous version by running all of the sql scripts up to that version.

Subversion: AnhkSVN does suck. We use TortoiseSVN because Anhk constantly crashes.

RoR is great for web apps and if we ever have a project where we just need a web application I will use it, but in my situation, sharing business logic across multiple types of applications, I can't see a need for developing in Ruby for our web applications.

I will definitley keep the book and when I have some free time to code I'll continue to play around with RoR, but for me, it's not somehting that I would bet my busines on, just yet.

Skeeterbug
User
Posts: 165
Joined: 21-May-2004
# Posted on: 29-Dec-2005 23:20:18   

But I'd still need to setup classes to put my database in a known state, and i'd be duplicating all my unit testing logic that I would have to do for NUnit anyway.

Take a look at fixtures, they put your test database in a known state simple_smile

You are right about RadRails, the intellisense is semi-useful. However to it's credit, it's only on verion 0.5.2. I have http://api.rubyonrails.com/ bookmarked in my browser for all my needs smile

I can see in your sitution it is not viable to use. For our main site it is working perfect. There is no way I could have completed something as quick in anything else. Not to mention I was still learning the framework as I went along.

They have a new deployment plugin called SwitchTower, where you can just run rake deploy in your applications directory, and it will copy your app over ssh to a production machine, and restart the lighthttpd processes, etc.

mattsmith321 avatar
Posts: 146
Joined: 04-Oct-2004
# Posted on: 30-Dec-2005 03:04:34   

Valdar wrote:

RoR is great for web apps and if we ever have a project where we just need a web application I will use it, but in my situation, sharing business logic across multiple types of applications, I can't see a need for developing in Ruby for our web applications.

I don't think that anyone is implying that RoR is great for anything but web apps at this point. It is definitely not an enterprise level solution framework. If you are sharing your business logic across multiple types of applications the way you are, then RoR is not for you. RoR probably isn't the best solution for every web site either if the site has a high level of back-end complexity (for which you need an enterprise level offering).

However most people don't need that for the typical site. Most just need CRUD functionality with basic security and roles in a UI that looks good, validates and is easy to maintain and extend. RoR does this and it implements it with several very good patterns at its core: MVC, Domain and ActiveRecord. And it does all this in a manner that even those purists who deal in aesthetics at levels (through the site look and feel, to the generated HTML, to the underlying architecture, to the syntax of the code) are quite happy with the end results.

The fact that LLBL is so similar to ActiveRecord (albeit much more powerful) is what prompted me to post in the first place. I understand Frans' reasonings for limiting the scope of the problem that LLBL attempts to solve. But while LLBL cut a third off my development time (by solving the DAL issue), I'd like to have another third cutout by having something help me with my presentation and BLL layer as well.

jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 30-Dec-2005 21:01:51   

So, really what I'm hearing is that the draw to RoR is the "Rails" part of the equation: the framework was created specifically to make creating a certain class of web applications easy?

If there's no explicit benefit to Ruby itself, then it just seems like there's finally a good example of an "all-in-one", monolithic application framework that succeeds, at least in one specific domain of application development.

I for one wish there was more "guts" to LLBLGen Pro such that it would solve more of the developers' problems at all levels of the application - and have lobbied for such - but there is a high risk to doing so for a commercial company, IMO. None of us want to see LLBLGen Pro lose it's highly productive nature because it tried to solve or do too much.

However, IMHO, I think the whole excitement around Ruby on Rails, AJAX, et al. is ill-founded. While, yes, these frameworks tend to solve problems that have been around for 10+ years now, they're simply band-aids on the larger problem of the web development in general:

It's broken.

We do it because the market has demanded the use of the Internet first as a marketing and informational source, and subsequently as a full-fledged application platform but we've been ill-equipped to produce applications to match. HTML? CSS? Javascript? Really? Developing stateful, well-performing, comfortable, and not-even-very-productive applications using state-of-the-art technology requires layers upon layers of abstraction and indirection simply to create a flat, relatively static experience for the user is, IMO, horrible. Not that the solutions created aren't useful or that their production hasn't been necessary - it's just that...come on!

The whole Web 2.0 technologies have proven useful insomuch as they're the next evolutionary step in web development. But, they're not the best solution for creating portable, lightweight applications because the platform upon which they're evolved was itself never intended for the purpose.

If we're going to have layers upon layers of abstraction, let's at least get some bang for the buck. Let's at least start on a platform that was built for application development, and content expression. Our eyes should be focused squarely ahead on nascent technologies such as Avalon, XAML, and (if there are any) other platform-independent equivalents as they're built from the ground up for content delivery and interactive applications. (Although see this for interesting cross-platform info on Avalon)

Avalon-based smart client applications that have removed all of the previously associated negative aspects vs. traditional web apps allow us to focus solely on content and transport, and which limitations the transport may place upon the content. Big, thick, traditional applications? Thin, light-weight, and zero-deployment "streamed" applications? Both of them can be developed using the same rich-experience, strongly-typed, high-performance, platform: WPF, XAML, and WCF.

Use the current solutions available to us for current problems, but don't think that they're a panacea. The real solution lies just around the corner...

Sorry to hijack the thread simple_smile

Jeff...

mattsmith321 avatar
Posts: 146
Joined: 04-Oct-2004
# Posted on: 31-Dec-2005 06:22:34   

jeffreygg wrote:

Our eyes should be focused squarely ahead on nascent technologies such as Avalon, XAML, and (if there are any) other platform-independent equivalents as they're built from the ground up for content delivery and interactive applications.

Wouldn't Mozilla's XML User Interface Language (XUL) qualify just as much as Avalon and XAML as being platform-independent? I can't speak intelligently to either so I'm kind of asking for your take if it's comparing apples to apples.

jeffreygg
User
Posts: 805
Joined: 26-Oct-2003
# Posted on: 06-Jan-2006 07:56:04   

mattsmith321 wrote:

Wouldn't Mozilla's XML User Interface Language (XUL) qualify just as much as Avalon and XAML as being platform-independent? I can't speak intelligently to either so I'm kind of asking for your take if it's comparing apples to apples.

As I was looking around for info on XUL I ran into this article. It's a quick synopsis of the new XML GUI wave and touches on XUL. As far as I can tell, XUL is the same as XAML (in spirit) but more of a subset. The bonus there, of course, will be that it will probably have stronger cross-platform support.

Jeff...