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
On Thu, Sep 19, 2013 at 5:25 PM, Brad Knowles email@example.com:
On Sep 19, 2013, at 5:54 PM, Adam Jacob firstname.lastname@example.org wrote:
- 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.
Brad Knowles email@example.com
LinkedIn Profile: http://tinyurl.com/y8kpxu
Adam Jacob, Chief Dev Officer
T: (206) 619-7151 E: firstname.lastname@example.org