Go Back   SitePoint Forums > Forum Index > Program Your Site > PHP > PHP Application Design
Newsletter FAQ Members List Calendar Mark Forums Read

New to SitePoint Forums? Register here for free!

SitePoint Sponsor
 
Reply
 
Thread Tools Display Modes
Old Feb 3, 2005, 13:14   #1
freephile
SitePoint Member
 
freephile's Avatar
 
Join Date: Feb 2005
Posts: 3
Post Advanced PHP Programming in Corporate World

I consider myself to be a Web Application Developer, meaning that I have the skills of a web developer (xhtml, xml, DOM, javascript, PHP, perl, CSS, browser compatibility, UI design, rdbms and dba, linux, apache configuration and administration, etc) combined with the experience of software development lifecycle, best practices, project management, documentation, debugging, code profiling, system administration, quality assurance, and release management. I started out back in 1996 on Microsoft, but discovered Linux in 1999, and moved to a Linux desktop in 2003.

Since I have been looking for work, I continue to notice a remarkable consistency in what technologies are used/sought after in the corporate environment. If PHP is used (not the most common), there is an additional requirement of Java, or C++. I have not yet gone 'up the ladder' to these more traditional programming languages.

The other striking observation that I've made in my job-search is that there are few if any 'webmaster' or jr. software developer jobs. I guess these are victim of the economy or offshoring.

For example, here is a typical example of what companies are looking for in a Sr. Web Application Developer:

Java v1.4, Servlets, JSP, EJB 2.0, Oracle PL/SQL, Weblogic 8.X, JDBC
Knowledge of the Spring Framework, Struts MVC framework, and ANT a plus
I have focussed on serving small businesses where a Java setup is overkill, never mind the expense. Because I have focussed on free technologies, I have avoided costly licenses for things like Oracle, Weblogic or BEA etc.

I have several questions:

If you are a Java or C++ programmer, how did you learn it? I can only assume that somewhere there is an entry-level job at a large company where you can train on the expensive proprietary products, or that if you major in CS that you'll get some experience there.

If you have experience in advanced PHP development, meaning that you are using template engines like Smarty or Flexy, object-oriented programming libraries from PEAR, and advanced PHP applications/frameworks like eZPublish, Plone or Horde, what is your current occupation/employer? Are you using any of these in a corporate environment? Do you also know Java, C++ etc. and if so, how do you feel they compare?

What is the easiest/quickest/best (these are obviously not the same) way to learn Java? I am currently reviewing sitepoint java tutorials and looking for more quality sites.

What are the good resources on the net?

If you use all these technologies/applications professionally, do you develop on a Linux workstation or Windows?
freephile is offline   Reply With Quote
Old Feb 3, 2005, 15:02   #2
kuato
SitePoint Addict
 
Join Date: Jul 2003
Location: Los Angeles
Posts: 200
Quote:
Originally Posted by freephile
For example, here is a typical example of what companies are looking for in a Sr. Web Application Developer:

Java v1.4, Servlets, JSP, EJB 2.0, Oracle PL/SQL, Weblogic 8.X, JDBC
Knowledge of the Spring Framework, Struts MVC framework, and ANT a plus
What is the easiest/quickest/best (these are obviously not the same) way to learn Java? I am currently reviewing sitepoint java tutorials and looking for more quality sites.

What are the good resources on the net?

If you use all these technologies/applications professionally, do you develop on a Linux workstation or Windows?
I can give you a few suggestions. First off, the amount of knowledge required for programming java webapps is a bit overwhelming which is why you need to focus at first because you can't expect to know everything. After you spend some time learning the language itself you really need to know how to use a good IDE like eclipse or netbeans, it's just so essential for writing a serious java webapp. You also need to know Ant but it's not like you have to read an entire 700 page book on it. Just know enough to build a webapp with it and you can learn more about it as you go along.

