Joseph, PHP, Ruby, and Python are Languages

I think Joseph Scott doesn’t realize that PHP, Ruby, and Python are languages and therefore try to solve computer languages problems. I was listening to the CouchCast Podcast with Joseph Scott and if what he said could have been interpreted one way, in that he went off on a tangent that these languages should solve the Web Problem together. This counter rant to that interpretation would probably go ahead like below.

However, other than PHP, none of the other two are geared towards the web.

What this means is that, and even with PHP, is that computer languages try to solve the computer language problem. It is hard enough to decide how to implement lambdas, objects, and how libraries and code interacts and then have that compounded by these general web problems, which are different for every body.

PHP does not concern itself with page caching, it is up to the developer. Ruby and Python do its best with general programming solutions and the developer has to write for the web. Ruby and Python Languages do not concern itself with the web. Would it be better if they did? Probably not, because they do a great job at allowing developers to solve these solutions and to allow other developers to solve the problems for other developers. They do this very well, so to say that the language engineers of Ruby and Python should jump aboard with PHP to solve page caching or whatever solutions is probably wishful thinking.

It isn’t going to happen. The language engineers are concerned with helping other developers solve their problems and that takes a long enough time than to branch out and “fix” other issues within the community.

Languages generally try to do this, by implementing a Standard Object/Procedural Library that comes with the language. This allows for all developers to use, instead of recreating the wheel in each software package. However, this is only a language problem, because developers are implementing the same solutions over and over again and if they change projects have to relearn the similar solutions.

For PHP, it might be a good idea for it to solve the page caching problem, but oh yeah, it already has. Yeah, it isn’t going to hold your hand, but it at least allows you the ability to hook into PHP to easily solve the problem yourself. That is what computer languages do, they are supposed to help you solve problems yourself without deciding how to solve them for you.

Also, solutions for problems will inherently be implemented differently in PHP, Ruby, and Python. We all know that Ruby on Rails, a framework, does everything differently than the language PHP, which is to say that other frameworks developed in PHP are differently implemented than Ruby on Rails. The web solution in Python is logically different in implementation, than even the frameworks in Ruby and PHP.

Therefore, you shouldn’t be saying that language engineers should get together, because that is never going to happen, ever. What you should be saying is that Developers of Frameworks should get together to provide closer implementations, so that if I work on a popular framework in one language, I can go to another framework in another language and jump right in. This has been tried with cakePHP with some similarities Ruby on Rails. However, part of the problem hindering full compatibility is that Ruby has features that PHP does not.

Technically then, it is completely up to the users of these languages to take the time to solve some problems together than the programmers working on those languages. Give those people your love, because they spend a lot of time trying to make the rest of our lives easier.

Update: This is what Joseph was meaning to say and I just misinterpreted the podcast. It is funny, I thought, what is he talking about with the mindset of language mailing lists and reading back to Dave Winer rant. It didn’t occur to me until later that the direction could have been toward general purpose language forums that don’t have to do with the direction of where the languages are going. The funny part is that I tried to understand the context by relistening to that portion, but missed the part about it being focused toward local communities.

I’m going to leave this up, since the rant is accurate, whereas the person is it directed to is not to blame.

Possibly Related Posts:


2 Comments.

  1. Wow, that’s quite a claim. In case anyone was wondering, yes, I know that PHP, Ruby and Python are languages. What’s funny is, when I went back and listened to the conversation, I specifically mentioned that PHP, Ruby, Python and Java were programming languages.

    To clarify what we were talking about, I was asked about what could the local (Utah) area do to create the same sort of features technology wise, that the Bay Area has in California. One suggestion was that many of the user groups (PHP, Python, Ruby, etc) have presentations and discussions on topics that have a much more wider appeal that to just the people using that specific language. As a result we often see groups that are smaller and have a difficult time growing.

    Let me cite a few examples. Recent the Ruby group talked about nginx and the features (like the memcache module) it has and potential ways you could make use of that. This clearly has a much wider appeal than to just those people who are using Ruby. Another example is the PHP users group had someone speak on Ext JS, which can be used by lots of other folks besides the ones writing code in PHP.

    The result that I’m seeing is that these groups often have presentations that have a wide interest, but they are done at groups that have a very narrow and specific group of people (only folks using Python for instance). It isn’t reasonable for me to try and make it to the 12 some odd different events that happen each month, I’ve got other demands on my time. What I was suggesting is a more general development group, that would be more likely to attract people because it wouldn’t be so tightly focused on just one language or development environment. The additional exposure would also be helpful to people, to see how other languages, frame works, applications and environments solve problems.

  2. Actually, I meant to write this as whether or not that is what you meant, which is what you meant. I had to go back and relisten again to what you were saying. At the time, I was in the mindset, “Is this guy talking about the language mailing lists?” A few days later, I realized exactly what you were saying and probably just misinterpreted what you were saying.

    However, we have an agreement, I just suck at writing stuff in that way.

    You know, I’ve noticed this problem, because you’ll find many different books on a topic in one language. Computer Science algorithms for example, and game development for another. However, it is up to a good programmer to apply those techniques to the different languages.

    Well, I think you could put my presentation in that group. I talked about automated testing (systems testing) at a WordPress WordCamp, whereas it could have been better focused at a general programming group.

    However, in my experience with people speaking generally, you don’t really talk to developers when you do that. You need to give examples to affect the developers mind. If I had more time, I would have done more of that myself, but at least with my aptitude, I would understand better if the speaker was speaking to me directly in a language I understood, whether that be C, C++, Java, or PHP.

    Not everyone has many languages on their belt, so it makes sense to me that speakers would geared towards a specific language crowd. It would be more efficient if there were a general development group that talked about extensions and extending languages (you can bet I’ll be down there, depending on the price and how far), because I’ll be more than interested to see how Python is extended in contrasted to PHP and would like to learn how .NET language runtimes are extended.

    It is also my lack of experience in going to conventions that I don’t think it would work. However, with as many tech people in your area, I would say, you do it and see how many come. It could be a good social experiment to prove me wrong. Oh yeah, if it is a success, make sure to say, “Jacob Santos is an idiot, err, I mean he was wrong! We CAN have a general development group discussing problems.”

    It’ll be like BarCamp, except one of the better ones.