12345678901234567890123456789012345678901234567890123456789012345678901234567890


Hi Thomas, great to see such an effort. Although roundcube works well,  I would 
agree with you
 from what you've said in an earlier blog post that the rc codebase could use 
modernisation. Like you,
Ive often though.. 'if only…'. 

Some comments.

> * PHP
> 
> The major disadvantage of PHP that has become evident in Roundcube is
> its short process lifetime requiring a full startup, database and IMAP
> connection+authentication and closing all connections again for every
> single HTTP request. Even FPM and persistent socket connections (which
> IMO are still unreliable and should be avoided) don't really help to
> overcome this.
> 
> The advantage of sticking with PHP certainly is that we can re-use
> some of the existing parts from the Roundcube codebase, such as the
> IMAP library, the plugin infrastructure etc. And in terms of
> deployment: PHP is everywhere and lots of sysadmins are familiar with
> deploying and maintaing and tweaking PHP applications.
> 
> * Python
> 
> Although Python isn't perfect for running as long-term processes
> either, there are some well developed frameworks out there (e.g.
> Twisted or Flask) which could be used to manage persistent connections
> between the client (think websockets) and storage backends. In
> addition to that, its easier to implement reactive applications with
> an asynchronous architecture.
> 
> Regarding deployment: the Python universe has some well established
> package repositories which make installation and deployment pretty
> easy. From a sysadmin point of view, I have no idea how easy or
> painful the maintenance of Python applications is. But the number of
> hosting providers offering Python is certainly lower that for PHP.

> * Node.js
> 
> The new star on the web app sky. Its architecture seems to make
> node.js perfect for long-living server processes and maximum
> throughput. Although we could use Javascript, which we're all familiar
> with, the number of pitfalls to use that for server applications is
> quite high. The learning curve here shouldn't be underestimated.
> 
> And opinions certainly go into two distinct directions when in comes
> to deploying and scaling node applications. Installation should come
> easy as there's basically only npm for all the package management and
> everybody doing node is familiar with that.
> 
> OK, so question #1: what's your take on the programming language choice?

I would not switch from PHP to any other similar (scripting) language like 
Python, Ruby or Perl.
PHP can hold its own, you just have to embrace modern PHP.

You can debate the pros and cons of each for ever, and never even agree, but in 
the end, 
it really doesnt matter that much in the context of roundcube. Id say the 
benefit of already 
being a PHP project outweighs most arguments

Now, node.js is a different story. I can see the benefits in theory.  Or even 
Go, although thats 
probably a really big step to take. Im not sure if the benefits outweigh 
switching, I havent 
used node or go myself.

> 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 havent used any JS frameworks, but what i read doesnt really inspire 
confidence that
they'll be a decade long stable platform. Which i think should be the primary 
goal, above
anything else. Look at the Angular 1->2 debacle. Can you imagine having to 
rewrite all of
the RC UI, which will be the bulk of the code in RCN every time some framework 
decides to
break backwards compatibility. Or worse, you end up in an unsupported EOL 
version of
said platform. Maybe backbone is different, and id love to hear what people 
think about
the longevity of these frameworks.  

> And this is question #3: who's willing to help us draft the perfect
> protocol for this? I guess this should be a highly collaborative and
> iterative process and I'm keen on any input from people who are
> experienced with this type of task.

For most people I think this depends on what route RCN decides to take. 
Although it certainly
is possible to contribute if you arent proficient in a specific language or 
framework, it sure helps.

Cor


_______________________________________________
Roundcube Development discussion mailing list
dev@lists.roundcube.net
http://lists.roundcube.net/mailman/listinfo/dev

Reply via email to