+ 2
Aren't we supposed to be simplifying code to make it easier for the next generation to learn?
isn't code supposed to reduce every part used to an electrical impulse so that we can use these simplified constituents as building blocks for more complex matter?
5 Answers
+ 1
@L. Milunovic I disagree with the priority of efficiency over simplicity.
if something is simple, it's easy for people to get started with it, get to its limits and try to find a solution to overcome this limits.
If something is complicate only few people will ever attempt getting started, fewer will get to its limits and fewer will try to find a solution.
As always the more solutions available, the faster and the better the outcome you can get.
Btw just my thougt.
+ 1
Case study:
wiring/arduino project.
Before this project programming a microcontroller was reserved to higly skilled and specialized engineers or very patient and motivated people.
After wiring/arduino every one can basically program a very versatile set of MCUs.
Many people involved, different projects, improved interfaces boom of the IOT (don't know if and how the last point is so beneficial). Some of those people end up diving to the Avr Assembler code for necessity. How would they have done that without wiring/arduino?
wiring/Arduino is based on Processing IDE, a project by MIT to make coding easier to approach to visual/interactive designers and in general to people that don't code as their primary activity.
Processing simplifies Java taking out some technicalities and other cumbersome stuff that usually ovewhelms beginners, making easily accessible advanced stuff like OOP, files/image manipulation, computer vision, sound, hardware interfacing......
My coding experience is due to this two platforms that allowed me to explore fields of knowledge I would never thought exploring otherwise.
+ 1
@seamiki, I agree with you completely but that's what happened in Java language design, that is the point. And I didn't give priority to efficiency over simplicity, you just need to pick the right tool for the right job to be done that is it. And that is what I said, you will start with something simple (simple in programming terms) like python not assembly. And my point is: more simple, less efficient, more limits. That's not something I made up, it is how it is. C++ is hard but efficient, that's why computer games that need high graphics are MOSTLY programmed in C++, and not Java. But when it comes to server-side apps where you have loads of memory you don't mind it to be super efficient so you use Java which is more simple to use. You need to try hard, think, practice and be CONSISTENT in what you are doing to see the results and it is not easy, if it was everybody would do it, as I sad.
0
Yeah, that is actually what it is done in high-level programming languages (like Java, for example). But you have to think about it in other way too: more simplified - less optimized. So it all depends on what job some programming language is meant to do. I see abstract classes tag here, if your question is about abstract classes, you should be more concrete if something isn't clear to you.
0
I didn't talk about prioirity of it I said how it was done and probably had to be done. Somewhere you need efficiency to get job done, somewhere not. First of all, programmimg is not easy. And it is not simple, if it was everybody would be a programmer. IAnd ye, simple is good for begginer, that is why you usually start with python and not assembly language.