When starting to teach computer programming there is no doubt that visual programming languages are best suited for young learners. But once the students have reached a certain mastery, there are a lot of languages to choose from. “8,512 different programming languages” (Alfred Thompson) have been created so far while the first computer was only made 70 years back. You can apply various criteria to figure out which of those languages are most suitable for students to learn coding. Python is the best choice to learn coding with a textual programming language. It is best suited for a beginner when considering the ease of use, support, and the complexity of the language.
Python has an easy to install and use integrated development environment (IDE), suitable for beginners. All the tools you need can be downloaded in one package free of charge from the internet. There are packages available for all popular operating systems, so the beginner does not need to tweak installation files. He just needs to install and get going. All tools needed, interpreter, editor, debugger are available out of the box. The user interface is easy, there is no need to set parameters or other values the beginner may not be familiar with. The editor offers as default syntax highlighting, so the keywords of the programming language are highlighted in colour. This makes it easier for the beginner to find errors and see the structure. Debugging is further facilitated by comprehensive error messages. For all those reasons Python is very suitable for beginners to learn coding.
The programming language Python is very popular. It has a huge community of helpful coders that offers help. In addition, you find many useful online tutorials to help you getting started. There are many forums on the Internet where people working with Python are sharing their experiences and helping each other, www.python-forum.org is one example. Then you have open source projects promoting learning about computing and programming, for example the Raspberry Pi. On this platform, Python is the preferred programming language. The foundation offers a lot of examples and tutorials to help the beginner. In general the big community of “Pythoneers” has created over the years many libraries to make writing code for graphical output, simulations, games, etc. easier. You just need to import and use those libraries in your program. With that help you can write programs that would require you a lot of additional coding in other languages. These are three reasons why the Python community is really powerful and helps a “newbie” to start with this language.
The Python language has an easy and versatile syntax and semantics. It is not a typed language, so you do not need to declare variables as integers or text strings, the interpreter will figure this out by himself based on defaults and clues you give. While this may sometimes cause confusion, it saves time for typing and out of experience the beginning programmers learn to deal with this rather fast and prefer the saved time for declaring variables. The language is rather compact and uses indents to define blocks of code that belong together. This saves a lot of time for typing code, other languages use various forms of brackets to define blocks. This approach also forces the beginner to pay attention to the style of his coding from the first day, that is useful when he needs to understand his code later of find errors. Furthermore the language offers features for three programming paradigms, the procedural, the object oriented and the functional. This makes the language very versatile for the advanced programmer. These are some examples, why Python is easy and versatile.
JAVA is another well-known programming language, it is used for commercial projects (i.e. Android OS) and at universities. Compared to JAVA, Python has several key advantages. The easier syntax has just been talked about in the previous paragraph. This is a major advantage for the beginner. The availability of libraries is another criteria. While Python is supported by a lot of freely available libraries, there are much less available for Java. Another reason to favour Python over Java is the licensing. Python is known for a very open licensing policy. So the FAQ page of the Python foundation states that “the PSF [Python Software foundation] License allows Python to be included in non-open applications, either in unmodified or modified form“ (Paul Boddie). So there is no problem in bundling your code together with Python and package it for easier installation by a third party. This is not the case for Java where the Java Runtime Environment (jre) cannot be bundled together with your program due to license constraints by its owner, the Oracle Corporation. This is a restriction that makes people move away from Java in some areas.
The Open Roberta project is an initiative by the Fraunhofer Institute FhI (Germany) and is developing and maintaining an IDE to teach children robot programming. They have traditionally been using Java for their project, also due to a missing alternative. Nevertheless they see as one of its shortcomings that “[they] can’t ship ready to use sd-card images, since [they] cannot redistribute the oracle jre” (Stefan Sauer). So the institute is now working on migrating their code to Python so to overcome the shortcomings of the existing solution with Java. This is one example of why Python is better suited for applications in the educational sector.
Summarizing, Python has a lot to offer for the beginner with coding. It has an easy to install and manage programming interface with all the tools a beginner needs to start coding. There is a huge community behind Python developing new libraries and offering help when needed. The language in itself is easy to learn and work with. So it is better suited than Java, another well knows programming language. For all those reasons Python is the best suited textual programming language for learners.
Thomson, Alfred. “HOPL: an interactive Roster of Programming Languages.“ Microsoft Education Blogger, Jan 15th, 2007. Web. Nov. 29th, 2015
Sauer, Stefan. “Open Roberta on ev3dev.” Open Roberta, Oct. 20th, 2015, Web Nov. 29th, 2015 https://mp-devel.iais.fraunhofer.de/wiki/display/ORDevel/Open+Roberta+on+ev3dev
Boddie, Paul. “”. March 29th, 2014,, Web Nov. 30th, 2015. “Python Software Foundation License FAQ, ” https://wiki.python.org/moin/PythonSoftwareFoundationLicenseFaq