Working with XML Data

The other day I had to work with some XML data in JavaScript. I’ve mostly worked with JSON data, which is easy to work with because you can convert it to a JavaScript object. XML data is not too bad either once you convert it to a Document Object Model.

Browsers have a DOMParser object that will allow you to make that conversion. Once you have the XML data as an XML DOM, you can then use the same commands you use to manipulate an HTML DOM to work with the XML data.

Since I had to work with it, I decided to do a tutorial on it. It is the latest tutorial in the JavaScript Question playlist of the All Things JavaScript YouTube Channel.

The tutorial just went live today. You can view it right here:

What is the Difference Between a Programming Paradigm and a Design Pattern?

When you first start learning to program, your initial focus is on the language. You learn the syntax and the structure. Once you become comfortable and able to put statements together to solve programming problems, you are then free to think more about programming.

As experienced programmers have thought about the best ways to approach the building of an application or the best way to solve a particular problem, they have developed paradigms and design patterns. The smart developers draw on this expertise to improve their own programming skills by adopting paradigms and design patterns.

A paradigm is simply a style or an approach to programming. For example, Object Oriented programming is a paradigm. If you follow this paradigm you use objects to approach the overall program. The objects contain data and behaviors and you connect them in logical ways to successfully solve the task at hand.

Now a design pattern is a tried and tested solution to a common programming pattern. It could be considered a best practice. If you approach a program using an Object Oriented paradigm, there are a number of design patterns you can then draw on to solve specific problems.

So how do we apply this to JavaScript? JavaScript can support many different paradigms and there have been numerous design patterns developed to solve individual problems that arise with each paradigm or across paradigms. JavaScript is flexible. There is not one way to accomplish something and therefore numerous approaches have been developed. You can draw on those approaches and you can mix and match them as needed.

I really like this quote by Angus Croll:

Natural language has no dominant paradigm, and neither does JavaScript. Developers can select from a grab bag of approaches–procedural, functional, and object-oriented–and blend them as appropriate.

Aren’t you glad you are a JavaScript programmer?


Making Sense of the Prototype

Over the last couple of weeks in the All Things JavaScript YouTube channel, I have been focussed on creating a couple of tutorials that will help those that are somewhat new to JavaScript understand and grasp prototypes.

I have to admit that when I first started learning JavaScript, I ignored the prototype when it came up. I was mainly doing procedural programming, so I had what I needed and wasn’t looking for another construct. Well, I have since learned that it was a bad idea to ignore it. The prototype is a key concept in JavaScript, and a very powerful feature, but it is a concept that is sometimes neglected by those that are new to JavaScript.

In these two tutorials I have tried to first explain prototype in a way that will make sense. And then I delve into three techniques for setting the prototype of an object.

So quickly to get you started, the prototype is simply a way to link one object to another. Once you have linked your object to another object, which is called the prototype object, you can then access the properties and methods that reside on the prototype object. This mechanism is the essence of prototypal inheritance in JavaScript. This concept allows you to structure code more effectively.

If you have not watched these two tutorials yet, first watch the tutorial that explains prototypes.

Then you can watch how to set the prototype.

Are you making use of prototypes in your JavaScript coding?

Grasping Recursion

For me recursion is one of those concepts that took me a while to grasp. You are accomplishing the same type of thing that is accomplished with a loop, but it is not as easy to understand.

I recently did a tutorial on recursion. It uses a simple example to help you see what is going on with a recursive function. Take a look.

There are certain situations where recursion is very helpful; mainly working with a tree structure. I have used it a lot in the past with XML data. I don’t deal with XML data quite as much anymore, but I still find other tree structures where it is helpful.

Is recursion something you use? In what situations have you used it?