Would you (Java Developer) learn PHP? if management decided opensource (PHP) projects could fulfill business requirements


(Apologies for the long post. I'm really keen to get sound and balanced advise. The only way to do that is to provide you with a good overview of the situation.. :) ..)

I would like to say upfront that i am not a programmer. I'm 1 of 3 partners in a small start up. Two of us have a business and sales background, whilst the third guy is a very experienced Java Programmer/engineer (and a good friend).

As with most start ups we believe we'll be the next big website. We have found a opportunity that the "Long Tail" really describes well. By this i mean a product range that isn't currently being tapped into online. As with Amazon, our model is about offering every available product within the niche. Through the availability of everything outside the fast selling products, we hope to become best website for the niche.

We have placed a lot of focus on building the business/technology system that allows us to build our inventory information very quickly. This was because we knew that the size of our inventory would make or break our usefulness to end users.

So now i come to the problem that prompted me to seek your help.... (please help)... :)

In my (non-technical business) mind, we now have the ability to build our inventory quickly. This is just the start though, as a business we also need the following solutions before making money:

1) A shopping cart application to allow buyers to search our inventory, communicate with our business and make orders etc.
2) A CRM application that would then allow the effective management of customers and orders.

I found my way to Magento and SugarCRM both of which appear to be very impressive. The idea being to use Magento for the buyers (search,buy,interact etc) and Sugar for our staff (order processing, customer service etc).

In my mind the long term rewards of being able to update these core applications from the communities, would far outweigh the steep learning curve. Not to mention the time/money that would be required to even attempt to catch up with what already is stable and tested....

My friend and business partner is unwilling to consider anything in PHP and to a large degree opensource. He's of the belief it would be best to start from scratch. This feels painful as he currently has a full time job and as with most start ups, we're not cash rich. My second worry is how would we keep up with any competitor who may choose the Opensource route.

Here's further details about our operational requirements:

1) Our stock is currently held across 30+ different branches. Which means that we'd need a way for each branch to sign in and manage their own customers.

2) Our business has regions and each region has branches. In order for us to focus the various management levels of the business, it would be ideal if each management level could see the business relevant to them. For example National manager (can see everything), Regional manager (can see all branches in his region), Branch manager (can see everything for his branch with certain admin rights) and Customer service (can see everything in their branch with minimal rights). This is the only way we can have one umbrella site, which can be serviced by staff in branches nationally.

3) Over and above managing orders, it also makes sense that the messages are managed centrally through the application. This way any member of staff can easily see the past history with the customer and assist. I'm thinking that the questions would almost always come in through "Ask a question about this product" link, so incoming messages could be routed to the branch who has the part. If it's aftersales, then the branch who sold it. For general questions through contact us, we'll allocate a member of staff at head office.

4) I think it would be appropriate to show buyers upfront on the product page which branch has the part and the branch information.

5) Our inventory size is currently over 300,000 products. The business plan is to rapidly increase this to 10 times that figure.

6) The products are spare parts. Therefore the buyer would need to search by the original product that the parts fits... Each part can often be used on various products.

From a language agnostic business person (non-programmer) - any opinions or advise on our situation would be much appreciated...

I'm keen to find a way of us unlocking horns, either way... I just struggle to see any strong value in "re-inventing the wheel"....

Thanks in advance,

Software Ecommerce Technology

asked Oct 14 '09 at 00:21
G Maximus
23 points

7 Answers


I have a number of (conflicting) thoughts on this:

  • Programmers often have a severe NIH (not invented here) syndrome - they want to build everything from scratch. It doesn't work at large companies that have alot of resources and it rarely ever works at a startup. You couldn't pay me enough to work on any team where the members want to do all the parts themselves - it just doesn't make sense.
  • Programming is about using the right tool for the right job. If you can get alot of benefit from PHP you should definitely do it.
  • In general a startup should choose the language that the founders are comfortable with, as learning a new language can take effort and time which you might not have. You should seriously evaluate if there are equivalent software in the Java world as the ones that you can see in PHP. Then again you give a good programmer a new language and he can be fluent enough in it in 24 hours.

You might need to consider if you need a partner with PHP experience.

My personal bias: I actually belong to the same category as your programmer - I am a strong Java developer and can tell you all the reasons why I think PHP is a bad idea. But Facebook using PHP in itself is an argument that it as a language can work in many situations. If Magneto meets most of what you want - then you should just start with that and spend your time on the remaining challenges of growing a business.

answered Oct 14 '09 at 00:43
1,080 points


