Hacker News new | ask | show | jobs
by fleitz 4572 days ago
Yes, that's because PHP operates at thermodynamic equilibrium and creating order from those states requires the expenditure of energy.

Rails is great for creating a site with a form where people can upload images, it's a 20 to 30 minute project in rails, pretty much just take any rails blog tutorial and add paperclip. (Note, it's not a 20 minute project for anyone who doesn't already know rails)

Rails is not for non-technical people. Rails is like a great jig, if you're a master craftsman it's going to save you a lot of time, if you're not don't bother, just tweak things until they fit together. If you're someone who has spent the last 5 years building furniture by tweaking things then you will love a jig.

3 comments

http://en.wikipedia.org/wiki/Automated_external_defibrillato... -- the AED is worse in every way than a properly trained professional with the right tools, except for one way: its there, it sort-of works, and you can't beat something with nothing.

Requiring a professional is a flaw, not a virtue. It's particularly problematic in our industry, where the end-user and most of the people involved in the production are not professional programmers.

> Requiring a professional is a flaw, not a virtue.

Your statement depends entirely on the context. I agree that requiring a professional to assemble my IKEA furniture would be a flaw. Requiring a professional to assemble my custom marble kitchen countertop totally makes sense and I'd hardly slam IKEA for not having such a package in Aisle 12.

Wow this is a really intriguing philosophical difference. I'm a big fan of specialization. I think it is the only way a complex society could possibly function. I'm glad that as an end-user of cars, airplanes, trains, medicine, MRIs, television, movies, wine, beer, liquor, the legal system, government services, etc. etc. etc. I don't need to be an expert in their design, development, and maintenance. It's great that because of its nature, software is more accessible than most things, but that doesn't mean it should all be made by non-professionals. There's plenty of room for both non-professional and professional tools, and neither approach is fundamentally flawed.
There's nothing wrong with professionals building tools for other professionals. PHP surely requires less activation energy for a tiny project or a new developer, but that doesn't mean Rails et al aren't providing useful options for full-timers.
I spent most of my life in PHP, and now spend most of it in Ruby/Rails and mobile development. Believe me, people can make utter messes no matter the language. This is not as strong as an argument as you think it is. I've seen my fair share of terribly coded Rails apps as well as PHP ones.
Yup, often PHP is the right tool for the job, however, in professional settings it is invariably the wrong tool for the job.

Just as you'd never want to use an AED at a hospital (unless every medical professional was unavailable)

> Requiring a professional is a flaw, not a virtue.

Don't you think that depends mostly on whether there are professionals available?

No. If a professional is available, better paths will be taken. If not, there is no requirement.
Funny, but not necessarily true. With PHP, I do as you say and spend, if I know the language, 1 hour max setting up a CRUD list/view/admin.

With Ruby, I have to spend, at least 3 months learning the concepts behind the Rails framework and what the article OP mentions just to get to that 20 to 30 minute mark.

If anything it's all meaningless, and what everyone should understand is that while the closer you are to the web server itself (CGI+PHP, Node.js, Classic ASP), you can quickly create any type of code, at the loss of organization and order.

In frameworks (criticism of Rails can also be attributed to Wordpress IMO) you have a much larger ramp up time learning the concepts and conventions, and once familiar, are able to LEVERAGE those patterns.

But don't bother me with PHP vs Ruby. I run SSI on nginx. It's not even in the same league as those two. BUT it's even easier to spin a basic 5 page website. All tools have their specialties.

I think your first two lines are a bit unfair. In the first line you say it takes you an hour while mentioning in passing already knowing the language.

In the second you say it takes 3 months because you have to learn the framework. Honestly if it takes you 3 months to understand rails well enough to do a CRUD app there is no way you're learning PHP well enough to do the same CRUD app in less time.

The problem is learning PHP actually makes you worse at PHP.

The only possible way to program PHP is to be pretty much ignorant of everything in which case PHP will actually do kinda what you wanted. If you learned PHP then either it's not actually doing what you think it's doing, or some config variable changed and would have done what you thought except it didn't, but don't worry just add some code to change that config variable for a while, and then change it back.

PHP is zen.

There is a story of a young, but earnest PHP student who approached his teacher, and asked the Master, "If I work very hard and diligently, how long will it take for me to learn PHP?"

The Master thought about this, then replied, "Ten years."

The student then said, "But what if I work very, very hard and really apply myself to learn fast. How long then?"

Replied the Master, "Well, twenty years."

"But, if I really, really work at it, how long then?" asked the student.

"Thirty years," replied the Master.

"But, I do not understand," said the disappointed student, "at each time that I say I will work harder, you say it will take me longer. Why do you say that?"

Replied the Master, "When you have one eye on the goal, you only have one eye on the path."

I think the big problem with PHP is the fact that you can find so many tutorials online still not having caught up with current practices, not just in terms of language updates or security, but in terms of software engineering. Not knowing any better and how to distinguish between quality learning material, newcomers will happily put into practice what they've learned on good 'authority' to be correct. Same applies for many books on PHP. There's one particular very prolific and popular author, whose PHP books are always revelled, yet if you read them, he's not actually teaching at a standard a lot higher than what you can find other places. You end up having to spend more time having to re-learn stuff and trying to forget bad approaches...one of the downsides of it being a language with a longer history that Ruby+Rails.
Hi, this is very interesting to me as I am currently picking up PHP.

Can you point me to some resources which don't fall into the trap you highlighted?

Thank you dearly for this. What's your opinion on SSI?
I'm not personally a huge fan of SSI, however, it's simple and understandable, and things do what you think they do.

What I like about it is clean separation, a few command for common things, and if SSI doesn't directly support what you want you just hand it off to another program.

With Laravel: php artisan generate:scaffold some_type --fields="..."

That's not one hour. That's one minute.

Ruby is my favorite language but I had kept out of Rails for years besides hello-world stuff. The amount of layers upon layers upon layers makes one's head spin. And if something goes wrong, you better hope you are using the exact same toolchain as the audience on StackOverflow is using, because that's what they'll be expecting you to have as well.