Maturation of social media: it's time for businesses to actually start getting value from social media. Developing useful services, products or even approaches could be very profitable. at the very least, you should know if, when and how to use social media for your business.
html5/css3/js frameworks: right now there are lots of technologies competing to be the platform for next generation web apps/sites. html5/css3 are around the corner and look very promising, even for very complex apps. We are also seeing how javascript frameworks are becoming absolutely necessary tools for everyday web development. Solutions such as node.js take js to a whole another level. These web standards might soon become powerful enough to compete with Flash for audio/video centric sites.
"New" languages: ruby and python continue to gain market shares while there are new promising languages such as Scala and Clojure.
Cloud computing: hate the term all you want but companies such as Amazon are revolutionizing hosting and computing. Also check of what hosting companies such as Linode or Slicehost are up to.
NoSQL: if you are working with very large data sets the various solutions offered by the NoSQL camp might be interesting. Be, however, cautious because it's all very new and challenging to use in production.
Game mechanics aka gamification: more and more sites are using typical game mechanics to create richer user experiences. Facebook, Zynga and Foursquare are the most successful companies doing this.
SEO: the biggest news on the SEO front is ... that it isn't news anymore. Everyone is doing it and so should you - from the very first day. Facebook and Twitter has had a huge impact on SEO and web marketing but the basics are the same: create great content/services and build relationships.
Web design: graphical trends come and go but the things that are here to stay are: a/b testing; using web standards (again html5/css3/js) instead of flash, images and other, less flexible/semantic technologies; better layout support for mobile devices; css frameworks such as Sass; CMS frameworks such as Drupal or Wordpress are commonplace, even for very demanding sites.
Can you please clarify this? What do you mean?
Tools like Vagrant (a toolbox for Chef + Virtualbox pretty much), (http://www.vagrantup.com) Make it possible to version your stack alongside your app and only require one person on the team to maintain it as new requirements for configuration or software get pushed to dev VMs with their regular git updates.
See: SproutCore, Cappuccino, Backbone.js, JavaScript.MVC
Avi Bryant's "Django is obsolete, but so is everything else"
http://python.mirocommunity.org/video/1186/djangocon-2009-dj...
Yehud Katz's
Node.js, has got a lot of press at least here on HN as well as other places. Obviously HTML5/CSS3 and associated technologies now being implemented in the browsers. Javascript is still going very strong, i think it'd be fair to say if you dont know JS well then you're at a significant disadvantage, even with the likes of JQuery that makes it easier. NoSQL is also an already vast area worth research that is continually growing.
Game mechanics, location aware sites, scaling issues and as always API availability come up often.
I've probably missed a few things that others will suggest, but i wouldnt worry about it too much, once you hang around for a while in the communities over the internet you'll notice the trends for yourself.
- A/B testing
- OpenID/OAuth
+ Facebook, Twitter, Blogger, etc.
Authorisation via third parties, definitely a recent trend.
* Typography on the web is almost acceptable
* Real time interactivity has a functional standard now (websockets).
The Bad:
* Some people are spending a lot of time papering over the cracks in CSS.
* The semantic web is still 5 years away from mainstream acceptance.
The Ugly:
* Spam you will always have with you.
* OpenID still rules in theory but sucks in practice.
Depending what few means, my list is below. Some of these things may have been the new hotness when you ducked out, but I'm listing what has become mainstream:
- MVC, makes building websites more robust, every major language has a framework for this now
- ORMs, every framework has a pluggable object-relational mapper for getting rid of your basic CRUD code
- Ruby on Rails or Django (Python) are mainstream ways to develop web applications. Both based on MVC.
- People still hate PHP, but it's still incredibly popular
- Internally a lot of companies still use ASP.Net, it's still awful, but ASP.Net MVC is pretty good
- In data transfer JSON is king, XML is dying, SOAP is dead (thank god)
- if you're developing a sales site, include a/b testing
- The rise of the API, lots of online services now offer online APIs. You can also plug a lot of functionality onto your website by using other people's services (e.g. uservoice.com for feedback, visualwebsiteoptimizer.com for a/b testing)
- Javascript frameworks make writing javascript much better, jQuery has pretty much won the framework war
- Lots of plugins are available for the js frameworks. No more having to roll your own table sorting solution
- Cloud Computing can be a cheap, reliable and scalable way to launch an app now. At minimum know about Amazon s3 (storage), but you can now host whole applications on scalable systems
- OAuth, you don't need to roll your own login system anymore for certain types of web application
Oh yeah, and for web design:
- Use divs, not tables for layout. No-one even argues about this one anymore
- Wordpress + a theme is an acceptable way to create a good looking website
- Know the basics of SEO, your clients often will
- As a rule of thumb, if you're nesting lots of divs, you're probably doing it wrong
- use a reset.css. A lot of people also use a grid for layout, something like 960.gs
- Html5, we're getting some more tags (mainstream soonish, probably when IE9 is released as I'm guessing most IE8 users will upgrade; IE8 doesn't really support the good bits). Depressingly being lauded as amazing when it's actually very meh. Still mandatory learning though.
- The browser landscape has shifted dramatically, IE is dying properly now, Firefox is mainstream, Chrome is amazing, Safari is used a lot more because Macs sell more as do IPhones (you probably can't have missed this ;)
Desktops today have multiple CPUs and high bandwidth. But hand-held devices do not, and that is the sector expected to grow faster. The same solutions that worked on a desktop yesterday with dial-up are needed for hand-held devices tomorrow.
Yet, as wifi proliferates, bandwidth increases and latency decreases, the distinction between server and client fades and where processing occurs becomes less important. The least expensive solution will likely prevail. It seems that server-side centralization of processing is more likely both in the short and long run, despite the current plethora of client-side tools, frameworks and methodologies.
My assumptions include the first 4 of the "8 Fallacies of Distributed Computing" (below). But my belief is that market forces will drive acceptance in hand-helds of what has already been accepted in cellphones (that is, inexpensive, unreliable, insecure, limited-bandwidth solutions), and simultaneously drive network solution providers to more reliable, secure, higher-bandwith capability and so those maxims no longer fully apply (or, better said, the customer no longer cares).
Note:
The 8 Fallacies of Distributed Computing:
1. The network is reliable
2. Latency is zero
3. Bandwidth is infinite
4. The network is secure
5. Topology doesn't change
6. There is one administrator
7. Transport cost is zero
8. The network is homogeneous.
This established base makes it hard to move away from js, but then what reason have we at the moment?
But are you saying, as it appears at the end of your para, that we're getting more meta-langauges that compile to js script?
http://couchapp.org/page/what-is-couchapp http://couchdb.apache.org/
Uing HTML5/CSS3 now, long before the specs will be completed with things like the HTML5Shiv, or my favorite, Modernizr.
Because of the ever-increasing popularity of frameworks like Django/Rails, it's very easy to write your API first, then dogfood it back onto your main website and mobile apps. It's the best way to quickly identify flaws in your own API and constantly be striving to improve it. Some companies are even choosing to get their mobile development done before their website even completes.
Connectivity is huge now. Whether it's not needing to roll your own user registration or auth system anymore by just using OpenID, or keeping your users connected with their favorite social sites while still on yours through OAuth, your website is no longer mutually exclusive from the rest of the internet. Average users almost expect you to be social and integrated.
PHP is easy to understand, easy to deploy, and very flexible. Of course with flexibility and ease of use comes ease of abuse, but that's true of most any language. As for people shying away from so called enterprise languages like Java and .NET, that simply is not true, at least where Microsoft technologies are concerned. ASP, C#, and .NET built on Microsoft DB stacks are faster, and more scalable than similar web apps built on LAMP or RoR stacks. Check out Stack Overflow. I would switch to Microsoft technologies in a second if they were more affordable to get started with. As for Ruby or PHP, choose the one you like programming with. Neither is better or more popular in the real world.
What really scares me away are hearing quotes from the author like this:
"There are people who actually like programming. I don't understand why they like programming."
And this:
"I'm not a real programmer. I throw together things until it works then I move on. The real programmers will say "yeah it works but you're leaking memory everywhere. Perhaps we should fix that." I'll just restart apache every 10 requests."
I can't trust a language from someone that says things like that. I know there's a whole community of people working on improving it now and so on, but it strikes me that the language was never designed very well, it's just been repeatedly patched to suck a lot less.
OOP was clearly just an afterthought and is very poorly implemented / missing many core functions of real OOP languages.
No threading support. In fact, the language itself isn't thread-safe to begin with.
Libraries are close to non-existent for anything outside of basic web features.
Function, method, constant, and argument naming conventions and ordering are completely inconsistent across the entire language. Because of this for everything related to say, strings, you're forced to always re-lookup the damn argument order because the language designers can never seem to decide whether needle or haystack should come first.
The language has always taken years to get features that other languages took for granted a decade ago (like closures and namespaces).
For years it had terrible defaults and practically encouraged insecure websites. Magic quotes anyone?
I could go on a several hour tirade of why PHP is bad, but I'll just stop here. If you're still using it, I'm sorry.
Take a look at tag distros on stack overflow. Java is by far and away the most tagged language.
I'm not so sure that being popular on an "I don't get it" kind of site is a good thing.
Another under-explored opportunity is 'social games' where unlike traditional games people focus more on social interaction than on the game dynamics and interface quality - think minecraft or farmville
You know the time is becoming right when, after many failed attempts, there is not just one but three viable platforms: WebGL, Adobe Molehill and Unity on Google's NaCl.
All three should finally pop into mainstream sometime during the next year.
Disclaimer: I'm biased, spending a lot of time on WebGL recently [1] ;)
* Python still has a viable niche (scientific computing, stats, etc...)
* Ruby's niche (mvc websites) got copied by every other decent language
* Ruby is in decline relative to Python: http://www.google.com/trends?q=ruby+language,+python+languag...
http://www.youtube.com/watch?v=up0kiOJvUpI
* One more link for you
-nodejs: server side javascript
-api mashups
-oauth and all the identity systems. facebook, twitter, google
-location: foursquare and the like
-mobile apps
-html5/css3 will be the new hotness