Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Do people develop websites from scratch when there are no particular requirements or they just pick up an existing web framework like Drupal, Joomla, WordPress, etc.

The requirements are almost similar in most cases; if personal, it will be a blog or image gallery; if corporate, it will be information pages that can be updated dynamically along with news section.

And similarly, there are other requirements which can be fulfilled by WordPress, Joomla or Drupal.

So, Is it advisable to develop a website from scratch and why ?

Update:

to explain more as got commentt from @Raynos (thanks for comment and helping me clearify the question), the question is about:

  1. Should web sites be developed and designed fully from scratch?

  2. Should they be done by using framework like Spring, Zend, CakePHP?

  3. Should they be done using CMS like Joomla, WordPress, Drupal (people in east are using these as frameworks)?

share|improve this question

marked as duplicate by gnat, Kilian Foth, Yusubov, Corbin March, Dan Pichelman Sep 3 '13 at 19:35

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

7  
"existing web-framework : drupal, joomla, wordpress" Those are not frameworks, those are bloated out of the box CMS toys. Like sharepoint. Yes people "develop websites from scratch" –  Raynos Sep 21 '11 at 10:44
1  
@raynos agree these are not really frameworks , frameworks are like cakephp , zend, parado php, etc but things as i see developer in the east world are using what you call toys as frameworks ! even if something don't fit into wordpress they will usewordpress and modify the code of simple pluging to make wordpress fit the requirment !! –  Ali Sep 21 '11 at 11:43
2  
Those people are programming by coincidence. They are not programmers, you can ignore them. Just do it properly. –  Raynos Sep 21 '11 at 12:09
3  
Please limit yourself to 1 punctuation mark!!! 3 !!! doesn't really mean anything. –  S.Lott Sep 21 '11 at 12:23
1  
I wouldn't necessarily put Drupal in the same toy box as WP. Drupal is a Framework with built in Content Management UI, often referenced to as CMF (Content Management Framework). –  timofey Nov 4 '13 at 8:27
show 2 more comments

7 Answers 7

up vote 12 down vote accepted

Should web sites be developed and designed from scratch fully?

No.

Should they be done by using framework like spring,zend, cakephp?

Yes.

Should they be done using CMS like joomla,wordpress,drupal?

Yes.

Here's the rule.

Write Less Code. Get things done sooner.

Create value as quickly as possible, writing as little code as possible.

share|improve this answer
    
I just came back to see your answer. Well done in as little words as possible with use of existing framework(i.e. sentences) . :-) –  Pankaj Upadhyay Sep 21 '11 at 12:31
    
@S.Lott in business yes, there is value in developing and designing from scratch for education. Of course if you need to anticipate change (which everyone does) you want a highly flexible system that makes change easy, most existing CMS don't allow this. You need to both get things done sooner, and minimize the time it takes to implement future changes. 20% of time is spend developing, 80% is spent maintaining. It's too easy to misinterpret your answer as "Hack it for maximum gain today" –  Raynos Sep 21 '11 at 12:40
    
@Raynos Eduction is an altogether different scenario. What the OP is asking is whether one should use Frameworks and CMS in case of no specific requirements from the client side. –  Pankaj Upadhyay Sep 21 '11 at 12:48
2  
@Raynos: My answer is Hack it for maximum gain today. "most existing CMS don't allow [makes change easy]" seems false to me. Can you provide a list or link or reference? "You need to both get things done sooner, and minimize the time it takes to implement future changes." Correct. My experience is that this is achievable without writing something "from scratch". –  S.Lott Sep 21 '11 at 13:43
    
@S.Lott I classify a CMS system as something like WordPress or Sharepoint. Those beast do a lot of things out of the box for you, and if you want that it's awesome. You try to customize them to do something special, you try to extend them to do something very specific or you try to bend it into doing something it wasn't designed to be (a flexible website or a flexible web application) then they fall over. Given how adapting to change pre-actively is important I find it immature to recommend "hack it today for maximum gain". Your just making the live of the maintainer hell. –  Raynos Sep 21 '11 at 13:47
show 4 more comments

or using existing frameworks like Drupal, Joomla, WordPress is the norm now?

