Chances are if you’re looking for something creative to be done online, it should not only have to look awesome, it should also function. When you’re evaluating creative agencies in Denver, don’t focus all your attention on which one has the most beautiful Photoshop and Illustrator designs. Rather, make note of which creative agencies have a design style that appeals to you, as well as what skills they have to implement the designs into something that works.
When it comes down to it, a Photoshop design for a landing page, for instance, is worthless if it doesn’t function as a landing page. With that in mind, read on for a primer about widely used web development technologies so you’ll be armed with some knowledge when you discuss your project with creative agencies.
Front-end development, a.k.a. stuff that runs in the web browser
Flash: if a creative agency wants to sell you a Flash solution, run.
Flash: Do. Not. Use. Don’t let anyone sell it to you as a solution. YouTube is dropping Flash in favor of HTML5 video, it’s a security risk with new vulnerabilities continually popping up, and it doesn’t work on mobile.
HTML5: it’s an updated HTML specification, usually coupled with a bunch of JavaScript
People like to throw the “HTML5” buzzword around a lot, like it’s some amazing new technology. HTML5 is just a newer specification that expands on the older HTML4 specification. YouTube switching to HTML5’s <video> tag would be an example of using an enhanced feature of the HTML5 spec, and that new <video> tag requires properly encoded video files. Nothing really fancy there. HTML5 animation usually means using the new <canvas> tag that requires a whole lot of JavaScript programming to do the actual animation. Which brings us to JavaScript…
JavaScript: it has no relation to the Java programming language, and nothing to do with coffee.
If you want to have some interactivity or animation in the web browser, JavaScript is what it will be written in. When a creative agency pitches the term “HTML5”, a lot of time they just mean they’ll be using JavaScript with some newly available HTML tags. It’d be great if there was a magical HTML5 tag that’ll create an animation, or allow a web page in a browser to interact with a web server, but there isn’t — it’s all done with JavaScript. And there’s nothing wrong with that, since JavaScript runs in all major browsers including smartphone web browsers. People love JavaScript so much, they make up different programming languages like CoffeeScript or ClojureScript and get them to transpile to JavaScript which the web browser will understand. Anyway…
Another fancy term is “SAP”, or single-page-apps that run in the web browser. These are written in JavaScript and HTML, and are typically built with frameworks like backbonejs, angularjs, emberjs, and react, which are, in turn, just a bunch of JavaScript that create a foundation with which to build something from. Basically, if you want any interactivity, you’ll need JavaScript.
If you hear the term “NodeJS”, just realize all that means is JavaScript running on the web server. It’s very cool, but a bit beyond the scope of this primer.
Back-end development, or stuff that runs on the web server.
Databases: where data is stored.
For a technical layperson, a database is just software that stores information and provides a way to query for the information stored in it. “Give me all the items Bob purchased in the last month” would be an example of the information a database stores and what information it can return. The database software runs on a computer, typically one housed at a web hosting company (side note: the cloud are just computers at someone else’s hosting facility).
There’s two, main open-source (free) databases widely used: MySQL and Postgres. These two store information in a relational model, or “a database structured to recognize relations among stored items of information.” If your creative project requires any type of user interaction that has to store data (user names, profile information, favorite cat breeds), most likely the database for that would be MySQL or Postgres. And just because it’s free, doesn’t mean it sucks; Facebook, for instance, uses MySQL in a large part of their infrastructure.
There’s also a group of database software based on NoSQL like MongoDB. Unless you’re creating something that’s going to need to run over a huge server farm or has little structure to the data, I can’t think of why a creative agency would eschew a typical relational database like Postgres and go with something like MongoDB.
Programming languages: Code that makes stuff do stuff. A creative agency should support popular languages.
There’s a plethora of different programming languages that run on a web server and they all basically do the same thing: provide some sort of functional interface between the web browser and the web server. Say you’re building a landing page with a form that collects a person’s name and birthday. When a user submits that form on your landing page, the web browser sends that information to the web server where code running on the server processes it in some way.
Maybe the code tells the database software to store the user’s name and birthday, or the code tells the email software running on the server to create an email with the name and birthday, and have that email sent to you. It’s all done with code running on the web server.
While there are a lot of programming languages, it might be best to stick with a widely-used one. You don’t want to have a creative agency deliver your project built on a language that only a few people use, and where finding future support would be difficult. PHP has been around for a long time and pretty much comes standard with any web hosting package. Ruby, Python, and Java are widely used and there’s no shortage of developers for them. If you need a content management system (CMS), here’s examples of some CMS packages and the language they’re built in:
- WordPress, Joomla, Typo3 – PHP
- Django, Plone, – Python
- Ruby on Rails (not really a CMS), Radiant, Casein, Adva – Ruby
Don’t be afraid to ask questions
More than just a source for pretty designs used in online projects, creative agencies should offer a sane approach to implementing the project and making it function. Whether they have in-house development staff or a partner agency, make sure to take stock of what technologies they recommend. And ask questions. Lots of questions:
- “What are you going to build my project in?”
- “Why are you using such-and-such programming language?”
- “Is there a large development community behind it?”
- “Do I need special hosting, or will my users need anything special installed?”
Even if the creative agency is speaking in confusing techno-babble, getting answers will give you information that you can compare against what other agencies are pitching. If one agency seems confusing when explaining their development approach using the most techno-buzz-sounding words, that might be a bad sign. Go with the creative agency that can explain things like a 5-year-old would understand — less fluff is a good thing when it comes to development.