3

My company is in the financial sector and it is using PHP as programming language. I am a PHP developer myself.

I am leading a big project started from almost scratch. I can see how PHP is not the best candidate for building robust platforms.

I want to convince my company to gradually switch to Java (which I have experience with).

I was trying to find as many supporting arguments as possible. Can you help with this?

So far I have found these:

  • Most of the competitors are using Java (anyway not PHP)
  • Most financial companies use Java rather than PHP
  • On average, Java developers are better prepared (on average!)
  • The compilation process catches a lot of problems before the software runs in production
  • Strong typing makes everything more robust as contracts between interfaces is well defined

Any other points I am missing?

Thanks!

10
  • 2
    I would consider moving from PHP to Java as a good thing. But you should be aware that most of the people (at least most of the most noisy people) complain bitterly about Java. I myself would like a lot to move from Java to Scala. In short, the same advantages that you have considered for Java could be considered for Scala, and you have to add that, on average, Scala developers are much better prepared than Java developers.
    – Trylks
    Feb 5, 2014 at 15:35
  • 3
    While I do prefer staticly typed and compiled languages, I've seen many 'not so robust' java applications. If your programmers cannot create such a thing in PHP, I doubt they will magically be able to do so in Java. Feb 5, 2014 at 16:23
  • 3
    Some of your arguments seem pretty hand-wavy to me. "We should use Java because it's better. And my reason that it's better is because Java better." Feb 5, 2014 at 16:40
  • 6
    Also, "everybody else is doing it" is not a good reason by itself. That needs to be backed up with the reasons they're doing it. Feb 5, 2014 at 16:41
  • 1
    In my experience most financial companies use .NET, so using your arguments, you should migrate everything to Windows. Surely. Or you could try some more objective and useful arguments.
    – gbjbaanb
    Feb 6, 2014 at 14:10

4 Answers 4

15

The only reasons that could justify a language switch are those that overcome all of the advantages of staying put.

  • The company has an entire software division whose primary employment is writing PHP. Switching to a new language, especially one as different as PHP to Java, WILL require training and several months of lost productivity.
  • The company has several systems built on PHP. Switching to Java implies re-writing those, which is a huge undertaking that should be avoided if practical.
  • Several of the company's software systems already work together the way PHP expects to work together, which is amazingly different from the way Java works between programs.
  • Depending on your development stacks, you may have a not-insignificant investment in PHP specific IDE's and reference materials.

Of course, none of the above are without reasonable counters. If there are available frameworks and tooling that may be used exclusive to Java, or a likelihood of the company merging or collaborating a competitor, or your software team is full of people with a lot of Java proficiency, there's less risk and more gain in making the switch.

Honesty, though, you may have more luck in ADDING Java to your company's stable of languages than trying to switch. I would hope that, if nothing else, your company already uses SQL, JavaScript, and either XML or JSON in addition to PHP. Adding a more strongly-typed OOP language like Java or C# could be a great complement to your host of PHP apps.

1
  • 3
    But it's still "complement". It's not a compliment to any language to try to use a different one instead. Feb 6, 2014 at 10:15
1

