Answers.Body: <p>It depends.</p>
  
  <p>If it's an extension that does something that I need, I would use python (well, it's already installed on all my servers, but would have installed it).</p>
  
  <p>It will however limit the distribution to those that have root access to their servers and can install whatever they want on it, so probably make more sense for "big install" civi.</p>
  
  <p>By the way, by extension, you mean "additional features", not "civicrm native extension", right?</p>
  
  <p>If it's the former, I feel ok with python interfacing with civi (eg. via the rest interface), cleanclothes has for instance a complete frontend developed in python that only uses civi as a backend (and for the most advanced features if I recall)</p>
  
  <p>If it were the latter, I would be concerned having php calling somehow python, mostly because I'm not even sure how it could work cleanly.</p>
  
  <p>You need to tell us more about what your extension does.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-27T16:54:49.870Z
Answers.Text: You mean cleanclothes.org, right (looks like Plone site)? I can see how the frontend could be written in other than PHP - or no frontend/standalone Civi, but I am looking for a way to do data transform so the framework could be different (I think) than Civi core.
Answers.UserDisplayName: Lesley Evensen
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-27T17:51:09.507Z
Answers.Text: yeap, cleanclothes.org, and yes, plone. Not sure I understand your point about data transform
Answers.UserDisplayName: Xavier
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-27T18:03:18.397Z
Answers.Text: @LesleyEvensen your answer was converted to a comment. Please take a moment to take the [site tour](http://civicrm.stackexchange.com/tour) for a better understanding of how the site functions.
Answers.UserDisplayName: choster
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-05-26T06:49:00.950Z
Answers.LastActivityDate: 2015-05-28T02:01:02.123Z
Answers.LastEditDate: 2015-05-28T02:01:02.123Z
Answers.UserDisplayName: Xavier
Body: <p>Not an issue or bug, but a question for admins of CiviCRM - is it acceptable to use Python for part of a new extension (instead of PHP) or is that expecting too much, since that means asking users to install Python in addition to their stack of PHP, MySQL, Apache and whatever OS?</p>
  
  <p>I know that Python install isn't the only issue here but so - it seems that CiviCRM doesn't (yet) have any kind of ETL extension (and I mean a contributed extension like CiviDiscount, not 'native', one that would be an optional add-on, like modules in Drupal). I am looking at some way to avoid Kettle/Talend (Kettle 'works' but sucks by comparison w/SSIS which is not open-source). </p>
  
  <p>At first I thought well, people could just contribute Kettle scripts that other people could take and modify but that is pretty clumsy. So...looking at writing simple MapReduce in Python. </p>
  
  <p>So, it would not necessarily be part of the interactive CiviCRM user functionality, using RESTful Api to do transactions, but totally backend functionality to do data transformation from MySQL or whatever database. I hope the transform could also be used to produce reports in some other way than hacking w/those templates. Using Apache Hadoop could also be a showstopper...just exploring now.</p>
  
Tags: <extension>
Title: Re: CiviCRM contribs/extensions - any scripting language limitation?
ThreadText: # Re: CiviCRM contribs/extensions - any scripting language limitation?
  
  (Asked by: username_0 on 2015-05-26)
  
  Not an issue or bug, but a question for admins of CiviCRM - is it acceptable to use Python for part of a new extension (instead of PHP) or is that expecting too much, since that means asking users to install Python in addition to their stack of PHP, MySQL, Apache and whatever OS?
  
  I know that Python install isn't the only issue here but so - it seems that CiviCRM doesn't (yet) have any kind of ETL extension (and I mean a contributed extension like CiviDiscount, not 'native', one that would be an optional add-on, like modules in Drupal). I am looking at some way to avoid Kettle/Talend (Kettle 'works' but sucks by comparison w/SSIS which is not open-source).
  
  At first I thought well, people could just contribute Kettle scripts that other people could take and modify but that is pretty clumsy. So...looking at writing simple MapReduce in Python.
  
  So, it would not necessarily be part of the interactive CiviCRM user functionality, using RESTful Api to do transactions, but totally backend functionality to do data transformation from MySQL or whatever database. I hope the transform could also be used to produce reports in some other way than hacking w/those templates. Using Apache Hadoop could also be a showstopper...just exploring now.
  
  **Tags:** extension
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2015-05-26. Score: 3
  
  It depends.
  
  If it's an extension that does something that I need, I would use python (well, it's already installed on all my servers, but would have installed it).
  
  It will however limit the distribution to those that have root access to their servers and can install whatever they want on it, so probably make more sense for "big install" civi.
  
  By the way, by extension, you mean "additional features", not "civicrm native extension", right?
  
  If it's the former, I feel ok with python interfacing with civi (eg. via the rest interface), cleanclothes has for instance a complete frontend developed in python that only uses civi as a backend (and for the most advanced features if I recall)
  
  If it were the latter, I would be concerned having php calling somehow python, mostly because I'm not even sure how it could work cleanly.
  
  You need to tell us more about what your extension does.
  
  > **Comments:**
  > **username_0**: You mean cleanclothes.org, right (looks like Plone site)? I can see how the frontend could be written in other than PHP - or no frontend/standalone Civi, but I am looking for a way to do data transform so the framework could be different (I think) than Civi core.  
  > **username_1**: yeap, cleanclothes.org, and yes, plone. Not sure I understand your point about data transform  
  > **username_2**: @LesleyEvensen your answer was converted to a comment. Please take a moment to take the [site tour](http://civicrm.stackexchange.com/tour) for a better understanding of how the site functions.  
  
  ---
  
  