RoR, Judge Judy, and little old ladies

Andrei Alexandrescu (See Website For Email) SeeWebsiteForEmail at erdani.org
Sun Feb 18 10:38:07 PST 2007


Bruno Medeiros wrote:
> Sean Kelly wrote:
>> Bruno Medeiros wrote:
>>> Sean Kelly wrote:
>>>> Bruno Medeiros wrote:
>>>>> Robby wrote:
>>>>>> Bruno Medeiros wrote:
>>>>>>> In both cases, Ruby code is generated from
>>>>>>> code in these two DSLs, but that code generation is performed not 
>>>>>>> by the Ruby compiler during compile-time, but by an external tool 
>>>>>>> (similar to parser generators for example).
>>>>>> No, it's done with Ruby during run time, using Ruby's dynamic and 
>>>>>> reflective abilities.
>>>>>
>>>>> Hum, I had understood scaffolding to be the process where it 
>>>>> generated Ruby code by looking at the DB schema. So if I change the 
>>>>> DB schema, I don't have to run scaffolding again? I only need to 
>>>>> restart the web app, since it can reflectively and dynamically 
>>>>> create its own ORM logic?
>>>>
>>>> Unless you actually want to do something with that data, I assume.
>>>
>>> What do you mean? I am of course talking in the case where the web 
>>> app works with the data, otherwise the point of needing or not 
>>> needing to restart the app was moot.
>>
>> So say you modify your schema and the application self-adapts.  Unless 
>> it is designed to merely pass all data through to the user (which may 
>> be common in web apps), the app will require some specialized code to 
>> operate on the data to achieve the desired result.  This obviously 
>> cannot be generated automatically because only the programmer knows 
>> what it should be.
>>
>>
>> Sean
> 
> I suspect we're not understanding each other well. Of course business 
> logic is something that only the programmer knows, and the app cannot 
> generate that, but I'm not talking about actual business logic,  just 
> simple domain object creating, deletion, editing (and respective ORM 
> logic). Consider this pic from the article:
> http://www.onlamp.com/onlamp/2006/12/14/graphics/figure011.gif
> where the web app allows to create a domain object (recipe). That 
> functionality is automatically generated from the SQL tables, it is 
> achieved without any code written (except for SQL table creation).
> My question was whether this functionality was generated at "pre-run" 
> time (the scaffolding external tool), or at runtime (by the Ruby webapp 
> and it's dynamic capabilities).

Yah, I have the same question. My current understanding is that 
generation is done statically (e.g. you must run the xyz program after 
you update your database structure...), which makes D's capability of 
doing that during compilation very attractive.

Andrei



More information about the Digitalmars-d mailing list