TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Rails isn't for beginners

86 点作者 xyzzyb大约 13 年前

10 条评论

japhyr大约 13 年前
I come from the django camp, but I feel this article applies to both frameworks. I teach high school math and science, and I have started teaching python to interested students. It has been very satisfying, and now students who didn't think themselves capable of learning to program are interested because they are watching their friends have fun with it. They enjoy writing programs that output to the terminal, and some students are developing gui-based programs.<p>This has led me to consider whether I could teach them to build web apps using django, or rails, or any other framework. It quickly becomes a daunting proposition for anything nontrivial.<p>You can follow tutorials, books, and videos all you want. But when it comes down to it, every good web app is developed over time through iteration and troubleshooting. Those are two areas where you simply have to understand what is going on under the hood to be successful. It's nice to work with data through an abstraction layer, but when you do something that doesn't work well with the abstraction layer you need to be able to do some manual twiddling with your actual database.<p>Frameworks make it easier for experienced developers to build meaningful projects quickly, which they are then able to maintain based on their deeper technical understanding. Frameworks may help inexperienced people play with a simple web app. But frameworks don't let the average person build and maintain complex web apps.
评论 #3794728 未加载
评论 #3795161 未加载
评论 #3795004 未加载
xxdiamondxx大约 13 年前
I agree completely.<p>A couple of months ago my sister approached my and asked "How do I learn how to make websites?" She has no programming experience, so I thought for a while on where to start. I figured if I showed her what I was working on in Python/Django, she would be completely overwhelmed. So I started with just HTML. As she worked through that, she started asking questions like, how to change layout and fonts, so we started working with CSS. She's not at the point yet, but I think PHP is going to blow her mind, as I've seen her copy/pasting stuff from file to file.<p>I think its important to start at the beginning and learn some of the pain points that these frameworks solve before jumping in. Otherwise you just get frustrated wondering why things are set up a certain way.
评论 #3794692 未加载
评论 #3794971 未加载
kaiuhl大约 13 年前
<i>Learning to program is all about learning mental abstractions. A beginner will have no conceptualization of what a web application can or should do. Where an experienced web programmer from any language will hear requirements and immediately (and almost unconsciously) start building up a mental model of the problem domain, the beginner will still be struggling with how the system itself works. That will be true in any web development framework, because there’s simply no way for any framework to think through the problem for you.</i><p>This.
评论 #3795103 未加载
评论 #3795215 未加载
评论 #3795348 未加载
mgkimsal大约 13 年前
I'd always remembered word-of-mouth from Rails enthusiasts touting how easy Rails was (talking 2006-2007). A Rails guru last summer told me that 'Rails was never promoted as being <i>easy</i>'. Was my memory faulty? Has the PR around Rails changed over the years?
评论 #3794737 未加载
评论 #3794701 未加载
评论 #3795598 未加载
评论 #3794842 未加载
评论 #3794844 未加载
ZanderEarth32大约 13 年前
I am a beginner and you are 100% right. I am working my way through learning some Python and when I started to find stuff referring to Django and web frameworks, they all seem to be touted as 'easy'. So, I thought, 'what the hell, let's build a web app'. After installing Django I was totally lost. Sure, I could install the framework and work through the tutorials but I am still miles away from actually building something on my own, because, while I know how to write some lines of code and create some basic tools I still don't know how to BUILD anything.
评论 #3794818 未加载
joedev大约 13 年前
Interesting that right at the top of rubyonrails.com is this quote:<p>“Ruby on Rails is a breakthrough in lowering the barriers of entry to programming. Powerful web applications that formerly might have taken weeks or months to develop can be produced in a matter of days.” -Tim O'Reilly, Founder of O'Reilly Media
评论 #3794578 未加载
评论 #3794496 未加载
saltcod大约 13 年前
I got pretty far along with Rails Tutorial, and came to love Ruby after just a short time. Its so nice and such a refreshing change from PHP.<p>BUT! What I hadn't anticipated was really not knowing anything about how to make a web app. I knew nothing about REST, nothing about get/put, nothing about forms, etc.<p>I thought Ruby and Rails were the answer to the problem I'd been having for years. I thought that I was just in need of the right programming language to help take my skills to the next level. I realize now however, after some cool Ruby bits and some Rails basics, that you're only going to get the best results out of language and framework when you know the basics.<p>And there's a lot of basics: rest, basic http methods, forms, sql, routes, etc etc etc.
cosecant大约 13 年前
I am a huge advocate for the Django web framework, yet I always tell people that web frameworks (Django|Rails|etc) are not for beginners. Like many have mentioned, it's easy for experienced web programmers that have been mucking around things done "the old fashioned way" and without any true MVC structure. I assume it would be difficult for novice programmers to really understand what the advantages and best practices of MVC web frameworks are for, when they have little experience of having worked in anything else.
mmackh大约 13 年前
I would argue that the lack of a simple installation process to get Rails running makes it inaccessible for a lot of beginners (myself included). Without stackoverflow, I wouldn't have known where to start - or what commands I'd have to enter into the terminal. As far as I know, there is no script that automates this process. Compare this to PHP, where most of today's shared hosts support it right out of the box.
评论 #3794575 未加载
评论 #3794474 未加载
评论 #3795446 未加载
评论 #3794687 未加载
评论 #3794438 未加载
评论 #3794548 未加载
评论 #3794560 未加载
dysoco大约 13 年前
So as someone who has programmed before in C# and Python, and has a knowledge of OOP, what would you suggest to start in Web Development (Apart from HTML, CSS and JS) ? I tried PHP, but I found the syntax extremely awfull and verbose, any alternatives ?
评论 #3795662 未加载
评论 #3795606 未加载
评论 #3795709 未加载