Blog Home

Letter to John Carmack

The following is an email I sent to John Carmack of Id Software after I had watched his Quakecon 2012 Keynote Speech.

Edit: John Carmack posted his response below.

Hi John,

I watched the live stream of your keynote speech yesterday, and – as every year – I enjoyed it very much. I applaud your openness; it's always refreshing to hear some insights from the gaming industry that is otherwise very secretive. Thank you!

However, I believe your views on JavaScript and WebGL are short sighted.

Nobody pretends that the next AAA-title will be written in JavaScript. The community understands that it's magnitudes slower than native code, but the thing is: it just doesn't matter.

Many, many types of games don't need the absolute best and fastest environment to offer interesting gameplay and graphics. Take a look at X-Type on your iPad or iPhone for instance.

You yourself talked about how frustrating it is that you need 200 lines of code just to set up your screen for rendering on Windows, whereas in the olden days you could just push pixels to the screen with 3 lines of code.

We're there again: take 3 lines of JavaScript and you're drawing an image to a canvas element. Take 20 more lines and you have a rendering loop and a sprite that moves with the arrow keys. And all you need is a text editor and your favorite Browser. That is what JavaScript is all about.

When you're new to programming and still figuring out whether you like it, you don't want to read thick books. You want to see results. Fast. You want pictures dancing on the screen.

JavaScript is the language you should teach your son.

I backed the Oculus Rift Kickstarter yesterday and I fully expect to see significant development for it going on with WebGL. It doesn't matter that JS is "slow" when you're just trying stuff; ease of development is far more important.

Coupled with the openness of the Web, I wouldn't be surprised if much, if not most, of the research for applications of the Rift comes out of the JavaScript community.

Right-Click -> View Source is what made the web so successful and it's awesome that we now have this for 3D graphics as well.

Don't hate JavaScript. It's our generation's Apple II.


Friday, August 3rd 2012
— Dominic Szablewski, @phoboslab


#1Jerczu – Friday, August 3rd 2012, 13:58


#2Harry Harrison – Friday, August 3rd 2012, 13:59


#3wirehack7 – Friday, August 3rd 2012, 14:09

You are right and your argumentation needs respect.
All these points are pointing to a well developed engine market for browsers.
There are new techniques like WebGL or canvas elements which are pretty nice to handle with. Also you have node.js for socket implementation in multiplayer games or client<->server communication.
Put this altogether and wait a few months, you'll see it develops fast.

Thanks for the letter!

#4@Pl4n3 – Friday, August 3rd 2012, 14:13

I aggree. Also if stuff is rendered efficiently, e.g. using glsl-scripts, and as javascript engines getting faster, IMO the performance difference between native and javascript games is less than magnitudes :)

#5 – Mathias Panzenböck – Friday, August 3rd 2012, 14:22

I hope he reads this.

#6Kyatric – Friday, August 3rd 2012, 14:22

Hi, I'm part of the community of the tool Construct 2 ( which is a 2D game making tool relying on a powerful system of events that allows newcomers to programming/game making to focus on the inherent logic of the game itself and still allow the more experienced users to build complex systems and quickly prototype HTML5 games.
The engine takes care of a huge deal of technicality/compatibility for you and allows for people who never wrote a single line of code to make their first game in a matter of minutes.
I understand mister Carmack's possibly wouldn't be interested in such a tool, but for "less technical" guys (and not necessary focused on 3D), it's really a nice way to learn programming in a very active and rewarding way. And you can expand the functionalities thanks to a JavaScript SDK.

