OT: Java vs PHP
Joseph Sinclair
plug-discussion at stcaz.net
Sun Jan 20 18:32:38 MST 2013
A little nervous jumping into the perennial language/platform discussions, but here goes. (and please understand these are opinions, based on my experience, nothing here should be interpreted as an invitation to argue if X is better than Y; it isn't and it's not worth arguing about)
There are more Java programmers than any other language or platform, at least for the past few years. Every college program I know of uses Java as the language of teaching, so new grad programmers almost all can work in Java (perhaps not very well, but they know the language and platform).
If you're working on something quick, go with what you know. It seems that PHP is what you know already, so go with that.
If you're building a larger system, then, if possible, start with something open-source and modify to suit.
If you cannot start from an open base, then (given the options you present) build in Java for a web application and use some of the thousands of open libraries to help (the maven build tool does a great job of managing dependencies). There are many good reasons that Amazon is built almost entirely on Java, as are many (if not most) other large commerce sites and services.
Be aware that, coming from a small-project background, you should expect everything to take 5-10 times longer than you would normally estimate. You'll be building something bigger than what you're used to, and building a large system to be high quality and maintainable requires a lot more time and effort than a small project. Also, if building in Java, get a real expert in the platform (and I don't mean a "Spring expert") to provide technical leadership; like any large platform there are many ways to do things, and some will be far more maintainable down the line than others.
I, personally (with exceptions, of course), tend to lean towards Java for web-based systems (particularly if the domain lends itself best to a REST SOA/ESB type architecture), C++ for locally-installed applications or system-software, Python or Groovy to script things together, Javascript for in-browser interaction, Scala or Erlang for high-throughput event-driven and asynchronous MPI systems (e.g. AMQP services), and a grab-bag of other tools when needed.
==Joseph++
One final note (at the risk of starting a two-front ideology war). I saw someone recommending Waterfall as a development methodology. This is a recipe for failure, as proven over, and over, and over (in academic papers, peer-reviewed scientific studies, and commercial results too numerous to list) during the past 30 years. There are exceptions, but you're not building a life-critical embedded system, you're building a web system. Avoid Waterfall methodologies and start with a well-used agile methodology (e.g. Scrum, Kanban, XP, etc...), try to stick to the methodology as much as possible for the first year of using it.
On 01/20/2013 12:24 PM, keith smith wrote:
>
> Hi,
>
> I am in the process of planning a web project.� I'm thinking possibly using Java.� To this point I have done all my web projects using PHP.� I know there will be a learning curve.
>
> My main question is the availability of Java programmers.� It seems there is a lot of PHP talent available for PHP projects.� I like that there is a lot of availability of PHP programmer because that makes my apps supportable if I move on or am otherwise not available.�
>
> I have not met a lot of Java programmers, so I assume they are not available the same way PHP programmers are.� In other words I think I can visit Gang Plank HQ and find a hand full of PHP programmers that I would fee good about pulling into a project.� I'm not sure I can say the same with Java programmers, however I have not paid much attention when it comes to Java programmers.�
>
> You thoughts are much appreciated!!�
>
> ------------------------
>
> Keith Smith
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: OpenPGP digital signature
URL: <http://lists.phxlinux.org/pipermail/plug-discuss/attachments/20130120/3a85d7a2/attachment.pgp>
More information about the PLUG-discuss
mailing list