Hacker News new | ask | show | jobs
by justcommenting 4245 days ago
This seems to reinforce the mindset that the web should be experienced and built using different tools for users vs. developers, and aside from thinking that's fundamentally condescending, I don't see why new tools couldn't simply be extended from FF's 'web developer' menu into a different mode of operation or even extensions.

I think we're better off in a world where kids don't have to install ScaryFox on their tablets to start teaching themselves how to debug web applications, and deal with all of the various forms of other-ing that tend to alienate people away from starting to learn how to understand and help build the web.

I think it's actually quite important for Mozilla to assume that of course every user deserves built-in access to a high-quality suite of tools for debugging by default.

12 comments

I understand the point, but I think there is a reality where developing and actually experiencing the product can be fundamentally different.

For instance the security model for a browser should be ultra tight and protect the user from the site, but as a developer I'd want to access and modify my files directly through the inspector panel.

Another example would be the use of cache, where I want the minimum possible retention while a user would want the opposite.

As you mention, settings in the developer tools could allow a myriad of options to switch from a "user" mode to a "developer" mode. But honestly I'd understand if it happens to be easier to build two different applications, even just for keeping the "user" side code simple enough to make it easy to maintain and secure.

Then eventually bundle the two apps together if you want to keep the "tools" right next to the "viewers".

I don't quite see it that way.

> For instance the security model for a browser should be ultra tight and protect the user from the site, but as a developer I'd want to access and modify my files directly through the inspector panel.

I don't see any inherent conflict between preventing sites from having access to the local filesystem, while having powerful local filesystem access from the browser's integrated devtools. One does not exclude the other.

> Another example would be the use of cache, where I want the minimum possible retention while a user would want the opposite.

Caching rules should be managed on the server, not the client. Properly configured servers/applications never need anyone to clear their caches explicitly. I don't see why you would need a special cache-less mode in the browser if you've set up your servers correctly.

In my view developer modes (in browser or framework) are counterproductive because they create discrepancies between how your users experience your site or app and how you experience it. Your browser should have the exact same app experience as the one your users use, so it shouldn't have any special developer-mode behavior. That doesn't mean you don't need powerful inspection tools, just that those tools should be built around that standard experience instead of altering it.

WRT caching, the experience of a developer is already completely different from that for a user - assets on a dev instance of you infrastructure (including both code and static files) are changing multiple times a minute.
I don't think that should necessarily be the case. By persisting resources in the cache after they are changed on the server there is an implicit promise of broken user experiences, since there is no control over which files are loaded from cache and which ones are not (so even for "harmless" images users will see mismatched artwork in the real world). Whatever caching strategy is used for production servers, it should involve a way to make sure users are fetching the latest version of a resource. The dev server can be configured identically and it will still do the right thing. Admittedly when you throw CDN's and other intermediates into the mix it becomes harder to have matching environments, but differences should be minimized as much as possible as a matter of development policy.

My dev server is set up identically to a production server, except that no concatenation or minification is done. I'm not happy with that last compromise, so fingers crossed that HTTP/2 gets here soon and we can stop concatenating, minifying and otherwise perverting our code and resources.

This is a lovely dream, but what if you're working on the caching software instead of the web app?
This discussion reminds me of Nescape Communicator of the old days, where a WYSIWG editor was bundled with everything else. Discovering HTML for the first time I actually used it to build small sites, but it got too heavy while being too limited very fast.

What I am saying is basically that I think we need powerful inspection tools, but Frankensteining editing and compiling tools to the normal browser would result in something way too complex, with lots of modes and settings to adjust, and it doesn't seem like a healthy path for something that is supposed to be user friendly, lightweight and high performance for everyone else.

In a way, I am afraid Chrome is precisely going in this direction, including all the features for the normal users (the Flash plugin for instance) with also progressively more and more power tools only relevant to developers.

> In my view developer modes (in browser or framework) are counterproductive because they create discrepancies between how your users experience your site or app and how you experience it.

