Switching from one Language to another
Post here if you want to stick pieces of code together, but unfortunately each piece is written in a different language.
"The problem with mobilizing software volunteers": “The good news is that there are a lot of programmers out there happy to donate their time and talent to helping these project along. The bad news is that each of them has their own favorite programming language … Our UAVs are using … NXT-G, Lua, Visual Basic, Python, Stamp Basic, LabView?, C, and Parallax’s Spin (for the Propeller chip). … it’s a programming language Tower of Babel.”
Could the SoftwareBazaar help?
Many people believe the only solution is to pick one language that is “powerful” enough to do everything, and re-write all the other pieces in the One Chosen Language. However, some pretty smart people (Wiki:AlternateHardAndSoftLayers) recommend picking 2 different languages, and re-writing all the other pieces in one of those 2 languages (and occasionally, if necessary, moving a fragment from one of the 2 chosen languages to the other).
Community:2007-10-09_en describes an analogous problem with human languages.
To continue this analogy of programming “languages” with human languages, the “Let’s all learn English” idea is analogous to “Let’s all use C” or “Let’s all use Java”, because it is already widely useful.
The “dream of equality. Everybody has to learn the language, so we can meet on equal terms” idea sounds a lot like UML, the unified modeling language, that (from what little I know) is supposedly programming-language-agnostic; it’s equally difficult to translate it into any real programming language.
The “learn this easy-to-learn language first, then learning a Real Language will be easier” sounds a lot like the goals for the interactive languages – BASIC and Pascal and Logo and Forth and Python.
I don’t know about this analogy. Programming languages usually come with their own standard libraries (vocabulary?), example code (literature?) and assumptions on the methodology (culture?). The latter is especially important for programming languages with non-trivial differences (use braces or indentation for marking blocks): C, Java, Prolog, LISP, JavaScript? are not just different dialects – they often use fundamentally different approach to solve the problems, and are also designed to solve fundamentally different problems. Sure, all of them are equivalent, in the sense that they are Turning-complete (not sure about Prolog), but they still encourage completely different ways of thinking. The Sapir-Whorf hypothesis might be disputable for natural languages, but programming languages definitely affect he way we think. Reducing this to a single language – or just a pair of them – would result in a great loss in my opinion. A loss of intriguing paths the mind can follow.
There is another way. Interoperability. Almost all sane programming languages are for example able to use libraries written in C, or looking like they were written in C – that is, following the C conventions. Similar, although much smaller islands of compatibility emerged with Java and .NET (although it’s disputable if we need more). I think this is the way.
Yes, I agree that those who want to become really good programmers should learn far more than 2 programming languages.
I agree that it is a good thing for one project to use more than 1 programming language.
However, I timidly only went as far as one project using 2 different programming languages that interoperate with each other. Are you seriously recommending that a single project should use more than 2 different programming languages?