compare_languages
Trying to find the ideal programming language, one that suits you and is a joy to use, can sometimes feel like an impossible or never-ending task.
Computer languages are a convenience invented to deal with cantankerous pernickety computers. You can make a language "easy" in various ways. There is no point in arguing about the superiority of one language over another because you must deal with cantankerous pernickety programmers. That is why there are thousands of programming languages available (eg http://rosettacode.org/wiki/Category:Programming_Languages).
One possible way to classify them might be as follows:
A hardware language "starts with 0 and 1 bits and then builds an interface to humans." Examples include C, C++, C#, Java. Symptoms of a hardware language are:
- hundreds or maybe thousands of data-types (eg https://msdn.microsoft.com/en-gb/library/windows/desktop/aa383751(v=vs.85).aspx just for starters)
- terse syntax with pitfalls aplenty (eg dangling else)
- when indexing the first element is zero
- efficient, but difficult to program
- often displays very cryptic error messages (esp C++)
- usually compiled-only
A hardware language is convenient if your primary focus is accessing the computer internals.
A shortcut language "introduces clever tricks to make programming easier." Examples include Perl, PHP, Python, Ruby, Tcl. The symptoms of a shortcut language are:
- variables are often not declared (simple typos raise no error)
- duck-typing; data-type changes with value (no alerts when street_name gets set to 37.8)
- operators and functions do different things depending on data values
- each shortcut means a new set of rules to memorize and use
- overall design is not coherent, but the shortcuts are great
- sometimes extra shortcuts are invented to make other shortcuts practical
- usually interpreted-only
A shortcut language is convenient if you already think like the language designer (or take the effort to learn to think like they do).
A rational language "is based on an academic principle." Examples include Lisp, Prolog, Racket, Scheme. The symptoms of a rational language are:
- mathematical basis (functional language)
- structural basis (list processing language)
- declarative basis (logic programming language)
- central feature: pattern matching or logic processing
- usually interpreted-only
A rational language is convenient if you have exotic or special problems to solve (it also helps to have a PhD hanging on the wall).
An euphoric language "is based on simple consistent design." The symptoms of an euphoric language are:
- simple is better
- very few fundamental data-types, just enough to aid development
- safety, pointer, memory, and garbage issues are handled for you
- no surprises, coherent design and performance
- helpful bug reporting
- readable
- maintainable
- interpreted and compiled
An euphoric language is convenient if you want to focus on solving the problem, rather than solving the solution.
Euphoria is proven
- Euphoria since 1993 by Robert Craig (no longer maintained)
- OpenEuphoria is open source and free
- Phix is an alternative implementation, more actively developed than OpenEuphoria but lagging in some areas, especially Linux.
Euphoria is programmer friendly
- solve your problem rather than solve the solution
- data-types and user defined types aid development
- automatic and efficient memory management
- run-time checks for uninitialized variables and safe execution
- index checks are always done, and start from one
- maintainable with lucid bug reporting
- faster than most popular languages
Euphoria is flexible
- multiplatform Windows and Unix (Linux, BSD, OSX)
- interpreted for quick development
- compiled for distributing applications
Not Categorized, Please Help
|
- history, backlinks
- Last modified Jun 07, 2023 by cyberhardt