Home iKnow Main menu

    > Home > Blog > Programming Productivity

Programming productivity

Programming productivity

When designing the AI Framework and C* language subset, a lot of effort went into studying which programming languages had the highest programmer productivity, and why. Scripting languages were often recommended in general, and Python in particular for increased programmer productivity.

Python (and other scripting laguages) most important productivity factors
- higher level of abstraction (a line of code typically does more in a scripting language)
- less code/typing (easier to type, easier to read, easier to maintain and change)
- powerful built-in data types (strings, arrays, dictionary/hash etc)
- powerful standard library and third-party libraries ("batteries included")
- fast feedback cycle (interpreted, no compiling)

"The minimal finger typing and powerful data types work together to make your program small, and make you feel more productive. "
- Guido van Rossum, Python creator

Of course, programming language is only one of many factors determining programming productivity:

01 - Skill, talent, motivation (# 1)
02 - Language (C, C++, C#, Java, Lisp, Ruby, Haskell etc)
03 - Automatic Memory handling / Garbage collection (Java, C#, Script languages)
04 - Framework / Libraries (Java, .Net etc)
05 - Environment / Working conditions (workspace, hardware)
06 - IDE (Visual Assist, CodeReview), including help system
07 - Amount of typing - less typing, less code, less errors (verbosity)
08 - Data types (arrays, lists, maps, strings)
09 - Conventions gives less code (handle lower-level details for you - Ruby on Rails)
10 - Compilation vs. script (interpreted)
11 - Debugging / Tracing / Testing (find bugs, avoid bugs, easier testing)

"One finds terms such as 'software manufacturing', proposals to measure programmer productivity by the number of lines of code produced per month etc., although I have never seen the suggestion to measure composer productivity by the number of notes, monthly scribbled on his score!"
- E.W.Dijkstra

A different view is presented by Peter Hallam from Microsoft, who estimated how much time real developers spend on coding:

New code 5%
Modifying existing code 25%
Understanding code 70%

As the most time is spent understanding code, code readability is very important. Less complexity and less code in general will increase readability, as you're able to grasp a larger portion of the code at once (and understand it faster).

This is why our motto is KISS - Keep It Simple, Stupid !

"Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it."
- Brian Kernighan (Stack Exchange discussion)

By writing as little code as possible, there is less to write, less to modify and less to understand (and less to fix).

By writing as easy code as possible, it is easier to write, easier to modify and easier to understand (and easier to fix).

The C* language and the AI Framework was designed to be as simple and easy as possible, in order to maximize programming productivity.

"We shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers."
- The Humble Programmer by Edsger W. Dijkstra (ACM Turing Lecture 1972)

External links

- Programming at Python speed
- It's not about lines of code
- Scripting: Higher-Level Programming for the 21st Century (J. Ousterhout, IEEE Computer, Vol. 31, No. 3, March 1998, pp. 23-30.)
- Java offers Increased Productivity
- Icon - very high level programming language


My name is Atle Iversen, and I'm the founder of PpcSoft (read more).

Contact me at atle.iversen@ppcsoft.com

RSS feed

Most popular

KM 3.0: This time it's personal
PKM, filtering and Information overload
iKnow vs. OneNote vs. Evernote
The power of checklists
Synchronizing multiple computers

Latest articles

iKnow 2011 released !
The Memex

Windows Development
Programming Productivity
C* - C star
iKnow minor update
iKnow and information overload

Using iKnow for movies
Using iKnow for research
Efficiency and Scalability
iKnow for Mac/Linux

PKM, filtering and Information overload
Note: Grammar Mistakes
PpcSoft iKnow Help
Price, service, features
Note: Life

Yellow notes
Note: xPeople
Usability: Full-text search
Personal Wiki
Usability: Font size

KM 3.0 Part IV: A practical KM system
KM 3.0 Part III: The KM process
KM 3.0 Part II: The value of knowledge
KM 3.0 Part I: What is KM ?
KM 3.0: This time it's personal

Usability: Incremental search
Synchronizing multiple computers
Note: First Aid
iKnow vs. OneNote vs. Evernote
Wikipedia + Google = iKnow

Usability: Copy / Paste
Note: Poems
Note: Google
Usability, Simplicity, Productivity
Productivity Secrets

The power of checklists
Capturing vs. Sharing knowledge
Second-sibling problem
Note: 2Do
Note: Creativity

Note: Productivity
Information overload
Enterprise 2.0

Personal KM
The Greatest Thing
Social Media
The Answer

Copyright 2002-2012 PpcSoft. All Rights Reserved. | Sitemap | Contact Us