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?
Setup Dosbox runniing wordstar to do mailmerges to generate your temp pages.
That shit is hand tuned assembler, it will scream.
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.
...and write a generator, to your own specification.
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).
/. 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.
I know all the php/wordpress snobs on
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
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.
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.
has become too expensive for most customers
You're getting paid for this work? Why don't we do the rest of your job for you while you're at it? We'll bill you at the end.
Pretty new, I've been using for a while now and have found it to be excellent.
http://www.sitezulu.com/
Oh, I like this game. Let me play:
As a DBA I always do databases from scratch and put them into MVPKQ. Stored procedures 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 datatypes/SQL, 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?
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.
I heard I can buy a domain, website builder and email on GoDaddy for $1/month. Guess your job is going away, better take what you can get.
You should have been getting your head around a framework, a CMS, and an engine like Sphynx 7 years ago and matching the appropriate piece to your customer.
There are still tech companies doing stuff that require high-paid expertise, but website design isn't one of those things. So much of the work has been already outsourced to third world countries there's no point anymore in trying when your next cheapest competition is willing to work for 5$ per week. Just get out of the web. Its no longer a high-paid or even respected career choice. You can make better money at Starbucks.
but in college where some times you have to do stuff ass backwards you do as well taking lot's of classes that you don't need.
I love these WILDLY speculative questions.
There will always be a place for knowing how to code anything from the ground up, just as there will always be someone who knows assembly despite the fact that 99.9% of folks, even talented programmers, will never have to deal with it. These people, while the may not be able to design the flashiest webpage ever using the hottest, flash-in-the-pan tools, are the core of what it's all built off of. They're talented.
Now the talented AND clever will build a tool that others can use to make their lives easier and then license it for use.
So no, the day isn't past, because there will always be ground level people, but yes for the rest of us. I stick close to the metal/silicon and know a lot in that area, but I also want a web page so I've never really bothered to learn anything web-oriented; I'd rather just pay someone to design and implement it and I'll just add the content.
Look, its the same as all programming, there are two types of programmers. One uses WinForms, or whatever the generator is of the day and produces a stock app, a million of which are used in corporations reluctantly because nobody has a choice.
The other type of programmer uses C++, (or Java on Android) and produces amazing apps you would seek out.
I view the first, as configurators not programmers. I look down on them.
There are people here who will tell you, coding html is dead, use (this) or (that), but you just need to build up your stock set of tools so you have a body of work to draw from. The low money, low margin slock sites are not profitable anyway, they're just time-drains.
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.
Man up, and get thee to a text editor!
Strange things are afoot at the Circle-K.
I found Wix (http://www.wix.com/) let's you build a fast, flexible site that is easy to customize via CSS.
My main limitation is that I'm no designer but I am a programmer. So I can tweak/tailor a good design, but can't make anything decent from scratch.
If what you mean is that you want to code designs as raw html/css/js then try out Diazo. It allows you to use raw html templates and map content from CMSes into the template using a rules file. The underlying technolgy here is XSLT. This is now the preferred way to theme Plone-based web portals. But Diazo can be used for any CMS.
JSON is your CMS, your server should run C, and CSS3 justifies the creation of sites that are both built from scratch and reusable/remixable.
Is there anything worth doing in 'web' that isn't covered by just combining the server and the content into one solid mass of bash HTTP parsers and dubious netcat abuse?
In fact, is there anything worth doing on the 'inter-net' for which something very similar isn't true?
I'm an academic. I write a conference webpage once a year, maybe twice. I ignore the CSS that comes on the university's webserver, write raw HTML, paste it into the template helpdesk said to use for the CSS and it just works. I want to change something, I change it.
and is really all I need; it just works, and it's a lot faster than learning any CMS.
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.
There are guys like Matthew James Taylor and David Walsh who code new and innovative interfaces and widgets - but even their sites are database driven (even maybe homegrown) CMS that they use to display their code inventions.
I write extensions for a popular CMS which make it more useful for myself and others, but an HTML/CSS only designer will have a tough learning curve to jump into that type of development as there are many languages working in concert (PHP/ASP/Java, JS, JSON, XML, SQL, INI, HTML, CSS, ???) with HTML/CSS being perhaps the least used.
Not that I couldn't, but I wouldn't hand code an entire site these days. Efficiency and productivity is the key now and you just can't compete with a modern CMS in those regards.
"Lame" - Galaxar
if you value your craft. the bespoke solution is not for everyone, but there is something to be said for the perfect fit. i am able to confirm that it worked well for me, and remains the second most useful thing i ever developed.
https://ellislab.com/ - There is plenty of flexibility here, which also means a requirement to do a fair bit of work by hand.
http://pagekit.com/ - The company behind this (Yootheme) has a good track record.
Oh and your code will be compatible with an Internet Explorer that runs on Windows XP.
For public-facing websites, Internet Explorer on Windows XP hasn't been important for nine months. That's how long ago Microsoft stopped releasing security updates to Windows XP. So we can assume Internet Explorer on Windows XP to be 0wn3d and therefore incapable of upholding the user's privacy.
HTML is a markup language, not a programming language. Creating a web page with HTML is not programming. If you think it is, you're just wrong.
At least a decade ago.
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.
I just use sort of CMS pick some template and off I go.
...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/
Sorry, you're wrong. By your definition, this post is programming because I'm encoding commands for what should be displayed on screen in the form of ascii commands. HTML and CSS are not programming, they're design.
I still have more fans than freaks. WTF is wrong with you people?
Use something like Nikola or Pelican with [favourite python template system here] to hit the sweet spot between hand-coding/frameworking and CMS. You can adjust any part of the look, feel and templating easily and you can enable customers to have a very easy/cheap way to get the site up, running and maintainable.
Because it is a static website there is no security maintenance needed. You don't have to be a programmer to work with a lot of these static site generators and the time investment to learn them is quite low in my experience.
Also, you can always just drop a PHP script (or embed snippets that are compiled in) with the static site to do any dynamic stuff you may need.
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.
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.
The beauty of frameworks and content management systems, is there are so many of them to choose from. You really need to do your research, and find one with a very simple templating system.
I, personally, have built my own. I've built and rebuilt it a dozen times now, and it is teetering between framework and CMS. I can crank out a nice, fully responsive, easily managed (with point and click editing) website in an evening.
My pricing is considered high to other local "shops" (ie. basement dwelling teenagers, or those who outsource to india).
I compete in the following ways:
- built fast (depending on project scope)
- no templates, every project is custom designed and developed
- complete customizablilty, and purpose built functionality (restricted by budget, of course)
- actual support (email, or telephone)
- hosted on our infrastructure
I will manage every aspect of the site, including content updates, online marketing, and social media.
Although, I will admit, I make more money building (standards compliant) web based applications for medium sized businesses.
this is just not true
any time you use code to write computer instructions it is "programming"
he uses CMSMS, which means he only codes part of the site "by hand"
internet coding is not complex compared to coding a first-person-shooter, but the demands of the individual coder are different
i've seen many coders spend 10 minutes writing some executable code then spend an hour figuring out how to get it to go where they want in the HTML page on a website to look right
HTML is structure and layout, not programming.
CSS is structured storing of display values, not programming.
Using a structured specified format to lay out static structural content is not quite the same as "computer instructions" Unless you call using notepad to write a shopping list "programming" (you're using the code of the alphabet to instruct the program to display them in a specific static order.....)
If you need your site to do more than display pages of content, you need something more.
A programming language of some sort.
There's javascript, python, php, asp, etc, etc, etc... All web programming languages.
Show me the pseudocode version of something written in pure html and css, and we'll see how much programming is involved.
Show me how HTML manages mutable variables, and basic logic structures and loops....
"lt;dr" is the correct response to most of my posts.
After a decade plus of building web things (mostly in javascript land, mostly in custom bells land) I might suggest to build it in whatever is most interesting to you at the time, or whatever the client requests.
Truth told the next gent or gal to come through will probably just replace it with what they like, or what the client wants (then).
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?
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.
Using a framework would really make sense for the client side, imo - ie CSS, Javascript, HTML, to cope with browsers differences and other language peculiarities, the result is usually immediately visible, tangible. The server side otoh may require more attention to detail if data from client is checked / analyzed / processed / stored - leaving that responsability to a framework will likely produce a lot of spaghetti code doing only approximately what you want, and any manual maintenance (ie modify the resulting code directly) is hard and cut the consistency links with the FM.
Slashdot, fix the reply notifications... You won't get away with it...
Because of that I continue with my own CMS or create my own then feel foolish for doing so rather than figure out how to get around the integration problems or break them apart to improve their performance.
Anyone else go through this?
do any of you hotshots ever actually look at websites for small biz ?
quality is not in demand; fubars like not having a clear way to find directions or hours on front page are common
resturants, some have 5,6,7 sep pdfs for salads/fish/meat...
I mean, these people just want an *effin website up,and they dont wanna spend a lot
is that hard to understand ?
Design right now is the biggest fucking problem.
I see the shit going up these days that's designers are crapping out, yes the designers, and I want to see the developers going back to doing the design.
Crap like: ohh look we have continues pagination on a page, and see the floating search/header bar that scrolls down the page as you scroll. And pages that transform as you type into the search bar.
It's fucking awful! Stop that shit!
here
j/k
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)
Yep, for a local restaurant or dry cleaner, your priorities are to get a nice looking site up within a very reasonable budget. It should be reasonably usable on a smart phone for travelers and people out for a night on the town. Using third party templates makes the most sense. If the site needs to be updated often, use a CMS with those templates.
If you're building Slashdot, the pages need to load fast, they should be accessible for all browsers, including audio for the blind, you should think about people in different countries, etc. The budget is a thousand times higher than the one for the local restaurant. Coding it carefully by hand makes the most sense. (Obviously the hand-coded HTML is attached to a script that displays the actual posts).
So yes, HTML hand-coded expertly has it's place. Downloaded templates have their place. CMS systems have their place. Frameworks - for collaborative projects, so that elements coded by different people are consistent.
WordPress has been mentioned several times. It is popular. It is flexible. There are about a million plugins. Those million plugins contain a billion significant security issues. If you choose Wordpress, remove any plugins that end up not being essential and stay on top of updates. Regularly your backups that are at least a month old as well as the fresh ones - you'll probably need them eventually. A combined off site backup and hot spare solution like Clonebox might be a really good idea. There's a lot to like about Wordpress, but you just have to plan on getting hacked eventually, so you in need to have prepared with Clonebox or regularly tested backups and if the site makes money, have a spare server ready to go.
Have you looked into Square Space?
Now I have a repertoire of modules I can use to put together a site for a given situation.
Twinstiq, game news
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
Obviously, a solution from scratch is more expensive to develop than a templated one.
If you can throw up a cookie-cutter solution that satisfies the customer, it will be to your advantage for a good percentage of cases.
For customers that need high quality tailored code from scratch, that is just fine, but it's a different kind of project, and obviously the price to the customer should be much much higher. And you certainly can afford to do it, if you are being paid properly.
The catch would be customers who want Almas Caviar at canned tuna prices.
You need to use a framework. There are lots of non-trivial things a framework like Symfony, Joomla, CakePHP, etc. take care of for you, like cleaning input for SQL searches, security and user accounts, ORM database abstraction (Propel, Doctrine, etc.), MVC abstraction (database, view, and controller), plugins and JavaScript classes that can do loads of work for you (PHPThumb, jQuery, Prototype), and more.
Hand-coding an entire site from scratch - unless it's a one-page "vanity" site, like old GeoCities pages, is a pain in the ass. Leverage the work other people have already done for you, and reap the rewards of being able to do easy prototyping, reusable templates (including the entire look-and-feel of your site), installable modules and plugins, and code updates to the framework to patch bugs and security issues.
2005 called; it wants its Web Design back.
how about 'it would take me more time to figure out that your halfassed shit won't do what i need
than to do it myself properly'
it sounds arrogant, but its true more often than apparently you can conceive
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
HTML *is* a framework. I mean, it originated well over 20 years ago, but it's still a framework.
instead of Wordpress, try a MVC framework and a Bootstrap 3-based theme has your jumping off point.
i currently use Laravel and BS3 themes from wrapbootstrap.com or, of course, themeforest.
you should find that with composer, you can easily install whatever modules you may need in Laravel, and the hand-coded aspect of the prebuilt BS3 themes makes integrating them pretty darn easy.
it works for me.
never bring a twinkie to a food fight.
That is one interpretation, but not always the case. Not all software is as reusable as it makes out to be. Sometimes it's too complex to make it worth understanding someone else's framework for the problem at hand.
And for Ruby fans there are Middleman and Jekyll (among others) with [favorite Ruby template system here].
In fact, you can mix and match templates from like a couple-dozen choices, (using partials) even in the same page. Write headers, footers, menus, etc. in Slim, body text in Markdown, head material (script and style links, etc.) in ERB etc. etc. etc.
Slim is great for fine-grained elements - it's got the wierd HAML-like syntax but without the stupidity of HAML. Takes some getting used-to, but perfect for the 2 to 10-line partials I write for table cells, list items, list containers, menu choices, etc. Markdown is great for writing text content that is actually readable in source form. sometimes you just want good-old ugly ERB.
I use Middleman for PhoneGap/Cordova projects. I want to throw things when I see people hand-coding Phonegap documents and then doing mass edits when they change their minds about structure or appearance! Use a damn SSG! Please stop the cut-and-paste madness!
I also use build tools like rake to make custom "pre-build" systems even when I DO have a framework. I've done this to create a family of similar mobile apps. Here's a presentation I did on it at Motorola AppForum 2014. The first half is probably of interest here. (The second half is way RhoMobile Rhodes-specific, and afraid it is lacking the audio - the first half is pretty understandable from just the slides.)
Large-Scale Multi-App Development Using Rhodes
While I don't typically create websites (I write hybrid mobile apps) this can also be a great approach for websites if you need to "brand" similar sites for multiple clients, and then each site wants somewhat different features. The above link shows how I created 6 form-filling data-collection apps with similarities but considerable different details, with something like 80% of the app code shared. The same techniques can be applied to websites.
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."
Not necessarily or there wouldn't be improvement in the available frameworks, toolkits or libraries. To assume that XYZ framework is the only way to do something, or even the best way of doing something would put most developers and open source projects out of business, don't you think? Everything would already exist and there would be nowhere to get new things done.
Right tool, right job I always say. If the tool doesn't do the job well, but good enough I try to make something better if time allows.
On topic, thomawack needs to man up and delve into actual coding or accept being a one trick pony and go work for a design-development firm or internal corporate group that does web work. There's just no way around it in the modern web world. You learn to code or you work on a team. Welcome to the 21st century.
See that echo line? It's mine and you owe me royalties.
Not all frameworks are bloated and complicated. You can throw a website together with Sinatra pretty quickly, with just a few lines of code.
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.
HTML5
This! Absolutely spot on. Arrogance works for some, the brilliant few, but it just looks silly on these idiots.
Hmm.. while I don't consider HTML and CSS to be programming languages it do raise an interesting question.
Where do you draw the line?
Since it isn't unusual to claim that a programming language is Turing complete that can't really be a requirement, can it?
If it was a requirement there wouldn't be a need to claim completeness.
Considering that something a limited/simple as brainfuck is a programming language it seems to me that almost anything that can do sequential increments would fit into a programming language.
So if you use a HTML table with fixed width of elements you can accumulate a total width. While usually a side effect of the data you want to present, could HTML be considered a programming language in the cases you are using that property of the markup language to calculate such a width?
I have worked just like you seem to have, implementing designs around wordpress. In the beginning taking existing free themes and basically replacing the html/css and images with my own content. That was 10 years ago, I now consider myself a PHP developer as PHP is what I work with most of the time. I decided to make my own framework/CMS which fits my needs. Why? Because I can customize it from the ground up and make it suit my typical clients. I can tell you that i takes a lot more time than you would think and you are most likely better off stripping down an existing CMS like Wordpress and learning/modifying that code.
http://Anveto.com - Web Design, SEO, Marketing, Analytics & Security
I've been building websites since early 2000 and started out by doing static sites and updating them manually when the clients wanted them updated.
The point when this became too costly for my clients was around 2004, when I created my last truely static page... Back then I crafted a self made CMS system (quess in which language) which had content editing, building menus out of the content etc. Then it became mosly about designing the website layout and adding small features to the system.
Then few years after that the requirements for websites (for my client base atleast) really started to grow, and I think it was in 2007 when I switched to Drupal. It was (and probably still is) a horrible beast to get into,but I've come to learn a thing or two about it since......
I've also tried some of them PHP frameworks (lately laravel), but I've noticed that you really need to get into them and pick one you want to work with. They do force a lot down your throat design wise, so I don't quite like them. Building a website with a framework is usually easy and fast, but it's the administration side of things that ramp up the price tag.
But to answer the question.... Yes, the time for doing everything from scratch has passed for most scenarios.
> Wordpress or Drupal, which one you choose is more a matter of taste
As both are PHP, they're both a matter of bad taste *ducks*
HTML and CSS are NOT design. They are markup. One of the biggest problems with 'the web' in it's current manifestation is all the 'designers' out there trying to wring a specific presentation out of web page design.
No, the hardest one is to give up on any remain of sanity to use bullshit code full of holes and incompatibilities, and waste days on the stupidest bugs and incompatibilities.
I used to be able to say confidently to beginners asking me if something was possible on computers, that anything was possible, and they should open themselves to this freedom. Now I often have to reply this or that simple stuff would just be too difficult or take too long, and they should lower their expectations way down, to match what some random semi-incompetent dudes who hate their job decided was good enough, and avoid dealing with bugs and incompatibilities as much as possible.
"If it doesn't work, don't waste your time and just give up on it".
Use a static site generator. Gets you the best of both worlds. Jekyll is pretty good.
I'm a programmer. Mostly for the web (Javascript, PL/SQL, HTML5 and CSS). >15 y experience.
Keep doing what you're doing.
I also start from scratch, or from my own developed packages (which are not bloated, and I have 100% knowledge about everything in them).
My shit works. Others do not. Period.
And where do those frameworks come from, genius? They were built by the very people you call "too arrogant to use someone else's solution".
You sir, are not a programmer. You are a cobbler-togetherer.
HTML is a functional, not an imperative, language. Perhaps the reason that you don't recognize this, is that you never knew there is such a thing as a functional computer language. Both types of computer languages tell a computer what to do, but they do it each on their own level. Functional languages don't care how a problem is solved, as long as it is solved. Another example of a functional language is SQL, another example of an imperative language that renders graphics as its core business, is postscript.
Religion is what happens when nature strikes and groupthink goes wrong.
And where do those frameworks come from, genius? They were built by the very people you call "too arrogant to use someone else's solution".
You sir, are not a programmer. You are a cobbler-togetherer.
We all build on layers of software written by others, and those layers grow deeper and more expressive as we move forward in time and those layers grow and mature. People like to bitch about how bloated today's software is, but the simple fact of the matter that a lot of those "bloated" layers we bitch about also give us a tremendous leg up in raw productivity and functionality. And yes, everyone knows those layers and abstractions come at the expense of CPU efficiency, and while it's still important to a degree, it's often not the most critical metric (if it is, then that's a signal to move down a layer and write a more efficient abstraction for the problem you're trying to solve). Some people freak out about how very few programmers understand modern system from top to bottom anymore. However, that separation of knowledge is what allows more specialization of technology as it broadens into ever-widening and diverse arenas. While it's good to have some depth, it's also often handy to have breadth of knowledge as well.
I'm not a web developer - I program videogames. In my field, twenty years ago, I was writing directly to the hardware with DOS. Nowadays, I have a rich set of OS-level abstractions for many of those same tasks. Or, if I use a commercial engine, I can jump right into creating content even before the first game-specific code has been written. Does that make me a "cobbler-togetherer" as well? I would be insane to start writing a new game today by creating my own device drivers, or my own low-level rendering abstraction instead of using Direct3D, OpenGL, etc. Or, if I didn't have specific requirements that a commercial game engine couldn't cover, I'd be equally foolish for writing my own game engine.
A good programmer understand and knows the tools of his trade. Understanding the benefits and tradeoffs of various abstractions (i.e. "frameworks") and when you should or shouldn't use them is part of being a professional.
Irony: Agile development has too much intertia to be abandoned now.
Take a look, try it for free at: Mono.net
I'm not affiliated with mono in any way, but have seen it from an admin perspective, and would say it's what you are looking for.
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.
Generally true, but extremely large scales can flip this around. It's the reason C++ is still being used, especially in places like the data center. When your apps have to scale up to millions of users, efficiency still matters, because it translates directly into CPU cycles, which translates directly into ongoing overhead costs. Admittedly, a relatively small percentage of developers are likely working at that scale, but I thought I'd mention that caveat.
Irony: Agile development has too much intertia to be abandoned now.
using 183 lines of awk that provide me with a simple yet sufficient preprocessor. It more or less only does variable substitution and limited macro processing for both html and css. There is typically one html (example: 37 lines) and one css (1 line, placeholder) template file for a project defining available constructs, common headers and footers, and the like. Then I use make (16 lines of default-free Makefile) to tie it all together.
I do recall reading about someone else's scripts allowing for a "TeX-like" syntax to do all that and more, though I can't recall its name ATM. But this sort of thing isn't that hard to cook up and doesn't take much code if you're going for a few well-chosen essentials.
Naysayers aside, I think the bottom line is that for some sites (and many more than are currently doing this) something simple, basically static html generated once, is spiffy fine. Originally CMSes sprang into being to make writing those pesky tags easier for laymen, then got stacked to high heaven with features most of us don't really need, in fact, are mostly distracted by, not helped with. If you can write html by hand you don't really need all that. That doesn't mean that making the writing easier is a bad idea, it just means that plenty times a little code goes a long way.
So I think that our dear designer should probably dig into a programming language (or two) to provide himself with the tools to build exactly this: Something simple to turn quickly-written input into easily-generated-again webpages complete with the boilerplate bumpf you seem to need to convey "corporate identity" and all that. We do tend to forget that sometimes a small script will go a long way.
You are ignoring the fact that very often adapting an existing toolkit to your specific needs takes more time and effort while leading to in inferior result than building the right thing from scratch.
Why would you use C++ if efficiency matters?
Even better: Just throw the pieces at the client along with a large bag of javascript on top of third party frameworks and libraries loaded from elsewhere to piece everything down to html and css together on their CPU, and call it "RESTful". Nevermind that this requires the latest in optimising javascript engines on top of the fastest hardware that your employer buys for you but the hapless visitor will have to stump up himself. This is cost savings, baby.
The thing with the "developer time is expensive, hardware is cheap", is that the comparison looks at it wrong, and there is a multiplier at work: There will be many more visitors than developers, and so for every second wasted you could've had the developer spend that second times that multiplier and come out ahead. This is far too often overlooked.
On top of that, plenty cycles are wasted for no reason, exactly because most content rarely changes and so generating it for each visitor is a missed chance at caching, down to generating the webpages once and serving them up from a file, possibly pre-compressed even, therefore very very quickly. Again there is a large multiplier hidden behind the shiny blinkenlights.
Bingo! At least one person gets my point! :D
I do not fail; I succeed at finding out what does not work.
I don't think you can get around learning a bit about programming, but depending on you ambition, it may not have to all that much.
Starting at the front-end and working towards the server side:
1) Learn Javascript + how to use jQuery. This works exclusively on the browser side (except for AJAX) and you can do an amazing lot with it. It is quite easy, and jQuery makes it very easy.
2) Learn a server-side technology. Node.js seems to be popular and there are some that use only that - the advantage being that you still use Javascript on the serverside, apparently. I haven't used it myself, though.
3) Go further and learn a server-side framework. My preference is Java EE, but this may be overkill. If you are interested, though, after a rather steep learning curve, it is surprisingly simple to write things like database applications etc.
I have deliberately not recommended things like PHP or the other popular frameworks - mostly because I don't know them well, but in the case of PHP because I find it too messy; I don't think it is a good idea to explicitly mix code into the actual HTML. That is just my opinion though, many people like it because it is easy to learn.
You mean declarative, not functional. HTML does not have functions, which is a big clue that it isn't a functional language. Your other examples are just plain wrong (SQL is definitely not a functional language and isn't even a declarative language, PostScript is imperative language and is a functional language if you squint a bit).
I am TheRaven on Soylent News
The simplest place to draw the line: Does it have conditional flow control? If so, it's a programming language, if not then it isn't. If you can't write some equivalent of an if statement, then it's not a programming language. There are some languages (e.g. BPF bytecodes) that are intentionally not Turing Complete, because having finite and deterministic run time is a design goal, so they omit loops, but they do have conditionals (but only forward branches).
I am TheRaven on Soylent News
Hello, I'm not sure what the others here do, but I'm actually a web developer. My name is Darren Caldwell and I created/operate darrencaldwellwebdesign.ca
When your creating a site the use of a CRM really depends on why your making the website. What a CRM does is provide an interface for non-technical people, however this user friendlyness also means that a large amount of structure for the site is going to be written by others and probably not entirely understood. This means that if you wish your site to do something with complexity you cannot create you must push together "plug-ins" by various people.
Also just FYI most of those CRM systems are using PHP which means they are synchronously driven. That means you do something and the page reloads (for most events). Most modern websites that you see are asynchronous however the biggest thing that you see lately isn't just asynchronous its when two people on the same website can see each other and that's asynchronous communication over a websocket. If the architecture of your system is Apache,PHP,MySql (this is the regular setup for a CRM) then your never going to be able to properly do websockets and your never actually going to be able to do half the things you see your site as being able to do in the future.
Another problem that pops up with CRM is that your generally using someone elses hosting for your website. So why is it a problem? Well as your website needs grow there are a few things you'll want to do, you'll want more than 1 database, your eventually going to want more than 1 webpage, you'll want to be able to send emails, and handle file uploads like videos and images.
Each step of these expansions will cost you, however if your like me and you have a webserver as a physical computer in your basement that means you just pay your ISP 4 bucks a month extra for a static IP address, setup your router to forward port 80 to your chosen webserver and voila your done. I've actually heard of people paying over 1000+ per month for hosting for websites that only get about 100 visitors.
These reasons (there are many others) reveal that as you create something you need to be the artist in control otherwise you won't understand why your vision doesn't work and you won't understand why you might have something that works now but can never expand and work in an advanced way.
Jackass web designer here with CS degree and can't code for shit. I know my HTML and CSS though... and it's not programming.
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!
But it runs great in Lynx AND WebTV!
I come here for the love
For restaurant website or something similar then there are all kinds of out of the box solutions that rock. But the moment that something new needs to be done often using anything like wordpress is going to be a knife fight with everyone getting stabbed.
The usual sign that the out of the box solution has failed is that the project looks 90% done in the first week. But then ten weeks later the project is still roughly 90% done.
For instance I would not want to implement Wikipedia using any out of the box solution. I would not want to implement Reddit, or slashdot, or pretty much any major website using an out of the box solution. Although I could probably make a close knockoff of slashdot using wordpress it would be those final features that would probably stall as I effectively was forced to rewrite wordpress. Then wordpress would come out with an upgrade and then I would have to re-rewrite the changes.
Lastly in these days of SEO being critical to a website getting any joy from google speed is critical. So a hand tooled site that is 1% better than a typical bulky framework site will simply do better in search (all other things being equal) so while 1% might not be a seemingly worthwhile performance gain it is one of those cases where you don't have to outrun the lion just your fellow tourists.
It's really straightforward to customize according to your needs, really flexible and if you're willing to learn PHP you can do wonders. Of course it has a learning curve but hey, it's worth a couple of week.
Instead of starting from scratch or using somebody else's framework, develop your own. Have some predefined, generic templates of your own design and then build on them from there any time you have a new job.
/* No Comment */
I'd ask yourself (or the client):
If the answer to several of those questions is "yes" and you don't already have a bulging toolkit of your own solutions, then I'd go with off-the-shelf CMS or blogging software. Alternatively, you could do a really nice front-end "sales brochure" in lovingly handcrafted HTML and then link to a CMS/Blog for news, support, customer forums etc.
Frameworks... can have uses but beware the "rapid application development" tarpit whereby you get your basic site/application working in record time and then hit a brick wall because you need to do something that the framework designer never anticipated.
In a survey of 100 programmers, 111111 thought that duck-typing was a good idea.
"If you wish to make a website from scratch, you must first invent the universe".
You're absolutely right. s/functional/declarative/g; However, you're also wrong: SQL definitly *is* a declarative language.
Religion is what happens when nature strikes and groupthink goes wrong.
Full time Drupal developer here.
If you're not a programmer and you just want to launch a bloggish sort of site with a minimal amount of standard functionality, use WordPress.
If your site is literally just three or four static pages, hand-coded html/css/js might still make sense (we did that last week for one client, as a matter of fact).
If your site is large, uses custom functionality, etc., there are a number of options. Hire somebody to pick the best fit for your needs and let them do the implementation.
Not even slightly. It has assignment, it has things with defined execution order that have side effects. There are declarative query languages, but SQL is not one of them.
I am TheRaven on Soylent News
The most coding i have done is with python and lots of geo-location + open street maps and geodjango extensions. If i did all that custome it would take a year or more but with a framework and a few java script libraries it will only take a few weeks.
Above and beyond that for a small business that needs a shop you can do with any of the MVC frameworks out there. Rg: ruby on rails, django etc.
I think you need to deconstruct your thinking and you will be able to answer your own questions:
Is anyone else going to be updating this site 5 years later? How well do you document your code, change things using a revision control system like git?
-->If its just you and you can remember how you wrote code from a site 5 years ago then you'll probably be fine with your approach.
If this is not the case: learn a framework so that the structure is familiar for others. (I hate it when i get a project to update a site and its monolithic PHP even if its written well).
I think you'd be ok with rails or django as they are modular and not bloated at all. To turn of sessions, middleware, admin backend, context processors etc is easy.
The point of all these frameworks is to make life easier. However i stay away from curpal, cake, wordpress etc because they are a more than a MVC paradigm and have a bunch of monolithic files you have to get to grips with.
Your customers and customers customers decide when you don't support your OS and ancient version of IE.
When your customer can't take standard measures to protect the confidentiality of its own information or the information of your "customers customers", it's time to fire a customer.
Your comments make you sound eliteist. "Programming" encompasses more than writing computer instructions with a given lanuage (Python, Java, C, etc.). I can agree that "Programming" the layout of a page using HTML is completely different than writing a program that renders that page, but the is no need to be a dick about it.
"Waitress I need two more boat-drinks..."
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.
Yet another reason why business is bad for the Internet.
Business gave us spam, ads, tracking cookies, most modern malware, unindexable Flash "websites", and 42 different layers of abstraction just to display text on your screen.
Use a static website generator like Jekyll. Make your own HTML templates, write your own CSS, create your content as Markdown files, run Jekyll to build the site, and then upload it.
... but I wouldn't recommend it, especially if you're not a programmer.
Of course there will be exceptions to this but just because Bootstrap (for one example) provides more than you need, you don't have to use it all.
Most of my sites are hand-coded .less files the inherit from Bootstrap's mixins and variables structure but little very little else (usually forms when I'm lazy). This gets me most of the cross-browser resets, a good structure and plenty of functions that I can call in my own classes. And that all means I spend more time in .less files than HTML (and my HTML looks razor sharp and semantic - none of that class="col-md-6" presentation junk) and I'm happy with that. That should also mean I can sub out Bootstrap without having to rewrite all the HTML.
I won't say this came naturally or overnight. I had to learn lots about Bootstrap and I had to work hard at changing my workflow to use use less and CSS optimizers and font-editing tools (to minify things like font-awesome); all tools that ultimately now save lots of time and provide a better, more featureful product to my clients. We're in an industry that changes so fast. You can fight the change but when it's objectively delivering better things, if you resist it, you'll quickly fall behind.
Maybe some dialect has those, but standard SQL doesn't and retains its declarative characteristics.
I still hand code my web pages in a text editor. I'm in the process of converting an old WordPress website into a static website using the PHP PIP framework. No sense keeping WordPress updated for a website that I stopped posting to a few years ago.
I'm still coding in COBOL, you insensitive clod! :-p
Try it! Library of Babel
Let me make it a little clearer: If you have customers using an unsupported operating system, you have less faith that the customer's machine isn't compromised through a vulnerability that will never be fixed. For example, what's the use of TLS to protect passwords if there's a keylogger on the client? Besides, IE/XP can't see more than the first TLS certificate on port 443 of each IP address, so in the era of IPv4 address exhaustion, your users will eventually end up having to either use something other than IE, use something newer than Windows XP, or remember to type the port number whenever visiting the site.
... you must first invent... the universe
So you hand code and then toss your website and hard work into a security hole ridden piece of shit software? Well you might as well start growing your own chickens, wheat and sugar cane, because you'll need to either find a new line of work or become self sustaining after your customer's sites are hacked and they drop you.
Your food analogy works quite well, I think.
If I want a quick but useful meal when I get home after a very long day, I can pick up a ready meal from the store and throw it in the microwave or I can stop by a burger joint and get some fast food. This requires negligible effort and makes me not hungry any more.
Alternatively, I can pick up some meat and vegetables and a tin of sauce from the store or the market and cook something myself following a recipe in a book. This requires more work from me, but it probably tastes better and/or costs less and/or has nutritional benefits over the ready meal.
If I want a superb dinner, I will go to a good restaurant and let their chefs make dinner for me. They are going to make everything fresh from their own choices of raw ingredients and to their own recipes, but they will do a much better job than me, producing a meal where everything goes together perfectly, the nutrition is balanced, and the presentation is excellent. Of course, I'll have to wait while they prepare and cook the meal, and I'll have to pay more for it.
If you want a self-hosted blog site in half an hour, nothing will be faster than installing ready-made blogging software like WP and configuring it for a few minutes.
If you have more demanding requirements but you're still basically talking about a form-based front-end for a CRUD app, you can probably get that done quickest by developing with heavy frameworks like React or Angular.
If you want to build something larger and more specialised, where you need greater levels of control and flexibility, you'll probably be better off putting together a team with the skills to build anything you need entirely bespoke. They can still use existing tools if and when they're actually useful -- going this route does not mean you build every last detail from scratch -- but crucially, they'll have no problem creating something new if that gets better results and they won't have any clutter getting in their way when they do so.
Obviously the price, timescales and quality of results all increase sharply from each of these levels to the next. You need to decide how important that fine tuning really is for any given project, and look at your budget and timescales, and then build the best thing you can within your constraints.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
Maybe you are charging too much. Stop being greedy. I have an idea, charge less for your services! Duh. Think of the 99% you silly corporate company.
how about 'it would take me more time to figure out that your halfassed shit won't do what i need
than to do it myself properly'
it sounds arrogant, but its true more often than apparently you can conceive
This. Look up any software / IT service sales page and answer these 3 questions.
What is it called?
What does it do?
How much does it cost?
If you can't answer those questions, you don't want to buy the product.
Not even slightly. It has assignment, it has things with defined execution order that have side effects. There are declarative query languages, but SQL is not one of them.
That can't be - I use @Declare statements in my T-SQL code all the time!!!
"Somebody has to do something. It's just incredibly pathetic it has to be us."
--- Jerry Garcia
What you're doing here is making sure that a whole raft of smaller/older devices won't be able to display your pages. Which is exactly the same thing as intentionally reducing the customer base of your client.
You want PDF printables? Put a link to a static PDF version on any HTML web page the user might actually WANT in PDF form. HTML pages should be in either HTML, HTML+CSS, HTML+CGI, or HTML+CSS+CGI. HTML and HTML+CGI produce the best quality -- most usable -- pages. Use of *any* other technology cuts off some number of smaller and/or older clients at the knees, but of those technologies, pure front-facing PDF would be difficult to beat for complete failure of a website to show up for the person trying to look at it.
I've fallen off your lawn, and I can't get up.
I suffered the steep learning curve of Drupal. It really pays off. I also use WordPress, which is not that good, but more popular and easier if you need to customize themes or modify plugins.
There are two types of efficiency here.
The first is up front design efficiency. The time it takes to develop the code. This could be impacted by a combination of a poor c/c++ programmer and a decision to use it. You pay for this loss of efficiency once, if indeed it is a loss (likely it would not be much or any of a loss if the c/c++ programmer is competent.)
The second is execution efficiency, that cost that is paid every time someone uses the facility. Here, using c/c++ can (should, again with a competent programmer) provide a much faster response time with all the benefits that accrue from that, and these benefits will be gained again and again, every time someone uses the facility. As compared to, for instance, Perl or Python.
You can consider client-side execution, but if you choose to use it, you're locking out many potential visitors who will not be able to use your pages. There are huge numbers of devices out there that are old and/or small, and they simply don't do client-side stuff. Even knowing your site is targeting "only" owners of, say, IE, doesn't justify such a choice; because in the real world, people won't always have IE in their pocket. If someone can't browse your site at lunch with whatever is in their pocket, the odds of them coming back later -- much less buying / participating now -- drop precipitously.
Part of the job is to determine what kind of traffic could be encountered, while knowing the capacity of the hardware you have available, and then figuring out which efficiency you're better of going after.
If your web site serves one person in the organization, and they only check in once a day, then if Python is fast enough on your desk, its fast enough on their desk, too, at least if it doesn't impact the site's ability to do its other tasks, like serving WAN customers. But if your thing is WAN facing, and could potentially see any number of customers up to the max the server can handle, then you'd best consider execution time efficiency before you consider up-front development time efficiency (and again, if you hire a competent c/c++ programmer, there probably won't be a huge difference. Even less if they have already done this for you once or twice.
I've fallen off your lawn, and I can't get up.
"does it have conditional flow control? if so, it's a programming language, if not, then it isn't" is a false statement.
Example: the lambda calculus has no "conditional flow control"; but if you allow arbitrary recursive functions, you get a turing complete language.
Since every turing complete language is a programming language, then we can see that your statement (technically a biconditional, but i'll negate only one side) is false, since we have:
1. if x doesn't have conditional flow control, then x isn't a programming language. (assumption)
2. the lambda calculus with recursive functions has no conditional flow control. (assumption, canon)
3. the lambda calculus with recursive functions is turing complete. (assumption, canon)
4. all turing complete languages are programming languages. (assumption, canon)
5. the lambda calculus is a programming language (modus ponens, 3,4)
6. the lambda calculus is not a programming language (modus ponens, 1,2)
7. not (if x doesn't have conditional flow control, then x isn't a programming language) (reductio ad absurdum on 1, since assumptions 2-4 are part of the logical/mathematical canon)
More mundanely, the statement is obviously false because a language constructed with the basic arithmetic operators and unconditional branches is also turing complete. But a language with unconditional branches doesn't have control flow...
But other than the above technicalities, I pretty much agree with you :) I.e., I agree with the other side (not the entire biconditional) in that if something has conditional flow control, it's (probably) a programming language.
It depends on how you define 'programming'
I'm using a definition that is consistent and logical, but isn't as exclusive as the pedantic definitions many use.
programming is using symbols to control the behavior of a computer...
maybe this will help...it can be 'programming' even if the symbols you use aren't a full 'programming language' in the proper sense
Thank you Dave Raggett
look...it depends on how you define 'programming'
I'm using a definition that is consistent and logical, but isn't as exclusive as the pedantic definitions many use.
programming is using symbols to control the behavior of a computer...
maybe this will help...it can be 'programming' even if the symbols you use aren't a full 'programming language' in the proper sense
Thank you Dave Raggett
12 minutes later, hot chocolate chip cookies.
Make cookies with a recipe that uses actual butter just once and compare them you to "Toll House" and you will never go back.
Plus you get to decide the kind and QUANTITY (hint: a lot) of chocolate you use in your own custom cookies. And it's really simple to just add a few things together to make real cookies.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Good enough for 90% of clients out there. For the other 10%
My guess is 90% of people would agree that cookies made from ingredients are way better than the nasty packaged dough. Just like Hungry Man style meals are in decline...
"There is more worth loving than we have strength to love." - Brian Jay Stanley
> Your comments make you sound eliteist.
It makes him sound informed enough. He doesn't quite understand the distinction in an academic sense, but he has the right idea. You are flailing about, trying to justify why you didn't like the way he presented his thoughts.
This is a pretty accurate summary of how you actually do real web development, and why wordpress sites (that are not priimarily blog oriented) suck. The problem is and always has been amateur or incompetent web 'designers', they used to make Flash sites, remember those?, because all they could do was flash, now they make these wordpress/jquery monstrosities, both are dead ends for the client, since it's very hard to impossible to maintain the stuff over time, and it's almost always a bad way to do a real site, though, exactly as with Flash, they look nice and shiny when you first see them. Developers think of that type of problem, designers don't, and that's how you can tell if you are a designer type or a developer type. Now, if all you have are small time clients, who cares what you use, the ones that are serious will learn and fix the mistake by going more pro, the ones who don't, will stay small, the rest will end up with what they always end up with in the end, nothing.
For the guy who said you don't know what you're talking about, re hand coding the photoshop design, that is a clear indication he/she has no clue about what they are talking about, since this is how you do it if you are a pro. Anyone who uses export to html from any software product and believes that's a good idea is obviously an amateur or a typical web designer trying to be a web developer but not knowing how to code.
If I explain to a client the role of a designer, I will tell them, they are about 1 to 5% of the project, and they follow what we tell them to do. As time goes on, and with real web development, the site does in fact go on, not grind down into a steaming pile, that percentage gets smaller and smaller. The developer{s) is (are) the rest. I have actually gotten good code from designers by the way, clean high quality css/html 5, because we spec'ed css/html5 as a requirement, took a few tries to find someone competent though, so I'm not going to diss all designers, just most of them. And the ones that understand the work flow, design to specs, hand off design to those who code the design, implement as a template, are also great to work with, so it's really just this niche of 'designers' who have no clue how to do anything but still try to make sites, that are the problem, but even they are fine since the web will always have this low end thing, that successful people/site owners come away from after being burned a few times by it.
A quality CMS that is picked to meet the needs of a client, which is the correct choice for almost all websites that are not blogs (and wordpress with good clean templating is a good choice for a blog, I would use that too), is a fine way to make sites. But the problem is, a quality cms is sort of hard to run, and not always easy to update/upgrade. And too many people view the choice as wordpress or drupal, both of which are awful choices for most websites, unless you are running a blog or a huge heavy traffic heavy content update type site like, whitehouse.gov, for example. Between that are many options, some, like Modx, are developer oriented, and really a joy to run, but just happen to create by default exactly what most site owners actually want, a cleanly templated and easy to update and operate website that is a hierarchically organized collection of resources with a standard navigation to access them, that office staff can run by themselves, with the developer just adding features as required by the admin staff. I was somewhat amazed when I started seeing these wordpress monstrosities appearing, it was instantly obvious based on the terrible templating and implementation that these would inevitably fail on upgrades at some point because of too many conflicting extensions etc, besides being terribly slow and absurdly inefficient.
But as with all bad designer fads, as clients realize they are left with unusable junk, this fad too, like flash sites before them, will fade away, and the site operators who are going to succeed long term will move to professional solutions, an
Pressing a key on the keyboard uses symbols to control the behaviour of a computer. If your definition is that broad then absolutely any interaction that you have with a computer is programming and so the concept is meaningless.
I am TheRaven on Soylent News
I'm not sure I agree with your first premise. There are fairly trivial combinators that you can write in lambda calculus that are conditional flow control (i.e. reduce to either the left or right lambda expression based on a value). The implementation of ifTrue in Smalltalk (loosely) follows this model.
More mundanely, the statement is obviously false because a language constructed with the basic arithmetic operators and unconditional branches is also turing complete.
Only if the unconditional branch is a computed branch. Otherwise how would you implement a program that either terminates or does not terminate based on user input? The example that comes to mind is the x86 MOV instruction which, with a single unconditional backwards branch is Turing complete, but this relies on several other aspects of the surroundings that allow you to implement a conditional branch (or, at least, a select, which is morally equivalent).
The simplest Turing-complete instruction set is a subtract-and-branch-if-not-negative instruction, but this is a conditional branch.
I agree that conditional flow control is slightly too broad a requirement, as it depends on an imperative model. Conditional execution depending on input data might be a better way of phrasing it.
I am TheRaven on Soylent News
Yep
I love it when people like you use those fancy code-generating tools. It keeps me in business when they call asking for help dealing with the bloated pile of garbage you created and abandoned because it was incapable of being easily customized to the client's needs, and/or you got bored and weren't able to support it. I chucked the whole thing and give them an appropriately simple hand-coded site, with an occasional simple hand-built CMS. Before you laugh and point your finger at my CMS, keep in mind that it's thoroughly documented both in the code and in external docs that describes how to use it both as a developer and as an end-user. Just about everything is stored in the database so it's easy to manipulate with external tools if you wish.
you are taking it too far
the difference is characters (aka symbols) stored in memory...not the act of 'print'ing a character on screen
it fully makes logical sense...you write code, store it in memory, computer executes it...the symbols you use are the 'langauge'
there are many people who claim to be 'coders' or 'programmers' who are not, but we can't let that determine how we talk/define this stuff
this really is the best way to understand programming
Thank you Dave Raggett
If you were talking diminishing returns, certainly. But otherwise you are a problem.
Many "developers" prematurely pessimize even basic design and convince themselves they're avoiding premature optimisation. The end result is that the hardware usage on enterprise scale systems expands out an order of magnitude.
> look...it depends on how you define 'programming'
Wirth defined programs as algorithms + data structures, but things were simpler when he wrote his book. Now you have to know frameworks, communications protocols, design patterns, testing strategies, yadda yadda yadda. It's a bit naive, on the level of "books = words + punctuation." Doesn't necessarily mean you can write.
IMHO, programming is "devising algorithms to solve a specific problem." Data structures are part of that, but you can have those in a database with no logic involved.
So, Wirth's definition, and your changes can define 'programming' and it won't disagree with my definition.
Wirth is trying to provide an *academic* definition that is *all-inclusive* in it's language
My definition is the reverse...it seeks to simplify what's happening to the most essential.
I'm right. All programming involves controlling machines using symbols.
It's the best definition, and it doesn't disagree with Wirth's definition
Thank you Dave Raggett
One of the things you have to keep in mind if you start from someone else's code is that your trusting that they have coded securely! I sometimes start from another site that I have coded, but I really dislike starting from someone else's code.
it's broad enough to say you're "programming" the ATM every time you get cash from it.
i have to take objection to this
*using* a machine and *programing* a machine are different
you're forgetting the user/programmer dichotomy
the programmer designs the system and the user is basically passive in that the programmer of the system defines the user's universe of options
Thank you Dave Raggett
Ahh hey, I'll cop that. I no doubt do sway to an elitist attitude when it comes to this topic... I started off decades ago with html, and back then there was a lot of endless discussion and opinionating on what was and wasn't programming, and now I can program in more languages than I can remember to list off. :)
:)
I was trying to lay things out from a more basic perspective, as I know not everyone interested in this topic would be able to follow if I get too specific, however yeah, this is a discussion, I'm a little elitist at times, though, as I saw on a sig earlier, I am 100% right at least 50% of the time, with no more than 50% deviation
As for being a dick, well, yeah, to be honest I was aiming for a little bit dickish on that post
"lt;dr" is the correct response to most of my posts.