KPL is a programming language designed for kids aged 10-14. In brief,
In this paper, we introduce Kid’s Programming Language, or KPL. KPL is an integrated development environment (IDE) and programming language which are similar to but greatly simplified from current mainstream IDEs and languages. KPL is educational freeware. KPL was initially targeted at the 10-14 age group, but has proven to be engaging and interesting to beginning programmers and hobbyists of all ages. KPL offers a highly leveraged object model which emphasizes graphics programming, including 2D and 3D graphics. KPL intends to address the problem of declining computer science interest and enrollment by 1) making it easy for beginners to get started with computer programming, 2) capturing and holding beginners’ interest by emphasizing graphics and games programming and 3) enabling a smooth “graduation” from KPL into mainstream languages and IDEs.
Simply put, it’s a statically typed OO programming language with some utility functions for 2D /3D graphics, sound and a scaled down version of visual studio/eclipse like IDE. In my opinion, it’s all snake oil. None of the claims in the paper are substantiated with evidence.
Firstly, the motivation to teach programming at schools is not to make them industry grade programmers, but to teach them the concepts of the world around us in a scientific (and mathematical) way. Computer programming and programming languages are a direct application of many mathematics concepts taught in school.
Secondly, KPL has none of the characteristics of a beginner’s language. Let’s compare it with python (I know there are better alternatives, but Python is a close contender)
1) Static typing is bad. I think the only reason they(KPL) needs it in the language is to support auto-completion in the IDE. While type safety is important it confuses newbies hell of a lot. I still wonder why the author added static typing to the language if he was impressed by BASIC.
2) The syntax is too verbose. Python’s syntax is much more concise.
3) Python IDE’s code completion capabilities are as good as Java IDE’s atleast for small programs.
4) Objects are best done using Prototypes or in a sense of objects as python.
5) Structures are more complex as they involve additional type system overhead. Dictionaries are more intuitive.
6) Does KPL give friendlier errors than other languages? Does the error explain the semantics of the language?
7) Aren’t closures more natural to be included in a beginer’s language?
8 ) KPL makes it easy to write 3D space fighting games. I don’t think implementing a 3D game gives more learning than a simple 2D board game? If writing 2D board game is equally enriching, then we can use a ton of other languages. Why KPL?
Thirdly, Squeak has set the bar high enough for any new major innovation in the field. Anything that makes learning programming simple is (majority of the times) selling snake oil.
While the author’s intentions seem noble, this language is an example of how a lousy product gets marketed under a veil of noble intentions. I wonder how they selected such a lousy paper at the conference like SIGGRAPH.
Is this another MS trick to make users stick to their platform?