Talk:Tokenize a string: Difference between revisions

From Rosetta Code
Content added Content deleted
(→‎Remove tr: tr still isn't a programming language. It is described and known as a Unix utility.)
m (→‎Remove tr: Whoops, forgot to sign it)
Line 10: Line 10:
Hi Short Circut, If the tasks ask us to write a program to do something then we should use a programming language and tr is not a programming language. It is a program, a utility. Just because the program can be applied to give the right answer doesn't make it a programming language in the conventional sense. If you look at the man page for tr or the [[wp:http://en.wikipedia.org/wiki/Tr_(Unix)|WP]] page, it is not billed as a programming language. I am not saying that tr cannot produce the right output. I do think you go to far in calling tr a programming language as you would then allow too much 'noise' in RC. What is to stop anyone using your argument to add the Unix <code>sort</code> command to each and every one of the RC sort algorithm entries? or <code>echo "the correct answer"</code> to numerous tasks? I think that this would be a good point to make the distinction.<br>
Hi Short Circut, If the tasks ask us to write a program to do something then we should use a programming language and tr is not a programming language. It is a program, a utility. Just because the program can be applied to give the right answer doesn't make it a programming language in the conventional sense. If you look at the man page for tr or the [[wp:http://en.wikipedia.org/wiki/Tr_(Unix)|WP]] page, it is not billed as a programming language. I am not saying that tr cannot produce the right output. I do think you go to far in calling tr a programming language as you would then allow too much 'noise' in RC. What is to stop anyone using your argument to add the Unix <code>sort</code> command to each and every one of the RC sort algorithm entries? or <code>echo "the correct answer"</code> to numerous tasks? I think that this would be a good point to make the distinction.<br>
Calling tr a programming language would leave you out on a limb w.r.t. tr's documentation and articles about tr on the web such as [[http://www.linfo.org/tr.html tr]], and [[http://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html#tr-invocation GNU tr]].<br>
Calling tr a programming language would leave you out on a limb w.r.t. tr's documentation and articles about tr on the web such as [[http://www.linfo.org/tr.html tr]], and [[http://www.gnu.org/software/coreutils/manual/html_node/tr-invocation.html#tr-invocation GNU tr]].<br>
As for the phrase 'domain-specific language' it has little real use as it is so widely applied, and should not be confused with a [[wp:Alphabetical_list_of_programming_languages|programming language]] in this context
As for the phrase 'domain-specific language' it has little real use as it is so widely applied, and should not be confused with a [[wp:Alphabetical_list_of_programming_languages|programming language]] in this context --[[User:Paddy3118|Paddy3118]] 05:27, 21 May 2009 (UTC)


==Unix Pipes and the shell==
==Unix Pipes and the shell==

Revision as of 05:27, 21 May 2009

Remove tr

I suggest we remove tr as:

  1. It isn't a programming language in the commonly held sense of the term, it is a (good) Unix utility.
  2. It does not fulfil the task by using an array/list.
  3. There are likely to be too many tasks that tr cannot perform.

--Paddy3118 19:49, 20 May 2009 (UTC)

While it's not a programming language in the commonly held sense of the term, that puts it in the same company as declarative languages such as ladder logic or languages used in PLC and ASIC design. (And I would argue that there's enough variability in those domains to make them worth comparison as well.)
I also agree it's broken with respect to meeting the task requirements. Using a period for item separation is unidiomatic for the context within which tr would get used for such a purpose. More appropriate would be replacing the , with a newline. Still more appropriate would be replacing it with a null character.
The question of how many tasks tr can perform is a question of the tool's domain; Its parameter syntax effectively puts it in the category of a domain-specific language. If there are other languages which service the domain (which practically any string processing language does, in addition to sed, another common UNIX tool), then it becomes worthy of intradomain comparison with those languages. If the issue is whether or not a particular UNIX tool can be considered a language in and of itself, then consider whether or not that tool is part of a POSIX spec; It's plausible that that particular spec might be a more suitable umbrella for the code example. --Short Circuit 02:45, 21 May 2009 (UTC)

Hi Short Circut, If the tasks ask us to write a program to do something then we should use a programming language and tr is not a programming language. It is a program, a utility. Just because the program can be applied to give the right answer doesn't make it a programming language in the conventional sense. If you look at the man page for tr or the WP page, it is not billed as a programming language. I am not saying that tr cannot produce the right output. I do think you go to far in calling tr a programming language as you would then allow too much 'noise' in RC. What is to stop anyone using your argument to add the Unix sort command to each and every one of the RC sort algorithm entries? or echo "the correct answer" to numerous tasks? I think that this would be a good point to make the distinction.
Calling tr a programming language would leave you out on a limb w.r.t. tr's documentation and articles about tr on the web such as [tr], and [GNU tr].
As for the phrase 'domain-specific language' it has little real use as it is so widely applied, and should not be confused with a programming language in this context --Paddy3118 05:27, 21 May 2009 (UTC)

Unix Pipes and the shell

You need to mention which shell is being used in the example. (It doesn't look like csh for example). --Paddy3118 19:57, 20 May 2009 (UTC)