Focus on learning JSP+JSTL, some kind of MVC framework like Struts, Spring(highly recommended) or Webworks. Learn an ORM like Hibernate, JDO, Cayenne and pick a database to get good with. Finally, learn a servlet container like Tomcat which is simple to use or full-blown app server like JBoss, Resin. Nobody expects you to know them all but at least you if know one they'll know you can pickup on another one. If you learn Tomcat and Struts well enough and the job requires Weblogic and Spring you might impress them enough to show you can learn those on the job.

As for resources, my favorite is www.theserverside.com but there's also www.jguru.com and www.javaranch.com. Sitepoint is not the greatest site for java tutorials, most are old(ack, EJB articles from 2001) and most tutorials on JSP use ugly scriptlet code.

Recommended books: J2EE Development without EJB. Hibernate in Action. Core Java Volumes I&2. Effective Java(after you know java well enough). JDK 1.4 Tutorial. JUnit in Action. Eclipse in Action. And finally the O'reilly book on JSP and Servlets.

It's a lot to soak in but with time it will pay off.

Oh and I develop on Linux all the way. I can't stand Windows.
kuato is offline   Reply With Quote
Old Feb 4, 2005, 11:29   #3
freephile
SitePoint Member
 
freephile's Avatar
 
Join Date: Feb 2005
Posts: 3
Thanks Kuato, and I like your new site too. I just setup a VPS myself with 1and1.com, and reading your 'securing your VPS' article was valuable to me also.
freephile is offline   Reply With Quote
Old Feb 4, 2005, 12:51   #4
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,788
I started off learning PHP but I realised what you recently found out in regards to what is acceptable/required from the start off about 18 months ago.

I started to look into Java about then though I suppose if I was being honest my Java skill and knowledge is still limited in some ways, for example I've not looked at JSP? I've looked at Swing for a while and found I liked it a lot, an area I'd like to get back to in fact

As for the web, my view is that PHP is more ideal than for example JSP but JSP is still a preference simple because it's Java - in the sense that a lot of software is still Java as I see it.

Python is another option to look into I suppose, it's not mainstream (yet) but compared to Java, it appears to be a 'general all round' platform as well...

Just my thoughts though
Dr Livingston is offline   Reply With Quote
Old Feb 5, 2005, 09:54   #5
hillsy
Yugo full of anvils
bronze trophy
 
hillsy's Avatar
 
Join Date: May 2001
Location: :noitacoL
Posts: 1,870
Off Topic:


Plone isn't a PHP framework...
__________________
that's me!
Now A Pom. And a Plone Nut
Broccoli Martinez Airpark
hillsy is offline   Reply With Quote
Old Feb 7, 2005, 01:11   #6
norbert_m
SitePoint Enthusiast
 
Join Date: Jul 2004
Location: Budapest, Hungary
Posts: 38
I do also feel that corporate environments prefer Java most of the time. Marco Tabini, the publisher of php|architect came up with the idea that the reason behind this is that decision makers doesn't necessarily know that PHP is suitable for the solution, though PHP is enterprise-ready now. He has started to look for case studies and plans to start a website dedicated to them. The site will promote PHP for enterprise use and will provide marketing materials to let decision makers know about the fact, which itself existed for months (years?) now and software architects usually know about it. However, the people who actually make the decision didn't get any business materials for that.

I believe the very same and have big expectations regarding the website. This is why I continue on specializing in enterprise PHP (web) applications and complex portals.
norbert_m is offline   Reply With Quote
Old Feb 7, 2005, 05:23   #7
OfficeOfTheLaw
SitePoint Guru
 
OfficeOfTheLaw's Avatar
 
Join Date: Apr 2004
Location: Quincy
Posts: 643
I think another problem would be PHP's reputation as a language used as scriptlet code. When I started programming php, I didn't even know about it's OO features until I read sitepoint.

I think the majority of badly written code and code intermingled tightly with html probably shuns most decision makers away, as well as a number of "articles" out there sich as this one that gives them a bad impression of php overall.
__________________

James Carr, Software Engineer


