

Breach – A new modular browser - albertzeyer
http://breach.cc/

======
chriswarbo
It's a nice idea, but I think it's unfortunate that so many of these "new
browsers" are just UIs on top of Gecko or KHTML/WebKit/Chromium.

The reason I use other browsers (w3m, dillo, netsurf) alongside FF is because
they're faster and take fewer resources. _That 's_ the point of a minimalist
application. I wouldn't call an application minimalist if it has a behemoth
running underneath, with a large attack surface, many hiding places for bugs,
sucking up GBs of RAM.

~~~
why-el
Which one of those (w3m, dillo, netsurf) is your favorite? And how do you deal
with privacy in the absence of addons such as Ghostry, adblock, and so on?

~~~
chriswarbo
w3m is my favourite alternative, since it's nicely integrated into Emacs.
Dillo is good for a throw-away browser window, eg. to check something quickly
on Wikipedia. Netsurf is useful as a prettier Dillo (eg. for sites which are
confusing without some CSS).

For ad blocking, etc. I use
[http://someonewhocares.org/hosts/](http://someonewhocares.org/hosts/)

In FF I use AdBlock and NoScript. I don't have Flash installed.

------
alandarev
In a single day we are introduced to Breach and Vivaldi[1]. They are
fundamentally different, Breach aims for minimalism, Vivaldi for all-in. So,
let's not compare their functionality and design.

Though, both claim to be client oriented, and specifically focus around
developers. In this category my gratitude to the Breach as it is actually
open-source and leaves less mysteries behind the motives.

[1] -
[https://news.ycombinator.com/item?id=8952100](https://news.ycombinator.com/item?id=8952100)

~~~
albertzeyer
Where do you get that they are fundamentally different?

From what I understand, Breach is modular, so the core probably is as minimal
as in Vivaldi. (Edit: Whoops, I understood you exactly in the wrong way.)

From the overall technical design principles, they look quite similar.

~~~
underyx
I think Vivaldi is the all-in browser, not Breach.

------
ginko
Call me a grumpy old systems programming guy, but "Entirely written in
Javascript" just doesn't seem like a feature to me.

~~~
adamwong246
You are a grumpy old systems programming guy. I kid, I kid!

Call me a naive dreamer but I dream of a world where (almost) everything is
done with web technologies. Why? Because I'm looking for an environment where
applications, if not the underlying system, are written in a single,
interpreted language.

There will always be a need for technologies that are very low-level (fast and
efficient) or very high-level (experimental and AI) but I truly hope that the
middle can start to converge on few reasonably good ideas. What languages can
be feasibly replaced by js? I'm pretty sure the answer is, "Nearly everything
except for C and assembly."

I like the web and I want my OS to be more like a browser.

~~~
WorldWideWayne
Man, I don't think we could be more opposite because I dream of a world where
the web completely disappears and all we have is the Internet and whatever OS
I choose to use.

The web, to me, is a hodge-podge of kludgy technologies that have too many
gotchas. I like a pure environment where things are not so abstract that we
cannot understand them. Instead of typing div, div, div, I want to type
MenuBar, ToolBar, FluidGrid. Instead of fighting with Javascript to handle big
numbers, dates or something as simple as equality properly, I like to use
programming languages that haven't been ham-stringed because they've been
designed by a committee.

In short, I like the power, purity and robustness of my native OS and I want
browsers to disappear entirely.

~~~
adamwong246
Truly, web-technology is a rat's nest. But is non-web-technology really any
better? And yeah, js stinks, but js can be made much more palatable. I'm
pinning my hopes that purescript can make js not-terrible. purescript.org

------
bachback
Work on new foundational layer is ongoing:
[https://github.com/breach/thrust](https://github.com/breach/thrust)

~~~
syldor
What is thrust ? I don't get it.

------
aeosynth
Project seems to have stalled, last commit was on Oct 15, 2014; the mailing
list is inactive.

edit: apparently work has shifted to Thrust[0]

[0]: [https://github.com/breach/thrust](https://github.com/breach/thrust)

------
lloeki
Looks like this could become a great companion for minimalist and customisable
window managers such as OpenBox/awesome/xmonad. I always hated how
Firefox/Chromium stood out like a sore thumb in an otherwise toolkit-less (i.e
no gtk/qt) environment.

------
sergiotapia
Freezes and crashes on sites as complex as Giantbomb. I'm still not convinced
Javascript is a good platform for desktop apps.

If Github can't make Atom fast with their pools of money...

------
Rusky
This and Vivaldi make me think of emacs/lisp machines with how the UI is
customizable with the same scripting language applications are written in.
Firefox also has this, to a lesser extent, and I'm not sure about Chrome.

I just wish that sort of feature set were available for the actual platform
rather than the giant rube-goldberg machine required to get JS to be
performant.

------
knappador
In javascript in javascript in javascript... The time when concern seemed
actionable has passed; It's clear that the infinite recursion is well
underway, and because the arguments are just returns passed in-register, that
the call stack will never overflow. I can't tell if there's any logic or
reachable return pathways. Is the only way back to reverse time and to have
never entered the fractal in the first place? Save yourselves. We can never
see the fate of matter that has passed into the event horizon already. The big
picture can't be found in the smaller imitations. We can't say that it's over,
but we must hold it within our culture that using javascript within javascript
is a warning sign, such as curiosity about death or whether the world is a
projection of our minds. We must remember that ineffability is effable rather
than attempting to reach that effability in all except analytic proofs; even
computation of lowly derivatives or irrational numbers cannot be perfectly
calculated via machine. Friends don't let friends implement javascript or
vehicles for javascript within javascript. It hasn't been proven that there is
a conclusion to such exercises. Meanwhile, many have perished chasing truths
we can only imagine may be ever even slightly distinguishable from within this
universe.

~~~
albertzeyer
There is no recursion. Just some parts which have been implemented in C++/ObjC
before (like most of the UI) is now implemented in JS.

Besides, the main engine, i.e. the rendering engine, the JS engine and other
core low-level parts (all of Blink and V8) are all still implemented in C++.

~~~
knappador
I'm fooling around. I'm sure everyone on the project rightfully will get a ton
of return on their investment. I'm actually working on a browser UI myself.
It's only because of platform OS integration that I'm using Java, but one
thing I did learn using a lot of Kivy is how much of a pain it is to be far
from the platform libraries.

Unlike Kivy, which is Python, you've chosen JS, so at least your UI is on a
more naturally portable layer given that you have a browser runtime right
there. Documenting your plumbing into the system libraries will be really
critical. The JS community will hack every other piece of the system on their
own, but user after user will shy away from the system plumbing because it's
not what attracted them initially, so I would prioritize there.

Writing cross-platform UI's may be a pipe dream for now. OpenGL is headed
towards a weird place with Mantle and Metal etc while OpenGL Next comes
together. The HSA Alliance (Notably missing Nvidia and Intel) might offer some
hope that CPU architectures and graphics API's (and GPGPU) will converge
again, but right now, HTML5 with JS is probably the best we have for sheer
everywhere.

Probably where I would diverge most sharply (and somewhat irreconcilably) with
the web community and perhaps even the high-minded ideals of Mozilla is
HTML/CSS, but the "superior" tools I find in Android are themselves relatively
new. Do I wish that HTML/CSS/JS would go away? Yes, but without need of
burial. A technology will displace it someday through sheer elegance that
unicorns had not yet fathomed. If it's at all recognizable in what I'm using
today, it's an early stage experiment.

------
amelius
> A new modular browser - Entirely written in Javascript

I wonder how they implemented incremental layout efficiently in Javascript.

~~~
masklinn
They didn't. It's a JS UI over Blink/Chromium.

------
CmonDev
Breach of trust or breach of security? Also why not going cross-platform?

~~~
alandarev
I suspect the troubles of compiling npm dependencies on Windows - the same
reason Atom was not readily available on Windows for a while.

~~~
WorldWideWayne
It's actually no harder on Windows than it is on any other platform.

On a Unix platform, you must install python, make and GCC. The readme for
node-gyp states that the easiest way to get these for OS X is to install
XCode. Windows users must install at the very least a free version of Visual
Studio and Python 2.7. There's also node-pre-gyp to precompile binaries, which
I would vastly prefer as a user and a developer.

I suspect that ideology actually plays a larger part in these decisions than
logistics. (EDIT: I could be wrong, but anyway they explain here that they
need to move off of GTK+ before having a Windows build for some reason -
[https://github.com/breach/breach_core/issues/90](https://github.com/breach/breach_core/issues/90))

~~~
tonetheman
Man do you have instructions on that Windows setup for node? I looked around
for them the other day when something I was trying to installed failed
miserably and found nothing.

I might just be missing something obvious...

~~~
WorldWideWayne
To setup node on Windows you just download the installer and you're done.
Nothing else is needed unless you want to compile native native binaries.

To be able to compile native binaries, you need to just install Python 2.7 and
Visual Studio. Depending on the version of Visual Studio that you have
installed, you might have to pass an extra flag to npm when installing native
packages that must be compiled. So, if you installed some version of Visual
Studio 2012 or 2013 instead of the 2010 version, you might have to pass the
"msvs_version" flag to npm like this: npm install socket.io
--msvs_version=2012

------
talles
Just out of curiosity, are the Meteor guys behind this?

[https://discovermod.meteor.com/](https://discovermod.meteor.com/)

~~~
flippyhead
That only means that someone is hosting something on the free meteor hosting
system.

~~~
talles
Oh, I didn't know meteor offered hosting...

~~~
quarterto
It's actually built into the meteor command line tool. meteor deploy pushes
your code to project-name.meteor.com.

------
Singletoned
It's weird, but only the other day I was saying to my wife: "I wish more
applications were written entirely in Javascript".

------
michaelmior
Having the active tab move to the left is incredibly annoying behaviour for
me. I suppose in theory that should be easy for me to fix though :) That said,
the concept of a modular browser is pretty cool and I'm curious to see what
people do with it.

------
ommunist
Gosh, its fast!

