Should/shouldn't is hard to say. But the fact that they are bundled with browsers is absolutely amazing, not for the professional developer, but for the amateur. The fact that you can start messing with a website with almost no additional effort and with no additional software is amazing. IMO, it's what makes the web one of the environments with the least friction to start programming in. Visible results, full-featured programming (via JS), and readily available tools.
Once you start getting into complex frameworks and what have you, you start needing additional tooling, more knowledge, etc, but that's fine. The point is to start tinkering, you only need a browser. To start doing a little more than tinkering, you need a browser and a text editor (not like Sublime, like Notepad; on day 0 you don't care that much about syntax highlighting). Both of these come out-of-the-box on any computer.
Resource usage of devtools that aren't running is near zero (there's a tiny bit of overhead to manage the menu items to launch it).
Download size is affected, although for larger parts of the developer tools (things like firefox OS simulators and adb) we use addons. We think that tradeoff is worth the benefits - users can look under the hood (even if most of them won't), developers have quick and easy access to tools, and we don't have to worry about things like version mismatch/testing concerns/etc.
View source, the original developer tool, is why the Web is so generative and has been for two decades, IMO. Today's developer tools are just an extension of that ancient view source capability.
The web is not like other platforms where there's a hard line between people who make it and people who use it. Many people, like myself, thought of themselves as users until the web's view source made it possible for us to become content producers with no significant additional tooling.
Today, the Web is a lot more complex a platform than it was in the early 90s and so our view source and JS consoles have evolved into more capable developer tools as a result.
I imagine it's in the same spirit as including "View Source", so that ordinary users are empowered to figure out how a website works, should they want to.
Cautionary tale: They were bundled separately for Internet Explorer, and everyone assumed they didn't exist. Even now you can see people complaining that say, "developing for IE 6 was hard because it didn't have developer tools".
1) The idea of the web is that the boundary between consumer and creator is very blurred. It is a world-wide, distributed environment. Making the tool you consume also the tool to create empowers a lot of people. Consider yourself a budding publisher on a very bad connection in an emerging country: you download a browser to surf the web, and that one now also enables you to create something for it. Downloading xCode or Android Studio would take ages. For developers, this is also an advantage: you use the same browser your end users have. In the past developer add-ons interfered with the rendering of the page and the performance of the browser. This gave you false results.
2) Whilst devtools make any browser bigger in initial file size (including Chrome and IE), it is not a large part of the main download (fonts are actually a huge one). The performance hit is to the overall computation (much like a standalone tool would) but isn't impeding on the browser performance itself.
I'd rather have features than have them removed. Considering the dynamic nature, jitting, etc, most of the runtime needed for development is already there. Might as well throw a UI on it.
Yes. Bandwidth and additional HDD space are used. But web browsers data footprint is small. Installed FireFox consumes ~68.1MB of disk space. Which is microscopic in the days of TB Hard Drives.
Our devtools have unit tests that run for every tiny change that is made to Firefox. Building the tools in gives much more stability. We are also using and exposing a lot of low level Firefox stuff and fixing bugs as a result.
So in short you get a better, more extensible browser, more stability and the chance to take a look at how something you use every day works.
It's true that most people use browsers as opposed to working with them for development.
The question is, do you want this state of affairs to be built into the design of our systems, or do you think that it would be good if, over time, a greater proportion of people are able to express themselves through code?
I don't think Mozilla cares about the file size anymore. 10 years ago they cared about the file size of Firefox, the mandate was that it could not be greater than ~5mb, the stable download is now almost 6 times that size.
That wasn't a mandate. It was my proposal so I know. I suggested that we target "about the size of an MP3" because that was the most common unit of download that a lot of people understood in the early 2000s and downloading software was something people weren't terribly comfortable with. I did some quick estimates and came up with 4MB as the goal based on the size of popular MP3s. By the time we shipped Firefox 1.0 in late 2004, we managed to get the download to about 4.7MB.
That was 2004 though. Today the Web is a lot more capable because browsers are a lot more capable. Also, typical download bandwidth for consumers is a lot more capable than it was in 2004.
Most of the growth in Firefox download size since then is a result of Gecko/Web platform feature growth, not the GUI features that users interact with.
That web platform capability isn't free. It takes code to make JS dozens of times faster than it was in 2004. It takes code to add HTML5 and CSS 3 features, WebGL, WebRTC, and all of the other great stuff the Web platform includes today. That code makes the download larger.
That being said, I'd love to see another round of evaluation to see what can be trimmed or slimmed. I don't consider that the same priority it was in 2004 though.
1. Most people use browsers compared to working with them for development, and
2. The additional tools just add to the package size and possibly increased resource usage (if they are running with the rest of the browser)?
Thanks in advance for the replies.