assertEquals(newXPJob, you.ask(officeOfTheLaw));
OfficeOfTheLaw is offline   Reply With Quote
Old Feb 7, 2005, 07:08   #8
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,788
I don't actually believe that the corporate world of business (and finance for that matter - there is a slight difference) are ignorant of PHP and how far it has come. Sure there may be a few black spots but I feel that they are aware of PHP and proberly are also aware of what PHP is capable of as well

But I suppose that PHP is still seen as muddied water at the moment, Zend are doing their best to promote PHP in a better specitive but that is about it... Who else is pushing PHP I ask? Pratically no one.

Whereas Java has been around for years, has a developer base with experienced developers in any number of industries, etc etc PHP lacks this unfortunately in regards to actual development of enterprise level projects, and the time PHP has been enterprise ready?

Just my thoughts. I feel there are a few other issues but lets see what others have to say first huh
Dr Livingston is offline   Reply With Quote
Old Feb 7, 2005, 13:41   #9
shakin
SitePoint Addict
 
Join Date: Nov 2001
Posts: 213
I learned some because my last employer chose a Java solution. I wouldn't recommend that to anybody. Java web apps certainly have a ton of power, but I see them as overcomplicating a simple answer in favour of a structured solution. Java's strength is still interoperating with legacy systems far away from web servers. The whole Java web app framework(s) seems like a big hack to me. There's no web language there... only Java. I don't program web sites in C++ anymore, either. (I'm glad those days of C++ CGI are long gone).

Right now I'm a pure PHP developer. This company hasn't even considered Java due to their small size. The primary web app was programmed in PHP starting in 1998. It's a kludge now because of its humble roots, but it works. Anyway, since we've been bought out by a huge corporation they've been in the background so we still have that small company feel. I like it that way. Finding a PHP job isn't too hard, but you do have to look harder. The best place is often companies who just need a web developer and don't want to make the technology decisions themselves. Law firms and smaller companies are perfect.

If I were to try to learn Java now I'd start by building an app that I already know the design for. Maybe a small CMS or forum. Then I'd build it in JSP so It would be familiar like PHP is. From there I'd rewrite some of the functionality into servlets. Once you've learned that, jump into Struts and try to write the whole thing again with proper MVC design. However you learn, just make your first apps really messy so you only worry about how to code, not what your app's design is.
shakin is offline   Reply With Quote
Old Feb 9, 2005, 19:00   #10
hdsol
SitePoint Enthusiast
 
hdsol's Avatar
 
Join Date: Oct 2004
Location: wolcott Ct
Posts: 41
I see the big difference as two things. First Java was along longer then php. Java has the backing of major corporate backing. Php, being more of an opensource technology gives some people the impression that it isn't as strong. This is the same reason that Microscam's buggy exploiter is still the most used browser.
hdsol is offline   Reply With Quote
Old Feb 9, 2005, 22:43   #11
bigduke
get into it!
 
bigduke's Avatar
 
Join Date: May 2004
Location: Australia
Posts: 863
Would it not be better if we looked into "WHY" java is still a corporate favorite and THEN bring PHP on the scene?
From what I know, versions of Java have been developed specifically to serve the enterprise world. I am unaware of the details of what it offers because I'm not Java man, I'm sure freephile could elaborate on this.
Secondly think about the user base, java is being used by the large scale software producers, now if the producer doesn't offer it (php) the consumer has little choice. Oh! and consultants usually have the ability to influence the client's lang req. PHP, so far due to the more-or-less unorganized development community structure has failed to entice the (not USS) "Enterprise". Unless the guru's lead a humungous team and develop something that could challenge java's prowess, PHP will find it diff to arrive on the enterprise arena in a big way. Probably its time when Zend came out with a PHP EE .
Most companies in India ask for C/C++/Java experience for assessing the programming base of prospective employees. Due to the variation in their target environments it is hard to compare one with another, each is suited for certain stock tasks.

Chaps ... its about time we united and made something big with php ... PHP guru's on sitepoint, if you read this ... start acting ...
__________________
Profile | hsekhon.com | Tweet me!
bigduke is offline   Reply With Quote
Old Feb 10, 2005, 07:11   #12
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,788
Some good points you've made, although on the point of an organised development initiative to compete against Java I think is pointless in regards to the length of time Java has (already) had to establish it's self for one reason?

Nothing that can be done 'to' PHP for the medium term could have any (substantial) effect on the Java user base, by medium term I mean the next 3 to 5 years. Also I don't think that PHP being open source (today) puts coporations off as now we see that Sun Microsystems has released Java under the open source umbrella.

Maybe in the past PHP being open source was seen as a weakness but not today, I think coporations have evolved to accept that open source is here to stay, and in fact has some advantages
Dr Livingston is offline   Reply With Quote
Old Feb 10, 2005, 07:53   #13
bigduke
get into it!
 
bigduke's Avatar
 
Join Date: May 2004
Location: Australia
Posts: 863
yeah I totally agree Dr. ... infact coming to think of it if a company gets a product under an open source license ... gives them all the more freedom to have it tweaked by a "cheap labor" consultancy thereby reducing costs.
But now that you have some "fat" apps turning up on the enterprise scene done in PHP and maybe a few other tools to add power ... maybe all we need is that little push to get into the game and give other dev tools a chase for their lives
Also, if reputable firms like Zend gave out renowned certificates like MS and Oracle and Sun, maybe the enterprise trust in a company employing such developers would increase which may in turn help in bringing php onto the corporate scenes.
You've got to admit, those part-time script-kiddies have really spoilt the market, there needs to be a way to distinguish yourself from them (besides past work ex.)
__________________
Profile | hsekhon.com | Tweet me!
bigduke is offline   Reply With Quote
Old Feb 10, 2005, 08:02   #14
hdsol
SitePoint Enthusiast
 
hdsol's Avatar
 
Join Date: Oct 2004
Location: wolcott Ct
Posts: 41
Let us have hope for the future. I think php will have its day but we have a lot of work to get it there.
hdsol is offline   Reply With Quote
Old Feb 10, 2005, 08:57   #15
shakin
SitePoint Addict
 
Join Date: Nov 2001
Posts: 213
I don't think it's fair to say that adding enterprise features to PHP won't take away from Java's user base, so it's pointless to try. What about PHP developers? I want those features.

PHP needs one thing that can be done in the short-medium term and would improve it enough to make me forget about Java: A real application server ala Websphere, OrionServer and JBoss.

This means that PHP would know it's running on an app server rather than as an Apache module and would open up features that the app server provides. It would have shared memory and page compilation (use Turck MMCache), real db connection pooling, a built-in database abstraction layer (build ADODB into the app server), and a standard API (maybe PEAR or something like that) with built-in THREAD SAFE libraries for GD, bzip, etc. By re-using and packaging existing technologies together into the app server it can be done quite quickly (other than the thread safe libraries). It would give PHP a standard server environment for enterprise development. By supporting shared servers and allowing Apache to run as the HTTP front-end, it could be everywhere.
shakin is offline   Reply With Quote
Old Feb 10, 2005, 09:23   #16
mgkimsal
SitePoint Addict
 
mgkimsal's Avatar
 
Join Date: Sep 1999
Posts: 209
Quote:
"This means that PHP would know it's running on an app server rather than as an Apache module and would open up features that the app server provides. It would have shared memory and page compilation (use Turck MMCache), real db connection pooling, a built-in database abstraction layer (build ADODB into the app server), and a standard API (maybe PEAR or something like that) with built-in THREAD SAFE libraries for GD, bzip, etc".
In some ways these are the things which make it harder/more costly to scale Java apps than well-design PHP apps. 'shared nothing' (not sure who coined that) effectively means that everything transient needs to be stored in a database of some sort, rather than shared memory. The DB connection pooling - I used to be a big advocate of that, and while I'm not completely against it, it's a relatively low-level thing, and as such, is probably going to tie you to one of the two camps (MS or Unix).

Planned for properly, the 'persistent connection' approach of PHP/Apache is certainly workable, and has never caused me any serious problems. Again, I say 'planned for properly'. Going back to '97 I hit some issues with that, cursed about it, said it sucked, then learned how to develop with the system instead of against it, and it's fine.

It's possible to do connection pooling, PHP file caching, standard db abstraction, standard library set, etc., and many people do it. They just all do it different. Having *one* proscribed architecture as the 'defacto' or 'default' standard might be helpful in other scenarios, but might turn off others, perhaps ending in a net wash for the advancement of PHP in general.

Any more thoughts?
__________________
Michael Kimsal
=============================
groovymag.com - for groovy/grails developers
jsmag.com - for javascript developers
mgkimsal is offline   Reply With Quote
Old Feb 10, 2005, 10:01   #17
bigduke
get into it!
 
bigduke's Avatar
 
Join Date: May 2004
Location: Australia
Posts: 863
Quote:
off topic:
am i the only n00b talking here ?? with less than a year of "real" php exposure
Its a crazy thought I know ... I was thinking of "threads" for PHP
__________________
Profile | hsekhon.com | Tweet me!
bigduke is offline   Reply With Quote
Old Feb 10, 2005, 11:27   #18
shakin
SitePoint Addict
 
Join Date: Nov 2001
Posts: 213
Quote:
Originally Posted by mgkimsal
In some ways these are the things which make it harder/more costly to scale Java apps than well-design PHP apps. 'shared nothing' (not sure who coined that) effectively means that everything transient needs to be stored in a database of some sort, rather than shared memory. The DB connection pooling - I used to be a big advocate of that, and while I'm not completely against it, it's a relatively low-level thing, and as such, is probably going to tie you to one of the two camps (MS or Unix).

...

It's possible to do connection pooling, PHP file caching, standard db abstraction, standard library set, etc., and many people do it. They just all do it different. Having *one* proscribed architecture as the 'defacto' or 'default' standard might be helpful in other scenarios, but might turn off others, perhaps ending in a net wash for the advancement of PHP in general.
I don't think running on an app server would necessarily hinder scaling. What I described is essentially a collection of standardized libraries and abstraction with a couple additional features thrown in. Scaling would be no different. I also wouldn't suggest that the Apache module be thrown out, rather that the app server become an option for the corporate world who want a standard development platform.
shakin is offline   Reply With Quote
Old Feb 10, 2005, 12:51   #19
freephile
SitePoint Member
 
freephile's Avatar
 
Join Date: Feb 2005
Posts: 3
oops, musta been thinking of another project when I actually said Plone. Although Plone rocks, it is Off-topic in a PHP forum, and I must have been thinking of something like Blueshoes, Seagull or Midgard. From the Plone website...
"Plone is built using Zope, an object oriented application server. The language that drives Zope and Plone is Python"
freephile is offline   Reply With Quote
Old Feb 10, 2005, 12:59   #20
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,788
Off Topic:

Wasn't there a recent(ish) thread started on this forum about an open source project that'd allow threads for PHP?

Okay, not sure just how far the discussion got, or if the project could eventually prove useful (for PHP) but it was related to threading if I remember.

Maybe the original thread owner could step forward with a url to clarify this
Dr Livingston is offline   Reply With Quote
Old Feb 10, 2005, 15:27   #21
arborint
SitePoint Wizard
 
Join Date: Aug 2004
Location: California
Posts: 1,689
Quote:
I don't think running on an app server would necessarily hinder scaling.
The only way it hinders it is that you have to scale your application, your database and your app server. It just adds an extra thing to have to work on. With PHP you only have to scale your application and database. The idea of PHP is that we use standard tools like filesystems, databases and LDAP servers, instead of building custom servers like they do in, for example, the Java world.

The two different approaches to scaling, or building apps for that matter, are just that: different. If you want an app server based system, Java is much better now than PHP will ever be at that approach.
__________________
Christopher
arborint is offline   Reply With Quote
Old Feb 11, 2005, 04:59   #22
vrom
SitePoint Zealot
 
Join Date: Oct 2004
Location: Moscow, Russia
Posts: 147
Quote:
If you have experience in advanced PHP development, meaning that you are using template engines like Smarty or Flexy, object-oriented programming libraries from PEAR, and advanced PHP applications/frameworks like eZPublish, Plone or Horde, what is your current occupation/employer?
TYPO3 (www.typo3.com)

About TYPO3

TYPO3 is a free Open Source enterprise-level content management framework that can be tailored to businesses to meet their internet, intranet and extranet needs. TYPO3 offers functions and modules as well as an expansion kit to maximize the scalability of the application.

At last count, TYPO3 was installed on more than 72,000 servers and more than 17,000 developers have registered at typo3.org. Worldwide, more than 700 consultancies and hosting companies in 50 countries offer TYPO3 services. The application interface is available in over 40 languages making TYPO3 a truly global solution.
vrom is offline   Reply With Quote
Old Feb 11, 2005, 05:19   #23
MiiJaySung
Resident Java Hater
 
Join Date: Jul 2004
Location: Gerodieville Central, UK
Posts: 478
If you look at universities etc etc out there, they all seem very Java orientated. I guess that Java lets students focus on problems without the querks in C++. Java is a broad lanaguage that makes it ideal for teaching other computer science related concepts, where as PHP is seen very much as a text processing language for web apps.

It seems the general progression after university for many students, is to get a job involving Java where they can build on something they are already familar with.

Like most programmers, once you learn a language, you find it hard to migrate to a new language due to the fear of having to learn all of the language specifics (for instance many will say C++ and PHP are similar, which is true when you see that both OO / Proceedual, etc etc, however there are loads of small differences that one has to get used to).

The other problem with many PHP coders, is there are a lot of "hackers" with no formal CS background such as myself. I guess that is why so many people are expected to know Java or CPP as those are languages that most people learn in CS courses, and therefore this means the programmer will have some idea when it comes to design and formal processes / terminology
MiiJaySung is offline   Reply With Quote
Old Feb 11, 2005, 06:03   #24
Dr Livingston
Non-Member
 
Join Date: Jan 2003
Posts: 5,788
I agree

Off Topic:

At the moment I'm thinking about pulling some hard cash together to allow me to get started on Sun Microsystems Java certs.

I already know PHP, have a general idea of design patterns and OO so why not huh? I feel I need the certification for myself and for a chance of gaining some kind of employment in the future.

At the moment my Java skills are 'not there yet' but I see the certification as being one way to learn Java, in a way I couldn't otherwise learn it, such as the way I learnt PHP

Knowing one language and being able to use properly (no hacking in other words) does help you learn other langauges more easily in my view. Learning (any) languages or technology is relatively easy, learning how to use it properly to gain the most is another matter all together
Dr Livingston is offline   Reply With Quote
Old Feb 11, 2005, 07:00   #25
bigduke
get into it!
 
bigduke's Avatar
 
Join Date: May 2004
Location: Australia
Posts: 863
*** Is currently looking at typo3.org. Almost thought you were correcting your typo mistake ***

Quote:
Off topic:
Dr. I've been thinking on those lines just to have a back-up plan for the future.
I've had java education at college, and since I personally didn't like it I never took to working in it. My java status right now is "I hate it" maybe about time i started liking it he he ...
__________________
Profile | hsekhon.com | Tweet me!
bigduke is offline   Reply With Quote
Reply

Bookmarks

« Previous Thread | Next Thread »

Thread Tools
Display Modes

 
Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

 
Forum Jump


All times are GMT -7. The time now is 17:54.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Copyright 1998-2009, SitePoint Pty Ltd. All Rights Reserved