Lately I seem to be busy mainly with consulting to Internet and Mobile startups, and one of the things I get asked a lot is which technologies I recommend for a given project.
It seems to work best when I give two approaches to serving data, one based on newer tools such as Node.js and CouchDB along with a more conservative alternative using Ruby on Rails or traditional LAMP stack as underlying technology.
As a prelude to the detailed project plan and data design, I usually give an overview of current trends.. I get asked that a lot, so I thought Id put my observations online here as a few bullet points :
Technology Trends :
- Web and Mobile projects are converging [one usually implies the other]
- Most data is social data [for the user and the people they interact with]
- Most data naturally fits a tree or graph structure [tabular, not so much]
- JSON has replaced XML [hand-in-glove with web, iPhone, Android ]
- Scalability is a feature [can be deferred, but no easy migration path]
- The days of generating HTML from PHP are gone [use JSON feed + jQuery]
- People still use PHP and MySQL [it works, you can find developers]
- Code using MVC frameworks tends to be overly verbose [Zend, Rails, Django]
- Node.js and CouchDB are cool [but the newness of NoSQL is risky]
These are universally accepted as a good thing :
- iPhone vs Android : both are good, competition is great!
- Architecture : [ server data store ] <–> [ JSON ] <–> [ Web / Mobile client ]
- AppStore revenue model
These are technologies to watch for :
- SVG [allows new kinds of User Interface on web & mobile ]
The above observations and predictions raise some interesting questions.. but Ill save that as juice for another post.