Modern technologies such as backbone, requirejs


I have been reading up on the growing popuarity of javascrit based technoloogies such as backbone

Are these meant for large scale sites? And are these technologies worth learning, Will they be technologies which work instead of server side languages such as PHP or alongside?

Im just interested in learning how larger scale sites work and how best to get started learning these technologies

Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Paul MacDonaldDirector, Information SystemsCommented:
JavaScript doesn't have anything to do with the size of the site.  JavaScript is a programming language that allows you to embed code in a web page that will run in the browser on the client machine.  This allows the web developer to make web pages that are interactive/responsive without having to send data back and forth to the web server itself.

It's useful to know JavaScript if you're a web developer, but there are lots of libraries and controls that leverage JavaScript in such a way that the developer needn't be an expert.  

Ultimately, it's a nice-to-have, but not mandatory.
coolispaulAuthor Commented:
but arent these technologies used to keep javascript more ornagised etc, so in essence would be used on large scale sites?
Paul MacDonaldDirector, Information SystemsCommented:
No.  There are libraries (like JQuery) that bundle common functions, making those functions easier to implement, but that has nothing at all to do with the size of the site.  If there's a correlation, it might be that larger sites tend to have professional web developers maintaining them, where smaller sites are usually home-grown affairs.
Introduction to R

R is considered the predominant language for data scientist and statisticians. Learn how to use R for your own data science projects.

Large scale websites need to address performance issues at multiple levels, including:
 - Network Issues and Distribution
 - Web Server
 - Server-side code
 - Datastore
 - Browser-facing code

JavaScript-powered solutions are gaining traction at all these levels.  

Backbone.js and Node.js are great at addressing network distribution issues, web server issues and server-side code issues.  CouchDB, TaffyDB and JSDB are good examples of databases that rely on JavaScript.

Requirejs provides a way to load JavaScript libraries either at the server slde or the browser-side.

Server-side languages like PHP could be replaced entirely by JavaScript alternatives however given the momentum that languages like PHP have, I do not see that ever happening.

You can find lots of cool JavaScript projects here:
Scott Fell, EE MVEDeveloper & EE ModeratorCommented:
@hankknight, that is a good source.  And to compliment, todomvc has created the same "todo" app using many of the newer js frameworks.
From my recent experience I would say that the lines between client side code and server side code are "blurring" slightly in the sense that a lot of the actions that are taken on requests and responses can now be more easily done using the javascript libraries mentioned.

Code reuse and maintainability are probably the other main benefits of those libraries. Good code organization is always a good thing as well as not reinventing the wheel (underscore.js has a lot of nice functions to use).

One nice thing about backbone is that it easily plugs into any RESTful APIs that you've made or are trying to use (which I've noticed more and more companies doing since they are having to support mobile apps as well).

Personally I think the best way to learn about larger scale systems would be to focus on certain technologies that high traffic sites use, build something with them, and then learn how they interact with another technology. Not sure what languages/technologies you are trying to use but you may want to try picking up Python and the Django framework. They are super easy to learn, really quick to set up prototypes, and have a lot of libraries to easily integrate the technologies you'll be wanting pick up. Oh yeah and a great community.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Development

From novice to tech pro — start learning today.