bloggallerycontact

Topics

On the move

There was recently an interesting post about scripting languages by Steve Yegge. What I particularly liked are the hints on other languages he gives and his invitation to try new languages.

I have been programming PHP since 1999 and felt a need to learn something new approximately when they launched Rails a few years ago. But instead of learning Rails, because I don't usually follow the hype, I decided to learn Python.

So, recently, I have been learning Python, then Ruby and now the Lua programming language. Out of these three languages, my favorite is Lua and it is where I spend most of my time now.

PHP blobThey are all excellent languages to learn and in many ways, they are better than PHP. As I said in a previous post, I now see PHP as a big blob which along the years have been developing in too many directions and is now facing a lot of problems because a lot of things were implemented incorrectly and were not carefully planned. It is not obvious at first, but when you start looking at other languages, you understand how some things could have been done and you realize how wrong they are in PHP. I am thinking of all the stuff you find in SPL, create_function(), call_user_function(), ::, $this->, parent::, instanceof, is_a(), the way static are handled, etc, etc. It's all a mess. And it starts to look in blog posts. From time to time, I read things about how nice it would be to have closures, traits, anonymous functions, weak references, duck typing in PHP and some hacks on how to imperfectly implement them.

And because PHP is not idiot proof, you will find a lot of people there with little knowledge about programming. Like this week's post of someone who says "function in_array() sucks because it is slow"... The more I know about programming and the less I find the PHP community interesting. It's like all the interesting people here are doing things secretly and don't take the time to share their experiences (unless they write books).

And the last things I have started to dislike is the way a company like Zend is taking over the language. I have also recently very much disliked Oracle buying InnoDB and Sun buying MySQL, although I was not surprised for MySQL given the road they had taken lately, which is actually a lot like the road PHP is taking with Zend at the moment. With rumors about Microsoft, Oracle, IBM buying Zend, I start to feel the fear. Because in the end, who decides what goes where in PHP core?

Here is a list of programming languages that deserve a look soon:

Comments (10)  Permalink

Comments

Jan @ 06.06.2008 14:50 CEST
Heya Bertrand,
I know how you feel. I've been into Erlang for a while now and you might want to have look there, too :)

Cheers
Jan
--
Thomas @ 06.06.2008 15:55 CEST
It may be ugly, inconsistent, etc. but PHP sure does get the job done, and well.

"When I say that PHP is a ball of nails, basically, PHP is just this piece of shit that you just put together—put all the parts together—and you throw it against the wall and it fucking sticks."
- Terry Chay in a talk
Philip Olson @ 06.06.2008 17:39 CEST
http://pecl.php.net/lua [http://pecl.php.net/lua]

:)
Andi Gutmans @ 06.06.2008 21:19 CEST
Hi Bertrand,

Zend is a contributor to PHP and is not like MySQL where all the contributors are on its payroll. In fact it's the community that decides what goes in and what goes out of PHP (ala meritocracy of course).
So I think you can rest assured that even if there's a change in control at Zend (which I don't currently foresee although I also read the rumours) then PHP would continue to remain independent and community based.

Andi
Stanislav Malyshev @ 06.06.2008 21:43 CEST
Could you clarify what you meant by "the way a company like Zend is taking over the language"?
Bertrand @ 06.06.2008 23:35 CEST
@stanislav: You work at Zend so you should know. If you can't figure that out by yourself, I suggest you follow some basic business courses. As you know, Zend is a commercial company. When they launch things like the Zend Framework, Zend certification program, Zend Core, etc. their goal is to make profits. They will make profits if people use these things and become dependant on this. Fact is people actually don't need that. I have never seen a customer asking me if I was certfified by Zend, even when working on applications for administrations... But if Zend manages to market their certification, everyone will have to be certified in order to compete. Same with Zend Core, PHP works well without when correctly setup. Now their marketing is trying to make you believe PHP by default doesn't work as well as PHP certified by Zend. Same thing with the Zend Framework: Lukas's blog has an interesting post on how he got trapped using Zend Framework http://pooteeweet.org/blog/1151 [http://pooteeweet.org/blog/1151]

