> Le 15/12/2010 18:08, Illia Bobyr a écrit : >> On 12/15/2010 4:17 AM, Marc Herbert wrote: >>> [...] >>> I use and abuse the shell but I do not consider it as a "real" >>> programming language is because it was not really designed as one from >>> day one. It rather grew from the command line interface as explained >>> in this great interview of Steve Bourne: >>> >>> >>> http://www.computerworld.com.au/article/279011/a-z_programming_languages_bourne_shell_sh/ >>> >>> [...] >> Actually, I got a completely opposite impression after reading the >> article :) >> > I understand Steve Bourne came up with a brand new *internal* design; > but from an external language perspective he preserved how the > previous interactive shell was used. From a user perspective he added > programming features but it looks like he did NOT change anything to > existing interactive features. Which obviously made an easier > sell. But also prevented the shell to be a "real" programming language > IMHO.
I worked on a pretty huge project written 99% in TCL. TCL looks is very much like Bash, except that, I would say, it is cleaner in the quoting area. And by "cleaner" I mean that it is just cleaner, it have issues with incorrect quoting that are very similar to one you may have with Bash. So, I guess, syntax is not that important... And by the way, in the interview Steve Bourne says that he did change some of the interactive features to make them more useable for complex operations. One example he gives is filters: "I did change the shell so that command scripts could be used as filters. In the original shell this was not really feasible because the standard input for the executing script was the script itself. This change caused quite a disruption to the way people were used to working." > Do not get me wrong: I LOVE the programming features of the shell and > I abuse them everyday. I think the shell is one of the key > productivity difference between Unix and Windows. But I also think the > shell does not scale up to bigger programming tasks. As a matter of fact, > I do not know of any large and popular project developed with it. Comparing, again, with TCL, I think that TCL is more sutable for big project only because it have more features to support larger programs, like object oriented support, threading, GUI, libraries and others. In the interview Steve Bourne says "My own view, as I have said, was that the shell had reached the limits of features that could be included without making it rather baroque and certainly more complex to understand." My feeling is that it is not the quoting syntax but the fact that sh does not have certain features is what has more infuence on the fact that it is not used to write large applications. And TCL was developed almost 13 years later than sh, so developers had much more overal experience to base their decisions upon... :) Ilya Bobyr