I think we agree on this point, and having separate tools for building and testing a site would allow to switch between the two mindsets more easily. The testing would be done exactly on the same app, so on the same footing as the users, and not on an application with some hybrid half editing/half testing state. There would be fewer "it works for me, what's your problem people ?" moments I think.

Its not always caches being out of date, what about reproducing bugs that happen on page load? Sometimes you just need to force a fetch.
>For instance the security model for a browser should be ultra tight and protect the user from the site, but as a developer I'd want to access and modify my files directly through the inspector panel.

https://code.google.com/p/chromium/issues/detail?id=328026

>Another example would be the use of cache, where I want the minimum possible retention while a user would want the opposite.

Chrome Inspector -> [x] Disable cache (while DevTools is open)

Or Firefox Dev Tools -> Settings -> [x] Disable Cache (when toolbox is open)

:)

I suspect a lot of the "dev edition" will just be a different set of defaults :)
> https://code.google.com/p/chromium/issues/detail?id=328026

Interesting. I think there is also a plugin for WebStorm to send back modification made in the style panel to the actual files. Sadly sass/less resources makes it difficult to edit CSS and have it applied back to the sass source for instance.

> Chrome Inspector -> [x] Disable cache (while DevTools is open)

Yes, that's what I use for all my projects. Also there is a "Disable Caches" option in the Develop menu of Safari.

A fellow developer in my office uses Incognito mode, and it seems to work fine for him.
That reminds me: It would be nice if you could open several different incognito windows, each with their own session. That way one can debug user interactions without needing as many browsers as users in the interaction (or half of it because each browser has it's own incognito session in addition to the normal session).
A workaround that I've used before is to connect to my site via the domain name in one tab, and the IP address in another - cross domain protection ensures I get two nicely partitioned sessions.
Yep, I also used that. And several entries in /etc/hosts.
These are great points but also speak to one of my concerns about forking--what if Firefox continues to receive lots of security scrutiny but this new-but-still-pretty-intimately-related product aimed at devs mostly doesn't, for whatever reason (e.g. far fewer people using it)?

I see more value for both developers and users currently because it means that in order to keep Firefox safe (for some definition of safe), the Mozilla security team also has to keep people like us--and the functionality we use--just as safe. It also means derivatives like the Tor Browser Bundle and Iceweasel might be more likely to preserve the feature set and benefit from security team's work in relation to it.

A live example: If you are developing a chrome extension on Windows, everytime you open Chrome you'd be bugged with a popup which suggests "Disable Developer Mode Extensions". [1] Although developers are annoyed as hell, the Chrome team insisted this decision on the ground of protecting users.

[1] https://code.google.com/p/chromium/issues/detail?id=337734

Their point is entirely valid though, and it all boils down to: there is no such thing as a secure backdoor.
I'm not sure I see condescension here.

Everyone does deserve access to built-in, high-quality tools. And everyone already gets that, with all major browsers. No one is taking away the built in developer tools in Firefox, Chrome, IE, Safari, or Opera. The problem is that they're always just a little bit older than the tip of the current development branch. And that's fine for folks who are starting to teach themselves how to debug web applications. Hell, that's fine for most people, developers included.

But there's a lot of development happening in this space, and sometimes you need access to tools or features that aren't yet stable enough for wide release. So you download Firefox Nightly or Chrome Canary. And you flip on something in about:config or enable experimental web platform features in chrome://flags. And you're off to the races.

That's not dividing the web, and it's not giving different tools to developers versus users. It's trading stability for slightly faster access to new, shiny things.

The announcement promises 'Soon, we’re going to bring you more, a lot more, in a package that you deserve as a builder for an independent Web.' My argument is basically that users deserve these things, too.

With huge respect for the work that you and Mozilla have been doing in this and other areas, I can understand that there are practical reasons why this may make sense for Mozilla (and even developers) internally.

But at least from the announcement, it still sounds like Mozilla is other-ing celebrated 'builders' like us from everyday users and segmenting our means of accessing the 'new, shiny things' you mention.

Thank you for following up. I'm just getting up to speed on what the devtools team has been working on, and it should meet with your approval when it's released.

The other-ing language is unfortunate, but is hopefully tempered by Mozilla's work to ensure that everyone can be a developer. Things like Webmaker, the Web Literacy Standard, Summer Code Parties, the Mozilla Science Lab, etc. Mozilla and Mozillians are pouring an enormous amount of effort into building digital skills and literacy every day. We want to help people understand that the Web is a medium that they can create.

Without spoiling the announcement, I suspect it will be more agreeable than it might appear from this press release. :)

