8

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?

Macneil
  • 8,223
  • 4
  • 34
  • 68
  • 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

10 Answers10

6

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.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
  • 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 09 '10 at 16:45
5

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.

rwong
  • 16,695
  • 3
  • 33
  • 81
3

Tecplot

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

Autocad

VBA and LISP scripting


Would these count as end user programming?

Rook
  • 19,861
  • 9
  • 53
  • 96
  • 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
  • 3
    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 08 '10 at 05:38
3

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

JeffO
  • 36,816
  • 2
  • 57
  • 124
3

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.

Anonymous Type
  • 414
  • 4
  • 11
2

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

Mathematics:

  • Matlab & Simulink
  • Maple

Control Systems:

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

Statistics:

  • SPSS

Databases:

  • 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)
Scott Whitlock
  • 21,874
  • 5
  • 60
  • 88
  • 2
    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 07 '10 at 17:58
  • @Jeff: I agree. SQL requires a learning curve, though that curve may be shallow for most. – Michael K Nov 09 '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 07:10
2

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

Jeremy
  • 189
  • 3
1

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!

adranale
  • 161
  • 5
1

mIRC

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.

mootinator
  • 1,280
  • 10
  • 18
1

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

Emacs

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.

Inaimathi
  • 4,884
  • 1
  • 26
  • 34