People who are not professional developers can use EUD tools to create or modify software artifacts (descriptions of automated behavior) and complex data objects without significant knowledge of a programming language. In 2005 it was estimated (using statistics from the U.S. Bureau of Labor Statistics) that by 2012 there would be more than 55 million end-user developers in the United States, compared with fewer than 3 million professional programmers.[1] Various EUD approaches exist, and it is an active research topic within the field of computer science and human-computer interaction. Examples include natural language programming,[2][3] spreadsheets,[4] scripting languages (particularly in an office suite or art application), visual programming, trigger-action programming and programming by example.