I don't want to sound to spammy, but I've seen the number and the quality of the games posted in the arcade ( raise up as time and C2's releases went by and there are really some neat games that can be made in HTML5 and even be ported to mobiles device thanks to wrappers like CocoonJS or AppMobi. (

There are a lot of great tutorials and a very friendly and helpful community in the forums.
In this tutorial : I tried to present and link to the documentation to allow your first steps with the software.
I'm aware that "true coders" might see this software as a toy from the outside, but I can assure you it really is worth of putting some time to getting around to use it and see the power you can get out of it.

I must admit I haven't (yet) seen mr Carmack's keynote, but I'm going to check it out right after posting this message, and probably enjoy it as every year.
Nevertheless, as a huge believer in HTML5 and C2 for almost 2 years now, I felt C2 would be a nice example to back up the spirit of Dominic's letter.

Thank you for reading this message, supporting HTML5 and checking C2 ;)

#7 – simon – Friday, August 3rd 2012, 14:44

is the full keynote video online somewhere? can't find it.

#8Dominic – Friday, August 3rd 2012, 14:51

@Kyatric don't forget the even more awesome game engine Impact: ;)

@simon: the recording of the keynote is not online yet. I'll link to it as soon as it becomes available.

#9 – Gregory – Friday, August 3rd 2012, 14:55

@kyatric you're realize you're shameless promotion post happens on Dominic's blog... He's the author of Impactjs...

#10Kyatric – Friday, August 3rd 2012, 15:06

@Gregory: Believe it or not, I only realized after having posted my comment.
I'm truly sorry, feel free to remove my comments if you will.

I really meant to support what I thought about this post (HTML5 rocks), missing the point on who the author is.

@Dominic: Indeed I know impactJS is a renowned engine, relying on "true coding"/JavaScript. I must admit I've learnt programming as an hobbyist over the years and C2 is a different kind of tool/engine that helped a lot of non programmers to make their first steps/games.
I definitely agree though that JS is a very nice language for learning/teaching purposes (kind of the BASIC when I first discovered computers and coding languages).

Again, my deepest apologies I hadn't realized where I was posting, sorry.

#11David Galeano – Friday, August 3rd 2012, 15:19

It is totally possible to write impressive looking 3D games with WebGL and JavaScript. That is the reason we wrote our WebGL demo using Quake 4 assets:

Yes, native applications will always have an edge performance-wise but that does not mean games will not look great and be fun.

#12 – slabbo – Friday, August 3rd 2012, 15:22

WebGL is pretty much flawed and from a securyity pov a totally Fail.
Another useless thing to turn off .. after cookies, disk caching, password saving, search
suggestions, Javascript, Flash, Java, Quicktime, and Silverlight ...

j. carmack is imho right.

#13Reza Jelveh – Friday, August 3rd 2012, 15:37

As i said on HN, you're completely missing the point. And you're further away from the 4 lines than ever before. The truth is more like hundreds of thousands, you're just using the very top of the abstraction layers, and that precisely is the problem.

#14 – bonch – Friday, August 3rd 2012, 17:41

JavaScript is a terrible language and deserves to be criticized.

#15 – Carl Larson – Friday, August 3rd 2012, 17:54

Right on! Very well said.

#16 – NinjaWarrior1976 – Friday, August 3rd 2012, 18:21

"Nobody pretends that the next AAA-title will be written in JavaScript. The community understands that it's magnitudes slower than native code"

Disagreed... Obviously most web standard advocates insist that JavaScript has enough performance and all software will and should be web based. Mozilla, Brendan Eich, Emscripten creator and many others... I'm very very angry about their misleading advertising. And Carmack is criticizing JavaScript not only because of its performance ( ).

#17André Moras – Friday, August 3rd 2012, 18:21

There is a reason why JavaScript can't be used for a "full-engine", a engine needs speed as much as possible and JavaScript + VM can't deliver that.

Most development on 3D Web are targeted in: shader language and OpenCL support (you use the GPU as your ultra fast CPU).

JavaScript can be used to handle events and scripting, similar to the way Python/Lua are used.

"Right-Click -> View Source is what made the web so successful and it's awesome that we now have this for 3D graphics as well."

Most people can understand a webpage but 3D rendering logic requires much more than programming, in fact, programming is the easy part when comes to 3D games/engines.

