> On Oct 5, 2016, at 5:44 PM, Dave <linuxlu...@gmail.com> wrote:
> 
> Thanks, Jon and Ted.
> 
> John, you inspired my optimism. Ted, you gave me a healthy dose of caution. :)
> 
> So, I've done SysAdmin work for a living. In this field, lines of code are 
> thought of as liabilities. If I can get something done with 10 lines of BASH 
> code, I'll probably do it. Almost always, there needs to be a tangible result 
> to efforts within 1-2 weeks of starting. So I'm used to being ruled more by 
> economy and less by elegance. If I have an elegant solution, but it will take 
> time to write, I have to essentially work in secret, burning the midnight 
> oil. And even then, the idea may have actually been a bad one and I just 
> wasted all that time that I didn't get paid or praised for. :(
> 
> This is why I've by a Pythonista for some time. I use OOP when it makes 
> sense, and don't when it doesn't. I write a working solution today, and can 
> easily come back tomorrow to abstract this or that and make it maintainable 
> for my future self and others. So I've learned a little about evolving a 
> project, but only really in Python.

Dave,

I've also done sysadmin on and off for 30 years or so, and I do understand the 
need for quick-and-dirty in that environment.

Development is different. Elegant isn't necessarily required, but intelligible 
is. It's *really* important that what you write is clear and concise so that 
when it needs changing a  year or 10 down the road whoever ends up with the job 
(which might be you! never overestimate how much you'll remember about what you 
wrote 6 weeks ago, never mind 6 years ago) must be able to quickly understand 
what the code does so that it's not too hard to figure out the required mods. 
Code that clearly and concisely gets the job done while expressing the intent 
without requiring a lot of comments is the ultimate goal. The goal for a C++ 
core is the major release after next, expected around the end of 2020. By Ted's 
metric a full-time programmer (working only 5 days a week with 2 off rather 
than the 365 he wanted--typical project manager) would produce 800,000 lines of 
code and (if he's well disciplined and keeps his functions to between 20 and 50 
lines each) 25,000 functions. Since C++ is a l!
 ot more expressive than C or Scheme, that's
pretty much a complete rewrite of GnuCash.

OTOH, Ted left off a crucial step: Write tests. Lots of tests. That takes time 
too, so our notional full-time programmer will rewrite only *half* of GnuCash 
in 4 years.

Regards,
John Ralls


_______________________________________________
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel

Reply via email to