3 ms·
i just read up to here (2nd parapraph): "The theory is that by learning a new language you "expand your mind" and become "a better programmer". Right. By that k
by utx00 19y ago
i just read up to here (2nd parapraph):
"The theory is that by learning a new language you "expand your mind" and become "a better programmer". Right. By that kind of argument we should all be eating LSD (don't)."
this sounds very much like inexperience.
- deleted 19y ago[deleted]
- rumblerob 19y agoRight. It's strange how he has to back it up with (don't), too. "Doing this is like doing a really bad thing, which by the way you shouldn't do."
- mechanical_fish 19y agoYou should finish it. By the end of the essay, the guy has successfully argued himself out of half of his original thesis, and has laid the seeds for finishing off the other half. That's one of the good side effects of essay writing: You can start out arguing one thing and eventually find yourself having to argue something else. One of the things the guy missed is there in plain sight in his essay: You need to get to know the libraries, struggle with the environment, find or tune a text editor, look for tools, and so on. Most of the effort has to do with housekeeping chores, which are surely not mind-expanding by anyone's measure. If you hope to be productive in the new language, things are even bleaker: proficiency has less to do with the language itself than with the myriad technologies you must master to use it effectively. Unfortunately, everyday productivity is a lot of housekeeping chores, one after another. While your higher mind is soaring with the architecture astronauts, the rest of your mind had better be editing text efficiently, and running top and netstat, and administering the version control system. And more than half of the point of learning a new language is to force yourself to experiment with a different tool ecosystem. The point of learning Ruby isn't just to learn Ruby: You get to learn about Rails and Capistrano and the obsessive use of test-driven development and, in my case, git. (If I'd been a kernel hacker, I'd have known about git. I presume the Rails folks learned about git because some kernel hackers, seeking to learn a new language, wandered into the Rails community.) You want to be forced to experiment with different tools because sometimes they're better: git is just a much better tool than Subversion, and don't get me started on CVS. Even when the alternatives aren't better, you become a better technologist by playing with them. If I'd never played with a Java IDE I would have no chance of understanding how Java programmers think. If I'd never actually deployed both Rails and PHP I wouldn't understand why PHP deserved to live. (Yes, it's filled with stupidly broken parts, but it's so easy to deploy, and it's fast, and it's not that hard to comprehend.) The other thing this guy doesn't seem to understand is that there's a difference between tourism and living in another country. When you "learn a new language every year" that doesn't mean you have to become a pro in your new language. You can visit, kick the tires, read a couple of introductory books, write some simple code, read some code to something more complicated, and then move on. Yes, that means you're a dilettante -- but it's better to be a dilettante than to blindly plug away at the same thing for a decade.
- jjburka 19y agoI think really what he is arguing is the marginal benefit of learning a new language diminishes with each new language. Which is probably true if you only learn the syntax and then move on. But thats not what software development is ,the language is a tool that a culture uses. Using your example with Rails , alot of its culture (MVC , TDD , etc) seem to be being adopted in other communities. I would argue that the reason is someone had a extended vacation in Hotel Rails liked what they saw and then brought it home. Finding out how different people do different things and adapting them to your needs is valuable in all contexts.
- jrockway 19y agoRails isn't really MVC, though.
- jjburka 19y agohow so? I'm rather new to rails and from my understanding of rails and mvc it seems to follow that pattern. Good Practice wise atleast
- jrockway 19y agoIn real MVC, you want to put everything related to your business rules, storage access, etc. in your model. Then you wrap the View and Controller around that as a very thin web <-> model glue. That's all a web framework should do, web-enable your model classes. Things that should not happen in the Controller include touching the ORM (or SQL queries), validating input, any business logic, etc. Just pass the request to the right model, see if the model did what you asked, and display the success page or the error page. Here's a short talk I wrote on the subject: http://www.jrock.us/fp2008/catalyst/start.html http://www.jrock.us/fp2008/catalyst/start.html
- utx00 19y agothis guy said it better than i ever could: http://www.paulgraham.com/avg.html http://www.paulgraham.com/avg.html hint: look for blub programmer.