#18 – Ian – Friday, August 3rd 2012, 18:26

Javascript was never intended for writing applications like games. Even the application you link to does not run correctly on my machine - such a simple application and yet it is unable to run at full speed on my machine. The issue here is mostly due to the fact that Javascript is a scripting language with focus on ease of use and flexibility - and not performance, which games requires.

It will never be a professional application language. It filled a void in 1997 and has done a good job of making the Web dynamic and more interesting, but now people try to evolve the language to something it is not. I agree that you can write games in the language, but anything more than a simple 2.5D FPS game written in a weekend is simply too much for the language. Think about AI, networking, advanced particle effects and real-time physics - all those requires full performance.

#19C2H5OH – Friday, August 3rd 2012, 18:36

Right Click -> View Source?

I just hope you're joking. Try that on GMail.

#20 – Pimp – Friday, August 3rd 2012, 18:41

What keynote are you talking about?

#21Tane Piper – Friday, August 3rd 2012, 18:42

@Ian - you seemed to have completely missed the point of what Dom said in the post, and are close to trolling here.

He already made the point about it not being a high-performance language. You also clearly haven't seen the Turbulenz WebGL Engine -

The fact is on today's machines, JavaScript *is* fast enough for a lot (but not all) of games to be written in - the main issue is code organisation - without linkers and compilers, and a proper module system (that won't land until at least ES6) it's difficult to program large games. I would recommend you read up on JavaScript performance in the likes of the V8, Nitro and Spidermonkey engines.

#22 – Mr. Buttons – Friday, August 3rd 2012, 18:53

So I can doodle in a canvas element with three lines of JS. Clearly asm/C coders with real skills are obsolete.

Wake up.

#23Deleteman – Friday, August 3rd 2012, 19:09

I would really like to see that keynote, sounds interesting. I agree with you that Javascript has a lot of power not many people recognize, but it is also true that the current version of it was not meant to create full fledge games. Maybe sometime in the near future we'll see that come true, but for now, we'll have to settle for simple games on the web, and more complex ones on desktop.

That is, ofcourse, IMHO.

Cool post though!

#24 – Mark – Friday, August 3rd 2012, 19:22

@slabbo How's that joyless high ground working out for you?

#25 – Ninlinearcode – Friday, August 3rd 2012, 19:40

The slowest part in JS is still the DOM implementation so I see great potential in using JS as adirect scripting language for a WebGL client in the future if the browser as an engine will be implemented streamlined fir fast rendering and data-pipelines.

#26Jay K. – Friday, August 3rd 2012, 20:03

I still don't see why we can't have a polyglot browser. Why does Javascript have to be the *only* browser language?

I'm quite surprised that this is ongoing. With the number of bright minds engaged in the web space, how shortsighted it is to enforce a single computing model, let alone language, onto the Internet experience.

#27 – Matthew Maxwell – Friday, August 3rd 2012, 20:54

@NinjaWarrior1976 - First of all, almost every single one of the issues in that link you provided are handled in strict mode and in the upcoming ES6, so I can't put a lot of weight into the arguments.

Secondly, JavaScript is not Java, so comparing it to Java, Java's syntax, and Java's thought process is wrong. You can't compare languages to each other in that regard. You can compare performance, sure, but saying that a language is horrible simply because its syntax is not something that you're used to is ignorant.

Third, considering the amount of time that JavaScript has been around in comparison to other languages, I would say it's doing very well. It's one of the most used and most undervalued languages out there.

Every single person I've ever had a discussion with about JavaScript that has a problem with it, formed their opinion based on information that was just wrong.

#28 – Matthew Maxwell – Friday, August 3rd 2012, 21:12