Certainly not for me; I think if you have reasonably complex business logic it is advantageous to develop from scratch. Well, when I say scratch I am using Spring.

share|improve this answer
    
+1, or Groovy. Extending existing framework can be an enormous effort, while the chance that you'd need it is quite high, you can't take every single bit into account during path finding. –  bobah Sep 21 '11 at 12:11
add comment

Build From Scratch

At my last job (3 years ago) we built every website (all 300+) from scratch. We owned the servers. We knew exactly what was happening to our servers. We were a small shop 6 people. Our customers did not want to look like they came from a template.

Today, I see a ton of BLOAT that is caused by these web toolkits. View the source on some of the newer websites and look how much JS code is being imported/called. If you rely on all these external libraries to pull off the "Web Magic" then you better know how to tweak or fix it if it doesn't perform as expected.

For example: A customer wants "Futura" font which is not readily available on all machines. So, instead of telling the customer that "Futura" is a poor choice for a website font, you find a JavaScript library that embeds the font directly into the page. After the page loads then "Poof" the font changes from Times New Roman to the embedded "Futura" just like magic. If you can't fully support it don't use it.

We didn't build every thing from scratch. When ever a customer asked for a new widget would often ask ourselves... "Is this a Build or Buy" widget. If we could interface the widget into our existing code without too much trouble we'd buy it. We rarely bought widgets that we couldn't brand to be our own. We never bought widgets that did not include source code.

If you only build websites as a hobby or just do 2-3 a year then perhaps it's not worth it for you to build it from scratch... just be careful where you get code from. Ultimately it's your reputation.

share|improve this answer
    
I see it has been answered a while back... nonetheless, I wouldn't be afraid of libraries, it's a typical cycle of advancement in programming and typically happens between a transition from the programming language to its successor. –  timofey Nov 4 '13 at 8:36
    
Every advantage of "building from scratch", that you'd listed, could be achieved much more efficiently by starting with Wordpress and building a custom Wordpress theme. And if you're doing more work than you need to in order to get the result the client wants, then I would question how you're billing. –  user16764 Jan 18 at 16:08
add comment

The requirements are almost similar in most cases

Interactive web site or web application development is mostly a solved problem and this is evident in the powerful tools that exist today to support rapid development that didn't exist even 10 years ago.

The similarity in requirements usually fall under the typical boilerplate concerns that most web applications carry (Eg. Authentication, Authorization, Instrumentation, Data Access/ORM, Transaction Management, etc...).

We have today combinations of AOP (Aspect Oriented Programming) with DI (Dependency Injection) to help turn cross-cutting concerns from codes into configurations. See Spring for a practical implementation of such frameworks.

So when you talk about developing a website "from scratch" then you need to be more specific about that. I can build a website from scratch from tested and verified components or I could reinvent the wheel and design and build each one of my components individually which would be a rookie mistake. If I wanted to build a car, I would find and buy components like tires and radiators and assemble a car, I wouldn't start forming tires from moulds or forging steel. Those problems were solved long ago.

share|improve this answer
    
Although you are correct in general that "from scratch" is a relative term, in this case it's pretty clear from the question that he means "not using an existing web framework". –  jhocking Sep 21 '11 at 19:06
add comment

A Web Site is best served by a CMS.

A Web Application is not well served by a CMS. Some sort of coding framework may be helpful though.

The key is to ask yourself where on the scale from Site to Application you are. If most of your pages are about presenting information, lean towards a CMS. If they are about doing something, lean towards a framework.

share|improve this answer
add comment

It really depends on the goals of the site, and what they're trying to present.

Yes, a lot of sites are using frameworks if they're making sites that sit well with that kind of thing, but (especially at the moment) a lot of companies want to do more with their pages (or think they're doing more) so will develop everything completely from scratch.

Which way is better really depends, again, on the goals of the site. Neither way is worse, exactly, but simply a decision the companies need to make on a per-site basis.

share|improve this answer
add comment

If you want to get a prototype fast, you use a CMS (drupal, joomla etc.).

If you want to complete a project for a client you use a framework so you don't have to reinvent the wheel. Be it Django, Ror, symfony, spring etc.

For a personal project which are usually made to learn things, you can start from scratch. It's useful to try doing some things yourself to appreciate the power of those frameworks.

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.