agreed - i was probably responding mostly to language and jumping the gun in commenting on a product i haven't seen yet. that's pretty unfair.

but that hypothetical kid whose parents wouldn't let him use ScaryFox that i mentioned in a previous comment..that kid was me

What's the problem? The users can just download the same browser if they're really interested in the additional functionality.
Instead of working to ensure that my parents' computer running Windows 3.1 shipped with a C compiler by default a few decades ago, people inside Microsoft and Borland were probably thinking the same thing.

This line of thinking is basically the reason I had to wait a few more years until I could buy my own computer that could run Linux as a teenager.

For lots of people, the world is a very different place now, but just because something's trivial for people like us doesn't necessarily mean everyone else can very easily 'just download something else'.

Defaults can be tremendously powerful, especially when they enable others to build free software.

> > What's the problem? The users can just download the same browser if they're really interested in the additional functionality.

> Instead of working to ensure that my parents' computer running Windows 3.1 shipped with a C compiler by default a few decades ago, people inside Microsoft and Borland were probably thinking the same thing.

Er, no, they weren't. For Microsoft, they were not thinking users could just download top quality dev tools, in fact that would have been directly contrary to their interests -- they had a profit-based motive for assuring that quality dev tools were a separate purchase. Bundling them into the OS would have required them to sacrifice the additional cost that people making money developing software would be willing to pay for a dev tools .

And Borland was also trying to sell dev tools, but was really irrelevant to what Windows was going to be bundled with.

I agree that defaults are powerful, which is why a potential developer who can't figure out how to download a browser and has nobody around to help will either be using IE or Safari anyway. Anyone who can get a copy of Firefox installed can get another browser installed a LOT more easily than he could figure out how to USE any of the dev features.

The number of potential developers who COULD get Firefox downloaded but COULDN'T figure out how to get a second browser downloaded, yet who COULD figure out how to use the dev features if only they were in Firefox is a tiny fraction of the non-developers who would be confused and annoyed by having dev features they don't want cluttering their interfaces by default.

You are comparing "Go to the store and buy a box of 10 floppy disks to bring home and install" to "click a button on a website"
that's my point: it's clearly not mozilla's fault if everyone doesn't have internet access today or devices that aren't shared with/scrutinized/controlled by others, just like it wasn't redhat or mandrake's fault that the install CDs in computer shopper magazine didn't ship with drivers for my parents' computers a few decades back.

but then, as now, getting started ended up being more complicated for some number of people than it probably seemed to our predecessors at microsoft and borland--including reasons that had little to do with software--but that still could've been influenced by how software development tools were distributed.

maybe it was just me, but getting started is probably still more complicated for some people in the world than either of us can imagine. maybe that's no big deal, but my experience makes me pretty sensitive to access to free software development tools.

Building free software will never be a default mode, simply because building software inherently requires effort. Having the tools in one download or another doesn't appreciably change that.
sure--it's far from sufficient, but for some number of people, it's necessary. at least it was for me.
I think calling IE's development tools high-quality is a stretch. They got nice recently, but by far not as good as those of Chrome or even Firefox. Also it does not help that the development tools in the most recent IE are ok, I still have to maintain/debug older IEs. I think we can probably bin IE8 support, but it think only in recent IE11 the tools got good enough to not be a pain.
Not everyone agrees about IE11, but we are trying to make it better. Better emulation is one place we could do better - I'll shill a bit and call out that we do use our Uservoice [1] to prioritize feature development, so please feel free to add your votes/ideas. I can say that some of these are already in the internal builds :)

