tag:blogger.com,1999:blog-9944221.post6644277086618568371..comments2023-11-03T06:15:55.087-05:00Comments on Meme Agora: Ruby Matters: Frameworks, DSLs, and Dietzler's RuleNeal Fordhttp://www.blogger.com/profile/12839796402858974817noreply@blogger.comBlogger8125tag:blogger.com,1999:blog-9944221.post-23885442012558653882007-11-21T23:42:00.000-05:002007-11-21T23:42:00.000-05:00Neal you hit the nail on the head with this post. ...Neal you hit the nail on the head with this post. Currently my pet side projects are centered around DSLs on top of Groovy. So far its looking promising.<BR/><BR/>Now on a more important note, when is your DSL book coming out?!?! Is it still in the works?Unknownhttps://www.blogger.com/profile/05121700882068977034noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-18535054896577458582007-11-20T10:19:00.000-05:002007-11-20T10:19:00.000-05:00In the example you just gave, you are correct: hav...In the example you just gave, you are correct: having RoR vs. Java talk to cron is going to be the same thing. However, here is a counter-example. Look at the Dust gem in Ruby. It allows you to automatically fail unit tests if you touch the database, and functional tests automatically fail if you mock anything out. Not impossible in Java, but so much work you'd never do it.Neal Fordhttps://www.blogger.com/profile/12839796402858974817noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-69930827481591668012007-11-20T09:37:00.000-05:002007-11-20T09:37:00.000-05:00Not only I know who you are I know where you live....Not only I know who you are I know where you live.<BR/><BR/>Having spent the last few months all warm and cuddly with the Groovy source code I don't believe that meta-programming in Java is that far off from what you can do in Ruby. Now training Java developers to think in a world where you can monkey patch new methods into String is another matter. :)<BR/><BR/>I guess what I was trying to get at is that when the framework/DSL breaksdown you end up taking the same action (extension) to fix both. For example, as far as I know in (maybe there is a plug-in now) core RoR trying to schedule an event to fire off at a given time is a job that you have to hit cron for. Just not sure how you'd meta-program your way out of that one. I just seems to me the problem is trying to account for what people don't think of as design-time is a problem in a framework or a DSL.<BR/><BR/>Am I just missing something?Chrishttps://www.blogger.com/profile/08066964701063538712noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-31009504865884856082007-11-19T14:33:00.000-05:002007-11-19T14:33:00.000-05:00How dare you disagree with me? Don't you know who ...How dare you disagree with me? Don't you know who I am? Oh, wait, you do...nevermind!<BR/><BR/>This is a good point, but the thing that keeps you out of the 80-10-10 space with Rails is exactly what's underneath. There are very few things you can't do with Ruby, and having that powerful language just one level of abstraction down is nice. You cannot do this with Java Frameworks without going to something complex like aspects, and that just solves one of the types of meta-programming you can do.<BR/><BR/>Mark my words: simple DSLs on top of super powerful languages is going to be the next paradigm shift (and it's already partially here with Rails).Neal Fordhttps://www.blogger.com/profile/12839796402858974817noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-10846771352892458972007-11-19T13:55:00.000-05:002007-11-19T13:55:00.000-05:00Far be it for me to disagree but aren't we really ...Far be it for me to disagree but aren't we really just trading one 80-10-10 for another? For example, taking the given example of Rails if you go off the...well, rails from what RoR was designed to do (<I>i.e. babysitting a database with a web front end</I>) you hit a "10" in either category. I'm wondering how extending RoR's DSL to cover the 10-10 is that much different than extending a framework?Chrishttps://www.blogger.com/profile/08066964701063538712noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-17944153906364763712007-11-16T11:39:00.000-05:002007-11-16T11:39:00.000-05:00I agree, using a DSL to configure a complex framew...I agree, using a DSL to configure a complex framework makes perfect sense. I though you were referring to actually *build* the framework with the DSL. Thanks for the clarificationAnonymoushttps://www.blogger.com/profile/17525961934302794120noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-40744537765400531132007-11-16T11:34:00.000-05:002007-11-16T11:34:00.000-05:00I think you had the direction wrong. You don't bui...I think you had the direction wrong. You don't build frameworks on top of DSLs, but rather use the dsl to configure the framework. This happens all the time now--what is the use of XML in Java but a DSL used to configure a framework? This is of course not the only way people use DSLs, but it is very common.Neal Fordhttps://www.blogger.com/profile/12839796402858974817noreply@blogger.comtag:blogger.com,1999:blog-9944221.post-22337635941359469952007-11-16T10:34:00.000-05:002007-11-16T10:34:00.000-05:00Can you explain more about your idea of frameworks...Can you explain more about your idea of frameworks written in DSLs?<BR/>I'm thinking that maybe once we have a DSL, we build DSLs over it instead of a framework. For a sufficient complex domain, we can have layers and layers of DSLs one over the other... not sure if I want to go the "framework" way once I have a DSL ;-)Anonymoushttps://www.blogger.com/profile/17525961934302794120noreply@blogger.com