Python prosRead it, use it with ease. "The main characteristics of a Python program is that it is easy to read," says Pierre Carbonnelle, a Python programmer and blogger who runs the PyPL language index.Python is easy to use and extremely popular in academia, creating a large talent pool, says Sumit Chachra, CTO at Tivix, a software consulting firm that specializes in Python/Django development. Django and Python are leveraged by Tivix in Web and mobile development, he says.Internet of things opportunities. Python may become popular for the Internet of things, as new platforms such as Raspberry Pi are based on it, Carbonnelle says. Raspberry Pi's documentation cites the language as "a wonderful and powerful programming language that's easy to use (easy to read and write) and with Raspberry Pi lets you connect your project to the real world."Asynchronous coding benefits. Python, Deibel says, "is great for writing asynchronous code, which rather than threading uses a single event loop to do work in small units."Multiparadigm approach bests Java. Python's programming approach is not as limited as Java's, Carbonnelle says. "For example, you don't need to create an OO class to print 'Hello world' in Python -- you have to in Java."Python's consSpeed can be an issue. "Because it is an interpreted language, it is often many times slower than compiled languages," Curtin says. "However, it comes back to separating the language from the runtime. Certain benchmarks of Python code run under PyPy run faster than the equivalent C code or others."Absence from mobile computing and browsers. "Python is present on many server and desktop platforms, but it is weak in mobile computing; very few smartphone applications are developed with Python," says Carbonnelle. "It is also rarely seen on the client side of a Web application."Design restrictions. Python devotees cited several issues with the design of the language. Because the language is dynamically typed, it requires more testing and has errors that only show up at runtime, Chachra says.Pros and Cons of JavaIt took one of the authors just over two days to complete a working prototype of the system, with his time divided roughly equally between implementing the Java stack model and translation script, and writing the vector methods. From this standpoint, the experiment was clearly a success: we quickly had a working system that enabled us to execute N code on any Java platform.In terms of language features, Java's stack and array classes were a great help in rapid prototyping, and the language's built-in garbage collection meant that we did not have to adapt the reference-counting code used by the VCODE interpreter. We did not exploit Java's object-oriented features; there is no inheritance, and very few little composition of objects. In essence, we used Java as a portable dialect of C with garbage collection and a good collection of preexisting data structures.Some aspects of Java slowed down both the development process and the generated code. Without templates, parametric polymorphism, or a built-in preprocessor, it is impossible to generate efficient type-specialized versions of the same basic method from within Java itself. Although useful for prototyping, the standard Java stack class is limiting in that it allows manipulation only of the element at the top of the stack, whereas VCODE requires the ability to operate on multiple elements at arbitrary positions in the stack. In terms of runtime performance, creating Java arrays is relatively expensive, because they are defined to be filled with the null value appropriate for their type. This requirement causes an implicit loop over the array, even though the initialization is unnecessary for arrays that will be written before being read. Finally, because Java is a young language, there is little performance data available for use in making informed design and optimization decisions.However, it is easy to solve or work around most of these problems. We could have used an external preprocessor such as the Unix m4 tool to generate multiple type-specialized versions of each vector method