6 ms·
I've been using PHP professionally since it was called PHP/FI, and while it's a terribly designed language, I've longed stopped hating it. I know all of it's q
by jlgbecom 16y ago
I've been using PHP professionally since it was called PHP/FI, and while it's a terribly designed language, I've longed stopped hating it. I know all of it's quirks, and I know all of it's work arounds, and the density of support it has can't be beat.
I wouldn't complain if a better server-side language came around (not a big fan of Ruby's syntax, but Google's Go looks enticing), but until then, I've built incredibly complex apps in PHP, and rarely do I run into a limitation of the language. My biggest issue in the past was the lack of namespaces, and 5.3 has those.
I think the best thing you could do to get a new language as popular as PHP isn't to evangelize, or even to make the language dead simple, but make it dead simple for administrators to add support to a typical shared hosting environment.
- seldo 16y agoPHP's amenability to shared hosting environments is an advantage I failed to mention. I'm pretty much in the same place as you with regards to PHP: I know it like the back of my hand and everything and everybody works with it. But the code is ugly compared to other languages and I really want method chaining, dammit. Plus, of course, I don't want to have to write an MVC framework every time I want to do something.
- jlgbecom 16y agoUnless you're being more specific than I think you are, PHP5 has basic support for method chaining, I use it all the time.
- byoung2 16y agoI use structures like this in PHP5 all the time: $object->doThis()->doThat()->doTheOther(); But maybe he is referring to method chaining using PHP's built-in functions. There isn't a way that I'm aware of to do the following (short of wrapping the built-in functions with your own classes): $string->preg_replace("/[^A-Za-z]+/","_")->trim()->upper();
- seldo 16y agoPrecisely what I meant, thanks for clarifying.
- BerislavLopac 16y agoBut this is not method chaining, that's simple function nesting, and can easily be done as: $string = preg_replace("/[^A-Za-z]+/","_", trim(upper($string))); Or am I missing your point?
- bl4k 16y agosomething tells me you don't know what method chaining is
- jhaglund 16y agoRe: MVC re-writing. I settled on Zend Framework and havn't looked back. http://framework.zend.com/ http://framework.zend.com/ (link added)
- jawngee 16y ago> I really want method chaining, dammit What? We've been doing code like: filter('user') ->first_name->like('bob') ->age->equals('22') ->order_by->created->desc ->find(); Since 5.2.x
- auxbuss 16y agoMethod-chaining has been there for a while. I keep happening upon projects with their own craptacular homebrew MVC framework, and their own abysmal homebrew caching. Fix is a swap for yii and memcached -- feel free to choose your faves.
- petervandijck 16y ago5.3 has namespaces? Awesome :)
- jlgbecom 16y agoYes, but in true PHP fashion they're just slightly ugly. :) namespace my\name; $c = new \my\name\MyClass;
- mahmud 16y agoLeave it to PHP to look up to MS-DOS for inspiration.
- mrj 16y agoUg. I thought you were joking. Now I'm sad for humanity.
- petervandijck 16y agoUgly but functional, that's good enough for me :)
- omouse 16y agowhile it's a terribly designed language, I've longed stopped hating it. I know all of it's quirks, and I know all of it's work arounds, and the density of support it has can't be beat. Stockholm Syndrome?
- jlgbecom 16y agoOh yeah, it's totally like being violently threatened and abused by terrorists. That's a perfectly reasonable analogy. Seriously, when you've been programming long enough, you really stop caring about programming languages. I could build a huge project in VB.Net or ColdFusion if I had to at this point. If there's good reasons for why a language should be used (and PHP has plenty of them that are external to the language itself), then it's immaterial to me.
- dflock 16y agoYeah, any replacement will need to be _everywhere_. No-one talks about PHP deployment issues, because it's literally everywhere. You have to build your own server if you want one _without_ php. That's it's killer feature.