That's how I think Zend is trying to take over the language AND the community.
Brian Moon @ 07.06.2008 05:46 CEST
"And because PHP is not idiot proof, you will find a lot of people there with little knowledge about programming. Like this week's post of someone who says "function in_array() sucks because it is slow"... The more I know about programming and the less I find the PHP community interesting. It's like all the interesting people here are doing things secretly and don't take the time to share their experiences (unless they write books)."

That would be me. But, I am confused. Am I one of the ones that does not know anything about programming or one of the ones that does not share my experiences? You like others need to re-read my blog post apparently. The whole point was to share my mistake with others so that they might not fall into them.
Bertrand @ 07.06.2008 09:00 CEST
@brian: You changed your post. Your first post said that in_array() sucks because you were using it on a 400K+ array IIRC. But it doesn't really matter, the general idea is that a lot of PHP developers will use the tools thay are given without thinking and produce bad code. Things like in_array() should not even exist since it's just a loop with no optimization.
Stanislav Malyshev @ 07.06.2008 09:12 CEST
Bertrand, of course Zend is in business for making money. But you absolutely can not make money - at least not as a business - unless people voluntarily give it to you for some service they like better than their money. This means whatever is paid for - people really *need*, so much they agree to part with their money in exchange for it. You may have different needs and not feel the need in certification as a way to grade talent on the marketplace, or in support provided by certified distributions. This is OK. However, people are using it and paying for it - meaning they actually need it.
This also means that the only way for Zend to make money - and to exist as a company at all - is to hear what people want to have and to do it for them and with them. This includes both direction of the PHP language and of the products. Of course, on the way things are not always perfect - as you noted the blog about the Framework, people sometimes find better ways to do things than we originally had thought (btw, I think you misinterpret his blog if you think he describes being "trapped"). And we accept this feedback and will improve the Framework accordingly.
PHP has a vibrant community, with a lot of different opinion on all aspects of the language and its use. Zend is part of this community - both by the fact that big part of the engine was written by people in Zend and by the fact that Zend's future as a company depends on continued success of PHP. As a part of this community, we of course taking part in shaping the future of the language - however there's nothing about "taking over" in that. There are people that disagree with opinions of Zend employees, and with some things Zend is doing - and that is natural and healthy, people have different positions and opinions. However, there's nothing I can see that Zend has done or going to do to "take over", whatever that means. The fact is, PHP exists for more than 10 years, and Zend exists for almost 9 years now, and PHP grew stronger and stronger, and despite all the talk of some sinister "takeover" plans nothing of the sort ever happened. That's because such plans do not exist. Plans to make PHP yet better and stronger do exist though :)
Bertrand @ 07.06.2008 10:37 CEST
@stanislav: You talk about the past, I talk about the future. But it is always interesting to refer to the past in order to better understand the future, for example:
http://phplens.com/phpeverywhere/?q=node/view/84 [http://phplens.com/phpeverywhere/?q=node/view/84]

I especially like the part on Parrot in PHP6 and Rasmus replies when he is asked if Parrot would replace Zend. Of course, when you compare this with what will happen for PHP6, it's a good laugh.

I just don't like the way PHP is being marketed by Zend. My company cannot afford Zend products and I wouldn't like these products to become a requirement for my customers.

Fortunately, my customers have never heard of Zend and usually prefer real open-source software compared to commercial software.

I would prefer PHP to run on another engine, not owned by a company, something more like Lua, Ruby or Sqlite, a real community, a governemental organisation, a univerisity or a person with great vision (read the Sqlite licence for an example), something which is not driven by profits.

Unfortunately, previous efforts to port PHP to Parrot were made by Thies Arntzen and Sterling Hughes, and the last time I met Thies, it was at a RoR conference in London a few years ago, so I guess there is no chance to see them work on it again...

But don't be mistaken, it is ok for me to see Zend make profits out of the work they do on PHP, but I don't like the way they promote their products ("The PHP company", "Zend’s certified PHP distribution") and I don't find their products innovating nor interesting. I have a different feeling about the Zend Framework because it is indeed useful, but I prefer a good set of libraries than a framework. And I don't like how Zend Framework is managed in regard of how the community is handled.

Add a comment

The Trackback URL to this comment is:
http://golgote.freeflux.net/blog/plugin=trackback(110).xml

No new comments allowed (anymore) on this post.