[TIMOB-8715] Core: Evaluate using Python 3 vs Python 2 for build scripts
GitHub Issue | n/a |
---|---|
Type | Sub-task |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2012-04-13T12:07:39.000+0000 |
Affected Version/s | Release 2.0.0 |
Fix Version/s | Release 2.1.0, Sprint 2012-08 |
Components | Tooling |
Labels | core |
Reporter | Opie Cyrus |
Assignee | Opie Cyrus |
Created | 2012-04-13T07:31:48.000+0000 |
Updated | 2012-06-15T16:28:43.000+0000 |
Description
Investigate the pros/cons of using Python 3 over Python 2.7.X for a build script reboot.
Evaluation results between python 3.2 and 2.6/2.7: 1) From a stability standpoint, there is no reason to not switch to python 3.2 so there is no clear advantage in this regard between 3.2 and 2.7 2) Future maintenance is a strong reason to switch to 3.2 as active development and support for the 2.x line has come to an end. There are no planned version rolls for 2.x and future official versions will all be in the 3.x line. 3) Module support seems to be fairly robust for 3.2. Not all modules have been ported yet but the core functionality we would require is supported by the 3.2 version. With 3.2 there is robust network, zip file management and dom parsing/manipulation support. There are also what appear to be fairly robust community modules for dealing with CSS parsing that can be used. 4) General functionality I think is improved with python 3.2 over the old 2.7 line. The language improvements are numerous and won't be outlined here (can find documentation on the difference between versions if desired) but overall the language functionality is improved with 3 and worth updating. 5) Performance is currently slightly slower on python 3 versus 2.7 in some areas but still competitive. The performance should continue to increase with the 3 line as he version gets more revs. * it should be noted that python 3.x is not designed to be backwards compatible with 2.x so there will be very minimal code reuse possible but this is a minor concern IMO. The way most problems are solved is the same (or improved) but the syntax may have changed slightly. I believe the switch to use 3.2 over 2.7 has more advantages than disadvantages - doubly so if we are looking at rewriting build scripts from the ground up which eliminates the porting issue to a large degree.