Take the 2-minute tour ×

End-User Programming is where regular end users, i.e. non-programmers, are able to customize a program, or create a new one, with minimal training or instruction.

App Inventor for Android is one recent example, but perhaps the most popular example of end-user programming is the spreadsheet.

What examples of end-user programming have you seen used, or believe to be useful? What's the philosophy of the system? What challenges remain?

share|improve this question

closed as primarily opinion-based by gnat, Corbin March, GlenH7, MichaelT, Michael Kohne Aug 31 '13 at 23:12


Could you elaborate a little more on the "are able to customize a program" - "customize"? As in save the layout of the icons, script in the program ... am I even on the right track? –  Rook Oct 30 '10 at 23:29
The literature on end-user programming leaves this point pretty vague. But simple customization of the ribbon in Office counts, for example. I wouldn't consider such a simple customization interesting. Customization through rule writing is probably closer to the truth. –  Macneil Oct 30 '10 at 23:59
add comment

10 Answers

up vote 2 down vote accepted

There are a lot of, what many would call, "domain specific" languages:


  • Matlab & Simulink
  • Maple

Control Systems:

  • Ladder Logic
  • Function Block Diagram
  • Sequential Function Chart
  • I might even include the LEGO Mindstorms programming software here


  • SPSS


  • SQL (the syntax is declarative enough that most non-programmers can write queries)
  • SQL Server Integration Services (I'm thinking about the flow-chart like editor here)
share|improve this answer
Maybe a GUI like in MS Access, SSMS or a report writer like Crystal Reports to create a query, but not SQL itself. –  JeffO Nov 7 '10 at 17:58
@Jeff: I agree. SQL requires a learning curve, though that curve may be shallow for most. –  Michael K Nov 9 '10 at 15:06
@Micheal - most end users or those aspiring to be programmers? Maybe with formal instruction, but they tend to stick to the graphical query builders and only edit the text on rare occasions. –  JeffO Nov 10 '10 at 13:32
Ladder Logic was intended to be easy to understand for electricians and engineers however in practice the logic become unmanageable for end-users for anything non-trivial. –  Christopher Jul 21 '11 at 7:10
add comment

Any domain-specific language worth it's salt ought to be considered a viable example of end-user programming, since that is its primary objective...to be familiar enough to the user that they don't have to be a software engineer to use it.

share|improve this answer
There are a lot of full-bred languages which are popular/widely used by non-software-engineers (Fortran, MATLAB, Cobol, VB, R, ...). So where do we draw the line? Buy yes, in general, your formulation is correct. +1 –  Rook Nov 9 '10 at 16:45
add comment

LabVIEW, the graphical programming language, used by many scientists and engineers (especially in biometrics).

Arguably, it showed the money path of the graphical programming for a much bigger software company.

share|improve this answer
Thanks, this is very useful. BTW, what's the much bigger software company? –  Macneil Nov 10 '10 at 4:22
@Macneil: msdn.microsoft.com/en-us/library/aa480213.aspx –  rwong Nov 10 '10 at 5:27
add comment


Has support for Python scripting (modifying input data, Fourier analysis, ...)


VBA and LISP scripting

Would these count as end user programming?

share|improve this answer
The OP said "non-programmers", so I hesitated to include VBA and LISP. However, with LISP you can make an "internal" domain specific language such that the end user doesn't know they're using LISP. –  Scott Whitlock Oct 31 '10 at 14:01
@Scott W. - Yeah ... but then again, I don't know also where to put the line between non-programmers and progarmmers so ... it's all relative. –  Rook Oct 31 '10 at 18:50
VBA definately counts partly because of the recorder, and partly because there are alot of non-programmers out there who use it! –  Anonymous Type Nov 8 '10 at 5:38
add comment

Microsoft SharePoint allows users to do quite a bit graphically without any code. It includes data entry with formating and verification, security, work-flow.

share|improve this answer
add comment

VBA when used with Excel or Access

It deserves its own answer, and is probably the most widely used example of a end-user programming environment on the planet.

share|improve this answer
add comment

I've heard good things about Kodu, from Microsoft. It was developed to allow kids to build their own games without already knowing how to program. http://fuse.microsoft.com/project/kodu.aspx

share|improve this answer
add comment

Interface Builder

Actually we had a designer working on the design of an iphone app and he could easily work on Interface Builder with very short learning curve!

share|improve this answer
add comment


Back in the day, mIRC scripting was a relatively harmless way of exposing end-users to simple variables and event handling. It probably still is, really.

share|improve this answer
add comment

There's a spectrum of end user customization; the trivial ones (like dragging/dropping the menu items in Office) require little effort, and provide little customization. Progressively more complex customizations require progressively more knowledge and programming skill. At that extreme is my personal favorite


Chunks are written in C, but much of it is written in Emacs Lisp, which is fully available to you as the end user. If you take the trouble to learn it, you can customize your editing experience to your hearts' content.

share|improve this answer
add comment
