Hacker News new | ask | show | jobs
by thegeomaster 4377 days ago
This should be a separate tool. An add-on, or whatever, but it shouldn't be bundled with the browser. If you think about it, it doesn't make much sense.

Do you see audio mixing/mastering or video editing software being bundled with media players? Or do you see word processors/TeX IDEs bundled with PDF viewers? No, because you wanted to play your Black Sabbath .mp3, or read a .pdf scientific paper.

If you wanted to record your Black Sabbath tribute band and produce the recording, you'd get a digital audio workstation. If you wanted to write your own scientific paper, you'd get a TeX bundle. If you wanted to develop web apps, you'd want to download an IDE. Not use a web browser.

A vast, vast majority of people downloading Firefox wants to just look at damn web pages. The ones who want to make them are welcome to get dedicated software. Developers of that separate program for web dev could then go crazy and add a lot of features that wouldn't be possible so easily if it was bundled in a browser. Everyone wins.

So why this? No one is being done a favor by bundling a web IDE with a browser. A bullshit token reason like "it's easier for novices" will not qualify.

10 comments

We've gone full circle: Firefox/Phoenix was born as a way to separate the browser from (guess what) html-authoring, email, calendaring etc, which used to be "the same program" aka Netscape Communicator / Mozilla Suite. The split basically killed off most of the orphaned components.

Now Mozilla are busy rebuilding an html-authoring tool and packing it into the browser. I bet messaging will follow.

> messaging will follow

Messaging is already here. Except it's called the Social Service API.

For example, there are two Facebook Services. You can go (right now) to the Mozilla Social Service Activations Portal, select Facebook Share, and click "Activate now":

https://activations.cdn.mozilla.net/en-US/facebook.html [Requires a Facebook account]

There used to also be a Facebook Messenger Service, but that appears to be gone for some reason:

https://support.mozilla.org/en-US/kb/how-does-facebook-messe...

There's developer documentation here:

https://developer.mozilla.org/en-US/docs/Mozilla/Projects/So...

Psst! They call the suite SeaMonkey today.
"Do you see audio mixing/mastering or video editing software being bundled with media players? Or do you see word processors/TeX IDEs bundled with PDF viewers? "

No, and that's a problem. Do you see programming languages shipped with every computer? No, but that's how it used to be. Most shipped with BASIC while Unix shipped with C. I guess Macs come with Python, but just CLI no IDE - not even idle. Is there some reason not to ship development tools? Do you not want the curious to have ready access to dig in and understand the stuff they use every day?

Macs come with Python (and Idle is included), Ruby, PHP, Perl, BASH, Apache web server, git, Vim, Emacs, Pico, Nano etc and XCode with clang for C/C++/Objective C/Objective C++ is a free download (used to ship on OS DVD but OS is no longer shipped on physical media).

Java used to be bundled too out of the box, but Apple has deprecated their JVM. Of course Oracle has up to date JDK for OS X now.

Really getting compilers and dev tools for Unix OSes is trivially easy. Almost everything is free if not open source.

> Is there some reason not to ship development tools? Do you not want the curious to have ready access to dig in and understand the stuff they use every day?

More and mroe macs are being sold with SSD's, and installing Xcode uses a good 4-5 gigs (+1GB per platform in documentation). That's a good enough reason for me to not install it when I don't need it.

Does this argument apply to development tools in the browser, or do you think this is likely in the near future? As in, does it currently negatively affect performance or significantly impact the size of the browser (honest question)?
The curious won't be perplexed by such a simple barrier. They'd find this Web IDE, had it been an add-on, and happily continue exploring. Is that little convenience enough to justify bloating an executable millions of people use daily with a lot of code that only 5% of them (a very generous estimate) will ever use?

We should be splitting software into smaller components, and let the user choose what they need. There's no need to pander to lazy or unwilling-to-learn users by barfing up all they need into a single binary, thereby adding stuff most of the people won't ever use.

That's a solid point, assuming that it actually does create bloat (which I don't know much about, I admit).

