As discussed in #104 (comment), I'm increasingly convinced that it makes sense to port Stow to Python. Perl is a mostly dead language at this point (with no offence to the Perl community - I have a great fondness for and long history with Perl for the first chunk of my career). The reality is that despite looking for co-maintainers in #104, none have been forthcoming and I believe this is largely due to most people not knowing Perl these days.
Python is the obvious candidate for a port:
- It's a hugely popular, well-known, and approachable language.
- For the Stow use case, compiled languages are overkill. Its performance is entirely I/O-bound, not CPU-bound.
- I know Python very well.
- There are already at least two unofficial ports:
Also, AI tooling makes this increasingly easier, e.g. @isarandi managed his in about a day.
So at this point, the main thing I'm still debating is whether the port should be done:
- in a subdirectory of the
main branch of the current repo
- in a
python branch of the current repo
- in a separate repo
Currently I'm leaning towards option 1, because:
- this would allow a single commit to fix the same bug or add the same feature in both versions, and
- it would allow the same test suite to test both versions.
These would be helpful because for a period of time both versions would need to be maintained in parallel to allow software distributions to migrate over.
Other considerations (added after lots of discussion below):
- Not planning any name change. It will still be GNU Stow, for many reasons.
- However, I think 3.x onwards should be the Python version only, which should avoid a lot of confusion. So 2.x would remain the Perl series which gets EOL'd at some point in time with a reasonable amount of notice.
As discussed in #104 (comment), I'm increasingly convinced that it makes sense to port Stow to Python. Perl is a mostly dead language at this point (with no offence to the Perl community - I have a great fondness for and long history with Perl for the first chunk of my career). The reality is that despite looking for co-maintainers in #104, none have been forthcoming and I believe this is largely due to most people not knowing Perl these days.
Python is the obvious candidate for a port:
Also, AI tooling makes this increasingly easier, e.g. @isarandi managed his in about a day.
So at this point, the main thing I'm still debating is whether the port should be done:
mainbranch of the current repopythonbranch of the current repoCurrently I'm leaning towards option 1, because:
These would be helpful because for a period of time both versions would need to be maintained in parallel to allow software distributions to migrate over.
Other considerations (added after lots of discussion below):