Monday, April 28, 2008

How to Build Enterprise Ready PHP Applications

"How to Build Enterprise Ready PHP Applications" - a sentence which for most of the PHP programmers might be strange or inexistent, but can PHP sustain enterprise applications?

The answer is YES or NO, depending on how you(the developer) are familiar with good practices and concepts of software architecture design patterns.
Let me take you out from the dark:
the coding language is not really a mandatory issue when creating enterprise ready applications, but have to provide the basics for creating these solutions, so the only remaining issue is if you are able to create enterprise applications or if you have at least the knowledge about what an enterprise applications is?

PHP's original purpose was to create web sites, in an easy, fast and not very skilled way. From that point PHP has been the preferred coding language for most web developers, it offered all features for programmers that other languages didn't:
- fast learning curve: you could/can learn PHP basics in a week
- no special training or background required to start PHP
- very good and easy HTML integration
- great support from developer communities
- free of charge developer environment: Apache and MYSQL are free open sources backbones for any PHP application
- no special tools or IDE's required, you could use even notepad to create PHP code
and a lot of other features that made PHP so popular for novice and enthusiasts.

Also this was big step for companies which were involved in web development, direct producers or outsourcing companies, eventually for clients:
- low development costs: you could/can find a PHP programmer in India and build you a site for less than 100$
- low server hosting cost: you can/could find everywhere an Apache server to host your PHP application for less than 10$/moth
- fast development time: simple web site's can be built in less than a week
- a great community of cheap developers: if you don't like a developer you can switch to another very easy and no costs are implied

In economical terms PHP produced a great movement in the area of outsourcing and offshore; many US based or western EU companies turned their eyes to Asian or East European based firms which offered cheap and fast developed web sites.

So where's the new thing about all these, everybody knows this, you would say.
Everybody knows this, but time passed you know... today PHP developers are considered to be cheap and are disregarded as real programmers because of this image:
"PHP? anybody can be do it, so why pay more?"
The truth is that things are changing and PHP did changed a lot, so it's about you(the developer) and the customers to notice this and act as needed!

Starting from PHP 5 Zend(the php company) tried to change PHP to be a real programming language with all the capabilities that other languages had, mostly what Zend tried to do was to make PHP an enterprise ready language which is not limited for creating "web sites".

What happened next is simple, most of the developers remained with the old image and regarded PHP in the same, those remained the "cheap" developers that you still can find nowadays in India, Pakistan or any other emerging economy country.

BUT there was also a good portions of developers that expected this step and were finally able to:
- consider themselves real OOP(object oriented programming) developers
- apply REAL software design patterns
- follow development "good practices" specific to other languages like JAVA or .NET family
- create enterprise level frameworks
- create scalable applications which could sustain mid-range enterprise needs
- and finally but not least added value to the work they made

So if you(the developer) continue today to develop PHP applications for 100$ and have no interests to change this please go and read something else, also maybe you should quit your job and leave real programmers to do their job.

Starting from PHP 5, enterprise ready frameworks started to emerge, all of these frameworks followed good practices from JAVA, Ruby,Python and other existing frameworks and allowed web development firms to finally create scalable web applications with all the features that other mentioned language offered.
It's obvious what I'm going to say next: if you want to "Build Enterprise Ready PHP Applications" you MUST unconditionally use a framework which offers the features needed to create such applications.
If you have an existing framework created by yourself... drop it, it's not useful if you don't have support from other developers and you can't make it evolve... you are as good as a stick in the ocean, you will finally be lost.
If you didn't used a framework till now and I impressed you with this post(or not :)) then you should consider the Symfony framework http://www.symfony-project.org.
Now I won't say that this is the best PHP framework out there, but rather I would like to show and highlight, for everybody who is not familiar with Symfony, why should switch to this framework, so starting from this post(actually the upcoming ones) I will gradually start share my daily experience and show "the light" for those who want to see it... wow this is a biblical sentence :D

PS : sorry for my grammar faults or mistakes, english is not my native language.


Technorati Profile

4 comments:

Nitesh Apte said...
This comment has been removed by the author.
Nitesh Apte said...

@Cojocar Petru

You are a half-minded and less knowledgable person. The term "cheap" used by you for Indian or Pakistani programmers clearly shows you unawareness. If you update yourself regularly then you must be knowing that India drives the world's web-technology. And, Indians are good at OO programming or any other programming language.Thats the reason that 35% in Microsoft, 30% in IBM, or in any big software firm in world majority are Indians.
And one more thing, 38% in NASA are Indians only.
So better think before you use some idiotic words against anyone. Tell me one thing, you guys really feel unsecure regarding job in software industry, don't you?

Cojocar Petru said...

Hi Nitesh.
I don't want to make any indian fellow of yours to get upset or anything... I really know that a lot of indian people are working in very big companies an have some influence in the IT development of the world..
But my friend, I guaranty that 40%(if not more) of the worlds CHEAP web developers ARE indians!
The thing here to understand is that I'm not underestimating the value of indians, rather I'm saying that there a lot of good indians in IT, but there are a lot more that are very low regarding skills and knowledge of any advanced OOP techniques.
The problem India has is that you guys are BIG and your population is HUGE, so probably your bad programmers are bigger in number than the population of my entire country(Romania), so you must understand how the things really are.
So even if Romania would have 50% of the programmers in very bad shape(which is not the case), it still wouldn't be a problem because that 50% in real numbers would be very low and the real influence on the global internet market very very low.
But if 50% of the indian programmers are lame.. you can do the math probably better than me..

Once again I'm not trying to offend anyone, specially those indians that are contributing to the IT scene worldwide, all my respects to those, what I'm saying here is that numbers matters..

Also I won't defend or argue the position of romanian programmers around the world.. reputation speaks for itself.

Cheers ;)

Nitesh Apte said...

If you are talking about both sides of a coin then there are good and bad programmers in India. But this applies everywhere. If your reputation speaks so much then why do we find more Indian programmers then from your Romania. And if Indians are bad programmers then you are blaming the big IT giants for hiring wrong people??? IT industry don't work as per of your assumption Mr. You believe that most of Indian programmers are bad. So tell me how many Indian programmers you have met in your life? Let me guess not more than 100. Collect the accurate data and then post comments. And do the maths in both quality and quantity.
Because you whatever you posted mainly tells that India has large population and so bad programmers are more here. Have you ever studied Mathematics, have you ever studied about ratio, proportion or percentage???? I guess not otherwise you haven't said such thing. Work on Maths. How could you be a developer with such a poor Mathematics??? You aptitude is weak. You Really NEED to work hard.