Return-Path: X-Original-To: apmail-couchdb-marketing-archive@minotaur.apache.org Delivered-To: apmail-couchdb-marketing-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 248B018178 for ; Wed, 6 May 2015 21:49:17 +0000 (UTC) Received: (qmail 2833 invoked by uid 500); 6 May 2015 21:49:17 -0000 Delivered-To: apmail-couchdb-marketing-archive@couchdb.apache.org Received: (qmail 2791 invoked by uid 500); 6 May 2015 21:49:17 -0000 Mailing-List: contact marketing-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: marketing@couchdb.apache.org Delivered-To: mailing list marketing@couchdb.apache.org Received: (qmail 2780 invoked by uid 99); 6 May 2015 21:49:16 -0000 Received: from Unknown (HELO spamd4-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 06 May 2015 21:49:16 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd4-us-west.apache.org (ASF Mail Server at spamd4-us-west.apache.org) with ESMTP id 47767C0E07 for ; Wed, 6 May 2015 21:49:16 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd4-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 0.002 X-Spam-Level: X-Spam-Status: No, score=0.002 tagged_above=-999 required=6.31 tests=[HEADER_FROM_DIFFERENT_DOMAINS=0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-west.apache.org ([10.40.0.8]) by localhost (spamd4-us-west.apache.org [10.40.0.11]) (amavisd-new, port 10024) with ESMTP id zEs-CaM8HnqS for ; Wed, 6 May 2015 21:48:59 +0000 (UTC) Received: from smtp.justsomehost.net (smtp.justsomehost.net [204.11.51.157]) by mx1-us-west.apache.org (ASF Mail Server at mx1-us-west.apache.org) with ESMTP id B21AB213AE for ; Wed, 6 May 2015 21:48:36 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp.justsomehost.net (Postfix) with ESMTP id 6AAE42BB3 for ; Wed, 6 May 2015 17:48:35 -0400 (EDT) X-Virus-Scanned: amavisd-new at jsent.ca Received: from smtp.justsomehost.net ([127.0.0.1]) by localhost (smtp.justsomehost.net [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vNaugopfV87r for ; Wed, 6 May 2015 17:48:34 -0400 (EDT) Received: from smtp.justsomehost.net (smtp.justsomehost.net [204.11.51.157]) by smtp.justsomehost.net (Postfix) with ESMTP id D3E9B2BAF for ; Wed, 6 May 2015 17:48:34 -0400 (EDT) Date: Wed, 6 May 2015 17:48:34 -0400 (EDT) From: Joan Touzet Reply-To: Joan Touzet To: marketing@couchdb.apache.org Message-ID: <4051975.373.1430948915773.JavaMail.Joan@RITA> In-Reply-To: Subject: Re: How do CouchApps fit into the CouchDB story? MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [204.11.51.157] X-Mailer: Zimbra 7.2.7_GA_2942 (Zimbra Desktop/7.2.5_12038_Windows) I'm going to step in and describe my story of learning about CouchDB for the first time, how CouchApps played into that, and how after thinking they were the bees' knees, I've come to hate them. I first learned of CouchDB while in grad school doing textual analysis of synchronously medicated student computer supported cooperative work - aka, analyzing student IM and IRC text chats. I learned to convert my data into JSON rapidly, I was able to apply MapReduce to my data set quite easily, and then I heard that I could include a simple web app, *in my database*, so that when I replicated the database away to someone else with CouchDB, they would see the data exactly as I would. After getting lost on couchapp.org for about a week (and trying to understand if I HAD to use mustache.js for it or not) I eventually produced a tabular format with some dropdowns that let people sort data in different ways and view a few of the complex result sets. The other geek in the department loved it. No one else could install CouchDB. Later on I started asking: why don't CouchApps have better security? Why can't I incorporate this other web serving app as part of the solution - because it has my blog or wiki or something? And how do I extend the functionality of the CouchApp environment? I realized that the answer to these questions was why CouchApps were never going to be as rich as other environments when I talked to Robert Newson. He reminded me that, in the end, Apache CouchDB is a small community of developers who need to focus on the core of what is possible. They know they'll never be able to duplicate the functionality in Django, or Rails, or modern JS frameworks like Angular or React. They are instead focused on making the core stable, adding functionality to views, and improving clusterable performance. As I joined the community and started looking for tasks to tackle, it became obvious that digging into CouchApps to improve them was hardly the most important task to be accomplished. (At the time, it was getting stable Windows builds done. I worked hard with dch to squash a few release-breaking bugs that were preventing my employer from moving to v1.2.0.) Sadly, very few people, if any, have taken any CouchApp related functionality requests or improvements as top priority...and we haven't received very many either. I think that's telling. CouchApps are simply a victim of having not moved forward in 5-7 years. Perhaps we could evolve CouchApps to be something amazing for today. But perhaps we could just instead focus on Fauxton being awesome (which already takes a team of 7 or more, easily doubling the developers involved in CouchDB) and call it a day. And turn to a modern web dev and they will already have their favourite stack...we're fighting an uphill battle where I don't think we have the requisite innovation. Technically speaking, as a dev I'm in favour of modularising CouchApp functionality so you can load it or not, if you need it, and that we would continue to maintain CouchApps as a core function (i.e., not deprecated functionality). It might or might not be enabled by default, I haven't really thought about it. Hope this helps, Joan