Also @Ian - You're wrong. Google Maps is what I would consider a full fledged application, and that is a JavaScript-based application. As for the networking and other things, have you seen NodeJS? It's ability to do that type of stuff is incredible, and it's not even a 1.0 release yet. As for performance, there is a lot of "under the hood" optimizations that the developer and engine can do if the application is written properly. While a proper module system is not currently in JS (coming in ES6), there are JS libraries out there that use the RequireJS module implementation, which allows for an AMD style application to be written. There are companies out there that have their loader down to under 6k for a full blown application.

The performance of JS as a stand alone language is actually pretty good. The real performance hits come from interacting with the DOM, which is how JS writes things to the page. The DOM is a horrible implementation and is very slow in many instances. There are many things that a knowledgeable JavaScript developer can leverage to increase the performance of their application. For more information, you can check out a really good video by Paul Irish:

I agree that JS was not created for the goal of writing fully interactive 3D games. That's fact. It was written to do what Java applets horribly failed at doing, and it does that well.

Things evolve and become better. That's how programming should be, and is in other languages, so it does not make any sense to think that JavaScript would never be able to do something like that.

#29 – Illsueyou – Friday, August 3rd 2012, 23:36

Great random John Carmack reference to get page hits.

John Carmack has nothing to do with your feelings on Javascript games, except apparently to get page views with name dropping.

Perhaps your arguments are weak and that is the only way to get attention?

#30 – Trevor – Saturday, August 4th 2012, 14:43

@Illsueyou I second that.

#31 – Shawn – Saturday, August 4th 2012, 15:06

You can't count on these interpreter languages to write a cutting-edge game engine if you're expecting play the game on PC/Console with great graphic effect, at least now. It could be happend in the future-_-

#32Florian – Saturday, August 4th 2012, 16:36

@John Carmack and all the JS/WebGL dissers out there.

1) Writing reltime code is no problem in JS. V8's JIT and typed array buffers make JS nearly as fast as C (see emscripten, lljs, etc.)

2) Even if JS is slower, it doesn't matter, because todays JS on todays processors is still faster by far than C on processors of a decade ago or than native code on current mobile devices like the iPad.

3) Security is continuously being addressed. And there are quite a translation/security few layers between the JS programmer and the "raw GPU". Additionally ARB robustness is being implemented by driver vendors. Browsers are *not* sacrificing security for raw GPU speed. If anything, your native applications are a massive security hole that should be plugged at the soonest possible time (Sony/Ubisoft rootkits anyone?).

4) You praise OpenGL ES yet you diss WebGL, which is OpenGL ES, but even more streamlined and simplified. You diss complicated locked in systems where you have to write hundreds of lines of code to get things running, yet you don't appreciate WebGL where you can get cracking in just a few simple lines of code. How about some consistency there?

5) You critisice WebGL as a platform based on your experience distributing Quake Live as a browser plugin and trying out NACL, which are completely different things. How about criticizing WebGL not by proxy but based on fact. Not all things are perfect, but WebGL is not a plugin and it is not NACL.

#33Fabiano Ferreira – Saturday, August 4th 2012, 21:12

Hey Dominic!

Absolutely fantastic your post! I grew up playing Atari 2600 VCS' Enduro, Hero, River Raid and I guarantee that most of that simple games were far funnier to play than many of actual hollywoodian productions.

Actually I have more fun playing a Sega Master System or Genesis games emulated in my PC or UNO in my iOS than another one. No matter if you're playing 70's Pong or Crysis in FullHD. Games are made to challenge people and put our imagination in another dimension, it's all about entertaiment.

I have no doubt that the next gaming generation will be played in browsers,cloud games or homebrew developers releasing "gaming browsers". I used to develop Flash games but certainly I'm moving to HTML5 scene.

Keep rockin' dude!
Cheers from Brazil

#34 – Sosh – Saturday, August 4th 2012, 23:45

Nice letter. Surprised at the negative comments here.

