ive been coding in python for more than 6 years. ive written a programming language in python; i’ve always known about python 3.
versions 0.4-2.9 of fig (“fig basic”) are written in python 2; versions 3.0-3.1 are done in python 3. it was a fair amount of work to get everything encoded; whether dealing with stdin, stdout, print, or file input and output, python 3 wants its hand held through every string it processes. compared to python 2, python 3 is brittle.
python 2 is flexible. it may be “too flexible” for google, but google can afford to use python 3. some people have the patience or preference for it.
i never did. i never wanted python 3, i never needed python 3. but when people started to switch, and the python foundation said it would drop support for python 2 in a few years, i thought: “maybe i should make a python 3 version of fig, just to try it.”
fig 3.0 came out 11 months ago, in 2015, followed by 3.1 in january of this year. ive used both versions of fig: 2.x and 3.x all year long; ive used fig to remaster an operating system (its about 50% bash code, but thats fine; all of it is called from fig.)
the fig 3.x experiment is complete; and so is the time i choose to spend on python 3.
if there is a future version of fig, it will be fig 4.x, and it will be based on python 2.
note that fig development mostly stopped about 10 months ago; i consider it stable, but today i was trying to process two large lists of files, and fig 3.x wasnt up to the task. it is supposed to catch the error and revert to utf-8 if ascii couldnt be handled, but it was not able. was this a special filename? sure. but is fig 2.x handling the task better? of course.
thats the last straw for me as far as python 3 goes. ive never had fun using it like i do with python 2, ive never ever managed to make it as reliable when it comes to a feature as intrinsic as string handling, and ive read way too many tutorials, spent too much time on conversion utilities– in short: f*** python 3 and the horse it rode in on.
i have a 25 line program that i need to work today, and only one command in fig 3 is unavailable in python 2. (edit: or so i thought– ive combed through the source of fig 2.9 and 3.1, i cant find any difference in command sets between them! good thing the figueira version only took a couple minutes…)
well, figueira– the portuguese version– is based on python 2, and since i had a copy of it handy i just translated the fig 3 program to figueira. here is a sample:
tentar f1 comando meio 1 1 f2 comando meio 2 1 o ordaberto f1 p ordaberto f2 exceto z "dircmp: usage: dircmp file1-or-folder file2-or-folder" print end retomar xc yc z f1 impressha " only: " impress paraem y o yin incad p y smb seigual yin 0 z y impress fig seg z "" impress
and the translated version of dircmp has now produced the file i asked of it. is fig 3.x fixable? it took almost a year to even be sure it wasnt good enough! but its not, and when the python foundation dumps python 2 in 2020, im hoping that pypy will do.
- license: creative commons cc0 1.0 (public domain)