These comparisons think about language problems solely. In apply, the selection of an artificial language is commonly settled by different real-world constraints like value, handiness, training, and previous investment, or perhaps emotional attachment. Since these aspects are extremely variable, it appears as a wastage of your time to think about them abundant for this comparison.
Python programs are typically expected to run slower than Java programs, however, they conjointly take abundant less time to develop. Python programs are sometimes 3-5 times shorter than equivalent Java programs. This distinction will be attributed to Python's integral high-level information sorts and its dynamic writing. for instance, a Python coder wastes no time declaring the kinds of arguments or variables, and Python's powerful polymorphic list and wordbook sorts, that made syntactical support is constructed straight into the language, notice a use in virtually each Python program. due to the run-time writing, Python's runtime should work tougher than Java's.
For instance, once evaluating the expression a+b, it should 1st examine the objects a and b to search out their sort, that isn't celebrated at compile time. It then invokes the suitable addition operation, which can be Associate in Nursing overladen user-defined technique. Java, on the opposite hand, will perform Associate in Nursing economical number or floating purpose addition, however, needs variable declarations for a and b, and doesn't permit overloading of the + operator for instances of user-defined categories.
For these reasons, Python is far higher suited as a "glue" language, whereas Java is best characterized as a low-level implementation language. In fact, the 2 along build a superb combination. elements will be developed in Java and combined to make applications in Python; Python can even be wont to paradigm elements till their style will be "hardened" during a Java implementation. To support this sort of development, a Python implementation written in Java is below development, that permits vocation Python code from Java and the other way around. during this implementation, Python ASCII text file is translated to Java bytecode (with facilitating from a run-time library to support Python's dynamic semantics).
Python and Perl return from an identical background (Unix scripting, that each have long outgrown), and sport several similar options, however, have a special philosophy. Perl emphasizes support for common application-oriented tasks, e.g. by having integral regular expressions, file scanning and report generating options. Python emphasizes support for common programming methodologies like system style and object-oriented programming and encourages programmers to jot down clear (and so maintainable) code by providing a chic however not too cryptic notation. As a consequence, Python comes near Perl however seldom beats it in its original application domain; but Python has Associate in Nursing relevance well on the far side Perl's niche.
Like Python, Tcl is usable as Associate in Nursing application extension language, still like a complete artificial language. However, Tcl, that historically stores all information as strings, is weak on information structures and executes typical code abundant slower than Python. Tcl conjointly lacks options required for writing giant programs, like standard namespaces. Thus, whereas a "typical" giant application exploitation Tcl sometimes contains Tcl extensions written in C or C++ that are specific thereto application, a similar Python application will usually be written in "pure Python". Of course, pure Python development is far faster than having to jot down and write a C or C++ element. it's been aforementioned that Tcl's one redeeming quality is that the Tk toolkit. Python has adopted Associate in Nursing interface to Tk as its normal graphical user interface element library.
Tcl 8.0 addresses the speed issues by providing a bytecode compiler with restricted information sort support and adds namespaces. However, it's still a far a lot of cumbersome artificial language.
Perhaps the largest distinction between Python and Smalltalk is Python's a lot of "mainstream" syntax, which provides it a leg abreast of coder coaching. Like Smalltalk, Python has dynamic writing and binding, Associate in Nursing everything in Python is an object. However, Python distinguishes integral object sorts from user-defined categories and presently does not permit inheritance from integral sorts. Smalltalk's normal library of assortment information sorts is a lot of refined, whereas Python's library has a lot of facilities for addressing net and World Wide Web realities like email, hypertext mark-up language, and FTP.
Python features a completely different philosophy relating to the event surroundings and distribution of code. wherever Smalltalk historically features a monolithic "system image" that contains each the surroundings and also the user's program, Python stores each normal modules and user modules in individual files which may simply be rearranged or distributed outside the system. One consequence is that there's quite one choice for attaching a Graphical programme (GUI) to a Python program since the graphical user interface isn't designed into the system.
Almost everything aforementioned for Java conjointly applies for C++, simply a lot of so: wherever Python code is often 3-5 times shorter than equivalent Java code, it's usually 5-10 times shorter than equivalent C++ code! Anecdotal proof suggests that one Python coder will end in 2 months what 2 C++ programmers cannot complete during a year. Python shines as a glue language, wont to mix elements written in C++.
Common Lisp and theme
These languages are near Python in their dynamic linguistics, however therefore completely different in their approach to syntax that a comparison becomes virtually a spiritual argument: is Lisp's lack of syntax a plus or a disadvantage? It ought to be noted that Python has self-examining capabilities almost like those of Lisp, and Python programs will construct and execute program fragments on the fly. Usually, real-world properties are decisive: Common Lisp is massive (in each sense), and also the theme world is fragmented between several incompatible versions, wherever Python features a single, free, compact implementation.