4 ms·
Perhaps I'm grumpy, but questions like this irk me. A programming language designed by a non-programmer would simply not work. It would have non-logical magic t
by bsenftner 5y ago
Perhaps I'm grumpy, but questions like this irk me. A programming language designed by a non-programmer would simply not work. It would have non-logical magic the non-programmer expects us programmers to create, things like the "do what I mean" function. One would have to seek out someone with a nearly programming language formality in their logical thinking, such as a mathematician, or linguist.
Whatever such a non-programmer would create, it would have giant logic holes they never imagined, rendering the toy "language" unusable for anything beyond the toy concepts the non-programming imagined, and those would require that "do what I mean" function to work at all.
- ModernMech 5y ago> One would have to seek out someone with a nearly programming language formality in their logical thinking, such as a mathematician, or linguist I’ll give you some examples of people who possess the kind of logical mind you describe here yet lack programming ability: - lawyers work with legal code trying to figure out ways to hack it to help their clients. Say what you will about lawyers, but they are good at finding and exploiting holes in logic. - doctors debug and apply patches to complex, opaque, nonlinear systems. As a programmer, I can relate. - teachers break down complex subjects into small digestible chunks that when consumed, produce a desired result. You have to be very literal and precise when giving children instructions; they tend to do what you say, not what you mean. These three professions are removed from coding but it’s not hard to find analogues to programming in what they do. I think with the right language these people could integrate coding into their work the same way they do writing. And in many cases, with Excel they are. Show me a teacher who doesn’t use a spreadsheet or similar tool to manage their class. You can’t!
- bsenftner 5y agoI completely agree the professions you provide would be people capable of a creating logical critical paths and therefore a programming language. Lawyers would be quite adapt at it, doctors as well, as would be educators - the examples you cite all exhibit professions that require critical analysis to achieve the basics of their profession. However, at the same time I might suspect the attorney would be the best of these three, followed by the educator. My reasoning for why these two would be better than a doctor at creating a programming language is because doctors do not need to work through the understandings of others, while both attorneys' and teachers' work requires the collective understandings of others to agree and that agreement is through the effort of the attorneys and teachers. That logical indirection required by attorneys and teachers is the insight that would enable them to create a programming language capable of use by others. Doctors would create some illegible scribble.
- charcircuit 5y agoJust because a teacher can describe steps, that doesn't mean that it would be easy to make a computer do it. For example a teacher may say to find Waldo in an image: "scan for people from left to right, top to bottom, and stop when you find a guy in a red and white shirt." This would not work well as a programming language. How should this be compiled? How do you know if someone is a person, how do you know if they are wearing stripped clothes, what exactly counts as red?
- ModernMech 5y agoLike I said, children can be just as pedantic as computers, especially when they’re trying. Anyway, the language you describe wouldn’t work well as a tool, but not all programming languages are tools and are still worth making. Using your example, this language could be a fun DSL for interacting with pictures. “Find all cars and make them red” I could imagine a backend tied to machine learning algorithms and a database query engine to make this possible. Parse with nlp, extract a query, form a plan with appropriate backends, execute, render output image. I dunno how useful that is, it would be fun and doable. You just gave me a great idea for my next senior capstone group. Thanks.
- charcircuit 5y ago>Like I said, children can be just as pedantic as computers, especially when they’re trying. Yes, but what are the chances that they make their new language that is not influenced by any other programming related knowledge to be specified at the right abstraction level using abstractions that are easy to implement? A language that they come up with is not going to be good. Similarly if you were to ask a non engineer to design you an airplane, it wouldn't be a good design. Experts are always going to be able to do a better job than those with less knowledge. I personally do not even think a kid is going to come up with some revolutionary concept that should be included into a language designed by experts.
- ModernMech 5y ago> that is not influenced by any other programming related knowledge to be specified at the right abstraction level using abstractions that are easy to implement? Why do they need to be easy to implement? We're talking about design. A lot of PL design is hard to implement. And why does it need to be programming related knowledge? We shouldn't restrict them to things that are easy to implement because then we'd restrict them to a very small subset of possible languages. So when you say "A language they come up with is not going to be good", then I have to ask how are we measuring good? Because if you think that a teacher would not write a good programming language to write programs in, then I would probably agree with you, because writing programs is not something teachers do. But like I said, not all programming languages are used to make programs. Most people use a programming language to do things that decidedly don't look like programming to you and I. For example a lot of developers consider Excel to be a not good language for writing programs. Programmers usually lament that Excel users would be better served by a "proper database", but they neglect to appreciate that making this change would quite literally ruin the tool for them. But there are more Excel programmers than all other developer-centric languages combined. I think a teacher who uses Excel to to manage their classes could design a very compelling DSL for classroom automation. > I personally do not even think a kid is going to come up with some revolutionary concept We were talking about teachers designing the language. The children came into the picture because they would provide teachers a model for relating to the pedantic nature of computers.
- peterhalburt33 5y agoActually, I fall right into this category. I’m a mathematician who has just started to program for “real” this year (Python mostly, trying to learn C++, and Mathematica if you consider it a language). Actually, I find it hard to criticize anything about these languages, and most of the time I find my thinking aligns quite well with them. The main thing I wish for is not a feature in the language, but introductory books for an audience like myself.