Very useful when you want to see or confirm how somethig works. Type it and press 'Enter'. It comes with the python installation, and it's commonly called Interactive Interpreter.
- what can I do here? There are no tips, clues, or any other way of knowing what to write. The answer often given is that there are MAN pages, help files, etc. that you can bring up by typing more cryptic commands. I just don't have the motivation to sift through a whole bunch of documents that may or may not have the answer I'm looking for.
- On a windows machine CLI doesn't work out of the box. I need to install cygwin, configure it, and do all sorts of stuff I don't know about and don't care about.
- I get no feedback. When I've typed some cryptic command into the commandline and hit enter I'm presented with a prompt. Maybe everything went well, maybe it didn't. Maybe I now have a virus since I found the cryptic command somewhere on the Internet. i just don't know.
- I can't undo stuff. When I type a command and then find out it was wrong, I have no obvious way of undoing it.
The point isn't that command lines are bad, on the contrary it's quite obvious that it's a really powerful tool. It just has a steep learning curve, and not all people are interested in spending the time it takes to master it just to get a wordpress installation up and running.
The point is more that it's hard for experts to see why it's so hard to just type 'grep -lsm (er /:rt) disc -f' to make the computer magically do something. There are a whole lot of assumptions that take years to master before you can type a command like that and not have your heart skip a beat when you hit enter.
And that's okay, it's why good hackers are worth a lot of money. The majority of people however, just want that wordpress blog to work.
Apache, myqql and PHP comes in a single install package, so you download, click to install and find your home directory where you can start writing code. No configuration necessary. That's important to me, because configuration isn't what I'm interested in. Wordpress, PHPBB and a host of other stuff is the same: Place it in a folder, and run through the HTML based setup. Done. Deploying on a hosted solution is equally easy; copy the PHP files from yuor localhost directory to the host, copy the DB using the webbased mysql manager and you're done.
Also, I like the fact that there's a direct and obvious link between the files you create and the pages you see. Create something.php in your home directory and it will appear as something.php in localhost. I checked out a few other languages, and there appeared to be a non-trivial link between files and HTML.
Also, the PHP community is very helpful for beginners. Asking what an array is, or how to display the time in a snippet of HTML isn't frowned upon, but respectfully answered.
I'm fully aware of the drawbacks of this simplistic approach such as spaghetti code, security concerns, scalability and probably much more. But that isn't really the point, if I'm making a microsite for a friend, or a mockup to see if something will work I don't really care.
Ignorance of the alternatives. Ignorance of its drawbacks. Ignorance of its outright dangerous flaws. Ignorance of the horrible practices it encourages. Ignorance of the PHP community's ignorance.
Those are among the reasons many of us speak out loudly against PHP, and against similarly flawed languages, like JavaScript.
Civility does not work when ignorance is at play, and when the consequences of inaction can be severe.
I've met several people who tend to shy away from Ruby due to its community. Not the language, not its capabilties, its community. Same for one person I know with Python because her project would have definitely benefited from Django. But after an underserved pigeonholing on a QandA forum (that shall go unnamed) for making a few assumptions due to her PHP background she went with PHP after all.
And that's a damn shame.
(Full disclosure, I work mostly with C#)
I'd be interested in seeing the "QandA forum" discussion that you mentioned. Please provide a link to it, so we can judge for ourselves what actually happened in that case.
Civility does not work when ignorance is at play, and when the consequences of inaction can be severe.
Civility is always how people get ideas to stick as belittlement and ridicule just doesn't work.It's not what you say; it's how you say it. That's the first rule of effective communication since humans were around to communicate and your inability or unwillingness to accept some deocurm in your speech isn't helping the situation.
If civility worked for the Civil Rights Movement, it will work to educate programmers. Empathy carries greater weight than chest-thumping about being right if you're trying to convince someone. The OP was an entry about empathy. Try to have some.
As for the QandA forum, I'm not giving those jerks free traffic. You don't need to accept what I say at face value. Use your objectivity (if it hasn't been ground down to a pulp by your own ego).
The good thing is that since everyone else besides you and a handfull of elite and puritan developers are doing it wrong, you should have no problem taking over the world.
Apparently the choice of language is paramount to your impact on the world.
Ohh wait...
Unfortunately, smart people with an opinion sometimes have a problem seeing the other side of the coin, and tend to see their point of view as the only right one.
A good example is yesterdays 'PHP is the right tool for the job' post.(http://news.ycombinator.com/item?id=5337498) The authors point that PHP is a great tool for getting something up and running quickly without having a lot of knowledge of servers and software was spot on, but he got a lot of hate from the HN community. As a bad programmer (programming is not what I do, I've only learned it to be a better manager, strategist and sparring partner) I can tell you that PHP is by far the easiest thing to get up and running for a fool like me. Yet noone seemed to accept this fact, and came up with a whole lot of 'ruby is just as easy, you just need to install [something I've never heard of, and probably wouldn't understand], or in python you just run [stuff I don't know] on the command line [which I haven't got a clue how works] and you're good to go.
These comments weren't meant to be mean, but from my perspective they were, because I'm at a very different skill level than the peolpe making the comments. They totally missed the point that PHP works for a lot of people because Ithey have no idea how a command line works, don't know how to edit configuration files, and don't care.
The problem isn't that people are intentionally mean, it's that some people are so knowledgeable in their area of expertise that they have problems seeing how it could be hard for others, and thus end up making remarks that seem mean, but really aren't meant to be.
I bet a lot of people on HN still don't see why PHP is so popular, even though the answer is unbelievable obvious. To me.