Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are current trends in webdeveloping?
67 points by john33 on Nov 27, 2010 | hide | past | favorite | 40 comments
I've been out of the business for last few years and I am wondering what's new. I'd like to know what should I read about to get up to date. I am not only interested in new technologies but also trends like eg. "web 2.0".



Big trends are: mobile computing and development: developing apps for smart phones and other mobile devices is the gold rush right now. Every company seems to be working on offering an app right now.

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.


Not only apps, but every company (especially in e-commerce) is running around to get a mobile sites. Small businesses are beginning to explore possibilities in mobile web - so trends are taking a turn that way.


I'm printing this in a fancy font and putting it up in the office. Thanks a bunch!


How has Facebook had a huge impact on SEO?


Several ways, first and foremost that google or yahoo are no longer everyone's de facto home page, and secondarily that facebook and twitter have both evolved into platforms with search functionality. SEO is still growing annually (as are digital marketing expenditures), but 5 years ago search engines were the only game in town. Not so anymore, and that's primarily due to the emergence of social networking portals as the focus of most users' online time.


SEO is still growing annually (as are digital marketing expenditures)

Can you please clarify this? What do you mean?


I should have been more clear - I meant that marketing expenditures on SEO and SEM are still growing year over year, though not at the rate they once were.


I think your list is more about state of the art, not trends. But useful too.


One trend, if you can even call it that, that I really like is version controlled virtualized dev environments.

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.


For the last few years? Looking at the answers so far, I think a lot of us have short memories!

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 ;)


Coding the whole app in JS in the browser and using the server only for proxying data and validation/filtering.

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

http://yehudakatz.com/2010/09/14/heres-to-the-next-3-years/


Its quite hard to give an unambiguous answer because its quite a vast subject with many niches in it and what some people consider a trend, others might not.

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.


Excellent list. I would also add:

- A/B testing

- OpenID/OAuth


>OpenID/OAuth

+ Facebook, Twitter, Blogger, etc.

Authorisation via third parties, definitely a recent trend.


The good:

* 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.


Mobile. I can't emphasize that enough. Mobile is getting smaller and more capable with every generation. Technology that everyone agree's has huge potential in this space, like augmented reality and geolocation, have yet to produce any clear winner must have products, so the market is wide open in this space.


The support of other languages other than javascript. Mentioned by Joshua Block on a recent panel (http://www.infoq.com/presentations/Future-of-Programming-Lan...), but can be seen by the adoption of coffeescript, and by the project that compiles LLVM languages into javascript: http://news.ycombinator.com/item?id=1941447


I actually think we've moved away from other languages and back to javascript recently. The browser competition means that javascript engines have become a lot faster and so are capable of a lot more than they were and things like jQuery/prototype/moo paired with json the recent developments like node.js, commonjs have given it longevity.

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?


Not only more meta-languages. In the second link it's shown how Lua can be compiled to javascript. And in time, python, ruby and other LLVM languages. Reframing javascript from a language into a platform is a trend. GWT, Cappuccino and Sproutcore did a bit of it in the past, but this wave is not interested in web javascript only, but in javascript wherever and whenever: node.js, web, embedded, etc


In addition to the NoSQL camp, it seems that a new method to replace tier 3 programming is CouchDB. Specifically, the CouchApp.org that was posted yesterday on HN. The CouchApp "can be served directly to the browser from CouchDB, without any other software in the stack".

http://couchapp.org/page/what-is-couchapp http://couchdb.apache.org/


Many here are emphasizing the rise of client-side Javascript methodologies and I would like to play Devil's advocate. Instead I argue that client-side solutions will fade because they are largely unnecessary.

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.


Much less of an emphasis on the "enterprise-y" languages and frameworks like Java and .NET, and people finally realizing how terrible PHP is as a language. Python and Ruby continue to gain lots of momentum, specifically Django and Rails.

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.


"Much less of an emphasis on the "enterprise-y" languages and frameworks like Java"

Take a look at tag distros on stack overflow. Java is by far and away the most tagged language.


> 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.


Could you tell us why the PHP is a terrible language?


I've only used a PHP a small amount, so admittedly my observations are from an outside perspective, but there are a number of quirks that bother me about it (small example: (string)"false" == (int)0 ... seriously?). Seems nice enough for small projects that I just want to deploy quickly though.

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.


Wow. So is it turning a string into a constant?


Is this a serious question? The creator of the language himself has admitted multiple times that it was never meant to be anything more than quick glue to add tiny dynamic content to a webpage, much like Perl was back in the day. He rarely adds anything to the language because he thinks PHP will be better for it, rather he described it as whatever features people yelled that they wanted more. As such it's turned into this mess of a language today that makes you want to cry whenever you have to work on it for anything beyond simple websites.

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.


Answer: It's not!

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.


'Mobile' and 'Location' is the new 'web 2.0' setup at the moment. Everybody can spell these at their sleep but few know how to make profit out of it.

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


It's interesting to read the comments. Many mention that Ruby is still growing, but I have the feeling that its already peaked and now fading[1]. I also thought that NoSQL was just a silly fad, mostly being laughed at[2].

[1] http://www.google.com/trends?q=ruby+web%2C+python+web

[2] http://www.xtranormal.com/watch/6995033/



Ruby and Python are both terms where the common meaning confounds the programming language on Google Trends.

* 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...


* No MVC copy managed to be a better Rails

http://www.youtube.com/watch?v=up0kiOJvUpI

* One more link for you

https://github.com/languages



Big thing in 2011 will be hardware accelerated 3d.

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] ;)

[1] https://github.com/alteredq/three.js



-nosql: 'post-relational' or 'non-relational' persistent data stores.

-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


Define "web developing". I know it sounds silly, but it means different things to different people - I'm a lone web designers in my spare time, some people call that web developing. Do you really mean just backend client-server interactions or do you mean GUI, UX, SEO and what-not up front too?


nodejs & mongodb are the most important trends for me. an evented language and a easy scalable nosql db.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: