[chef-dev] Re: Dialect support and loading enhancements


Chronological Thread 
  • From: Adam Jacob < >
  • To: Brad Knowles < >
  • Cc: Noah Kantrowitz < >, Chef Dev < >
  • Subject: [chef-dev] Re: Dialect support and loading enhancements
  • Date: Thu, 19 Sep 2013 19:39:58 -0700

We have not even scratched the surface of people who are already programmers, from an opscode customer base point of view. Of course, Chef isn't about Opscode, not really - but god bless you for thinking about it. :)

My concern is you won't get 80% of what you want out of it - you're going to get 20% of it. What's capable with a dialect vs the native ruby is hugely different - and it's going to drift naturally. I think Noah is smart to say that the low risk choice here is something like YAML - it's essentially just serialization, so it might be able to stretch relatively naturally with a serialized resource catalog. But if you compare it to what you will experience with a tool for whom the template+YAML approach is truly first class, the delight won't be the same. 

It's interesting to hear you say you feel like you don't know how to program, when i've seen you be an effective member of our community for a long time now. Is it completely out of school to say that perhaps you're arguing for your limitations? You might not be a CS major - lord knows, I'm not. But you do know how to program, and you're doing it in ruby. :) The closest you've come to a real programming language is Ruby: you're programming in it, and have been the entire time you've rocked the Chef, an you've done so successfully.

My concern really boil down to this: I don't want to say that there will be a simpler path that turns out to just be a ghetto - an underserved, less loved corner of Chef. I think we've made similar mistakes in the past, and they've hurt us (for example, the unintentional impacts Opscode's focus has had on the chef solo experience being improved upon) as a community. 

Having someone like Noah who is committed to seeing it through goes a long way to solving that concern, in that I totally believe he would be an active maintainer of that functionality. 

Thinking out loud: what if we wrapped it in a feature flag and marked it experimental?

Adam




On Thu, Sep 19, 2013 at 5:25 PM, Brad Knowles < " target="_blank"> > wrote:
On Sep 19, 2013, at 5:54 PM, Adam Jacob < "> > wrote:

> 3) My concern about dialects is really that, in the end, you wind up hitting a wall. In the grand tradition of manipulexity and whipuptude, we know there is a path that can provide both (the ruby dsl), but that we think there are some barriers to it's full whipuptidunal potential (too many directories, etc.) Is it really simpler to learn the syntax from yaml, and all the gotchas that might be implied there, than to learn the basic syntax that you know scales moving forward? I think ansible and salt both provide a delightful experience of immediacy to the consumer, and that experience is a great one to mimic - but I'm not sure I think that path is because you're writing YAML rather than ruby. Is this simply because I know more than one programming language and have no inherent fear of learning another one anymore?

I'm not a programmer/developer.  I may have encountered a variety of languages, but I've never really been a programmer/developer.  I'm an ops guy who can do a little light scripting.

At this stage, I think you have pretty much reached the entire audience of people who are already programmers (and especially already Ruby programmers), and the next raft of customers are going to be more and more like me -- largely self-taught operations people.  Sure, you can give them reference material to help guide them through Ruby enough to do a little simple Chef, but that's like giving someone a simplified guide "Just enough French to survive in Paris".

Either are okay for tourists who will be there for a few days, but the people who are going to be living there long-term really need to properly learn French -- or, in our case, Ruby.  And I'm sorry, I'm just not a natural linguist -- I tried to learn French during the seven-plus years I lived in Belgium, and it literally went in one ear and out the other.  Ruby is and will always be an alien thing for me.  For that matter, the same is true for Python, or C, or Cobol, or any of the other programming languages I've been exposed to over the thirty-plus years I've been mucking about with computers.  The closest I can come to any native computer language is Bourne shell (not bash), and even that's just due to relatively intense exposure over a long period of time -- since 1984.

If we can change the rules of the game so that people don't have to learn Ruby to handle the easy 80% of the work, then they can deal in something more closely resembling a language they can understand, and leave the hard 20% stuff for someone who has the necessary talents and aptitudes.


The other analogy I would make is to music -- just because you give someone a musical instrument and you force them through the torture of music lessons for a few years, doesn't necessarily mean that they will be a talented musician that should perform in front of a crowd of thousands.


So, yes -- to me, YAML is a game changer.  Even if that's not your "native" language for the system, it's close enough to English (and other "natural" languages) that people can get up to speed much faster with it, and they can be more proficient and retain more proficiency over time.



--
Opscode, Inc.
Adam Jacob, Chief Dev Officer
T: (206) 619-7151 E: " target="_blank">



Archive powered by MHonArc 2.6.16.

§