4 ms·
This is the very same critic that was (and still is) made about perl. >> I won’t bother to explain all of these; the point is that, as you can see, they all re
by guylhem 14y ago
This is the very same critic that was (and still is) made about perl.
>> I won’t bother to explain all of these; the point is that, as you can see, they all return the same result (namely, the first column of the ice.cream data frame, named ‘flavor’).
Having many ways to do one thing is good - whatever float your boat you know. Just for the given examples, I see how one may be better in a loop (the one where you use 1) while another one may be better when you type it on the command line to check stuff (the one with flavour)
>> The answer is that when you’re trying to learn a new programming language, you typically do it in large part by reading other people’s code–
No. You learn by doing. You write some stuff, test it, and if you don't get the result you expect go back to try and figure out what's wrong.
And even before doing that, you set aside some time to LEARN about the language.
But maybe, just maybe, the problem is not with the tool but with the person using it?
>> I have to confess that I’ve never set aside much time to really learn it very well; what basic competence I’ve developed has been acquired almost entirely by reading the inline help and consulting the Oracle of Bacon Google when I run into problems. I’m not very good at setting aside time for reading articles or books or working my way through other people’s code (probably the best way to learn), so the net result is that I don’t know R nearly as well as I should.
At least that's honest. Maybe you don't do well with a language (any language!) because huh, you didn't take time to study it and expect it to magically work??
I know I'm no good in java, but I also know why - I never took some time to actually learn it. I can do things with java, but not very complex things, and when I fight my way out of a problem I caused, I won't blame java but myself and my lack of knowledge of java.
- pekk 14y agoR has great capabilities. But it is not great for encouraging readability. For learners, it tends to feel confusing and lawless. It requires an investment. This is a significant fact about R. It is not equally true of all languages. It isn't ideal, either. We can do better. But for years there was nothing comparable in open source (perhaps even outside open source). That is also true of Perl.
- Cowen 14y ago> This is the very same critic that was (and still is) made about perl. It's funny how similar the arguments are. They can both be described as a language with some serious gotchas, but that's simple enough and has such a great package collection that it's easy to get a lot of things done very quickly. That description could also fit Javascript.
- RockyMcNuts 14y agoPerl is a language that pursued extreme flexibility and programming-style agnosticism as a design goal...that made it less than ideal for large scale software engineering...but enabled a lot of experimentation with powerful, sometimes sweet and expressive and sometimes obfuscated idioms. R is a bit of a train wreck. It makes hard things easy (if you know the right library or idiom), but often makes easy things hard. Perl is the duct tape of languages, R is more like the A-10 Warthog, ugly but powerful for a specific job.
- Locke1689 14y agoNo. You learn by doing. You write some stuff, test it, and if you don't get the result you expect go back to try and figure out what's wrong. No. This is how you learn to do whatever simple things you want in a language. The way you learn how to do things correctly is mainly by reading code. If you have an expert to review your code that's better, but almost no one has that opportunity. Edit: I guess I should come right out and say what I'm thinking: not everyone's opinions about a programming language are equal. I suppose this is why people are constantly having discussions about the pluses and minuses of "dynamically typed" languages, while type theorists don't even recognize "dynamic typing" as a form of typing. Expert analysis has consistently shown problems with the R language design and implementation. It's not a good language. Its features are often misused or poorly used and it doesn't have a strong sense of what support it wants to give to its users. http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Why-and-How-People-Use-R http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012/Why... http://www.cs.purdue.edu/homes/jv/pubs/ecoop12.pdf http://www.cs.purdue.edu/homes/jv/pubs/ecoop12.pdf
- jasonpbecker 14y agoR works really remarkably well and clearly for folks who work in this domain day to day. It's easier to learn than a lot of other languages for people who are coming from subject knowledge and need to program to implement that knowledge. It may be a terrible language by some objective external computer science criteria. But as a domain specific language, that's not really important. What is important is that the domain specific aspect works well for people with domain knowledge. It's not the right tool for every job or every person, but it's incredibly expressive for people working with a specific set of problems.
- Locke1689 14y agoWhat you're talking about is the environment. R seems to have a very nice environment -- a lot of people have written libraries for it and it is popular among the community. I was quite clearly criticizing the language, which is bad. That doesn't mean you shouldn't use it if it's the best option for your use case, just that it's bad.
- 14y ago
- vsync 14y ago>>> I won’t bother to explain all of these; the point is that, as you can see, they all return the same result > Having many ways to do one thing is good - whatever float your boat you know. I can't get the article itself to load, but it cracks me up that foo[range] and foo[range, ] do completely different things.