Creating your startup from scratch.
Part 2 – Language, Frameworks & CMS
Choose your language
First of all there are 3 questions you should ask yourself ( by @JoeStump ):
- Can you find developers?
- Is it widely supported?
- Does it makes you happy?
Forget about performance issues ( PHP Doesn’t Scale, nor Ruby, nor Perl… ) because languages don’t scale. It’s not really important to make your code 300% faster, it’s not where your bottlenecks are. So instead of finding out the best ever existing programming language you better spend your time thinking about one which of them will make your life easier.
I choose PHP. I’m not saying it’s better or faster, it’s just the language I’ve working on for the last years. There are many resources for PHP on internet to help you master it and get the best from it.
Don’t reinvent the wheel
Now I recommend some investigation. Can I implement my idea in any of the already developed technologies? Can I use a Content Management System for my project? You should really consider about using an existing CMS and apply the necessary modifications better than develop all your idea from scratch.
A Content Management System (CMS) is a computer application used to create, edit, manage, search and publish various kinds of digital media and electronic text (via Wikipedia)
Some of the best Open Source CMS are:
- Silverstripe (PHP, MySQL)
- Joomla!(PHP, MySQL)
- Drupal (PHP, MySQL)
- Plone (Python, MySQL)
- Alfresco (Java, MySQL)
- Wordpress(PHP, MySQL)
- OpenCMS (Java, MySQL)
- Mambo (PHP, MySQL)
- Typo3 (PHP, MySQL)
- e107 (PHP, MySQL)
- Liferay (Java)
- DotNetNuke (.NET)
- MODx (PHP, MySQL)
- XOOPS (PHP, MySQL)
They are all pretty customizable (using plugins) and with no big modifications you can have your site up and running in nearly no time.
My application is too complicated! CMS are not for me
Depending on the needs of your application maybe a CMS won’t be useful for you. It’s time to choose a programming framework. A framework is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality.
It’s the base for all your code with additional objects to help you deal with the different problems you may encounter during the development. Some important features to look for in are:
- MVC (Model-View-Controller) design pattern
- Templating
- Caching
- Security
- Database abstraction layer
- Filesystem access
- Form Validation
- Inbuilt CMS
- Inbuilt auth
Known PHP frameworks ( via One2 )
Other Frameworks:
As you can see I always try to use any known technology. Here you can find a complete list of frameworks
Part 1 – Choosing a domain name
Part 2 – Language, Framework & CMS
Part 3 – Design, resources & Inspiration
Part 4 – Database selection
Part 5 – Hosting or Dedicated Server?
Part 6 – Control Version System
Part 7 – CSS Structure
Part 8 – JS Structure and Framework
Part 9 – URLs &SEO
Part 10 – Testing tools
Part 11 – Promoting your Startup
Sources :
15 Open Source Content Management Systems
Choosing a Framework

Comments
just like part 1, very informative + I look forward to the rest!
Gareth Poole
April 29th, 2009