Could another advantage of coupling browsers with development tools be that it makes it logistically easier to maintain 'parity' between the browser and its development tools? Or is that not how these things are done?

Edit: I see my question has been addressed elsewhere (https://news.ycombinator.com/item?id=7933515)

We shouldn't really be asking if some excess software (and an IDE is pretty heavy) is causing bloat or not. If it's not needed by most of the people, it is bloat. If not so much for the user, then also for the development team.

I like when software is doing one single thing, and is great at doing that one single thing. With Firefox needing to address a lot of problems to stay on par with Chrome, the last thing it needs is more cruft to worry about in the browser itself.

They won't though. All you see in web dev tools is the UI as all the actual clever stuff is still hidden away from you on servers.
With an increase of client-side apps combined with server api's this is less the case, though, isn't it?

I can imagine quite a few 'web apps' that won't try to actively obfuscate how their client app operates. In those cases having browser-based development tools makes it much easier to tinker with and inspect the app...

Well, with most single-page apps, bulk of the logic is running on the client, with the backend just exposing a REST API.
I have idle on Mavericks in /usr/bin/idle. There is also emacs and ruby.
>Do you not want the curious to have ready access to dig in and understand the stuff they use every day?

Yeah, pretty much.

Combine offshoring with the baffling obsession some programmers have with teaching EVERYONE their trade and you can expect compensation levels to plummet in the coming years.

Right. Let's keep the rest of the world illiterate, as long as we keep making nice salaries.

The "baffling" obsession might come from the fact that many programmers realize that basic programming knowledge is the coming equivalent of literacy. And that they'd never be in the position they're in now if generations of CS people hadn't freely shared what they learned.

There will still be a need for dedicated computer programmers, but I think that if everyone had basic scripting knowledge or at least was not afraid of gaining that knowledge, the world would be a better place for it. And if more people understood what it took to program, there might be less under or overestimating of the value of a good programmer.
That's the optimist's outlook.

I could just as easily envision an army of cheap, self-taught "programmers" making applications held together with spit and glue and causing a race to the bottom in the industry (see the residential construction industry for an example of this).

Every browser already ships "developer tools" for inspecting and debugging webpages. And you can already use those tools to rewrite the pages. I see this as the next step of that. And audio or word processing tools are less related to the web than this IDE. I agree that I don't see the harm in making this an Add-on instead. Anyhow browsers are the new operating systems, and Firefox has a development IDE bundled.
Chrome has an option where you can save your edited JS back to the file system; it also feels like another step along this path.

I also think that including dev tools and even an IDE like this in a browser are fundamentally different from including a mail or calendar client in a browser.

The democratization of the web gives people who have been consumers the ability to be creators. The tools of creation belong in everyone's hands.
Yes but they don't all need to be exactly a single tool, a single process! Just like I really don't want a web browser in my file manager / operating system / text editor.... wait all of that already happened. sigh.
And? That doesn't mean it cannot be a plugin.
If view source had been a developer plug-in in the 90's, I'll bet there would be a lot fewer web developers today.
If it was an extension we would lose stability because our devtools have unit tests that test against every Firefox change.
I agree. I'd be happy with launching firefox in a more lightweight non-web-dev mode for everyday browsing and then web-dev mode with all the extra tools and UI elements. The cool thing about that would be that the developer tools could be more tightly integrated with the UI because they wouldn't have to be hidden from the majority of people who would never need them.
You can use Profiles¹ for that sort of stuff. about:config² is good for a somewhat complete list of components that can be enabled/disabled.

1: https://support.mozilla.org/en-US/kb/profile-manager-create-...

2: about:config?filter=.enabled

Modularity is a great idea, but modularity isn't always a solution. Sometimes, tight, monolithic integration is better, for both developers and end user.

As an example, some companies have a single source tree with every project. Why the hell would they do that? Make 100 repos on github is better - you know which repo is which repo. Maintenance and usage headache.

> A vast, vast majority of people downloading Firefox wants to just look at damn web pages.

So why bundle dev tools in the first place? Remove dev tools will definitely slim firefox's size and memory footprint. Forget about error logging (null them); if you are developer just install addon so you can pipe the errors. That's better! Lightweight browser for the rest of the non-developer user! Win!

Of course that won't work for Mozilla. They are not interested in maintain two separate set of builds. I am not going to do that for my software either. It's a lot of work.

> If you wanted to develop web apps, you'd want to download an IDE. Not use a web browser.v

Nope. I can do this with Word, python -m SimpleHTTPServer, and a web browser to write code, test code and see code in live action. Why I don't do that and use an IDE or vim? Because of convenience.

Firefox has a feature called scratchpad. See [1], and the point is that you can experiment your javascript code without having to squeeze your code into the console. It also reduces the headache of copy-paste code back and forth between console and some other places (you can't save your console code, so where do you get the code? Some file!)

I wrote one add-on and the workflow is awful. See [2]. I wish I could write add-on in scratchpad without having to repeat those steps and can see error immediately by a click on scratchpad. Maybe scratchpad has this feature I am not aware of...

The point is, I hate to switch back and forth between the browser, my vim terminal and the web console.

[1]: https://blog.mozilla.org/devtools/2011/08/15/introducing-scr...

[2]: https://developer.mozilla.org/en-US/Add-ons/SDK/Tutorials/Ge...

> A bullshit token reason like "it's easier for novices" will not qualify.

No this is not bullshit, because developers are users and some users turn into developers BECAUSE they poke around tools available to them.

>No this is not bullshit, because developers are users and some users turn into developers BECAUSE they poke around tools available to them.

And by moving the web IDE to a separate add-on, we make it unavailable to them?

It's just more easily available. That's a huge difference. You have a web browser, you ask yourself, "how do I create webpages?" Then you maybe Google how to do it, and the answer says "it's in Firefox, just press F12", or "get this Firefox add-on, and then press F12". The difference is negligible.

If someone was to stumble across some HTML via "View Source", the result would be essentially the same as above. If someone opened the web IDE out of curiosity, she would still need to know how to use it. Tinkering only gets you so far, it's a combination of tinkering and researching that makes you learn new stuff. And if you do even a modicum of research on that, you'd learn that there's an IDE in Firefox, or that there's an add-on for Firefox.

Talents show up, one way or another. How likely is it that this particular decomposition of a monolithic application into a core application and an add-on would make some talented kid never discover their passion? I'd say it's highly unlikely. But how likely it is that a huge amount of users would need to download bigger archives of the browser, or bigger updates, or suffer from some form of bloat if the IDE was included? I'd say more likely.

New developers have been emerging since the dawn of computing, without any thought given to whether or not including something would allow some kid to poke around and discover that he likes to do it. Why would it stop now?

As a developer, I like native integration. Why should an operating system bundle media player if they can just download a media player on their own using a browser? How many people start to play a video as soon as they get a new computer? A 5 minute research is enough to find out a variety of good media player.

In fact, OS bundle media player sucks because they can only play some formats. I shall say it sucks that we have so many different codec available and yet OS can only bundle a small subset of the free codec (forget about the one that are proprietary).

And you know what? This integration is done. It's in nightly. It probably won't be removed for a long time because it's a feature that has a use case. You don't have to like it, but it's in there.

I don't know about you, but sometimes the things I dislike turn out all right and I like them later because I start to use them.

Also, I own multiple copies and multiple profile of Firefox for development purpose (and testing purpose). I am not sure whether there is a global way to make add-on available across profile, but at least I don't know how and I don't want to re-install the same add-on five times a day. Minor use case but it's a use case.

Also, when I teach programming to students, I and the class can benefit from a single installation. Just need Firefox! I don't need to worry about different IDE and I can focus on showing them the result in the same browser they use to see live code and debug code. I don't use fancy IDE and I hate full blown IDE for web app.

This integration makes me happy, makes some of us happy and that's how a software is. You don't have to like this decision, but it's in there, so try it when you have a chance and you may like it.

Nope. I can do this with Word, python -m SimpleHTTPServer, and a web browser to write code, test code and see code in live action.

Wait, what is Word being used for, in this process?

Writing an essay to the security folks justifying using Python in a corporate environment?
Writing code. at least in open office you can create a new HTML document, don't have Word with me right now but in the old days I believe it was possible.
Well, you sure can save a Word document as HTML, but it spits out some of the grossest, most xml-metadata-crammed, non-human-readable HTML and CSS you have ever seen. God help you if you actually want to use Word as a WYSIWYG HTML editor. And have fun trying to add JS to it...
I strongly disagree. Just because economics have temporarily separated the means of creation from the means of consumption in some domains, there is no reason that they should not be recombined now that it can be done freely.

Why shouldn't all systems be programmable?

Sorry, but this looks like you're attacking a straw man. I never said that "not all systems should be programmable". My actual belief is, as a matter of fact, completely opposed to that.

What I'm saying is that you do and will for a long time need a degree of technical expertise to develop webpages. The gap is shrinking, but will exist for at least quite some time. I'm not being an elitist, just real. The technical expertise needed to browse even the most complex websites versus the one needed to put together even the simplest ones is far smaller. Why would putting this Web IDE into an add-on ever accent the border between creation and consumption?

It's good to have software with a single responsibility. All other things equal, Mozilla's Firefox division can maintain a web browser without an IDE better than they can a browser with an IDE. If Mozilla was to develop an IDE, it would be easier to split it into a separate piece of software (say an add-on) and dedicate another, different development team to work on it. That would be another program with a single responsibility.

This is vaguely reminiscent of the Unix way, and I'm very respectable of it, for the main reason that it's aligned with my personal philosophy (KISS), but also because it was able to create and sustain such a big community founded on openness and contributions and not driven by profit margins and managers in suits.

"What I'm saying is that you do and will for a long time need a degree of technical expertise to develop webpages."

This is simply wrong. I was writing web pages with very little technical ability starting way back in 1996 because view source was built in and not an add-on and that made it easy to learn without any technical expertise. Today the web platform is richer and so it makes good sense for the view source of today to also be richer.

> I was writing web pages with very little technical ability Yes, a little. Similarly, I sad a degree of technical expertise. Not a lot, just a little, but enough to differentiate the creator from the consumer.

Today, even if browsers don't have "View Source", you can search Google for "how to make web sites", and a zillion results would pop up. It's not a roadblock.

Not everyone learns by reading a book or article. Lots of people learn by tinkering.
It's hard, if not impossible, to learn stuff exclusively by tinkering. I developed my interest in HTML because I clicked an "Edit in FrontPage" button in IE6 (or was it IE5/4?), but I don't think I could learn HTML in thorough detail just by poking around FrontPage. The Internet then came to my rescue.

My point is, even if IE didn't include that toolbar button, I would've started up FrontPage on my computer sooner or later. It was just a matter of timing and a string of coincidences. Some other string of coincidences could've led me there, too. I say that the argument "some people would tinker and by moving the IDE into an add-on wouldn't let them tinker enough" is pretty weak. If you're curious about something, you tend not to get stopped by things such as that: that curiosity drives you to poke around incrementally until you either find what you're looking for or fuck up the computer (well, at the time, this was something I was prone to doing often because I loved messing with Windows' system files :)

Your argument seems to be that this makes it harder to engineer the browser, and yet you don't explain that at all.

You simply assert that it would be easier for Mozilla if they split it into a separate piece of software.

I see no specific reason to accept this as true, and you have not provided any.

I vaguely agree with you but I think comparisons with media players and text editors sell short how central web browsers are to computer use these days.
Moreover, adding more functionality to an application increases the surface area for attack. Adding it by default increases the risk for everyone.
i've had this thought for quite some time about a lot of the standards/features being implemented into the core. many of these cool things can/should be done as addons. it may make sense to bake them in for Firefox OS, but not for the standalone browser.