Jan 29, 2014 10:53 PM
43 Posts

Xpages for development in comparison to PHP or JSP or ASP .NET or any other technology

  • Category: Other
  • Platform: All
  • Release: All
  • Role: Administrator,Developer,End User
  • Tags: Xpages,PHP,JSP
  • Replies: 4

Hello all,

I already have mentioned this question on stackoverflow(http://stackoverflow.com/questions/21438842/xpages-for-development-in-comparison-to-php-or-jsp-or-asp-net-or-any-other-tech) and based on Tim Tripcony suggestion I am re-posting it over here, hoping for a better feedback.

I have been working on Xpages from last 2 years now and have also worked with PHP in the free time for developing web applications. I have had experience with both but still would like to compare this with prominent technoligies in the market. There have question asking what is good for web development and my question still asks the same with Xpages in picture.

XPages, in comparison to others provides a document oriented database with highly secured enviroment provided by IBM but this comes with the server cost wheras PHP could be actually hosted on any hosting server with minimum expenses. Also, tools like Dreamweaver make PHP development with jquery, html and css very easy and efficient. Sequel databases have their own set of advantages and disadvantages.

My question here is that, if I have a huge project under development with millions of users and pages (say a CMS based system) then what parameters should be considered and when and how these technologies could be more beneficial? This could rather be a generic comparison .

Security, Scalability, Stability and Flexibility is of primary importance to me. Any suggestions/guidelines would be really appreciated. Thank you.

 

Feb 1, 2014 2:30 PM
272 Posts
Comparsion is overrated

In case you have a real large project with millions of users and millions of pages, you will have billions of requests to your application. This is the point where you don't have to think about the "framework" or "technology" your are using in the backend, because they are all the same: Some of them are faster, some of them can handle more "users" at once, and some of them can easily maintained by other developers.

Let's take Facebook for example, they have choosen the worst "technology ever": PHP. Most developers will tell you that you can not create any working application with this scripting language, and they will tell you how brilliant this-or-that technology is. But in fact, it does work, because the only problem you will have with PHP that you need more resources (aka Servers) instead of coding everything in C++.

But is this really interessting*? FB has more then 180.000 servers running for 1 Billion users. Let's divide this amount by 1000, and you have 180 Servers left for your application you would need fit your requirements. If you are lucky enough to implement your application in the best "framework/technology ever", you still have to run more then 100 servers at once (you need load balancers, replicators for your db's etc).

In short, you need to think about your architecture of your application, because you should always able to switch: A new data storage layer,  a new front-end framework, a new back-end framework. You need developers and administrators which are able to work with your choosen technology.

And you must split up your processes: For example, it is a bad idea to send an email directly when clicking a button in the front-end - create a database entry to send a new mail, and let a background task process the mail. This allows you to scale the required resources and won't block any processes.

That's why I have coosen PHP and the Yii-Framework for my current project cyccle.net

I can always change the MySQL Databases in the backend, can change the front-end framework, can change the backend if required (Lighttp instead of Apache, node.js instead PHP, etc.).

Hope this helps you a little bit...

Regards

Sven

http://blog.hasselba.ch

*: Yes, that's why FB implements a PHP compiler to reduce the amount of required servers. But they still use the same technology.

Feb 2, 2014 11:54 PM
43 Posts
Frameworks and PHP? How about XPages?

Hello Sven,

Thank you for your answer. Since, you have shared your views for PHP, I would like to ask a few things(this might be slightly deviated from my original question).

So, well, you mention the use of Yii framework for development but then again there are many such frameworks say, Laravel, Symfony or Codeigniter. The concept behind each of it maybe same with some features here and there. But, then is it a good idea to work with a framework?(I am already using Laravel for development currently but still wanted to hear some generic views).

Well, I have heard this from a few people that PHP is a bad scripting language and for such people Facebook is the primary example stating that even Facebook is trying to partially change its backed with powerful C and C++ code. So, my question is are such things planned? Do we really need to consider this before development?

Also, I would like to hear from someone who has developed a huge application with XPages. I have personally had a good experience with XPages but then I don't know, I am not that boosted up to work with it for huge projects. Can anyone please throw some light here too.

Feb 3, 2014 7:45 AM
272 Posts
my two cents
In my opinion it is a bad choice NOT to use existing framework (btw. XPages are a framework too) especially if you plan to run your applications in the WWW. First, there are a lot of security reasons (parameter handling, SQL injections, CSFR etc.) - actual frameworks have protection mechanisms implemented by default. And second, why reinvent the wheel?
 
 
A good example for creating a working application first and THEN optimize it, is Facebook itself. Beacuse that is exactly what happens here: if FB started, the technology used was total ignorable. If you look back on this decision today, it was a bad idea not to write everything in C++. But FB is now 10 years old, and they are changing this NOW* by switching the backend and/or implement new things in C++. Witch makes sense from the ROI point of view, because the investment of a million $ to save millions of $ (by reducing the server costs with lower hardware requirements) is a good choice.
(Don't forget that 'backend' also includes processes for their Big Data Analysis).
 
And this brings us back to my point of view: Your decision depends in your requirements. If you know you have to run your application for million of users from the first second, optimize it and write everything in C++. In this case, your budget shouldn't matter about the effort you will have (compared with a framework if your choice). The money you will save because of lower HW requirements will easily compensate it.
 
But if you have a startup with no/low budget, and don't know how many users you will have, try to implement it scalable as possible with the lowest effort. If your server is running on the limit, add a second, a third etc). If Yahoo, FB, Twitter or Google then are buying your company for 1 billion $, use the money to rewrite everything.
 
You should always think twice about the requirements you currently have to make a decision about the required technologies. But don't think about "maybe in five years this could bring some troubles" and make your life harder than it is.
 
Just my two cents....
 
P.S. What's your definition of a large XPages application?
 
P.P.S.
What is your requirement / definition for your CMS? This is the main question before choosing a technology.

 

Regards

Sven

http://blog.hasselba.ch

 

*: Now means since three or four years

Feb 3, 2014 1:43 PM
43 Posts
Thank you

Thanks Sven. That really answers all of my questions. Indeed helpful.

Well, my dad handles multiple chain retail outlet and a huge wholesale business in fashion clothing here in India and have tried looking into multiple softwares (infact bought 1 from local firm out here) for stock management, billing, accounting, CRM and many more such features. I know there are many available softwares for such requirements but I was planning to build something more solid and flexible in this area (on web and not as an application).  Currently just doing some research (comparing technologies, available solutions etc.) and requirement gathering. Planning to start development next year. :)

Thanks again :)