Saturday, April 17, 2010

The difference between 'simple' and 'easy'

This is an annoyance that has come to the forefront of my awareness recently and basically revolves around someone calling an easy thing 'simple', or a simple thing 'easy'.

To me, the distinction is that an easy thing doesn't have to be a simple thing... it could be an extremely complicated process (such as retrieving a web page, or walking) but it has been set up in such a way that performing it is extremely easy. A simple idea is extremely easy to comprehend (such as addition) but doesn't do any 'uncomplification', for example when you're trying to add up a hundred, or a thousand, numbers. Now, in the case of addition, there are some processes that can be put on top of addition to make adding up large amounts of numbers easy, but the ideas behind these aren't anywhere near as simple, and I find this occurs in a lot of the cases of easy vs simple.

The area that got me mostly riled up on the subject though was a recent discussion of PHP and Ruby on Rails. I was talking to someone online, who called PHP 'easy'. Now, PHP is pretty simple as web development goes, but it doesn't really attempt to do any of the hard concepts for you. If you want to connect to a database, you need to do all the effort, same for if you want to cache your pages, or have data validation and any of the other thousand and one tasks that a decent web application needs to do. This makes PHP very simple, deceptively so for a new web developer.

Contrast that to the Rails situation. Here, everything is made pretty easy for you. If you want to connect to a database, you just give it some details. Data validation is as easy as writing a couple of lines. It isn't as easy to get up to speed, there is a lot to learn to use Rails effectively, and it has a higher barrier of understanding required to start working within the environment. However, once you're there it's much easier to get things done. PHP lets you start putting stuff on a web page very quickly and simply. Rails isn't anywhere near as simple, and it takes a bit more effort to get running with it, but once you're there then doing things becomes a lot easier than the plain PHP counterpart.

2 comments:

Rohit said...

Comparing PHP and RoR isn't correct. PHP is essentially a programming language with a library that's suited for web development. RoR is a full featured web framework. There are lots of PHP frameworks out there like http://www.kohanaphp.com that have abstractions. I'm not supporting PHP, I my self prefer rails but comparing PHP and RoR is just not right.

workmad3 said...

I know the comparison isn't correct or fully fair. My annoyance was more of people doing the comparison and calling them both 'simple' or both 'easy'.

That said, I haven't come across a PHP framework that is as easy as Rails is, and in my view PHP is definitely 'simple' compared to Ruby on it's own being 'easy' so that may have been a better comparison :)