Programming languages are formal languages and must adhere to a higher level of rigour than natural languages, they cannot be ambiguous.
They are not strange, they just have to be able to describe a very often complex reality. Beyond the simple hello world there are a myriad of problems to solve. Designing a language with three or four simple constructs is not difficult, but how to use it to describe complex problems? Simplicity of language but complexity of code? To achieve simple code in the sense of easily readable code, we often use not so simple languages, languages with hidden traps that only experts are able to master.
What is needed, possibly, are languages with a low entry level and an expert teacher.
In any case, programming is not easy, it requires organisational skills, abstraction and generalisation, analysis and so on. Probably a mindset that not everyone has and that must be accompanied, if not prone to such practice, by years of study and practice.
We have talked several times about teaching programming to kids. Each time you try to bring up the subject by not addressing the real issue: the kid cognitive path. It’s not the in language itself, but in the right time to teach. There are many suitable languages and some integrated environments to do this without having to reinvent the wheel, especially ignoring the kid’s cognitive capacity. If at a certain age they are incapable of abstracting, there is no teaching that matters.
On the discourse that they can understand better than an adult, I disagree, maybe an old man but not an adult in his full mental faculties.
What would explicit language mean? I assume you mean imperative? Not only imperative languages are explicit. What does explicit mean? Not contain syntactic sugar? For some languages some structures are syntactic sugar and for others the same structures are not. What does explicit mean then?
The clarity you find in an Oberon code others may find in other code, even assembly. You are not able to affirm the clarity of a language you know (obviously readable for you) and negate it for one you don’t. Too much easy don’t think? I rewrote, for example, that code in OCaml and to me OCaml is clearer than Oberon code and I know both languages. Who is right?
In your language, with not inconsistencies (maybe), you are at the dilemma of the simplistic and the useful. Inevitably you fall in 25 years as a programmer, problems are probably real and cannot be ignored. A programming language must be able to deal with these problems, trying to be readable, but above all effective.
One sometimes errs on the side of presumption, thinking that the multitude of people who have tried their hand at language development are therefore demented. That only you can solve the problems of the development world.
No one escapes their own experience, the only one who could do so would be god. Does this entity exist outside of experience? … but, let’s drop this.
As I told you, the idea that programming for everyone is not only utopian but myopic. People should have a critical approach to software before they know how to program, the reverse leads to developers with an ethical sensibility equal to a tick.
Programming languages are formal languages and must adhere to a higher level of rigour than natural languages, they cannot be ambiguous.
They are not strange, they just have to be able to describe a very often complex reality. Beyond the simple hello world there are a myriad of problems to solve. Designing a language with three or four simple constructs is not difficult, but how to use it to describe complex problems? Simplicity of language but complexity of code? To achieve simple code in the sense of easily readable code, we often use not so simple languages, languages with hidden traps that only experts are able to master.
What is needed, possibly, are languages with a low entry level and an expert teacher.
In any case, programming is not easy, it requires organisational skills, abstraction and generalisation, analysis and so on. Probably a mindset that not everyone has and that must be accompanied, if not prone to such practice, by years of study and practice.
We have talked several times about teaching programming to kids. Each time you try to bring up the subject by not addressing the real issue: the kid cognitive path. It’s not the in language itself, but in the right time to teach. There are many suitable languages and some integrated environments to do this without having to reinvent the wheel, especially ignoring the kid’s cognitive capacity. If at a certain age they are incapable of abstracting, there is no teaching that matters.
On the discourse that they can understand better than an adult, I disagree, maybe an old man but not an adult in his full mental faculties.
What would explicit language mean? I assume you mean imperative? Not only imperative languages are explicit. What does explicit mean? Not contain syntactic sugar? For some languages some structures are syntactic sugar and for others the same structures are not. What does explicit mean then?
The clarity you find in an Oberon code others may find in other code, even assembly. You are not able to affirm the clarity of a language you know (obviously readable for you) and negate it for one you don’t. Too much easy don’t think? I rewrote, for example, that code in OCaml and to me OCaml is clearer than Oberon code and I know both languages. Who is right?
In your language, with not inconsistencies (maybe), you are at the dilemma of the simplistic and the useful. Inevitably you fall in 25 years as a programmer, problems are probably real and cannot be ignored. A programming language must be able to deal with these problems, trying to be readable, but above all effective.
One sometimes errs on the side of presumption, thinking that the multitude of people who have tried their hand at language development are therefore demented. That only you can solve the problems of the development world.
No one escapes their own experience, the only one who could do so would be god. Does this entity exist outside of experience? … but, let’s drop this.
As I told you, the idea that programming for everyone is not only utopian but myopic. People should have a critical approach to software before they know how to program, the reverse leads to developers with an ethical sensibility equal to a tick.
CC: @informatica@feddit.it @programmazione@feddit.it @technology@lemmy.world @programming_languages@programming.dev