Hi Darshit, > > - Can someone with little exposure to Python understand and modify the > > code? When you write 'list' and the developer knows that 'list' means > > what is known as "array" in other programming languages, they can work > > with the code. Using the abstract interfaces that Python has does not > > help in this aspect. > > I would argue against this line of thinking. Sure, keep it simple, but don't > reduce the subset of Python available only to something that is easily known > to, for e.g. a C developer. I made the same decision when writing the > testsuite for Wget almost 10 years ago, and in hindsight I regret it. > > The thing is, when you restrict it something that can be understood by > someone with little exposure to Python, you end up with a codebase that is > alien to both groups, the ones that know Python and the ones that don't. You > get a codebase that neither enjoy working with and want to maintain.
An interesting thought. But the problem is that in GNU, with its traditional focus on C and bash scripting, "the ones that know Python" are a minority and "the ones that don't" are the majority. I want that someone with little knowledge of Python is able to make a commit like this one: https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=commitdiff;h=29441fd7bc60ec6010e64f5e8b702c4b6290cec4 without needing to learn the ins and outs of regular expressions in Python. > Instead, I would argue that following the standard Python best practices > is a better choice. The person maintaining the script needs to be a Python > developer anyways. No, that does not match reality. A significant portion of development gets done by people who have not much experience with the specific language or technology. When I look at my own skills [1] and what I have been doing with them: - I'm writing TeXinfo manuals, although I have only base knowledge of TeXinfo. - I'm co-authoring gnulib-tool.py with only base knowledge of Python. - When I wrote CLN, I had only little prior experience with C++. - I wrote a bunch of TypeScript code with just 2 weeks of exposure to TypeScript. - Two weeks ago, I wrote a Bison parser for something; that was probably only my 3rd use of Bison ever, and I had beginner's problems. - Today, I'm considering writing code for a disk-files-based hash table and realize that I have zero knowledge or experience about it. In summary: People write a *lot* of useful code and contributions at a moment when they still only have base knowledge. Please fill in your own skills set on Savannah [2]; I bet you will find that the same observation will hold true for yourself. Bruno [1] https://savannah.gnu.org/people/resume.php?user_id=1871 [2] https://savannah.gnu.org/users/darnir