3 ms·
The article is almost painfully clueless, but one thing that he gets right is that "current" programming languages require skills in math. That is true as long
by nandemo 15y ago
The article is almost painfully clueless, but one thing that he gets right is that "current" programming languages require skills in math. That is true as long as we make the following (non-controversial, I hope) assumptions: programming in Objective C or Javascript is making use of formal logic, and formal logic is math. One of the commenters claim that math is a sort of formal logic instead of the other way round, but that's neither here nor there.
What he doesn't understand is that this is not an accidental feature of the existing programming languages; it's an inherent property of programming languages with enough power, i.e., Turing-complete languages.
Let's leave aside his claim that too many library functions is a bad thing. He also seems to think that such and such a language is difficult because the syntax is difficult, but we know that you can have a very simple language in terms of syntax -- a Turing machine, a bare-bones Lisp, or a C-like language with just assignment, increment, if and goto, for instance -- that will still give rise to very complex programs.
Of course, just because 2 programming languages are Turing-equivalent doesn't mean they're equally good or equally easy to learn or expressive. Most people would agree that for most purposes C is a better tool than Assembly, and that $FAVOURITE_LANGUAGE is better than C. Still, if you can really code Javascript then you should be able to code in Objective C. The only way that he can possibly use Javascript but not Objective C is if the limits his usage of Javascript so much that it is not really being used as full programming language.
What he wants (but doesn't know) are non-Turing-complete DSLs. Just as he can do stuff in HTML/CSS, he might be able to use another DSL to do whatever it is that he wants.
PS: also see this comment and the linked short essay by Dijkstra:
http://www.leavesofcode.com/2011/06/we-need-programming-language-for-rest.html?showComment=1308074712429#c5674906976509442222 http://www.leavesofcode.com/2011/06/we-need-programming-lang...
'On the foolishness of "natural language programming"'
http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EWD667.html http://www.cs.utexas.edu/users/EWD/transcriptions/EWD06xx/EW...
- nxn 15y agoYeah, I read that Dijkstra paper a while back, I was even considering mentioning it somewhere in my comment, but lost the energy to do so due to the time. As for formal logic being used in programming languages, while that is true, I am not sure that is what the author was referring to when mentioning "advanced mathematics". Maybe it was because he mentioned calculus early on and that somehow threw me off course, or maybe because I myself wouldn't look at it as something "advanced". Don't know, truthfully, I have no idea what he meant by "advanced mathematics", so I wont deny that it could have been formal logic. Anyway, I see the point about DSLs and how they could be helpful to the common individual who doesn't want to devote so much of his or her life to mastering an all purpose language. I suppose that's great if you can actually accomplish everything you want that way, but in practice I feel like it would only get a person so far before they were out of options while still needing more. I always looked at DSLs as conveniences and extras to simplify the parts of the problem you don't care to fully concern yourself with. Beyond that scope though, it seems that an all purpose language is still going to be required for the non trivial aspects of coming to a solution, and to also glue all the trivial DSL components together. But hey, we should take any help we can get.