[1] https://wpdev.uservoice.com/forums/257854-internet-explorer-...

I recently had very good luck debugging an IE8 problem with IE11 in emulation mode (via Sauce Labs on my Mac, incidentally). Not sure if it works for everything, but it was by far the best experience I've had with IE.
Everybody gets developer tools today.

But if there's a special developer-only Firefox, the dev tools in "regular" Firefox will stop getting new features, will fall out of date, stop providing value, and eventually be removed.

Fundamentally condescending? You can't possibly be serious, or else you have some horrifically misaligned emotional responses.

I see no problem in principle with Mozilla releasing a version of their browser with only very basic debugging tools. I don't think they should, but I wouldn't get indignant about it.

In my mind, if you look at the sheer number of people who self-XSS themselves on Facebook and Google, that the average user shouldn't be able to trigger a JavaScript Console seems like a logical conclusion to me.

Is it condescending? Yes. Does it make the barrier to entry in programming higher? Yes, but considering that properly debugging a web application on a tablet seems to require a separate laptop connected at the same time (with admin privileges to install whatever crazy USB drivers), I'd say that barrier is already high enough that the kid can figure out how to download $DEVELOPER_FIREFOX.

No, those who self-XSS are following the path of ignorance, which only leads to more of the same. What's next, not allowing users to type in a URL in the address bar because they could visit a malicious site? (Remember when Chrome decided to hide the full URL?) Mollycoddling users will lead to a significant loss of freedom and the vicious cycle will never end as they increasingly think everyone else will "protect" them from themselves, leaving all the -- possibly important -- decisions to someone else. Trying to make it impossible for users to make mistakes will also make it difficult for them to learn anything.

The "I don't know what this piece of code does, but I'll run it anyway without even so much as Googling" mentality is what needs to change, if we are to have better netizens. You don't need to be an expert to know what JavaScript is and what it can do. Despite the Internet being such an easily-accessible body of knowledge, and the influence it has on our lives, it's quite disappointing that people have generally not become more knowledgeable of it and instead are mostly consumers like they were before with TV and radio.

If you translate your entire comment to the non-browser development arena, it seems totally nuts. Should everyone have a full development toolchain on the 12" laptop they use to check email and read the news? I have four C compilers, three versions of Python, two Fortran compilers (and a partridge in a pear tree) on my laptop for my day-to-day development activities. Should we stuff all that in a browser? That's obviously extreme, but the point is that insisting on shipping a full developer environment to normal users just serves to limit that developer environment; at some point developers are going to want some crazy stuff that's just unreasonable to force everyone to download. By all means, leave basic debugging stuff in every browser but don't limit the tools pros can use to just that.
> If you translate your entire comment to the non-browser development arena, it seems totally nuts.

Translate it to literacy then. Should everybody be a prolific author or an avid reader? No, it's okay if they're not. Should everybody have the option, the basic ability to? Yes, I wouldn't be surprised if it was considered a human right, or implied by human rights. It's not okay for people to be unable to read, just like poverty is not okay. And what's more, you don't need to know about the chemistry of ink or paper to be literate, just like you don't need to be able to solder a CPU from toothpicks to be computer literate. It's all a matter of degree, with no hard lines, but still, I'm not happy to give up that easily on that much.

