Java - the language and platform is as entrenched in enterprises as Cobol was in its heyday. According to Sun President & CEO, Jonathan Schwartz, there exists 4 million Java developers worldwide, 650 million PCs have been shipped with Java, and 350 million mobile phone handsets are enabled by Java. And this was in 2004 at the JavaOne event. You can't get more "enterprisey" than Java.
Java was created by a team led by James Gosling in 1991 with the express goal of creating a language + platform that can run on multiple operating systems without a re-compile, has in-built support for network programming, be able to securely execute remote code and follow object-oriented methodology.
In The Art of Java, by Herbert Schildt and James Holmes, Schildt and Holmes state "Java so fundamentally altered how we thought about programming that the history of computer languages can be divided into two eras: Before Java and After Java." They go onto say "Programmers in the Before Java world created programs
that ran on a stand-alone machine. Programmers in the After Java world
create programs for a highly distributed, networked environment. No
longer does a programmer think in terms of a single computer. Instead,
the network is the computer, and today we programmers think in terms of servers, clients, and hosts."
Personally, I continue to use both C++ and Java, C++ upwards of 10 years and Java for over 8 years and I picked programming in grad school(crap, I am old). Though I love C++ (get a rush while manipulating pointers without memory leaks/crashes), I find Java with its supporting libraries especially their .net, .sql packages, a lot easier to put together the kind of apps I put together. Check OdinJobs search engine, its 100% Java .
How Does Java Compare with Other Languages
Java has had its share of bad to crappy packages (AWT anyone), I am not a big fan of applets either. Applets was supposed to be the technology that brings programs over the net, but from my personal experience, in real-life it was very different from the marketing spiel. It was slow, required the right version of the Java plugin, didnt render the same in all browsers and on the whole was very flaky. Java still compares favorably for enterprise development, be it web applications or stand alone applications. Here is a pros and cons of Java versus other languages.
Where is Java Now
Java in 12 years has become ubiquitous in corporate IT shops. Java is forging ahead in mobile, embedded application, and is dominant in server side applications. Java has to navigate the .Net challenge from Microsoft and also face upto the challenges from dynamic languages in web applications.
The Java Market Overview provides a comprehensive demand and salary variation across the United States.
C++, from its first version, released in 1983, has grown in popularity and quickly became (and still is) the dominant language in systems programming and used extensively in application development.
C++ creator, Bjarne Stroustrup, wanted C++ to be compatible with a complete language with sufficient performance and flexibility to handle the most demanding systems programming tasks. According to Stroustrup, he created C++ to write efficient systems programs, the immediate motivation was being able to distribute operating system facilities across a network. He thought C the best system programming langauge at that time. This, coupled by the fact that he was fortunate to have C experts like McIlroy, Kernighan, Ritchie and others just down the corridor in AT&T labs to bounce ideas and get feedbacks, he made C++ a direct descendant of the C language. He made C++ to include type checking, data abstraction, support objected oriented concepts while retaining almost all of C as its subset.
How Does C++ Compare to Other Languages
Who would be the best person other than the creator to compare c++ with other languages. Stroustrup in his "A history of C++:1979 - 1991" has an entire section devoted to commercial competition. He compared C++ with other languages like Modula-2, Objective C, Ada, Smalltalk. I think the same comparison would be valid when you compare c++ with newer enterprise languages like Java, .Net family of languages, etc.
C++ was designed not as an academic experiment to create the perfect programming language. Nor was it a commercial product to enrich developers. C++'s fundamental strength is its ability to operate in a traditional environment, its run-time and space efficiency, the flexibility of its class concept, its price and its non-proprietary nature.
(source:A history of C++ : 1979 - 1991, Bjarne Stroustrup.).
Where is C++ Used
Vincent Lextrait has an excellent collection of products or utilities, and the language used in implementing them. According to him, Microsoft Windows has used C++ extensively, Google Desktop search and Microsoft desktop search both use C++. All office programs, including Microsoft Office, Star Ofiice, Corel/WordPerfect use C++. All the major databases have been implmented in either C or C++. Oracle, Sql Server, Mysql in C++, DB2 and Informix in C. C++ has a strong presence in financial/trading systems, it along with C the language of choice in game development. Vincent's list is the most comprehensive I have seen. There is another list maintained here by Stroustrup.
What do you need to have, to be a C++ Developer in the Corporate World
Looking at various job requirements for C++ jobs, a successful C++ developer need to understand operating systems (Unix/Linux/Windows API) and have a strong understanding of STL and other C++ concepts. A knowledge of databases will most definitely not hurt.
We have analyzed C++ jobs in US from 2007, and visually represented it on Google Maps. See how C++ jobs varied in raw numbers and salaries across states/metros.
PHP: Hypertext Preprocessor (PHP), was introduced in 1998 by Andi Gutmans, Zeev Suraski and Rasmus Lerdorf (the original PHP/FI creator). In less than 10 years, there are over 20 million internet domains hosted on servers with PHP installed (source: Wiki ). We will talk to our PHP experts to see why they think PHP rocks
Jeff Moore: Cofounder of the WACT project, Jeff is a columnist for PHP Architect. His Blog .
Hasin Hayder: A zend certified Engineer, Hasin maintains the largest PHP user group PHPExperts in Bangladesh. He is a author of "Object Oriented Programming with PHP5", "Smarty PHP Template Programming and Applications" and "Wordpress Complete". His Story Telling
Vidyut Luther: A PHP guy since 1998, Vidyut is currently an independent consultant working primarily with LAMP. He uses his PHPCult as a pulpit to preach to the people who visit his site.
Ed Finkler: a member of the PHP Security Consortium. Ed conceived and built PHPsecinfo to audit the security settings in PHP.INI or PHP environment. Ed works at CERIAS, the Center for Education and Research in Information Assurance and Security at Purdue University. His place.
Matthew Turland: the first PHP 5 Zend Certified Engineer in the state of Louisiana. Very active, in the open source community, he is currently working on a service module for the Zend framework, a Remember the Milk API. His "Web Scraping" article has been been published in PHP Architect Dec 2007 issue. Visit his "I Should be Coding".
Richard Heyes: builds high traffic sites using PHP (LAMP). His high quality code is showcased in PHPGuru, and Yes, they are a free download. He is an active Pear developer.
Martynas Jusevicius: Based in Copenhagen, Martynas, a MSc student, is the author of DIY framework, open-source lightweight web application framework based on object-oriented PHP 5, MySQL, and XSLT. Visit his blog
Q: If you were to start afresh, would you learn PHP again?
Jeff Moore: Yes, I would learn PHP again. PHP has a large base of readily available internet applications. There are open source projects with large support communities and features, such as WordPress and Drupal. There are more CMSes than you can shake a stick at. There are excellent, commercially supported applications such as SugarCRM and vBulletin. Wikipedia is one of the largest sites on the web and its MediaWiki code is freely available for use or for study. Chances are that if there is type of web application that you want to use, someone has already written something in PHP. While you don't need to know PHP to install and use these applications, knowing a bit of PHP allows you to get more out of this valuable resource. Knowing PHP is useful, even if you aren't a full-time PHP programmer.
Hasin Hayder: Yes (probably) - When I will see that Yahoo, facebook and some other big web sites (plus applications) are built on PHP, I will definitely give it a go.
Vidyut Luther: Definitely, but I'd also study more comp sci before I got into programming again.
Ed Finkler: Definitely. PHP is a very powerful, very productive, easy-to-learn language that is well-suited for development of web applications.
Matthew Turland: Most definitely! It's proven such an integral part of my experiences as a developer (hobbyist and professional) that I don't think I could imagine what my general perspective would be like without it.
Richard Heyes: Absolutely. It would be harder naturally, since when I started, shortly before the advent of PHP 4.0.0, since there's a lot lot more to PHP now. But it's by far the predominant language for creating web sites/applications. There are others of course, but they don't have the flexibility or "speed-to-market" that PHP has.
Martynas Jusevicius: I would learn PHP again. But I'm also glad that it wasn't the first language I learned. There many people who start with PHP without knowing the basics of programming and are producing spaghetti code, and who think that building a web app is as simple as throwing some scripts that they found on Google together. I like the object-orientedness of Java and ease of deployment of PHP, so I'm using PHP 5 but trying to make my code look more like Java.
Q: What do you think is the most important feature of the PHP language?
Jeff Moore: There is no one single feature. PHP has a set of features that work well together, they include garbage collection, dynamic typing and a low level of abstraction, which make the language accessible. This accessibility along with cheap and widely available hosting is an important enabler of PHP's open source, community-driven application base. PHP is a special purpose language, so use it for your web front ends, take your other stuff elsewhere. Lacking a deployment or compile stage makes for fast feedback cycles and easy development. A large community means support and documentation. The maturity and size of the PHP community mean that all of PHP's faults are well known and their solutions are as well.
Hasin Hayder: The simplicity of PHP is the most interesting feature I think. What you can do using some elite languages ( for ex, Java) in months, you can do it in PHP in a week.
Vidyut Luther: The community.
Ed Finkler: It's impossible for me to pick a single feature -- the usefulness of a language is usually defined by its full set of features, not one or two. I would probably list these as PHP's most significant features *to me*:
* Ability to embed within HTML docs and tight integration with Apache - "time to productivity" is my shorter because of this
* Very solid out of the box support for MySQL and sqlite, with a variety of other DBs supported
* Powerful, flexible arrays
* The ability to support both procedural and object-oriented approaches well
Matthew Turland: Its duck typing system. Many languages I've worked with, and in fact most of the languages I now work with professionally on a day-to-day basis, are strongly typed. While this does have some advantages, there are capabilities offered by weakly typed languages that can decrease the amount of implementation work required by allowing for higher levels of abstraction.
Richard Heyes: Its ability to integrate with other platforms. Currently you would have a hard job making a decent or large site from PHP alone. It could be done, but it would be wholly unrealistic to assume this is always the case.
Martynas Jusevicius: I don't know if that can be called a feature, but I would say the ease of deployment again. Which resulted in popularity. Other than that, PHP is not really special as a programming language. PHP 5 brought some nice improvements though -- object-oriented model, better XML and database support.
Q. What PHP forums would you recommend?
Jeff Moore: SitePoint and the PHP Dev Network are the only two I visit with regularity.
Hasin Hayder: PHPBuilder and PHPTalk. Also Sitepoint and PHPArchitect forum is quite good.
Vidyut Luther: Google, and php.net, and irc (irc.freenode.net). The mailing list is very good as well. I'd also subscribe to the feeds at planet-php.net
Ed Finkler: I don't read any forums, per se. I do recommend the following resources, though:
Matthew Turland: If the word "forum" is being used as a general term here, I highly recommend the ##php and #phpc channels on the Freenode IRC network. As far as forums go by the traditional internet definition, I can't speak to any in particular, as I rarely have to resort to using them in order to engage in discussions, ask questions, or get feedback on ideas.
Richard Heyes: I don't read any forums due to a lack of time. Though I do read and sometimes post to the php-general list. My view isn't always appreciated by the more "hardcore" people though... :)
Martynas Jusevicius: sitepoint.com I probably. I'm not active in some general PHP forums. I use a local forum and a mail group, as well as those of a specific tool or library, such as Propel ORM or XSLT. I find out a lot of stuff following blogs, and on Google of course.
Q. What book would you recommend to a newbie?
Jeff Moore: The online manual for PHP is pretty good. I don't really pay much attention to newbie PHP books. I'd recommend
- Pro PHP Security,
- Essential PHP Security,
- php|architect's guide to PHP Security.
- PHP in Action
- php|architect's Guide to PHP Design Patterns for more advanced PHP programmers.
I'd also recommend php|architect magazine.
Hasin Hayder: Power PHP Programming for sure. And beside That, PHP Unleashed, Learning PHP5 is very good.
Vidyut Luther: All the books from Dale Carnegie, most programmers need serious help with their social skills, and need to understand that they live in a symbiotic world, they need the marketing droids, and the sales folks. From a technical aspect: Object Oriented Thought Process, Mythical Man Month
- PHP and MySQL Web Development by Luke Welling and Laura Thomson
- Essential PHP Security by Chris Shiflett
- PHP5 In Practice by Elliot White III and Jonathan Eisenhamer
Matthew Turland: None, actually. The only books that might be valuable to a PHP beginner only apply if that person has had previous experience with a particular language and the book is specifically targeted at such a person. The online PHP manual is the best existing reference available for a beginner. PHP books that are worth their weight generally deal with applying PHP to a specific application domain and are targeted at intermediate to advanced users.
Richard Heyes: I don't read now due to my sight being rather poor, but I used to read the O'Reilly books a fair amount. That and the certification books (which will take a more technical approach I think).
Martynas Jusevicius: To be honest, I can't remember I would be reading a book specific to PHP.
Q. Name a programming language that you would like to learn? (if you had the time & resources, of course)
Jeff Moore: I'd like to learn one of the functional languages, not for commercial reasons, but to broaden my education.
Hasin Hayder: Python
Vidyut Luther: c#/.net stuff.
Ed Finkler: Probably Python, although I'm also curious about Objective-C, Ruby, Actionscript and Erlang. 8)
Matthew Turland: At the moment, I have my eyes on Lua. My interests do tend to vary, though. I have also in the past had an interest in learning Ruby and C#. Let me know if you have any other questions or need me to expound further upon the answers above.
Richard Heyes: Well, I've tried to learn quite a few so I'll summarise:
C - Not enough time by far
C++ - Ditto
C# - Nice, but since there's a Microsoft lilt I forewent it
Perl - Too obscure and a very steep (IMO) learning curve
Python - Looks very nice but not exactly popular compared to PHP
Ruby - Too obscure
PostgreSQL - Nice, but I already knew MySQL quite well. Plus MySQL seemed much easier to work with day to day
SQLite - Useful, but not to me since I have access to MySQL.
I've tried a fair few, but always continue with PHP due to it's ease of use and its versatility. Plus I can do everything I want to with PHP, so I've now got no reason to learn anything else. HTH
Martynas Jusevicius: Not Ruby, so far I'm doing ok without it. I think Erlang, they say concurrent programming is going to be big. And I should get back to XQuery some time again.
I thank the panel for sharing their views and I hope this helps you understand why PHP is, where it is.
This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See
According to Gamasutra, December sales were up a whopping 59% in hardware and an anemic 5% increase in game sales. The most popular hardware platforms still remains PS/2 with 1.4 million units, followed by XBox 360 with 1.1 million, Wii - 604K and PS/3 with 490K.
Why do I predict 2008 to be the year when opportunities in game programming will explode....
1) My Personal experience this holidays...
I borrowed a Wii from a friend this holidays and I was just floored by it. It made me get off the couch and actually do something vaguely resembling exercise. I was amazed at the wiimote, the transducers or whatever they use, to detect motion and angles was great. In Tennis, I can actually do a top spin , lob and the degree is controlled by how much of a swing I take. Sure, I can fake it but I Swung my arms like I would swing in a real court. I tried Tiger Woods PGA Tour, and the effect was near real, I did well where I normally do well in a course and stunk where I invariably fall apart in real life. The stroke, the swing speed, the putting where as real as you get and you get to complete in Pebble Beach and St. Andrews in the same hour.
Now here is the catch, Wii and this also goes for Xbox 360 and PS/3, have only a few titles out there, today, that makes full use of the new technology. Lot of them are down right horrible, a friend of mine tried Ping Pong (Table Tennis) on Wii and said that it really sucked.
There is a whole new way of designing and programming games using the Wii type of control compared to the old joystick. All the consoles sold are waiting for mind blowing games and game software makers better be ramping up.
2) Game Makers are not stupid
"....The focus for 2008 will be in the software category, where CEA estimates a 26 percent increase in sales over 2007," said Consume Electronics Association spokeswoman Jennifer Bemisderfer.
Brush up on your 3D Computer graphics, C++ and Object Oriented Programming and develop games that people like me will love, on their Wii's, Xbox and PS/3s.