Power of Modern Programming Languages is That They Are Expressive, Readable, Concise, Precise, and Executable (scientificamerican.com)
An anonymous reader shares a Scientific American article: Programming has changed. In first generation languages like FORTRAN and C, the burden was on programmers to translate high-level concepts into code. With modern programming languages -- I'll use Python as an example -- we use functions, objects, modules, and libraries to extend the language, and that doesn't just make programs better, it changes what programming is. Programming used to be about translation: expressing ideas in natural language, working with them in math notation, then writing flowcharts and pseudocode, and finally writing a program. Translation was necessary because each language offers different capabilities. Natural language is expressive and readable, pseudocode is more precise, math notation is concise, and code is executable. But the price of translation is that we are limited to the subset of ideas we can express effectively in each language. Some ideas that are easy to express computationally are awkward to write in math notation, and the symbolic manipulations we do in math are impossible in most programming languages. The power of modern programming languages is that they are expressive, readable, concise, precise, and executable. That means we can eliminate middleman languages and use one language to explore, learn, teach, and think.
With modern programming languages -- I'll use Python as an example -- we use functions, objects, modules, and libraries
Who writes this shit? Confirming that C uses neither functions nor objects nor modules nor libraries
I remember reading about why COBOL so much superior to FORTRAN. And sounds exactly like the summary!
sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
"...That means we can eliminate middleman languages and use one language to explore, learn, teach, and think."
One solution for all? Never gonna happen.
Some prime examples:
"That means we can eliminate the standard system and use one metric system to measure everything."
"That means we can eliminate the right-side driving wheel and everyone will drive on the same side of the road."
"That means we can eliminate all of the world's individual spoken languages and use only one language to communicate."
Humans are stubborn. Like really fucking stubborn.
I don't buy this. A simple hello world in Java is much more complex and wordy than the same functionality in 50 year-old BASIC. And any language that relies on whitespace to modify the program flow cannot be described as readable.
And many object-oriented programs have so much of their basic functions hidden away in inheritance and class definitions that a printed form of a program is impractical. I would not call that "progress".
As for natural language, it tends to be incredibly imprecise: the meaning is only apparent when the context of its use is taken into account. I would love to see a translator that tried to convert "natural language" sarcasm into executable code. But I wouldn't want it running in my driverless vehicle or airplane.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
Unless you're talking about C, or D, the fact of the matter is that you've hidden all the computational overhead in multiple layers of automated translation behind your syntactical sugar.
Case in point: non-memory managed languages don't need to manage memory - memory requirements for these programs are huge due to inadequate planning. How many programmers take into account object pooling?
Case in point: The Motorola Startac was a very limited device but had its programming in hardware - you could not type faster than the device. New smartphones have 2-3Gb in memory and yet are less responsive.
Case in point: a field programmable gate array was never intended for production use - yet every computer today uses these
Case in point: how many Java programmers think about += string concatenation versus =+ string concatenation?
While the K&R manual is correct that every complex problem can be further simplified by one more level of indirection, it is not true that there is no cost.
Our computers today are 1000 times more powerful and solve the same problems as before. So what has changed? Our efficiency in coding as dropped and we are not using the resources at hand to make better solutions but sloppier ones that require less effort on our part but more computational overhead.
We have become lazy and complacent and we call it progress. Until our programs can optimize to the level that we can generate by hand, I would not deem to consider our current state of programming languages an improvement in anything other than readability.