|
I'm not sure what you mean by "malfunction". Every language has its limitations and there are always bugs that follow, but an expert in the language can determine these bugs and typically find a work around (if possible). The only replacement language I would suggest at this time would be python; Perl is rather old and whilst an excellent language for desktop administration, has kind of diminished its following for web based software; C#/VB and ASP.net is windows only unless you trust mono which is guaranteed to be more flaky than the windows MIL interpreter; ruby, jsp and cold fusion will have more difficulty finding a supporting host. So PHP, Python and to a lesser extent, ASP.NET are the only suggestions I would make.
Unfortunately, given the list you have here it appears you have found a novice PHP programmer that underestimated the work and under-delivered. Functionality that consistently breaks unrelated functionality is typically a sign of poor design principles that forces deep nested functionality between multiple pieces instead of datasharing with objects or sub routines (functions, but didn't want to confuse the term with the functionality). So for example there is functionality nested between two pieces of the application, and by changing something like, say, the database property names, you need to alter this in two locations instead of one. Every new programmer I know does this as well; its a matter of knowing how to make something work first, then figuring out how to make things work together by sharing therefore making it smaller, more efficient, and more centralized. This is a skill which is learned by programming experience, but unfortunately many novice to intermediate freelance developers do this on "the client's dime" (which may or may not be a problem).
Typically in this type of situation, you will often need a complete rewrite. An intermediate or expert PHP programmer would probably waste more time debugging existing code and making it work versus rewriting it from scratch. Its one of the worst things to hear I know, but the developers in question would inform you of which approach they would take.
|