For all versions from 1.0 to 2.0 I set myself a goal that I will not increase the number of lines of code in the KeyPad application.
This means that I must not add a new feature unless I remove the equivalent number of lines of code from the existing application.
It is getting harder and harder to find code that I can remove/optimize.
I have been programming in some way or form for over thirty years. One rule that in my mind has not change is:
Less code is good code!
This rule has served me well. I have removed unnecessary code, made improvements to sloppy code, learned new techniques with Swift, and overall had fun. I am now running out of code to reduce, and there are new features that I want to implement. I think I am ready to move to next level.
I plan to release 2.0 before the end of the year.
My learnings so far:
- I can still write production code – so what if my primary job is engineering management.
- There is an intangible pleasure from replacing 25 lines of code with 4.
- I leaned a new language Swift. I quite like it. Better than Java in my opinion.
- Programming hasn’t changed much in the past 20 years.
- Git and continuous integration is awesome – wish it has been there when I was mainstream programming.
- Validation of the concept behind keypad. Apple decided to introduce it as a new feature in MacOS called Universal Control. I wonder if seeing my app had something to do with it.
- I can still write programs that users like: 4.7 * Ratings worldwide, over 20k downloads. Yesssss!!
Just released 1.81 where the focus is internationalization/localization. Pretty cool that both those words mean more or less the same thing.