I think you hit the nail on the head about it not mattering. The games industry, I think,
has a terrible obsession with visual performance. IMO the advent of 'proper 3d' led to a massive contraction in gaming concepts. It's only now with app stores that indie gaming is bringing back some of the 'simple' inventiveness that we saw in the 80s/90s. The big test for html5 gaming will be the viability of commercialisation. But since many games are moving to a MMOG/Freemium model, I think it has a reasonable chance.

#35 – Franz – Monday, August 6th 2012, 06:13

None of Javascript's shortcomings are so serious that they prevent the manufacture of compelling games. None.

Not that I love the language--I don't. A 5-minute problem in any other language routinely takes me hours to solve in Javascript because its arcana is anything but obvious.

#36 – John Carmack – Friday, August 31st 2012, 16:55

I didn’t really intend to come off as that critical of javascript. For aggressive tasks in a resource constrained environment, it should clearly be viewed as the wrong tool, but those two caveats don’t apply to the vast majority of programming work. I think less code should be written in C/C++ than actually is – the safety problems of pointers/array overruns and explicit memory management are much worse than the performance benefits for most applications.

I did do a little bit of simple JS programming specifically to help decide what programming language my son should learn first, and I’m not sure that it wouldn’t have been the correct choice.

I do have a bit of a wry esthetic objection to the layers on layers on layers on layers world of web development, but I recognize it as a foreign culture (from my point of view) with significant and powerful capabilities. Native code developers shouldn’t be defensive about true accusations of security and stability limitations, and JS developers shouldn’t be defensive about true accusations of inefficiency.

People should avoid statements like this comment from above:

> V8's JIT and typed array buffers make JS nearly as fast as C

These arguments only work when you are comparing native code kernels that limit themselves to the characteristics of the interpreted / dynamic language you are comparing it against.

If you compared a task with enough meat on it to really exercise an optimizing programmer – say, the transcoding pipeline in Rage that decompresses pages of HD photo data and recompresses to DXT format, an implementation in javascript is going to be drastically slower. I would be very surprised if it could come in within a factor of two, and I would sort of expect it to be an order of magnitude slower. I would be willing to bet money on the factor-of-two-slower statement if anyone rabidly objects to it.

Something else to consider: the “computers are always getting faster” argument has run out of steam with scalar processors. I still hold out hope for additional significant scalar improvements, but the pessimistic view would be that current C/C++ code is faster than Javascript will ever get. EVER. It still doesn’t matter for the vast majority of applications, but it is worth a little bit of pondering.

John Carmack

#37Schepp – Friday, August 31st 2012, 17:34

Just to add that piece of information: JavaScript has Webworkers as sort of separate non-blocking processes, Intel is bringing it's River Trail multi CPU language addition into play and then there's also WebCL, a derivative of OpenCL that should help distributing workload accross many CPU and GPU cores.

On top of that new browsers (i.e. IE10) split up parsing, JITing and execution on up to three cores.

All of those techniques were not available back when the world just consisted of single monolithic CPU cores. So there is a balance again.

Nevertheless you are probably right about JavaScript never getting to the point where it will replace C in heavy duty scenarios.

#38 – Alexander – Friday, August 31st 2012, 20:16

>on your iPad or iPhone
silly (for a developer!) to think that everybody have either iPad or iPhone. but one of them for sure.

#39 – Lachlan Stuart – Saturday, September 1st 2012, 02:28

Dominic, I believe your views on JavaScript are naive.

I agree that performance no longer matters for most tasks.

I agree that it's preferable to only need 3 lines of code to set up drawing, rather than 200.

I disagree that JavaScript is a good language to teach children. The APIs are all of very inconsistent styles, making them hard to learn. There are many of hidden processes, such as assignment of the "this", "window" and "undefined" keywords/variables, the implicit semicolons, and all of the crazy stuff you need to watch out for when using arrays and objects.

I disagree that JavaScript is naturally a concise language. Yes, there are some very well designed APIs, but if for any reason you're just using the core language then you will find yourself having to manually type out map/reduce/filter/etc. operations with loops, if statements and temporary variables. The event-driven semantics of the language have also made implementations of multi-threading and blocking code utterly hideous and rife with unnecessary complexities.

