Slashdot Mirror


Ask Slashdot: Has the Time Passed For Coding Website from Scratch?

First time accepted submitter thomawack writes As a designer I always do webdesign from scratch and put them into CMSMS. Frameworks are too complicated to work into, their code is usually bloated and adaptable online solutions are/were limited in options. I know my way around html/css, but I am not a programmer. My problem is, always starting from scratch has become too expensive for most customers. I see more and more online adaptive solutions that seem to be more flexible, but I am a bit overwhelmed because there are so many solutions around. Is there something you can recommend?

34 of 302 comments (clear)

  1. Yes by Anonymous Coward · · Score: 5, Funny

    Setup Dosbox runniing wordstar to do mailmerges to generate your temp pages.

    That shit is hand tuned assembler, it will scream.

    1. Re:Yes by marcello_dl · · Score: 3, Interesting

      Hmm, this sounds like a false dichotomy.

      The problem could be formulated like:

      "I know how to use HTML and CSS and javascript too, but:
      - translating my design to a complex CMS is time consuming, new versions might impose a lot of updating, and I must keep ahead of the plug ins that offer the functionality my site needs. Js widgets also need more work or attention to be succesfully integrated.
      - static site doesn't cut it because I need dynamic features like user logins or have data that is better organized in a DB
      - roll-your-own dynamic site with scripts requires a lot of attention to security and vulnerabilities"

      An answer could be: use a lightweight framework that does not impose many restrictions on the structure. Radiant for rails is the classic one, but I prefer wolfcms because it is a bit easier to deploy and has no domain specific language for templating, you embed PHP. Radiant needs an extension to do that.

      In such frameworks you could start with your hand crafted html and:

      - Put your hand made html pages in the CMS tree. The advantage is that you can login to the server to edit and upload content without much fuss (watch out for upload limits in php.ini though)
      - Separate design (using layouts) from content, so that less repetition and more consistency is achieved.
      - Automate navigation so adding a page to the tree updates the links and the site map.
      - Use either the DB or the page parts (they are like db fields, the page is like a record) to further separate content from presentation, so that even unskilled people can add content.
      - Refactor functionality in plugins so they get reusable (if you're getting a pro)

      If you're going to need app-like functionality, though, a full stack framework like web2py rails or the thousand others is where you'll likely end up, eventually.

      --
      ---- MISSING MISCELLANEOUS DATA SEGMENT --- [sigdash] trolololol
  2. Yes by Anonymous Coward · · Score: 3, Insightful

    You wouldn't grow your own wheat, sugar cane, raise chickensc, etc for the ingredients for your choclate chip cookies. Just go buy the dough from the store. Good enough for 90% of clients out there. For the other 10%, you might make from scratch but you are still going to use store-bought ingredients.

  3. Become a Programmer by LionKimbro · · Score: 3, Interesting

    ...and write a generator, to your own specification.

  4. Choose a CMS you like by s1d3track3D · · Score: 5, Insightful

    Well, it really depends what they need but most folks want a website they can 'control' to some ability and with lot's of built in features. As you said there are many CMS' out there. I'd say pick one which appeals to you, maybe one which has a separate template system, since you're a designer, you can make a nice front end, that is all they will care about anyway. (with template scaffolding this should speed up development time).

    I know all the php/wordpress snobs on /. will dismiss this and laugh but personally if i'm building a site for someone (usually for no money and limited time) I just install wordpress, 'secure it', then use or modify a theme. Just basic stuff, you can remove the meta links from the front page and other tweaks and now they have fully functioning site that you don't have to do much to. If you are hosting it, be prepared to apply security patches the instant they come out and backup the db.

    1. Re:Choose a CMS you like by fuzzyfuzzyfungus · · Score: 5, Insightful

      With the one caveat that, unless your client was already selling herbal viagra and penis pills, you'd better allocate enough time for patching in perpetuity and/or until the money runs out.

      Not like web servers haven't had their share of bugs; but you'd think Adobe had something to do with Wordpress.

    2. Re:Choose a CMS you like by buchner.johannes · · Score: 4, Informative

      I know all the php/wordpress snobs on /. will dismiss this and laugh but personally if i'm building a site for someone (usually for no money and limited time) I just install wordpress, 'secure it',

      I dismiss this and laugh because you think you can secure WordPress.

      If you're using WordPress for clients, you better budget in the time you/they will spend upgrading WordPress to fix its latest security vulnerabilities.

      Actually you can upgrade Wordpress with the click of a button on the Admin panel. You can even delegate that to your users. Or have Wordpress.com host you. Yes, there are more secure frameworks (your hand-made one is not among them), but few that receive as much auditing as the widely deployed Wordpress.

      Building websites based on Wordpress is super-easy, there are extensions for everything, and you can let other people design and integrate the layout/template. Also, other people can take over what you leave behind.
      Your other options are things like Drupal or Joomla!, but they take significantly more effort to adapt and hack.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    3. Re:Choose a CMS you like by Jesus_666 · · Score: 3, Insightful

      Not so fast, my friend. While I agree that the WordPress core has come a long way and is reasonably secure once hardened (such as by removing the XML-RPC and trackback files, two of the biggest attack vectors) I decidedly disagree on plugins being even remotely secure.

      Some WordPress plugins are well-written and secure. Most WordPress plugins are messy and were written by people who haven't even heard of code injections. If you want your WordPress to be secure, don't use plugins. Ever. At least not without a full code review by someone who knows how to write secure code in PHP.

      Seriously. Most WordPress CVEs these days are for plugins and after having seen the code of a few dozen plugins I can see why. Do not trust a WordPress plugin you have not verified yourself.

      --
      USE HOT GRITS WITH STATUE OF NATALIE PORTMAN (NAKED AND PETRIFIED)
  5. So, the problem is.. by Anonymous Coward · · Score: 3, Interesting

    i) Frameworks are too complicated - but poster admits he is not a programmer (hence the framework difficulty) and unqualified to judge their complexity.
    ii) Complains about things being too expensive to make (again, how is he making sites form scratch without being a programmer? I think he must at least have some coding skills, mor than he credits himself with)

    The answer: Frameworks are there to reduce time to market; if he's refusing to use modern tools and frameworks, much is explained.

    (I'm not suggesting frameworks are good in general; but a good framework is good in its niche; you want to put up a blog.. it takes 10 minutes using an existing blogging framework; you want to write it yourself, order of magnitude more time.)

    So .. this is his problem, not a systemic problem?

    -black

    1. Re:So, the problem is.. by AuMatar · · Score: 5, Interesting

      He's making sites from scratch without programming because HTML isn't programming. Most small business/personal websites require little to no work even at the javascript level. He isn't talking about writing a blog, he's talking about a dozen screens for a restaurant with their location, menu, and a few pictures. Which still probably shouldn't be done by hand anymore unless its a personal for fun project.

      --
      I still have more fans than freaks. WTF is wrong with you people?
    2. Re:So, the problem is.. by Intrepid+imaginaut · · Score: 4, Insightful

      (I'm not suggesting frameworks are good in general; but a good framework is good in its niche; you want to put up a blog.. it takes 10 minutes using an existing blogging framework; you want to write it yourself, order of magnitude more time.)

      Problem is it works so well that clients immediately want fifty adjustments not covered by any plugin, and now you're spending ten times longer untangling spaghetti code slapped together by a myriad of well meaning contributors with no interest at all in documentation trying to make that happen.

    3. Re:So, the problem is.. by TechyImmigrant · · Score: 5, Informative

      I can program and I maintain the web site of our family business with as much static html as possible. The actual places where dynamism is required (E.G. class bookings) is handled with CGI in python. Credit card processing is farmed out to stripe.

      Thus the total amount of code that needs to be comprehended is small. A few hundred lines.

      The long term savings in terms of enabling staff to go in and edit stuff live has saved a fortune.

      What works for one business may not work for another. I tried Django and the sheer volume of stuff I needed to do to get the same functionality up was huge and then the staff couldn't edit it because for all that's claimed for Django, there's a big model you have to get in you head before you can start meddling with it, and that means web professionals who cost a lot of money.

      --
      I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  6. Obviously. by __aaaipu5720 · · Score: 3, Informative

    The technologies are changing quickly. You're going to have to man-up, and keep with the changing market, or else, pay the price. Custom coding websites is all but dead. If you can't build web-applications, you're screwed. Get with the times, or learn what the traditional-media advertising illustrators discovered the hard way.

  7. About 7-8 years ago? by Crazy+Taco · · Score: 4, Interesting

    Yeah, the time for coding them from scratch probably passed about 7-8 years ago. Can you still code them from scratch today? Yes, technically you can, but at most employers you would be way to slow on the productivity side. As a web developer and web hosting guy for a large Fortune 500 company, I can tell you that marketers expect to be able to get a very nice site with lots of bells and whistles up within just a few days anymore, with all kinds of custom features that allow them to edit the page without a developer. To meet that kind of demand, you can't code from scratch. You really need to use a CMS tool to handle the editing/admin functionality, and then some sort of RAD framework, whether it be .Net MVC, JQuery, AngularJS, etc (or multiple of these frameworks) to quickly set up the rest of your custom functionality. Otherwise they'll just go to someone else who can do it faster so that they can meet their ever shrinking time to market campaign goals. This, by the way, is one of the reasons I'm no longer a developer. I personally enjoyed the nitty gritty of coding from scratch, and got bored quickly from just doing "information plumbing", where you pull from one or two databases, get to do a tiny bit of code but mostly the framework does everything interesting. I know lots of people prefer that because they don't want to deal with low level stuff, but that's not my bag.

    --
    Beware of bugs in the above code; I have only proved it correct, not tried it.
    1. Re:About 7-8 years ago? by Intrepid+imaginaut · · Score: 3, Interesting

      Except 99.999% of web developers will never work for a Fortune 500 company with those kinds of demands. And even if they do they'll still need to know the code back to front.

    2. Re:About 7-8 years ago? by Anonymous Coward · · Score: 5, Interesting

      I work at Amazon, and I can tell you that there's reams of code written from scratch... and then left to moulder in a corner. Once in a while you might find and old package that still works, saves you a ton of time, and impresses your coworkers, but mostly you'll just get partway through setting it up and you find that it depends on something else that has become incompatible or deprecated.

      Knowing what packages are available, what they do, and whether they're still working is a word-of-mouth operation; people occasionally try to gather this tribal knowledge in a wiki page, but the page usually fizzles out after a little while. After six months someone else starts up another wiki page to do the exact...same...thing. This is also why 'the wheel' has been reinvented dozens of times here.

    3. Re:About 7-8 years ago? by Areyoukiddingme · · Score: 3, Informative

      Yeah, the time for coding them from scratch probably passed about 7-8 years ago.

      Uh huh.

      May I suggest a counterpoint?

  8. Learn by Intrepid+imaginaut · · Score: 4, Interesting

    My advice is to become familiar with HTML/CSS/JS/PHP/MySQL or whatever and build your own stripped down frameworks, basic stuff like a CMS and frontend scaffolding. Then you can adapt that as need be, add bits on or take them away, change it while keeping costs down (since you've already built the basics) and maintain a minimal profile.

    It's not that hard once you start laying the foundations.

  9. Re:Yes and No by captnjohnny1618 · · Score: 3, Funny

    I should add that I use squarespace and hate it. I do NOT recommend it. Only for the stupidest of folks is it appropriate. Dunno what that says about me that I'm into year two of my subscription...

  10. Mod Parent Up by LionKimbro · · Score: 5, Interesting

    Here's my website. I invite anybody to look at the source code, and compare it against your run-of-the-mill WordPress website.

    Here are the 249 lines of Python code that I use to render it. In addition to the source code, there are x6 template files (each less than 1KB large), and x1 CSS file (less than 2KB).

    What the parent post says, rings true to me.

    No need for Django, no need for frameworks, no need for deployment systems beyond DropBox.

    "The long term savings in terms of enabling staff to go in and edit stuff live has saved a fortune." -- This especially rings true to me.

    "I tried Django and the sheer volume of stuff I needed to do to get the same functionality up was huge and then the staff couldn't edit it because for all that's claimed for Django, there's a big model you have to get in you head before you can start meddling with it, and that means web professionals who cost a lot of money." -- And this too. (And I'm a professional Django developer, by day.)

    I heard recently that there are people working on an "Indie Web" concept; I'm all in favor.

    1. Re:Mod Parent Up by buchner.johannes · · Score: 5, Insightful

      Here's my website. I invite anybody to look at the source code, and compare it against your run-of-the-mill WordPress website.

      It doesn't do comments on blog posts, it does not have an interface to post new blog entries, it does not keep track of which articles have been viewed. You might as well generate your pages from templates and serve them statically, 0 lines of python needed on the webserver.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
  11. Your problem... by dark.nebulae · · Score: 5, Interesting

    Your problem is you've mixed design with the site HTML.

    Developers are notoriously bad at design work. Being a developer, I can tell you that we are not usually great at the artsy aspects it takes to design good sites.

    However, if you give us a design, we can transform it (using our preferred frameworks) into a working site.

    Somewhere along the way you got the idea that you can do it all, but that's your problem. You can't (and shouldn't) be coding or generating all of the pages. If your expertise is design, then have at it. But after your design is done, hand it over to a developer for implementation.

    Just as I don't want to see a developer designing, I don't want to see a designer developing.

  12. Do your pages load fast? by thogard · · Score: 4, Interesting

    If your page isn't fully loaded in less than 2 seconds over a real world network without using cache, potential clients have will leave before the 1st page load.

    If you can write pages that load fast, keep doing the custom work. If your pages are slow, fix it or fix your technique.

  13. Far better a Restaurant site in HTML... by Nova+Express · · Score: 4, Insightful

    ...than one of those bloated, slow-loading, all-Flash restaurant front-ends that take 20 seconds to load and animate before they show you the location, hours of operation, or any menus.

    --
    Lawrence Person (lawrencepersonh@gmailh.com (remove all "h"s to mail)

    http://www.lawrenceperson.com/

  14. Save to PDF by WaffleMonster · · Score: 5, Funny

    Make your websites a PDF file. It will always look and print nicely without wasted time quibbling over screen size, browser compatibility, fonts, CMS security patches or complaints from clients who need your help changing x, y AND z by themselves for free.

    The nice thing about PDF files creating them is just a click away for most WYSIWYG publishing systems and by withholding source document your clients will have no way of making any changes without paying you.

    If you object to my response with reasonable arguments it may be better to consider a different approach better addressing your (customers) specific needs.

  15. Google Sites by pr0t0 · · Score: 3, Informative

    If all your client wants is a simple/stupid brochure site that they can maintain, just build it in Google Sites with a Google account they can own. You can do a whole site in 1-3 hours depending on how much custom graphics you have to build. You can reasonably charge $250-1000 depending on your time, and spend an hour training them on how to maintain it so you don't have to in perpetuity.

    I've done this just a few times now (twice for free), and every time I'm glad I did. The more you dig into it, the more you realize it actually does allow for *some* customization. If you get into the scripting, you can do even more. I see tech-challenged people starting their small (1-20 people) brick & mortar businesses and being totally lost on things like document sharing, company email, web sites, cloud storage, etc. I just hook them up with the Google Business apps...$50/person/year. It's cheap and works.

    --
    I'm sorry, but your opinion seems to be wrong.
  16. That's WordPress in a nutshell by Wrexs0ul · · Score: 5, Insightful

    WordPress is the store-bought bread solution. Does what most people need, is advanced enough that most work can be done through the admin GUI, and plugins are easy enough to build that a fellow by-hand person can figure them out without too much difficulty.

    The only caveat I'd put on using WordPress is that you need to treat updates like you would on Windows: make sure your WordPress core and plugins are always up to date. Its huge user-base means there's a lot more hackers running automated exploits that'll bog-down a web hosting server if you get compromised, and that might get your account suspended. On our shared hosting we're now recommending clients install WordPress via Installatron (a cPanel addon) and have it automatically patch everything by default.

    Simpler sites, but more OS-level issues from going mainstream.

    --
    --- Need web hosting?
    1. Re:That's WordPress in a nutshell by Anonymous Coward · · Score: 5, Interesting

      Wordpress is a goddamn mess.

      The average person who uses wordpress, doesn't update anything, and there are theme/plugin developers who push needless feature creep into their updates, and sometimes completely obliterate a clients site because the update conflicts with other shit plugins they were told they needed in the name of security (eg Wordfence) or Mobile compatibilty (Jetpack)

      Here's the dealy-o...

      If you want a site to look a specific way, create a mock-up in Photoshop, Illustrator, Flash, I don't care what you use, but then send that to someone who knows how to code HTML from scratch. That will get you a static page, and you can test how slow or fast it is. Then you ask someone to wrap the CMS around the theme, not try to hammer the theme into a CMS. Wordpress is often too much for the average person, and is touted by cheap webhosts as a way to get a "Business card" website up. You can't run a serious website on Wordpress AND use a cheap host. Cheap hosts do not install the necessary opcode caches that are required to make the site not run slow and load-spike the server (Dreamhost will just nuke your site if it overloads... because they don't install any php opcode cache.)

      What PHP was designed for, was mixing code and PHP together, so it would be compiled once and run many times. But CMS's use PHP's OOP features to make it a hell of a lot more complicated.

      My "hand tuned" CMS takes less than 1MB of RAM to run, and less than 1MB of opcode cache space, and performs 100x better than Wordpress does. My static-page generating CMS that uses Perl, performs even better than any PHP cms, but because it has to generate static files, it's not a good fit for readership engagement (short of disqus or intensedebate on the pages.)

      And while I'm complaining about Wordpress, I'll mention that I've used other CMS software before, and I would turn my nose up at all CMS solutions unless they were being rolled out onto a large site that has it's own maintenance crew. Drupal or Joomla should only be used if you are using the CMS for absolutely everything, and everything on the server goes through it. Wordpress likewise should be used that way too, but it's difficult to use that way because it contains no security partitions what-so-ever, so one bad apple will spoil the entire system. Hence you end up with a server with 20 independant installs of wordpress, where one of those sites can make the server fall over because the idiot insists on not running the caching plugins because the readership engagement is too fast.

  17. The time for "from scratch" is gone for ALL of IT by msobkow · · Score: 4, Insightful

    I can't think of a single thing I do or would want to do with a computer that doesn't have some sort of toolkit, library, framework, or other component out there to get a "leg up" on doing the work, unless you're only doing the most basic and simplistic pieces of code or presentation. In the case of HTML, that means a text document without images, video, or sound; never mind "active" components of the interface via JavaScript.

    The hardest lesson to learn as a programmer is that "not invented here" is code for "I am too arrogant to use someone else's solution."

    --
    I do not fail; I succeed at finding out what does not work.
  18. Re:I would be nice if popular CMS's were not so sl by Yosho · · Score: 3, Interesting

    Anyone else go through this?

    Nope. Throwing faster hardware at a problem is much cheaper than having a team of developers spend weeks optimizing a framework or making a new one.

    --
    Karma: Terrifying (mostly affected by atrocities you've committed)
  19. I build modular sites by HalAtWork · · Score: 3, Interesting

    Now I have a repertoire of modules I can use to put together a site for a given situation.

  20. Yuck by SuperKendall · · Score: 5, Insightful

    You wouldn't grow your own wheat, sugar cane, raise chickensc, etc for the ingredients for your choclate chip cookies. Just go buy the dough from the store.

    That's quite a leap man. No I would not grow my own sugar cane, but store bought dough is disgusting compared to small effort to make your own cookies from ingredients you buy at a store...

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  21. Become a Brogrammer by Moblaster · · Score: 5, Insightful

    Don't bother coding from scratch. Any client for whom money is an object, you're better off just hanging out and drinking beers with as you co-plan world domination. Eventually if you ask enough detailed product spec questions the client will realize they are in over their heads, get intimidated and abandon the project. They got off lucky. You got free beer.

  22. Re:The time for "from scratch" is gone for ALL of by NickFortune · · Score: 3, Insightful
    p>

    The hardest lesson to learn as a programmer is that "not invented here" is code for "I am too arrogant to use someone else's solution."

    Well sure. No one should ever invent anything without written permission from the Flying Spaghetti Monster, countersigned by Bill Gates, His Holiness the Pope and the ghost of Alan Turing. I mean everyone knows that!

    Seriously, I quite agree with Dutch Gun's point that we all build on the work of others. I just think that blindly accepting third party solutions can be just as bad as blindly rejecting them. And if no-one ever reinvented the wheel, we'd probably still be coding in COBOL

    --
    Don't let THEM immanentize the Eschaton!