On Mar 6, 2015, at 12:10 PM, Thomas Bruederli thomas@roundcube.net wrote:
- PHP
While I generally don’t like PHP for development, if you use something else, you’ll end up losing 50% of your users. Many web hosting sites provide PHP support and not much else. If they do, it’s often has many restrictions. PHP works on pretty much every web server on every platform.
I’d fear that writing it in another language would end up in RC not making quick progress since it’s such a big job. I’ve been there. RC has a lot of code under the covers.
- Python
Personally I can run whatever I want on my server, and python is pretty popular. From what I’ve read and experienced, Python is sometimes faster, but usually not all that much. Maybe 2x tops (on average.) Is that really worth all the extra work? Having done stuff on the Raspberry Pi, Python is too slow there to be useful for anything I’ve tried.
- Node.js
Rather cutting edge and less support on web hosting sites. Maybe embedding node.js with the new RC protocol into a IMAP++ server would allow for speedy development and easy deployment for server owners, at least. Apache (or whatever) can server the HTML / CSS / JS parts. node.js would run on an alternate port. It complicates firewalls and the like, obviously.
So here's question #2: what are your favorite javascript application libraries and frameworks? What experience did you make let's say with Angular or Backbone? What are the pitfalls?
I haven’t really played around with them all that much. Everyone uses JQuery, of course. Ember gets good press and is more full-featured.
For the client-server communication, there are some interesting concepts out there but none of them actually seems to suit the purpose we're after. They either lack the concept of sharing (i.e. ACL) or do not account for collections such as multiple different address books one account my have access to. The candidates I'm referring to are: Nilas.com (former InboxApp), JMAP (by Fastmail) or the Gmail API (also to be supported by Dovecot). All are good approaches and generally point into the same direction but I couldn't say that one of them would already solve the use-cases we want to cover in Roundcube. And yes, we're seeking for a protocol and not an API [3] :-)
These are neat ideas and I was thinking something like that would be cool. However, not sure if it isn't more cool than practical. JMAP is stateless and that seems “modern", but it places a burden on performance.
Maybe more of an MVC where the model is on the server, the view and controller are javascript on the client. That’s more an API than a protocol, though. Making an API is much harder, IMHO. It would allow other people to implement clients (if done well), which is interesting. But it seems everyone is writing their own API anyway, so not sure how practical that is.
There is also things like: http://emailjs.org and i think whiteout.io has one, too.
Anyway, just some mostly random thoughts.
-Norman