6 ms·
You might be taking the statement out of context, and you are certainly quoting it out of context (although brevity is appreciated.) The statement in the talk
by showell 17y ago
You might be taking the statement out of context, and you are certainly quoting it out of context (although brevity is appreciated.)
The statement in the talk was made to illustrate the differences between Ruby and Python, and it was not made to suggest that Ruby was replicating all the benefits of Lisp.
- KirinDave 17y agoI understand the intent, but I do not feel that it loses its incorrectness by taking it out of context. That people even feel this comparison is appropriate is what has me depressed. It represents a fairly fundamental set of misunderstandings.
- chromatic 17y ago> That people even feel this comparison is appropriate is what has me depressed. I agree; you can replace the term "DSL" with "API" in almost every case without losing any essential meaning. (You have to give the hipper-than-thou language pseudo-advocacy, but that's no loss.)
- mjw 17y agoI think in those contexts, DSL is more a description of how an API feels to use, than a precise technical categorisation.` Ergonomic distinctions are useful though, as is the distinction between declarative-style APIs and more imperative ones, which 'DSL' is often used to make.
- kscaldef 17y agoI have yet to see a Ruby "DSL" that didn't feel like Ruby. That is, unless you.talk :like => "this"
- kemiller 17y agoThose are just the "english-y" DSLs. Not all are attempting to read like english. And even for those that are, the point isn't to be writing in english, the point is to be at least halfway readable to a non-programmer reading over your shoulder.
- kscaldef 17y agoOkay, but it's not really all that clear that "sum.should == 3" is actually any more readable than "assert(sum == 3)". (Do you really have non-programmers reading code over your shoulder? I can't think of any case in a 10+ year career where that's happened.)
- kemiller 17y agoI don't personally use the stuff. :) But I have seen environments where that does happen, and it works pretty well for them. If you're not doing that, I think they're kind of silly.
- chromatic 17y ago> ... the point is to be at least halfway readable to a non-programmer reading over your shoulder. That's the same argument for filing the serial number off of TDD and calling it BDD: sometime, somewhere, somehow eventually some non-programmer is going to have to maintain source code without a trained professional programmer around to help. I don't get it; FIT's been around much, much longer. What kind of non-developer business rule expert can read the punctuation-sprinkled pseudo-English pidgin Ruby spreads around but doesn't know how to manipulate tabular data in a spreadsheet?
- kemiller 17y agoThe BDD reference is not just an analogy, it's what these are for. And it's not about non-programmers maintaining the code. Not at all. It's about a business owner and a programmer sitting together and making executable specs together. I don't really get it, but I'm curious. People I respect swear by it.
- artpop 17y agohaml, sass, cucumber...
- draegtun 17y agoI have yet to see a Ruby "DSL" that didn't feel like Ruby There are some out there though, for eg. FancyRoutes: http://www.railsinside.com/plugins/252-fancyroutes-a-nicer-dsl-for-routes-in-rails.html http://www.railsinside.com/plugins/252-fancyroutes-a-nicer-d...
- kscaldef 17y agoReally? That's the example you want to use. First thing I see on that page: get / 'orders' >> :orders > :index with route / :slug / 'order' >> :orders do get > :show put > :update end get {'item_images' => :controller} / :image > :show That looks like Ruby all over the place. Yeah, it overloads operator methods more than most Ruby code, but it's very clear that it's Ruby.
- draegtun 17y agoI and i think most people would disagree with you because above does not "feel like" Ruby.
- deleted 17y ago[deleted]