Thursday, January 28, 2010

5 Reasons Peoplecode Sucks

5. No Overloading operators.
No overloaded object constructors and methods. This isn't a huge deal, more just an annoyance if you come from another language that uses this feature (most!).


4. Code is stored in the database.

First of all, this is very unorthodox and it hurts performance. It also prevents you from using modern tools like source control and therefore version history of a block of code is maintained with comments. Database refreshes are unnecessarily complex because code needs to be moved from base to base so it isn't lost (and sometimes it is anyway).

3. Poor IDE
There are a few nice things about the Peoplecode editor like syntax highlighting and shortcuts with ^, but the lack of autocomplete puts it years behind more modern IDEs like Eclipse or Netbeans. Another annoyance is the inability to do a side by side of two classes in the same application package. Also, many modern IDEs accommodate ANT or MAVEN scripts that can automate unit tests and directly launch the code being worked on. Can't do anything like that in Peopletools.

2. Good for CRUD apps, bad for everything else.
Sure, you can slap together a one page crud app in a day but what is the standard way to make a multipage form? There isn't one, so you are on your own and it is clumsy. Also, try debugging a delivered application that isn't a single page CRUD app and you'll realize that even the people who created Peoplecode don't have a standard way to make multipage form.


1. Poor Community

The Peoplesoft developer community is much smaller than the Java or C# developer communities. Java is constantly improving because of community efforts like Spring.
Peoplecode is more of a what-you-see-is-what-you-get language. Nobody is going to create open source solutions for a proprietary language. Any time you have a problem, you are likely blazing the trail.

Integration broker message going to done with no action

If IB messages are just going straight to done without running the handler, it can be corrected by regenerating the routings on the service ...