Skip to content
This repository has been archived by the owner on Jun 11, 2020. It is now read-only.

Dropping support for Python 2.7? #33

Open
leifurhauks opened this issue Jun 30, 2016 · 2 comments
Open

Dropping support for Python 2.7? #33

leifurhauks opened this issue Jun 30, 2016 · 2 comments

Comments

@leifurhauks
Copy link
Contributor

We are seeking input from the community about the need for goblin to support python 2.7. Are you using goblin with python2? If you are using, or planning to use, goblin, please comment below and let us know what version of python you are using.

We are seriously considering dropping support for python 2.7 for several reasons, including (but not limited to) the following:

  • In order to support both python 2.7 (with tornado) and python 3.3+ (with the choice of tornado or asyncio), goblin's code base is currently written in callback style. This makes for code that is significantly more difficult to read, debug, and update compared to code that uses the tools available for writing asynchronous code in python 3.3+. Removing support for 2.7 would allow us to lift the goblin codebase out of callback hell and move more quickly on bugfixes and feature development.
  • Tinkerpop and Titan are fairly new technologies. Python 2.x had already been the legacy version of python for some time when titan saw its first release. Thus we think it unlikely that there are a lot of legacy python2 projects written for titan. Furthermore, converting an application written for a traditional database to leverage Titan necessitates extensive redesign; this is arguably a lot more involved than porting a project from python 2 to python 3, which for most projects requires a lot of small changes but doesn't really need to involve fundamentally redesigning an app. This is especially true now that the vast majority of major python packages have been ported to python 3.
  • The future of asynchronous programming in python (not to mention the future of the python language as a whole) is all about python 3
@davebshow
Copy link
Contributor

+1 @leifurhauks. I support dropping Python 2 support :)

@jsenecal
Copy link
Member

In JavaScript there is something called Callback Hell, it makes things very hard to read, troubleshoot and understand. Python 2 was not meant to be asynchronous so there are very limited things that could be done to avoid callback hell related issues without rewriting everything from scratch and I think that, in the effort of future proofing our code we should indeed drop support for Python 2.

Yes, the current code base could be restructured to allow for better debugging and make it easier to read and understand but I think the development efforts should be aimed towards the future of the technologies rather than using what's old and somewhat hacky.

So, +1 @leifurhauks

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants