[Grok-dev] Re: What is Grok anyways... time for a name change? :)

Martijn Faassen faassen at startifact.com
Wed May 9 18:39:23 EDT 2007

Hi there,

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:

[snip names]

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 
example? :)

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 
TurboGears. :)

> 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 mailing list