I believe that there are better languages out there. I don't think any language is without flaws, but in my experience with Python and C#, I've found them to be much more consistent and predictable, while being flexible enough to comfortably make most types of applications in.

If you prioritize "Right Click -> View Source" over ease of learning, then add Lua to the list. Between Python and Lua, there are an enormous number of games and applications that a child could jump in and tinker with. And what's more interesting to a child? Taking apart a video game, or trying to decipher some disgusting or obfuscated webpage code?

#40Kamil Trebunia – Saturday, September 1st 2012, 10:55

Lachlan Stuart, that may all be true, but you forgot about one thing... If your child wants to build a game and that child does it with open web tech then it's *instantly* accessible for all his friends (you may even use Dropbox to serve files online). Just like that. It's not possible with any other platform/language.

And JavaScript can be taught in a very simple and not disgusting at all way. Browser APIs may be messy, but you don't need to go there to teach a kid how to program.

#41 – Lachlan Stuart – Saturday, September 1st 2012, 18:34

Kamil Trebunia, that's assuming that their friends have a relatively modern browser. Note that Internet Explorer has no native WebGL support - all workarounds require an additional download (A different browser, ChromeFrame, IEWebGL, etc.). Sure, the aspiring programmer kid will undoubtedly have a WebGL supporting browser preloaded by their parents, but would his friends have the same luxury?

Once you factor this in, how is WebGL any different from Python and Lua, which also only require one download/install to get running, or C# which is supported without additional effort on virtually all Windows computers these days?

I also disagree that non-trivial amounts of JavaScript can be taught in a not disgusting way. There are many quirks even in the basic stuff. The way that for-in loops convert an object or array's keys into strings is one of my pet peeves. Furthermore, JavaScript's prototype-based OOP makes it difficult for students to transfer their knowledge to other languages, as most other mainstream languages use class-based OOP.

Sidenote: I'm not trying to argue that JS isn't useful, fun, able to be used in efficient and maintainable ways, etc. - I've had many hours of enjoyment reasoning about problems that are easily solved with nested functions, prototypes and other things that few other languages have. I just think that JS's learning curve is steeper than some other languages', and that a lot of the knowledge isn't transferable to the other major languages. Thus I discourage recommending JS as a first language for children.

#42PotHix – Sunday, September 2nd 2012, 04:57


Thanks for clarifying your point John!

I think everyone got the point. John Carmack arguments are really obvious and we all know about javascript performance issues but, in counterpart Dominic is just trying to say that simple games could be done in Javascript, which is really true as well.

"Don't hate JavaScript. It's our generation's Apple II."

The point is that we have a lot of new things today, saying like that is just like saying: "We are just playing with old things with a new interface".

All opinions expressed by Dominic and John are right, we just need to choose the right tool for the right job.

Thanks for sharing your opinions!

#43 – Victor – Wednesday, September 5th 2012, 20:19

ActionScript is what I wished JS could be (ES4, E4X). A wonderful language with a predictable runtime, Flash/AIR. Not much boilerplate, good balance between productivity and structure. Makes you a better programmer relatively quickly and you'll get skills and concepts easily transferable to other languages.

#44Vincent Fontaine – Wednesday, September 26th 2012, 10:46

Mr. Buttons : "So I can doodle in a canvas element with three lines of JS. Clearly asm/C coders with real skills are obsolete."

Clearly "asm/C coders with real skills" are making this possible everyday.
You would not be able to write a single line of JS code without them ;-)

You can not fully understand JavaScript if you do not understand what's behind the scene, that's it : the big picture.

Start from Assembly, then learn C, then go back to JS.
Assembly is much simpler than C, I learned it when I was 10.
C is much simpler than JS, I learned it when I was 14.

#45 – vinouz – Wednesday, September 26th 2012, 10:54