First you need to convince yourself. You have to exclude personal preferences from your reasoning. You may also try to change word Java to C++ (C#) in your list of arguments - most of them will stay valid but you should explain why C++ (C#) is not a good choice. If after all manipulations you find that the real reason is personal preference - you can set up your own start up or join competitors.

UPDATE: This is marketing problem - you found number of benefits and disadvantages of switching to Java. You should choose those that are important for stakeholders. Better be honest because later you would be blamed if something goes wrong. That is why you should remove all subjective arguments. Personal preferences are important but they are not convincing. Think in terms of investment and return from it. It's not just features of programming languages - you should provide busines plan with details of how you would do PHP to Java transition.

5
  • 4
    Note that "personal preference" is not a benefit without consideration. All else being equal, developers do better work in languages they enjoy.
    – DougM
    Feb 5, 2014 at 19:05
  • @DougM but it's not a valid business case as there are other programmers (and they already work there most likely...) whose personal preference is PHP.
    – jwenting
    Feb 6, 2014 at 7:38
  • Consider plan - we will fire 40 PHP developers out of 50 and let rest 10 to support current product. At the same time we will hire 20 Java developers who will be as productive as those 40 that we fired because Java is type safe language. 20 Java developers in 1 year will implement new product and then we can get rid of those 10 PHP supporters.
    – AlexT
    Feb 6, 2014 at 7:41
  • @AlexT financial plan? If those 20 Java coders each cost 3 times what one of those PHP coders was costing before you're still in the red. And the risk of critical people being lost increases as team size is reduced. Thus the risk towards business continuity goes up, which is a strong counter argument against reducing team size which a lot of financials will have in mind.
    – jwenting
    Feb 6, 2014 at 12:03
  • @jwenting and do not forget the significant loss of all the knowledge built up in the way the existing products and company work. Plus, you'll have to retain all those PHP devs just to maintain the old code.
    – gbjbaanb
    Feb 6, 2014 at 14:16
0

I don't see anything about the financial impact in your question/arguments. You HAVE TO talk about this as well when presenting your idea and your arguments. This is a business and money is the only thing managers and stakeholders care about. As long as it's profitable, managers and stakeholders don't care if you code in C#, Java, PHP, Javscript or even COBOL (may God have mercy on your soul if you deal with this one).

This is obviously going to have a negative impact on all employees productivity and is going to cost the company a lot of money short-term and medium-term even though you mentioned a gradual switch to Java.

But, if you really strongly think that this will result in a PROFIT on the long run, then this should be your primary argument when making this suggestion. Otherwise, I kind of doubt you'll succeed. Oh, and make sure you have some proof about WHY this would be profitable on the long run. Just saying that it will doesn't make it true.

Good luck :) .

-2

Java code is easier to unit test.

This benefit might sound simple enough, but since your existing system is written in PHP, you may have other points to sell in order to make it sound appealing.

I know that there have been improvements in the area of testing PHP code using frameworks such as PHPUnit, but I am skeptical about the ability to automate these tests (after reading up on the latest PHPUnit documentation). As far as I know, there is still no true way to utilize continuous integration as there are no actual builds, only subversion (or other VCS) tags to roll back to in the event of discovered defects.

The last PHP project on which I worked (2 years ago), required the developers to come up with our own, project specific solution to run unit tests, which were expected to be manually run before requesting that code be deployed (meaning, plain text files moved) from our development server to our staging server. (Note use of the word 'expected', rather than 'required'.) Much room for human error.

Hope that helps!

4
  • 3
    PHPUnit is quite easy to integrate into a build system actually. While it is true that you can have better compile-time syntax and code quality checking in java, php isn't completely without "compile-time" tooling either. You can use a combination of php -l, phpcs, phpmd and hhvm-wrapper to get quite a good picture of the code quality prior to shipping. Also, IDE's like phpstorm contain extended code quality checks which help you find those tricky type mismatch issues prior to shipping. Feb 6, 2014 at 8:12
  • @JoeriSebrechts for mentioning phpStorm.
    – Songo
    Feb 6, 2014 at 9:05
  • 1
    Actually, we use Atlassian's Bamboo for continuous integration of our PHP projects and it works quite well: it runs the unit tests, it uses phpcs, phpmd, JDepend etc. It's fairly elegant and pleasant to work with and it gives us a good big-picture view of our code. In conclusion, I think software tools, unit tests, code reviews and competent programmers is much more important for the success of a project than the programming language it's written in. Feb 6, 2014 at 9:33
  • Good to know! I agree that good programmers outweigh any decisions about language, tooling, etc. Just trying to help by adding my experience in testing with Java. Very happy to learn that PHP is coming along so well.
    – braikin
    Feb 6, 2014 at 10:29

Not the answer you're looking for? Browse other questions tagged or ask your own question.