Return-Path: X-Original-To: apmail-cordova-dev-archive@www.apache.org Delivered-To: apmail-cordova-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 0EC1F101D9 for ; Fri, 8 Aug 2014 15:14:55 +0000 (UTC) Received: (qmail 9152 invoked by uid 500); 8 Aug 2014 14:48:15 -0000 Delivered-To: apmail-cordova-dev-archive@cordova.apache.org Received: (qmail 9115 invoked by uid 500); 8 Aug 2014 14:48:15 -0000 Mailing-List: contact dev-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list dev@cordova.apache.org Received: (qmail 9092 invoked by uid 99); 8 Aug 2014 14:48:14 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Aug 2014 14:48:14 +0000 X-ASF-Spam-Status: No, hits=1.5 required=5.0 tests=HTML_MESSAGE,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of agrieve@google.com designates 209.85.219.47 as permitted sender) Received: from [209.85.219.47] (HELO mail-oa0-f47.google.com) (209.85.219.47) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 08 Aug 2014 14:48:10 +0000 Received: by mail-oa0-f47.google.com with SMTP id g18so4163869oah.6 for ; Fri, 08 Aug 2014 07:47:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=ExekLEf0odGOTS6GuHoyIrgtT8TXgN3fgkOIyEcsIFM=; b=pp6Kvex+7DdYtUnXaV+ApPL7O9tUO18PNXRreOqpATFjo/G0WakMVU6h5j8eY2d3s0 DmnE9/wYMvYB4wKzf3KgcBmur9TVsS2wUdOS5Sy4KcQF8J7OC7188VlbKcrC2YMC3MPW kVp0vVfXU2qRpGs6n7BMK3j4b/C+cH4vnkpbleXddHF1N9Ye1+L+O8BjxtV/uNpUkJlw kTZ8E44imGCJ52dRidSQ5xXZcY22uotGCw2O6rXqvUeNOj2EqvZb1YqSC54nDwKcWJPH fHB7YZX5fIFBDuF0q7z8KoU29QlkG5WkIg0XWrcwH/IF1DXUsGmfrhOTRny2PvhhhDzh jZEg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:content-type; bh=ExekLEf0odGOTS6GuHoyIrgtT8TXgN3fgkOIyEcsIFM=; b=eAdCc4qmwkcu5BQ+8+aBM24/noAbQQFtuMZnjfhUimkh7bdoMHuJmaumMKdw/huBWC nXhXQsdZ9xKzz63KhVVFuoYz3b0QQTfIPHQDRsa98QHyyWwOFXNbl64WdeQF89Y+fndm VyNtud2Rjor2LptSDY3CEgClvtYlzfDSrBKCU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:content-type; bh=ExekLEf0odGOTS6GuHoyIrgtT8TXgN3fgkOIyEcsIFM=; b=SZKVy2/84FBPaU9sUDEDwW0ws9uq02z4DcG9oMFK6lRKhPlrw2S3zV3TdjbVGwjpfx SKh5PKXElsFPFFOBRJPx3iIF70cGRWMQLveehTe/PMvUd3uu7z3Vpq7a9dC4OnjG7GXL RCHVx4H6+jSuSHVdp0aMito1mp6Flc9QfIz/ZD402g8y1py2ECRVs/HF6rbM5KxnqJ9S bmhISHCbaPXjP+9dAbxhze4IYfF0HUJLZ8AHNlKmB1gKYw/nkdLd3Exjn0oyofABCsqw t36p7T8jpdKxKSKELOIAOZmi3AbxqSq+ytgADrh5LocTZu5h8uD5PN+YoONeWsyD96xE c+RQ== X-Gm-Message-State: ALoCoQlThH/E3nnJ4lJyGMXoWlUebHhm3eRYzf0z2OvfUhwqh29fIbmrK6eCaTR0CHZey0Vt+xQV X-Received: by 10.182.205.231 with SMTP id lj7mr30302536obc.37.1407509269840; Fri, 08 Aug 2014 07:47:49 -0700 (PDT) MIME-Version: 1.0 Sender: agrieve@google.com Received: by 10.182.241.201 with HTTP; Fri, 8 Aug 2014 07:47:29 -0700 (PDT) In-Reply-To: References: From: Andrew Grieve Date: Fri, 8 Aug 2014 10:47:29 -0400 X-Google-Sender-Auth: c7z3-QPD5XvplOMECXH2YFf8Sh0 Message-ID: Subject: Re: [Discuss] Ripple as a platform To: dev Content-Type: multipart/alternative; boundary=001a11c2f2660c141e05001f4a87 X-Virus-Checked: Checked by ClamAV on apache.org --001a11c2f2660c141e05001f4a87 Content-Type: text/plain; charset=UTF-8 I think this is a nice summary of the trade-offs between the two approaches. I'm much in favour of ripple as a single platform, mainly because of the fact that you're not running it on devices. The merges/ problem can be solved by the user adding a "ripple" dir to merges, and the per-platform differences of plugins is only one of *many* subtle differences you'll find when you're running on a desktop browser vs. the actual mobile host environment. On Fri, Aug 8, 2014 at 10:13 AM, Horn, Julian C wrote: > I'd like to get feedback from the mailing list about the basic concept of > Ripple as a platform, not just on the prototype described in earlier mail > from Parashuram Narasimhan (MS OPEN TECH). For information about the > prototype, see his mail of 7/22/2014 titled RE: [Discuss] The Future of > Ripple as a Top Level ASF Project< > http://markmail.org/message/jdngxmy4nitg4pl6> (and subsequent replies). > > > > The underlying idea of the prototype, as I see it, is to use the > plugin.xml format to describe additional files that would be used for > emulation of that plugin. The prototype CLI treats ripple as a platform > that is a peer to the other platforms, such as android, windows8, ios and > so on. The idea is to use the CLI "cordova prepare ripple" command to > create sources that are suitable for use with Ripple. > > > > The question this raises for me is whether Ripple is best thought of as > one platform or as a set of platforms, one for each real platform. In > other words, instead of preparing and emulating "ripple" code, maybe Ripple > should emulate "ripple-ios" code when emulating an iOS device, > "ripple-android" code when emulating an android device and so on. The > Ripple Cordova 3 support added by Gord Tanner follows this model. > > > > One can imagine a different prototype that uses the same style of > plugin.xml file but makes different CLI changes. Instead of ripple being > another user-visible platform, it could just be a command line switch, as > in "cordova prepare windows8 --emulate ripple". This would tell the CLI to > combine the contribution of both the windows8 and ripple platforms in the > prepare output. > > > > It's obviously simpler to treat ripple as one platform. The downside is > that it makes it impossible to emulate platform-specific source differences. > > > > Platform-specific source differences can arise in two ways. The "contact > list" plugin for example provides functions that only exist on iOS. These > functions are defined in a JavaScript file you only get when you prepare > for ios. Platform-specific source differences can also arise from the > "merges" folder. This allows an application developer to supply different > files on different platforms. If Ripple is multiple platforms, then the > user can test with the sources that would actually be used on the selected > device. If Ripple is one platform, then the user must test with one code > base for all devices. The plugin author decides what the sources Ripple > will use for the plugin, and the application author decides what merge > sources will be used. > > > > At Intel we have discussed the one-versus-many question but no clear > consensus has emerged. I think it boils down to an interesting > philosophical question about what Ripple is or should be trying to be. > > > > Ripple is obvious incapable of emulating many kinds of platform-specific > differences. After all, Ripple executes the program under test in the host > system web runtime, not the target system web runtime found on a mobile > device. Typically the host system web runtime is newer and more capable > than the mobile counterparts. Code often works under emulation yet fails > or behaves differently on real hardware. Some argue that this proves that > Ripple should not be thought of as an impersonation of real devices, but > rather as a kind of pseudo-device that doesn't pretend to resemble any real > device. They see the present product as misleading and confusing. Others > argue that Ripple should try to imitate a real device as best it can, given > the limitations of its technical approach. They see Ripple like an > instruction level simulator that is fast but not cycle-accurate: limited > accuracy but useful nevertheless. > > > > So what do you think? Is Ripple a device impersonator with limitations, > or is it more like its own kind of device? Should Ripple be its own > platform, or should it be many platforms? > > > > --001a11c2f2660c141e05001f4a87--