We already accepted that making a website is too hard for "normal" users, that just everything taking place in the equivalent of malls is fine, with people hardly interacting in private or public spaces, except for a bunch of wizards in ivory towers, and that is a shame and cannot stand. Especially since the poison of planned obsolescence has already permeated anything to do with computing; if "normal" people can't create their own software and robots, it will not lead to better software and robots made by experts, it will lead to marketing departments shoveling regressing bloatware to people, ultimately. Yeah I'm exaggerating, too, this is FUD in a way, I know that... but I can't help it, this is the one thing to do with computers that really gets to me. I can live with not everybody being a programmer, but I cannot live with not every programmer wishing everybody could program. Being able to make a static website is not even a tiny subset of that, but if I can't even give up on general coding literacy, I can't even consider giving up on general web literacy.

So while it's totally silly to worry over the announcement of something when we don't even, and that will be freely available to everyone, I absolutely love that so many brought this issue up! It does give me hope. But so far, Mozilla has brought me nothing but joy, so I'm not anxious. Whatever it is, it will be open source, right? Right :D Anyone from Mozilla reading this, you guys rock.

TL;DR: I had a dream of a world where the words "developer" and "user" were out of use, just like "free citizen" as distinction to the default case of slave or woman is out of use today (well okay, those problems are also not overcome, but at least there is a consensus amongst smart people that they should be).

My perspective is this: Mozilla (to my knowledge) isn't getting rid of the developer tools in the standard Firefox. Those will still be there for people who want to get into development, and while their features will seem comparatively limited, thats actually a good thing. They're getting access to a concise set of tools that isn't overwhelming, and the same set of tools that millions of people use for development every day. Then, if they want to take their development to the next level, they have a whole new set of tools that can help them do that.

This isn't widening the gap between a user and a developer, since they aren't getting rid of the 'middle ground'. It's just giving the developer more breadth with a better tool.

That's correct, the devtools will remain in mainline Firefox ( source: I'm the PM ). We are starting to add in guards against things lke self-xss in mainline though, and dev edition will not have these sorts of things.
Makes sense--I just think it may be slightly easier to get users to become developers with a default of everyone having the same easy access to the best tools.
I see no harm in a browser dedicated for developers, best serving the web development purposes just as much as I don't see any harm with building mobile and desktop applications using IDEs and Simulators and then releasing them to the numerous platforms.

I believe this separation will lead to the possible introduction of many cutting edge implementations on the browser/engines level(s), for experimentation, before a more general deployment to the end users, which would be quite interesting imho.

Not to mention, developing new debugging tools that the end user doesn't necessarily need to have running in the background of his browser package. This would definitely alleviate the resource consumption of existing browsers and allows the developers to have a focus on the end user experience and not worry about developer specific branches.

I wonder if resources related to debugging tools are responsible for using lots of users' system resources; if that's the case, it could probably be addressed in other ways.
I could definitely see functions like setting the render resolution and rotating between landscape and portrait being useful for testing.
The world that developers and users live in is quite different. And a lot of people won't think of it as 'ScaryFox', but rather as 'CoolFox' which has all of these interesting and advanced-use buttons and knobs that let you see the plumbing of the web page you are using.

Developers want a lot of stuff in their face that the average user doesn't want to deal with. I can see the value of having a 'switch to development mode' button, but having something that's from-the-ground-up built for developers sounds like potentially a much nicer tool to use.

Time will tell if it's a good move on Mozilla's part, but I'm excited for the announcement.

These are good points, too, but what I was getting at is...wouldn't Mozilla be fulfilling its mission even more if the way it designed and released tools helped to bring the worlds of users and developers closer?
When I buy a TV I don't want the chip on the outside so that I can easily tweak it.

Why is there this arrogant idea in the development world that everybody has to get into programming. If a kid wants to program (great!) she can easily download the development version. Calling it scary fox is just scaremongering. If anything getting the special development version might make her feel empowered.

No, debugging web apps is inherently different from using them. Kudos to Mozilla for this one!
And if you need a "high-quality suite of tools for debugging", then all you need to do is look for them... Preferably not in Firefox Extensions, because they are malware-prone...
Really? Which ones?
I dont think this is an "alternative" to using usual browsers for development and testing. This is an additional tool. There are vast number of use cases where such developer focused browser can be useful.
No. Because specialization.