JAVA vs. Python

Uncategorized

Recently when discussing high school computer programming with a district supervisor the question “What about Python”? was raised. The district supervisor indicated that the goal of the computer programming course was to have students ready for college.

I thought that was a great topic to discuss: JAVA vs. Python

The first notch in the column of JAVA is that the AP Computer Science A exam is based on the JAVA programming language. This is subject to change, as prior to 1999 it tested on Pascal programming language and from 1999 to 2003 tested on C++ programming language. So if the goal is “preparing students for college” what better way is there by helping them secure their first college credits by obtaining a 3, 4 or 5 on the Advanced Placement test (different institutions will accept different scores, but generally 3 or above are considered acceptable)?

The second notch in the column of JAVA is that students are “raised” using JAVA at the lower grade levels without knowing it. The Massachusetts Institute of Technology offers Scratch and University of Virginia/Carnegie Mellon offer Alice. Alice also offers a myriad of resources geared towards teaching it. Controlled studies show retention rates with programming nearly doubled when using Alice. These are commonly used at the K-8 level to teach object oriented programming (JAVA).

The third notch in the column of JAVA is that it is everywhere. To navigate nearly all websites you will need to have JVM (Java Virtual Machine) installed. JAVA updates for you too and is available this way on all platforms (mobile, Mac, PC, etc.).

The fourth notch in the column of JAVA is static typing vs. dynamic typing. JAVA has static typing and Python has dynamic typing. This means in JAVA you set your variable types and that is it, in Python you can change the types later in the program. When teaching programming getting the basics down is important, so displaying static variables is necessary to introduce what each variable does and what it cannot do.

The fifth notch in the column of JAVA is the availability of IDEs (Integrated Development Environments). The JAVA IDEs are widely known and on every college computer in some capacity whether it is Dr. Java, BlueJ or Eclipse. Dr. Java and BlueJ are geared more towards students, while Eclipse is geared towards “real world” programming. All are free and have excessive resources available (again) geared towards teaching. Python has its share of IDEs, but they are not as highly thought of or steadily backed for educational purposes.

The sixth notch in the column of JAVA [and my personal favorite] is it is easier to “infuse” JAVA into web design projects. Javascript, JAVA applets, PHP, Perl, VBScript, Apache and MySQL can all be mastered for web design purposes once the basic understanding of JAVA has been reached.

The seventh notch in the column of JAVA is in regards to compiling. When compiling JAVA programs the IDE will specifically indicate all errors (by line) and warnings, so that the user can modify the code appropriately. This allows students to see mistakes in real time. Though in most cases errors are issues with syntax.

The eight notch in the column of JAVA is transition. In my experience it is very easy to pickup other programming languages once you have the concepts of JAVA down because JAVA is heavily detailed, while other languages are not as involved. Python does have a wonderful resource available for transitioning from Python to JAVA though.

Finally, JAVA simply has more resources available to reinforce any concept in the classroom. All things being equal (which they are not) I lean towards the “product” that allows me to reinforce lessons for multiple learners. JAVA affords more luxuries in this aspect.

NOTE: Mastering multiple programming languages put students in the best position to secure computer programming positions. Students may be required to seek out such opportunities as most institutions offer multiple courses in JAVA and limited opportunities in other programming languages. MOOCs and other online resources are encouraged.

Leave a Reply

Your email address will not be published. Required fields are marked *