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




Reply via email to