James Long: We Need to
Prioritize the Web as a Low-Level Platform

ReactiveConf
ReactiveConf
Published in
4 min readSep 21, 2015

--

Reactive Conference is bringing you an interview with one of our speakers James Long.

What’s your personal elevator pitch?

I’m going to assume I’m talking to someone who wants to become a
better programmer. I think one of the most important things you can do is play with libraries, frameworks, and even languages that are unfamiliar to you. You don’t have to spend months on it, but if you’ve been wondering why ClojureScript keeps popping up on Hacker News, take a few days and try it out. Put aside any biases and immediate reactions. Be rigorous about really understanding the fundamental idea it’s trying to express.

Some of the most transformative things I’ve learned have come from
things completely outside my usual environment. It’s surprising how
much these things can improve your day-to-day work, if you just take
time every now and then to step outside your comfort zone and listen
to other people.

How did you end up being a web developer?

I was really into low-level C++ graphics programming with OpenGL for
years, up until 2006 when I graduated college. I wasn’t attracted to
that industry at all though, and I knew a few people who owned a local
web development shop when I needed a job. I didn’t really care what I
worked on, I just needed a job and enjoyed that group of people. I got
lucky because the programmers there were really smart, and for about 4
years learned not only about web development but all kinds of things
like the Scheme programming language (we never used it in production,
but played with it).

What is the most important project you’re currently working on?

That’s easy: improving Firefox’s JavaScript debugger! The frontend
code has gotten pretty bad, so it’s hard to implement new features.
I’m spending all my effort right now to clean up the front-end and
possibly use React. We’re also working on some changes to the UI to
improve overall experience, and I’m excited to see where we take it.

Is there any issue in web development world that should be fixed asap?

I have a few issues with how the web works, for example the fact that
the UI thread and the main thread are the same makes it incredibly
hard to do smooth complex applications. It’s really hard to maintain
60 FPS when *any* operation will block everything. Workers help a
little bit, but you don’t have access to many APIs. It would be nice
to run the UI thread completely separately and allow the main thread
to access any API except the DOM (the DOM is also basically a big
piece of shared mutable state, which is bad).

If I could only say one thing though, it would be that we need to
prioritize the web as a low-level platform. I’m worried that too many
people want to bake in high-level abstractions, arguing that it’s
easier than deciding which library to use and apps don’t have to
distribute large libraries. With something as general as the web
though, I think it’s a pipe dream that standard APIs will be good
enough to build apps directly on (just look at the trouble Web
Components has had). I don’t want “good enough” anyway, I want a
delightful development experience. The result is a bloated web that
still doesn’t even work for many people.

There are a lot of good things coming out of the Web Extensibility
effort though, particularly opening up low-level layout and CSS
features.

What will you speak about at Reactive 2015?

Many ideas are currently bubbling up in the UI community like purely
functional UIs, single atom app states, and immutability. I will take
these and apply them to a real-world, complex app, the Firefox
debugger, using the Redux library. It will be a case study of what
these ideas look like in a large app, and how to slowly migrate from
code that heavily depends on mutation and an imperative style to a
purely functional style.

What do you expect from the conference?

The speaker lineup is amazing, and I’m going to meet several smart
people that I’ve only interacted with online. I expect to have several
great conversations about a lot of stuff. I’m looking forward to
getting advice about writing a large complex app with React and Redux
because there are still problems we need to solve.

Get your Reactive Conference tickets now on our website and follow us on Twitter.

--

--

Functional programming conference based in Central Europe with top-notch speakers and 1300+ attendees.