Does anyone know of any scripting / programming languages that are targeted at (or would be suitable for) use by non-techies?
I have an application that I want non-technical users to be able to extend with simple scripts, however I'm struggling to find a suitable language to use, in particular:
- It should be forgiving to users (for example it probably shouldn't be case sensitive)
- It should make it difficult to shoot yourself in the foot (definitely no threading! I also wondered if making everything immutable would make it easier to grasp what is going on)
- Ideally I'm also after an easy to use editor
- There definitely needs to be an easy debugging process and intuitive error messages so that users are able to understand the logic behind a script and figure out what went wrong.
Although there are plenty of excellent and powerful scripting languages out there suitable for embedding into an application, most of the popular ones have flaws that make them difficult for non-techies to use:
- Python's sensitivity to whitespace makes it too easy to break your script without realising why.
- JavaScript is case sensitive, and can be very cryptic about error messages at times
- VBScript has 3 different types of Null!
I'm definitely not interested in any visual languages or any rubbish like that - what I'm after is a proper programming language, just one that is forgiving to the needs of non-technical people.
Update:
Just to clarify, the sort of logic / scripts that I'm talking about are things like:
- Setting some string value based on whether a boolean value is true or false
- Looping through a collection and adding up the values of some attribute whenever some other attribute is true
- Some simple string manipulation
- etc...
The langauge needs to be able to cope with objects and collections, and I need to be able to add some simple functions that hook into some application specific logic, however none of these scripts are going to reach any real level of complexity.
I wanted to avoid creating a domain specific language because its a lot of work and effort, and would end up being a lot poorer in quality than using an existing language. Also the logic is nearly 100% focussed around simple functionality provided by just about every existing langauge out there.
Also to address concerns over technical skill: These people are Smart, theyre just not programmers - although very capable of dealing with logic the average user will be unfamiliar with most programming concepts and (more importantly) will have absolutely no interest in learning syntax or programming concepts beyond the absolute minimum required to achieve the desired effect.