User Tools

Site Tools


dr:drupyx

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
dr:drupyx [2010/09/29 20:39] – Deliverables fgmdr:drupyx [2020/11/23 17:23] (current) – external edit 127.0.0.1
Line 4: Line 4:
 Drupyx is the code name for the DRUpal for PYthon eXperiment. Drupyx is the code name for the DRUpal for PYthon eXperiment.
  
-In terms of features, it aims at identifying the key defining points of the Drupal Developer eXperience (DX) and implementing a CMS/Framework with similar - though not identical - DX on top of Python.+In terms of features, it aims at identifying the key defining points of the Drupal [[dr:what|Developer eXperience]] (DX) and implementing a CMS/Framework with similar - though not identical - DX on top of Python.
  
-Unlike the earlier [[http://drupy.net/|Drupy]] efforts by Brendon Crawford, the goal is *not* to build a line-for-line by using PHP-to-Python port of Drupal (Drupy 1), or even a close remake on top of Django (Drupy 2). Even if the project reaches its full completion, it will not offer an API identical to Drupal, which would be a rather pointless endeavour anyway, as has [[http://www.contenthere.net/2008/06/python-gets-drupy.html|already]] been explained elsewhere.+Unlike the earlier [[http://drupy.net/|Drupy]] efforts by Brendon Crawford, the goal is *not* to build a line-for-line port by using PHP-to-Python port of Drupal (Drupy 1), or even a close remake on top of Django (Drupy 2). Even if the project ever reaches actual usability for actual web site projects, it will not offer an API identical to Drupal, which would be a rather pointless endeavour anyway, as has [[http://www.contenthere.net/2008/06/python-gets-drupy.html|already]] been explained elsewhere.
  
 The goals for Drupyx are different: The goals for Drupyx are different:
Line 12: Line 12:
   - To understand the unformulated assumptions done when creating and evolving Drupal.    - To understand the unformulated assumptions done when creating and evolving Drupal. 
     - Because PHP is just so simple and undemanding, the large community building Drupal over the course of years has been working in a single and simple mental model, basically that of a vast flat namespace with tons of global scope functions, globals, and constants. Python is utterly different, and rethinking Drupal in its terms helps to better understand what these assumptions are     - Because PHP is just so simple and undemanding, the large community building Drupal over the course of years has been working in a single and simple mental model, basically that of a vast flat namespace with tons of global scope functions, globals, and constants. Python is utterly different, and rethinking Drupal in its terms helps to better understand what these assumptions are
-    - Because Drupal, like most PHP applications, is written as a "script", without any long-term process or direct server binding, its code is permeated with optimizations specific to that model, which actually have very little to do with the actual logic of its framework and most to do with its execution model. Here again, with WSGI, Python is strikingly different and allows us to challenge these assumptions. +    - Because Drupal, like most PHP applications, is written as a "script", without any long-term process, its code is permeated with optimizations specific to that execution model, which actually have very little to do with the actual logic of its framework and most to do with its execution model. Here again, with WSGI, Python is strikingly different and allows us to challenge these assumptions. 
-  - To understand Drupal better. You may be surprised, since OSInet has been developing, teaching, and consulting for Drupal since 2005, and has helped build or repair some reference french Drupal sites, but all the same, we were not there in the beginning, and that knowledge has been acquired on an existing platform, likely skipping some points of lesser interest as they "just worked". By having to rethink  and rewrite everything from scratch, we want to make sure no feature is left unexplored +  - To understand Drupal better. You may be surprised, since OSInet has been developing, teaching, and consulting for Drupal since 2005, and has helped build or repair some reference french Drupal sites, but all the same, we were not there in the beginning, and that knowledge has been acquired on an existing platform, likely skipping some points of lesser interest as they "just worked". By having to rethink  and rewrite everything from scratch, we want to make sure no feature is left unexplored, and provide even improved Drupal developer training 
-  - To reach a sufficient degree of Python-fu. OSInet has long been a PHP-only shop (OK, with a touch of Ruby), but remaining stuck with one language is a sure way to freeze intellectually. Hopefully, building such a project will require enough Python knowledge and practice to be acquired, while not messing with other projects already managed by Python knights+  - To reach a sufficient degree of Python-fu. OSInet has long been a PHP-only shop (OK, with a touch of Ruby), but remaining stuck with one language is a sure way to freeze intellectually. Hopefully, building such a project will require enough Python knowledge and practice to be acquired, while not messing with other projects already managed by Python knights during the learning process.
    
 +
 ===== Deliverables ? ===== ===== Deliverables ? =====
 ==== Drupal ==== ==== Drupal ====
Line 21: Line 22:
 Given the goals of Drupyx, one can probably say that the deliverables due to appear fastest are likely to be Drupal patches questioning the fundamentals of Drupal during the Drupal 8 development cycle. Next in line is probably even improved course material for our Drupal training offerings. Given the goals of Drupyx, one can probably say that the deliverables due to appear fastest are likely to be Drupal patches questioning the fundamentals of Drupal during the Drupal 8 development cycle. Next in line is probably even improved course material for our Drupal training offerings.
  
-==== Code ====+==== Python code ====
  
 But when it come to actual code, it should be online in a public repository soon (still hesitating between the public OSInet repo and various alternatives like Github, Gitorious, Launchpad...), and the project will gladly accept participation, especially by volunteers with similar "learning" goals, so we can grow our knowledge together. Python experts need not apply: they would likely be annoyed by beginner bugs and unpythonic choices: after all, it is a Drupal DX project, not one more perfect Python web framework. There already is at least [[http://djangoproject.com|one]] of these. But when it come to actual code, it should be online in a public repository soon (still hesitating between the public OSInet repo and various alternatives like Github, Gitorious, Launchpad...), and the project will gladly accept participation, especially by volunteers with similar "learning" goals, so we can grow our knowledge together. Python experts need not apply: they would likely be annoyed by beginner bugs and unpythonic choices: after all, it is a Drupal DX project, not one more perfect Python web framework. There already is at least [[http://djangoproject.com|one]] of these.
  
 +==== Testing ====
 +
 +Since this is a learning project, testing is being used. See the [[implementation and test coverage]] page.
 +
 +==== Licensing ====
 +
 +Obviously, everything contributed to this project will be new code published under an [[http://www.opensource.org|Open Source]] [[http://fsf.org|Free software]] license, likely the GPL 3.
 +
 +===== How do I participate ? =====
 +
 +We thought you'd never ask :-) For a start, you can just use the contact form on my blog: http://blog.riff.org/contact
  
 +Or you can use the [[irc://irc.freenode.net/drupyx|#drupyx]] channel on Freenode.
dr/drupyx.1285792786.txt.gz · Last modified: 2020/11/23 17:23 (external edit)