[Grok-dev] Re: What is Grok anyways... time for a name change? :)
faassen at startifact.com
Wed May 9 18:39:23 EDT 2007
I'm going to argue a bit more here. I don't think you can have a problem
with this, as you're obviously entering this mailing list with an
argumentative splash. :)
Sebastian Ware wrote:
> If I hadn't spent hours of research and a great deal of time with Zope
> 2, I would never have understood what relationship Grok has to Zope 3.
This makes me wonder what is wrong with Grok's "about" page. It
shouldn't take hours of research to find and read Grok's about page on
the website, so what's missing in there that you'd like to see?
One suggestion would be the header of the website. We could make it say
Zope Grok (with different fonts). We could also place the motto ("Now
even cavemen can use Zope 3") directly below it, so it's harder to miss.
> Whereas this might be due to my personal limitations, I think it is
> mainly because of the choice of identity.
I describe in my other reply the tricky balance of identity we're trying
to make. Grok is not just a technical project, but also an attempt to
try to provide another, friendlier face for Zope 3.
I'm going to use the "about" page experimentally to try to answer some
of your questions. What would be helpful if you could let us know how
the answers weren't correct or complete and offer suggestions about how
we can reorganize the site.
> What is Grok?
"Grok is a web application framework for Python developers. It is aimed
at both beginners and very experienced web developers. Grok has an
emphasis on agile development. Grok is easy *and* powerful."
I know you complain about the generic nature of the text below. It's so
simple and generic to actually give people at least a mental catagory
they can place Grok in, and to introduce things we're going to provide
evidence in text below (easy *and* powerful).
Perhaps we could elide this to this, though:
"Grok is a web application framework for Python developers."
The rest of the about page already says stuff about power (experience
web devs) and easy to use. What do people think? It doesn't hurt to
introduce the topic in a few more words, I think.
> A tool for cavemen who want to use Zope 3? Doesn't sound
> very comforting.
"Grok appeals to the caveman or woman in all of us. Cavemen, like us
programmers, want powerful and flexible tools. Cavemen are great at
tools after all; they invented the whole concept of them. But cavemen,
and we, also want our tools to be simple and effective."
"Cavemen want tools like clubs: a club is powerful, flexible (you can
bash in anything, mash potatoes too) and also simple and effective. Zope
3 is already powerful and flexible. Grok aims to make it simpler and
more effective, for beginners and experienced developers alike. Grok:
now even cavemen can use Zope 3."
> I am still not entirely sure -- what is Grok?
Now to a good question I don't think we've answered fully yet:
> As Zope 3 evolves, does Grok evolve too? In an other direction?
It's partially discussed on the 'about' page:
This is one of the important design principles of Grok that we're trying
to stick to:
"Grok does away with ZCML. Instead it analyzes your Python code for the
use of certain special base classes and directives, and then "groks" it.
This grokking process results in the same configuration as it would have
if you used the equivalent ZCML. We believe that having all
configuration along with your Python code makes the code easier to
follow and more fun to develop."
What you're asking for is directions of the Grok project. Fundamental
aims, and how they relate to Zope 3. The aim is to continue doing the
"During the development of Grok we have taken a careful look at common
patterns in Zope 3 code and configuration. Grok aims to make these
patterns more easy to use and succinct."
We should write a bit of text with this information in it more directed
towards people who are interested in the overall mission of Grok and its
relationship to Zope 3.
> Does stuff for Zope 3 work with Grok?
I thought I had written a bit of text about how grok is compatible with
Zope 3 (we aim to be compatible both ways). Ah, it's in the tutorial:
"Grok is based on Zope 3 and is compatible with Zope 3, but you do not
need to know Zope 3 (or Zope 2) at all to follow this tutorial. Grok
builds on existing Zope 3 technology but exposes it in a different way
to the developer. We believe Grok makes developing with Zope 3
technology easier and more fun for beginners and experienced developers
We should make a statement about Zope 3 compatibility on the about page
and I think on the homepage as well.
> From an identity point of view, the clear separation of the Grok (name)
> from Zope 3 results in neither effort helping the other.
> What would you rather evaluate:
You're talking about the name of the project. I presume you're not
realistically expecting you can come into the project and get us all to
change the name. I personally am -1 on a name change, as I think the
current naming and identity strategy is working out fine.
You discuss identity and then focus on just the name. Identity is far
more than just the name. I think we should be talking about identity.
Grok's identity is tied up to Zope's. We discuss our ties to Zope 3 very
explicitly in our communications. On programming.reddit.com I saw it
headlined like this:
"Grok: a new Python Web Framework, but on top of Zope!"
so we seem to have at least gotten the related identities across to
If the *name* of software really matters much in people's evaluation
choice, then why do you associate the name for coffee (or an Indonesian
island) with vast enterprise software frameworks? What's up with those
cups of coffee? That language is never going to make it in the big league!
Why the name of a gem for an object oriented programming language
(playing off "perl", another one). A gem on rails? Don't know what that
is, but it's going stick in my mind because it alliterates.
A programming language named after Monty Python's flying circus?
A web framework named after a guitar player?
"Tomcat"? What's a cat have to do with web servers? Or indian tribes? Or
Gears with turbo in them?
These names only sound less bizarre because you're familiar with them.
> When in fact Grok and Zope 3 are based on the same mature code base and
> could be evaluated as two development styles -- whatever suits your
> shop. And the connection could be reflected right in the name such as
> "Grok-on-Zope3". Now THAT would make it a lot less like Yet Another
> Python Framework... and a lot more like... hmmm... intereseting...
> what's the twist?
I prefer "Zope Grok" to "Grok on Zope 3", as it's less of a mouthful and
less similar to "Ruby on Rails".
TurboGears is an interesting case considering names and identity by the
way, and it could be seen as a counter argument to your focusing on the
name aspect. TurboGears explicitly markets itself as a "megaframework"
of other frameworks, and speaks proudly about how it's building on
CherryPy, Kid (becoming Genshi) and SQLObject (becoming SQLAlchemy). I
think that marketing strategy worked quite well. Did you know that, for
Grok is a megaframework built on top of Zope 3 components. This makes
for an integrated developer experience like Django but at the same time
lets you benefit from a pool of evolving and swappable components like
> Rounding off with a small Yet Another Python Framework warning...
> "YAPF is a web application framework for Python developers. It is aimed
> at both beginners and very experienced web developers. YAPF has an
> emphasis on agile development. YAPF is easy and powerful."
> ...only the original swaps GROK for YAPF... ;)
Yes, good point. :) I think it it can serve as an introduction, because
it's true and contrasts with Zope 3 for those who know about it.
Luckily the text is aware of the YAPF nature of the first paragraph and
we follow it up immediately with:
"You will likely have heard about many different web frameworks for
Python as well as other languages. Why you should you consider Grok?"
More information about the Grok-dev