Intro to Game Programming with JavaScript: Update

Only 5 Tickets Left!

Wow, these things are selling a lot faster than I expected. There is still a week left and most of the tickets are gone. If you’re still interested, you should hurry and buy one to secure your place. If you are interested but can’t make it to Monday, August 6th, leave a comment on what dates would work better as I’m looking to have an alternate class schedule as well.

Some Q/A

A few questions came up in the last post, so here are some answers summarized for anyone who doesn’t read blog-post comments.

  • What time is the class? The class starts at 7pm on Monday, August 6th, 2012.
  • Can I just show up? I would prefer if you signed up for a ticket first, so I know how many people are coming.
  • Is there anything we should have/know before the class? You’ll need your own laptop computer, we don’t have enough public computers to go around at Hive. I will briefly cover some options for text editors in a blog post or at the beginning of the class, but if you already have a favorite text editor like Notepad++, Gvim, or TextMate, then by all means use that. Also, it would be advantageous for you to setup some sort of webspace. There are some free places like 110mb.com, or you could even use the Public folder if you have a Dropbox account, which is quite convenient.
  • Is it just JavaScript in general, or does it include HTML 5 and Canvas? Various HTML 5 techs will definitely be covered, eventually. You can’t really do much graphically without it. JavaScript, HTML 5, and CSS 3 all go hand-in-hand. While there are some Dynamic HTML stuff that can be done (and we will certainly cover it just because DOM manipulation is a good skill to have), eventually Canvas and Audio are a necessities.
  • Why not do <insert language> instead? That’s a really big question…

Whyfor JavaScript?

There are a bunch of reasons why JavaScript is an attractive option.

First, everyone already has the minimum tools they need to do it. At the barest, a plain text editor like Notepad and a web browser is all you need to do some quick programming. That ubiquity of availability means that you will never find yourself without the tools to practice your craft.

Second, that same ubiquity means that anyone else is going to be able to run your code. No need to install a Java or Python or .NET or C runtime, no need to install any libraries, everyone already has a web browser. And it’s pretty easy to write code that will run in all of the browsers on all of the operating systems. With a little more effort, it’s even possible to get the same stuff running on mobile OSes like Android and iOS.

You’re never going to get a C binary running on more than one operating system, and writing cross-platform C code that can be recompiled on the target machine (a task that no user should have to go through) can be difficult. There are some difficulties with getting Python, Java, and .NET to look nice across systems, and they also require the user to not only install a large runtime but also keep it up to date. And none of these are going to run on a handheld device straight off the bat; the libraries and APIs are often incompatible.

Third, it’s just a good skill to have. I believe in learning as many programming languages as possible. If you want to learn Ruby or Lisp or O’Caml, go ahead, those are absolutely great ideas. The more programming languages you learn, the better. But strangely, JavaScript is the only one that I have continued to need and use for the last 15 years. Everywhere I go, I end up using it, a little bit because it’s so ubiquitous, and a little bit because it’s the last chance to run some code before getting in front of the user. Not always the most important tool I have, but definitely omnipresent.

Finally, There are a bunch of add-ons to JavaScript these days that aim to make it easier. There are some libraries like JQuery that can shorten your code and make things easier to maintain (at the cost of speed, IMO), and there are even full languages like CoffeeScript that get translated into JavaScript code (which require installing said translators). In both cases, I think it’s more important to have a foundation in fundamentals before using such tools. It’s like learning wood working with hand tools before moving on to power tools. If anything goes wrong with those other tools, you’ll need to understand the core language to fix it.

 

Okay, that’s it for now. Looking forward to seeing everyone in a week!

2 Replies to “Intro to Game Programming with JavaScript: Update”

  1. If we use 110mb.com does it come up as site.110mb.com or does it give you the ability to change it to a domain you own already and just don’t have a host.

  2. They might, I don’t remember off-hand. I only mentioned them because I had used them before and knew the name off the top of my head. There are definitely others out there.

Comments are closed.