I would agree with the previous post.

In a sense I also understand your position, in that the role of evolved languages is to progressively replace all but the most hardcore tasks previously devoted to more 'close-to-metal' languages.

Still, calling these languages out is foolish. All you will do in JS eventually boils down to being executed by them. And as such they're still (although very discreetly) needed everywhere.

We're at a point now where these layers of the programming stack are enough polished that we can forget, but forgetting their presence is a dangerous mistake (c.f . the excellent post by Joel Spolsky on leaky abstractions at

You could sit on the top branch of the tree and pretend that the trunk serves nothing. But you would just look like the fool you are.

#46 – vinouz – Wednesday, September 26th 2012, 11:27

P.S. : to balance my comment, I also have a response to John Carmack (Man, I'M TALKING TO GOD ;o)) :

On the argument that optimized C/C++ code will always run faster than JS code whatever, I think that's not exact. Because by freeing you time to code your routine, evolved languages lets you concentrate on algorithmic optimizations.

And IMO, algorithmic optimizations (meaning : reducing the complexity order of a given task, or reducing its amount of non-parallel computation) always beat language optimizations (meaning : using a language that executes quicker, or rewriting the code to get more steam out of each operation) when the number of element to process grow big. And where optimization matters, these numbers are usually quite high.

An interesting study supports this claim : .

I've personally had my share of optimizing assembly code (like a 32 bit unrolled sqrt proc using only b that I remember taking on avg less than 130cycles on a MK68000).

Now I use python. I'm very happy with it. And while it's dead slow, in a 20th the time I have my first naive algo running. Then I can take 9 other iterations to enhance the algorithms, and still be twice as fast completing the task.

And then, if still needed, I could port it to C/C++. I just don't remember the last time I had to.

#47 – Vincent Fontaine – Wednesday, September 26th 2012, 15:11

Illsueyou : " ... John Carmack has nothing to do with your feelings on Javascript games ... perhaps your arguments are weak and that is the only way to get attention?"

I do not understand such aggressivity and lack of respect.

Show us the great things you've done, your great code. Humm?
Any piece of code out there?

#48 – me – Thursday, July 4th 2013, 10:09

You have some valid points, but the truth at the end of the day is that web isn't ready for this just yet. It's missing a solid JS threaded system and the fact that you have to write your game for 3 browsers and probably 4 now that Blink spun off is like shooting yourself in the head with a wooden bullet constantly. All of the web games I've seen were 'cute' but not up to par to even some of the most basic native games for things that move.

#49toorshia – Friday, July 19th 2013, 14:27

I'll just quote this from the letter:

"And all you need is a text editor and your favorite Browser. That is what JavaScript is all about."

To me, this was, still is, and I guess will stay essential.
I might be wrong to think it is essential to many others, too...

#50Zachstronaut – Wednesday, October 2nd 2013, 19:51

I'm late to the party here, but this article is fantastic. It is level-headed and passionate, and I couldn't agree more. In particular I share the sentiments about View Source, quick hacking, instant feedback from code, etc.

This is why I have a message I'm trying to spread!

Web Developers:

If you are minifying your source code for performance reasons only, PLEASE also upload the unminified, unobfuscated source files and simply list a URL for them in a comment at the top of your minified code. Super simple, and could even be automated.

Remember that when *you* were first learning web development and programming that *you* had the benefit of all that easily readable View Source code on the web.

#51 – dmen – Tuesday, October 22nd 2013, 23:34

I agree with Victor. AS3 is what JS should be. They're both ECMA even - but AS3 with actual classes, strong typing, E4X XML handling make it a much more ideal language for kids to learn than JS. I don't mind JavaScript but it's total shit compared to ActionScript3.

#52Katniss – Thursday, November 21st 2013, 14:31

this website is the best I love Z and X- type

#53Joe Pea – Wednesday, July 8th 2015, 23:34

Compare browsers now to the ones when this letter was written three years ago! xD