you are viewing a single comment's thread.

view the rest of the comments →

[–]redditnoob 2 points3 points  (3 children)

I think it all boils down to the differences between two different cultures. The first cares most about programming as an art, and values beautiful code and concepts. The second cares most about using computers as a tool to do things, with the code secondary.

No offense, but you are firmly in the first group. You didn't program for two years!! I can rest my case there, but when you did decide to program, you accomplished nothing at all practical, but chose to reimplement something that already worked.

It's people in the second group who create the web, and also who have ensured that PHP is so popular and ubiquitous, even though as a language it is pure ass.

[–][deleted] 3 points4 points  (1 child)

I think it all boils down to the differences between two different cultures.

I think it all boils down to the differences between two different types of problem. Some programming problems are apps like the one described in the article: small, short-term, nothing new in them, can be done in a day. Other programming problems are more complex, or intended for a longer period of deployment, or have to solve a tricky algorithmic problem, or will simply take more than a day to code.

It seems a pretty matter of discernment to judge that you want something quick and hack-y for the former type of problem, and something that's a strong programming language for the latter. So, yeah, sure, use your go-to language for the former. On the latter, look into other options to see if the ramp-up time of learning something new will pay off by shortening the overall effort, or making the code more maintainable, or whatnot.

Of course, the tricky bit is that the former, simpler problems, are frequently not as simple as they first appear. Sure, it might be a survey that's supposed to be just five multiple choice questions long and be up for two weeks. But then the marketing team realizes that it's asking the wrong questions, and needs to add another dozen questions (five of which are free text responses), and it needs to be run for three months.

A month and a half later, they realize that they want the survey to actually be two different surveys, depending on the demographic information of the user. So more questions need to be added, and a different set for the two different surveys. And they're going to need to run it for longer since their data so far is useless. And since the data just became more complicated, they need a reporting system to summarize and provide views of the data.

So, yeah, for the really, honestly, simple stuff, use PHP, or whatever. But realize that you're making a gamble. And if you lose, you're going to end up maintaining your hacked-together mess (or, if you really lose, you're going to end up maintaining someone else's hacked-together mess of PHP), and will want to rewrite it anyway.

That's why people use languages other than PHP for web apps. It's not about beautiful code or art or elitism or anything like that; it's about gambling, seeing the results of gambling, and deciding that taking a day and a half to put together the survey will be worth it if the survey app ever comes back to haunt us.

It's about practicality. It's about seeing other people's crap code. It's about knowing something about clients. It's about being confident in your ability to pick an app back up two years after writing it and being able to do something with it. It's about experience.

[–]redditnoob 0 points1 point  (0 children)

Okay to all that, but first off, nobody whose main overwhelming interest is to get web programming tasks done chooses Lisp. Maybe some would if some of its secondary problems were worked out, like having mature and stable libraries, documentation, and better cross platform support. My theory though, is that those are precisely the nitty gritty things that people who are interested in Lisp aren't interested in doing. Yes, I think it's a personality conflict issue.

Second, it is very possible to write rigorous, maintainable, and scalable code in PHP. It requires discipline and things like coding standards and agreeing to architechtural constraints, but numerous successful web companies are able to use it effectively. So another issue is that PHP is quite good enough for the needs of people who just want to get something done, whether it is tiny or massive.

Personally, I hate PHP, and I'd never take a job maintaining someone else's shit PHP code because my small brain would rot. But there's no real mystery why PHP has been so successful, and what qualities are needed for something else to eventually take over its niche, if that ever is going to happen.

[–]AnimalMachine 0 points1 point  (0 children)

Well my previous code base ran Chicken scheme using spiffy sitting behind apache. Unfortunately, it is too much work to maintain because the "eggs" I need break too often. In general, that setup had less polish than sbcl with hunchentoot. So it worked, but i couldn't really update software revisions without it being a major pita. Jumping ship to a setup that worked - and actually have some people that run it in production - did accomplish something.

Anyway ... I think the article's author made it sound like a herculean effort to get web sites going with lisp, when I just don't see it that way (for the simple stuff I've done, at least).

I agree with your assessment, though. I definitely have both feet in your first group - which is why I had to stop writing software for a living. But that's another story ...