Some random thoughts

  • Developers like to develop their own products.
  • I hear this a lot if we go open source we can just modify it ourselves and they make it sound like it is trivial. In-order to modify an open source system takes a considerable amount of effort and commitment.
  • Going from Java to PHP is kind of shock. Even though the two languages have similar syntax the fact that Java is very consistent and uses strong type checking makes it far easier to maintain the application in Java over the long haul. (I have developed major projects in both Java and PHP) If the open source product works for your current need most definitely go with it but if you want to make major changes to it to make it fit your business model I would do some investigation to make sure that it is still worthwhile to use the open source route.
  • answered Oct 14 '09 at 01:38
    John Soer
    596 points
    • Your 1st two points hit on key concerns of his. So i researched what's in it for the business? or if that's the pain, what is the gain? The research into Opensource applications pointed towards things such as "with enough eyes, every bug is shallow", which is another form of what we're doing/applying here "wisdom of the crowds". Having toyed with a local installation, i've been amazed by how much value there is in that. Not just the quality of the app but the vast knowledge base that has been captured threw the crowd working together towards a shared goal>Developing the best tool for the need – G Maximus 14 years ago


    First things first: You can check the validity of your idea using open-source tools for say 6 months or so. During these 6 months, you'll learn a lot about e-commerce and customization etc.

    In long term, you'll want to build your own e-commerce engine customized to your business needs and offers excellent experience to your users.

    So yes, start with something that's already there, put things into action and side by side develop your own. Execution matters!

    answered Oct 14 '09 at 01:02
    Arpit Tambi
    1,050 points


    i would suggest trying magento and sugarcrm even if it is only to evaluate the two products to see if they work as you expect. it won't cost you much except for your time to evaluate them both and make a decision. writing a shopping cart and crm to handle the number of products you suggest is going to take quite a while (if you are only doing it in the weekends).

    there are also a number of opensource java projects that cover some of the features you want, if that is preferable to your friend.

    Also by taking the opensource solution (even if it is just for the short term), you can start selling in a much shorter timeframe. once your business idea is proven and develops, then you can look at customising the software or creating your own to give you a competitive advantage.

    I am a php programmer (who used to and still sometimes writes Java code), so just a note of warning Magento is probably one of the most complex php apps i have looked at. If I was a beginner php programmer i would be reluctant to start learning with that application

    answered Aug 11 '11 at 12:31
    101 points


    First of all I would suggest you to search similar java open source solutions, there are also good projects in that field for sure. But if still they don't fit you I would suggest two business guys concentrate on ideas and requirements. Then hire 1-2 outsource programmers, it will cost 2-3k per months. And third (Tech) can concentrate on management of developers and during that time learn php and related tech things needed for you business.

    answered Aug 11 '11 at 14:48
    Areshchanka Alexandr
    49 points


    I am a Java and PHP programmer. I am skilled with both languages as I have started with PHP in 1998 and with Java in 2001. Even when the most stuff I work on at daylight is in Java, I write PHP code weekly. Java is a very good language, and PHP has some flaws, that is true. But if you start with Java, you need simply more time for your project. Not every project has this budget. Later, after lets say 4 or 5 months, when the project has grown, you become quicker with Java than with PHP. PHP is very quick if you start from scratch, but due to the kind of its language (easy types for example) you might have problems to stick on clean code. Especially if you have young programmers in team, it is easier to oversee Java code than PHP.

    That being said, if you have 2 or 3 dedicated PHP programmers who -want- to do quality work, they can do it, even with huge projects. I have seen PHP software with 100.000+ lines of code which was excellent. I have seen PHP software with 10.000 lines of code which was a mess.

    But the same can become true with Java software. After all, you can have a mess or quality software in each language. It is just easier with Java in huge projects, because you have tons of analysis or refactoring tools.

    That being said, what is your need? Do you need to get a quick start and do you think your product has limits in which you can see clearly the size of it? If the size is low, the budget is low and you need to go quickly, I would choose PHP.

    If the size is huge, you cannot oversee the dimension of where the software can grow and probably need all of the cool refactoring/analyzing tools- go with Java.

    Another point: is your software for the cloud? Then go with Java. more tools, better support.

    Now to Open Source vs from Scratch. From scratch is almost idiotic in the most cases. Even when you do not choose a ready product, you should choose a framework were you can build your product upon. You cannot avoid to use Open Source. It is excellent software (in many cases) and gives a benefits in terms of competetion, speed etc.

    If the question is, a Open Source Shop or not. How complicated are your needs? Once I wrote a pretty simple shop with a few articles and a basked in 1 months fulltime (PHP). This was pretty basic. I never could simply download any of the cool plugins like for example wordpress offers, I have to write it myself. I didn't want to do that, so my shop died.
    But if you have lots of requirements, like multiple currencies, translations, different shop categories, sub shops, credit card transactions etc et al, then you are wasting some time with doing it from scratch.

    There is one exception. I would never use xt:Commerce/os:Commerce. This shop system is open source, but it is pain to code. You have a pretty quick start with it, but if you need to modify something you loose time and time and time

    Finally I would like to add:
    I would learn any language, if the tool I can use with it would solve my problem the most pragmatic way.


    answered Aug 11 '11 at 18:11
    3,590 points


    I am going to leave my opinions of languages and frameworks to myself. I am a biz guy and there is a reason we hire CTOs.

    BUT, I do have to say that most incredible software engineers (over 200 of them so far, most full-time working for cos I've been part of) I have worked with were all platform agnostic and could learn another language literally in under a month and master it in 3 months. Those who were too married to any platform usually did not last.

    Best technology decision we have made were from building experiments and beating the heck out of them.

    answered Aug 12 '11 at 01:11
    Apollo Sinkevicius
    3,323 points
    • You worked with over 200 engineers, all of which could master any programming language in 3 months? That's ridiculous. Please show me these 200 engineers, I'll give them C++, Haskell, Erlang, Caml and 12 months. After that year we could rule the world! – Ekoostik Martin 10 years ago

    Your Answer

    • Bold
    • Italic
    • • Bullets
    • 1. Numbers
    • Quote
    Not the answer you're looking for? Ask your own question or browse other questions in these topics:

    Software Ecommerce Technology