Hacker News new | past | comments | ask | show | jobs | submit login
NetSurf: Small, fast, free web browser (netsurf-browser.org)
156 points by zurn on Oct 20, 2015 | hide | past | favorite | 70 comments



It looks like today is Alternative Browser Day on HN.

So for those who don't know it, there's also Xombrero: https://opensource.conformal.com/wiki/xombrero

It's based on Webkit so it's more compatible with the "modern web" than dillo/netsurf.


I think the only way new browsers are going to succeed in the future is if they adopt some major new technology that the mainstream browsers either will never use, or will wait many years until they consider it. Perhaps something like IPFS or some blockchain technology, or anything like that, that is proven to work well but the mainstream browsers still think it's too new and risky, or perhaps just don't want to piss of the MPAA, which by the way, is now a member of the W3C.

The new browsers will need to allow for significant new possibilities, for users to want to adopt them.


Also, Luakit: http://luakit.org/

It has lots of extensions, like Adblock and Noscript, written in highly-readable Lua, also making it very hacker friendly and very fast.


Last time I recommended Luakit, I was told it was no longer developed and superceded by dwb (linked below by someone else)


The code itself works very well. Mason, founder of Luakit and most generous contributor, got hit by a bus so new maintainership roles have yet to get filled by existing and new users and developers. All current development takes place outside of "central" repo, and it needs organizing and compiling. Once this takes place, development and merge requests can continue full course.


dwb is dead too, fortunately there is a replacement for that too: https://github.com/The-Compiler/qutebrowser .

It's already pretty much a drop-in replacement. The dev is very responsive and friendly as well.


Sure it's not that active but I wouldn't call it dead. last commit: 2015-07-26

https://bitbucket.org/portix/dwb/commits/


I thought I remember seeing a thread on Reddit that it'd been abandoned around that time and wasn't just inactive, but I could be mistaken.


It's right there on your qutebrowser link, dwb is first on the "Similar Projects" list (Scroll down) their "Unmaintained" comment leads to the reddit thread you mention, mind you that thread is 1 year old and the user/post is deleted: https://www.reddit.com/r/linux/comments/2huqbc/dwb_abandoned...


Ah, I see. Either way, I was eager to switch at the time as webkitgtk had a bad bug in it that would cause dwb to insta-crash on loading a page about once an hour and which wasn't getting fixed. Qutebrowser is based on Qtwebkit and didn't have the same issue, so I jumped ship pretty early in its development.


"dwb" is also webkit based but more minimal (Support for Adblocking, among other things)

http://portix.bitbucket.org/dwb/


and as an alternative: qutebrowser!

same concept as dwb but with Qt and not gtk for those who cares.

https://github.com/The-Compiler/qutebrowser


Thank you for the suggestion! I have so far loved the minimalistic feeling and intuitive keybindings for a vi-user.


Another WebKit-based option (for OS X) is OmniWeb (it’s still alive!):

http://omnistaging.omnigroup.com/omniweb/


Really??? Oh my, I thought that was dead... remember using it long long long ago


Personal recommendations are appreciated; Wikipedia's pages are rather overwhelming.

https://en.wikipedia.org/wiki/List_of_web_browsers

https://en.wikipedia.org/wiki/Comparison_of_web_browsers

I'll add OffByOne for Windows, a demo of an ancient (2006) ActiveX control: http://offbyone.com/offbyone/


I am a growing fan of QupZilla. The only thing I miss is functionality similar to Self-destructing cookies.

http://www.qupzilla.com/


Frankly i have taken to consider all webkit browsers the same, meaning that the web is heading towards another monoculture akin to what we had when IE was what everyone developed for.


I don't really think we're in that much danger.

For one, WebKit is now forked, into WebKit and Blink. Both of them are rapidly diverging. And there are still enough people using Gecko and Trident (and now EdgeHTML) that you can't just target the intersection of WebKit and Blink and still have any reasonable kind of coverage.

For another, I think you fail to understand just how dominant and stagnant the browser market had become when IE was dominant. Not only one browser, but one version of one browser, had over 90% market share, and in controlled environments like corporate networks, effectively 100%. In that kind of environment, it was completely reasonable to just target that one browser.

Today, even if you add up all of the WebKit and Blink browsers based on the most generous market share counts, you won't break 70% market share, and there are even still some statistics that have IE/Trident at over 50% market share. So unless you're targeting a very specific market, like iPhone users (where yes, WebKit's share is 100% due to Apple's monopoly), it's very hard to find any demographic in which there is such a strong dominance as IE had back in the day.

Additionally, browsers and engines are actually being released at regular intervals these days, with new features and bugfixes. Firefox/Gecko and Chrome/Blink are on rolling 6 week release cycles, meaning that there's very little lag to getting new features and fixes out. Safari/WebKit is released less often, but once every year or two. There were 5 years between the release of IE 6 and IE 7, and IE 7 didn't even pass Acid2, it would be another couple of years until IE 8 did. That extremely long period of time in which one version of one engine was so dominant led to an awful lot of sites designing themselves exactly around the bugs and quirks of that one engine.

Couple that with the fact that standards committees are actually working on features that people want, and are making real progress. XHTML stagnated the standards process for a long time, working on a backwards-incompatible specification that did a lot of architecture astronautics on representing documents, when what people needed were backwards-compatible enhancements that supported web applications so they could roll things out incrementally as support became good enough. CSS got a bit mired in CSS 2, but CSS 2.1 allowed them to slim down the specification and get out something working, while CSS 3 allowed them to work on individual features separately, and thus be able to make progress without having to wait for everything in the world to be ready. Another big reason for IE's dominance was that it had proprietary features, like filters and ActiveX and webfont support, and there were no standards that covered similar ground. Now we have HTML5, a plethora of new APIs for interacting with the browser, a substantial number of CSS enhancements, highly competitive JavaScript engines that are capable of running full 3D engines, and so on.

And finally, WebKit, Blink, and Gecko are all open source. People can be involved in helping find and fix bugs, implement new features, port them to new platforms and devices. A big problem with IE was that it was proprietary, and ran on one platform. You could build a desktop browser that ran on Windows with your own chrome around it, but that was about it. Now, you want to make some cool new device that needs web rendering support? You want to experiment with interesting new ways to present web content? You now have several high-quality, open source options to choose from, which have enough market share that most sites have done the compatibility work to make sure they are compatible.

Sorry for the wall of text; I just wanted to make sure that you understand the history, and how very different the present situation is than the one in which the IE 6 monoculture flourished. It can be a bit worrying how two engines with a common ancestor have such dominance on mobile, WebKit and Blink. It's also worrying that Apple's monopoly prevents people from installing browsers with more up-to-date engines on their phones; I think it's an abuse of their control of the platform. But even so, they don't have the kind of market dominance even on smartphones that Microsoft did on desktops back in the early 2000s, so while it's worrying, it's nowhere near as bad.


So, we'll be developing for 5 different target browser engines, 3 different operating systems, and about every viewport size imaginable for the foreseeable future.

Yay.


This was a terrific history; I learned a lot. Thanks for writing it.

Consider turning into a small blog post?


>And there are still enough people using Gecko and Trident . . . that you can't just target the intersection of WebKit and Blink and still have any reasonable kind of coverage.

You mean "union" not "intersection".


I think he meant intersection as in using only features supported by both of them.


I meant intersection of the features, but yeah, if you're talking about browsers that would be the union of the browsers.


If you target the intersection, leaving out features in the difference, your code will work fine.


On the whole, that's an absolutely fantastic comment. But a few notes:

> So unless you're targeting a very specific market, like iPhone users (where yes, WebKit's share is 100% due to Apple's monopoly), it's very hard to find any demographic in which there is such a strong dominance as IE had back in the day.

As you hint towards later in your own post, WebKit/Blink are in many markets there on mobile/tablet: in Europe, WebkIt/Blink are over 90%. For many of my customers, they could make a quite sensible business decision to not support other browsers with the same level of testing. This still causes problems—we have Edge implementing large numbers of WebKit prefixed properties, Opera abandoning Presto in large part due to the WebKit domination of mobile (where, at the time, bug compatibility was necessary on several major sites), leaving Firefox as the last hold-out from supporting WebKit prefixes (and if they wish to make inroads on mobile, they'll have to).

> CSS got a bit mired in CSS 2, but CSS 2.1 allowed them to slim down the specification and get out something working, while CSS 3 allowed them to work on individual features separately, and thus be able to make progress without having to wait for everything in the world to be ready.

I'm relative certain CSS 2.1 is actually longer: it defines much of what's in CSS 2 in far more detail, with much less left undefined and fewer contradictions. What little that was dropped was dropped because it didn't meet the modern (post-2003 or so) requirements for specs to advance to REC at the W3C, namely the requirement for two interoperable implementations of each feature (technically, requirements to advance beyond Candidate Recommendation to Proposed Recommendation, whereupon the Members of the W3C vote (one vote per member) and the Director has a final say, thereafter being published as a Recommendation).

CSS 2.1 laid a lot of groundwork that's been vital for more recent modules: without a clear definition of many of the underlying layout primitives in CSS 2.1, it would be hard to define the new features in reasonable detail. That's not to say CSS 2.1 is perfect—there's work happening on CSS 2.2, primarily just integrating the current errata, and the test suite could certainly be better (Mozilla Research are paying me to work on that in the coming months, as Servo doesn't have the user base that would show many of the site compatibility bugs that arise as a result of their bugs, leaving them disproportionately reliant upon the test suite).

> Now, you want to make some cool new device that needs web rendering support? You want to experiment with interesting new ways to present web content? You now have several high-quality, open source options to choose from, which have enough market share that most sites have done the compatibility work to make sure they are compatible.

A lot of that depends on how "standard" your device is—if you're running Android, it's "relatively" straight forward. (I think Opera's recent rewrite of their browser, basing it on top of the Chromium Content API, shows that even implementing the UI is hardly a small effort.) If you're running everything statically linked, using DirectFB to write to screen (this is how many embedded browsers work), it is substantially more work, especially if you are concerned with minimising binary size. I think it's easy to underestimate how much work is involved in porting the open-source browsers to new platforms, yet alone keeping them up to date and providing security fixes (which given the short support period of each release, depends upon the former).


Yep, agree with all of your clarifications.

I was mostly responding on the basis of desktop browsers, since most of the rest of this thread has been about desktop browsers. You're right, on mobile the WebKit/Blink duopoly, with the shared code base that does mean that they are closer on feature and bug parity, is pretty problematic, but even there I'd say we're in better shape than the early 2000s IE monopoly.

> Mozilla Research are paying me to work on that in the coming months, as Servo doesn't have the user base that would show many of the site compatibility bugs that arise as a result of their bugs, leaving them disproportionately reliant upon the test suite

Nice, that sounds like it'll be quite useful. I am eagerly anticipating being able to actually use a browser based on Servo day-to-day. There's quite some ways to go, but it's great how much progress its made so far.


Already I run into issues occasionally with mobile sites not working in Firefox for Mobile. Usually I just switch to the full version of sites and they work better, but I don't think Firefox is being tested.


surf (best with tabbed) is another webkit option: http://surf.suckless.org/


I really like surf and its model, but it needs ad blocking. I was working on that a few months back, but got distracted by other projects. Incidentally, the AdBlock list format is…insane.




I use Midori - another webkit based browser. http://midori-browser.org/


Arachne is another, it's interesting because it can run on DOS or on Linux without a framebuffer: https://news.ycombinator.com/item?id=10419516


There's also Vivaldi, for people who liked Opera before it went to Blink...

https://vivaldi.com/


Fair warning: The UI part is closed source.


This, to me, feels like the vital flaw. If I were someone who wanted a browser with all the features of Presto-Opera, I'd be worried about development of it being abandoned again.


Surprised nobody's mentioned xxxterm or uzbl.


xombrero is my main browser. I like the minimalist, keyboard driven interface.


It's a bit hidden on the page in the documentation so I'll write it here to save people time:

NetSurf doesn't support Javascript properly.

For some that might be OK but for most it'll be a showstopper.


It doesn't even support CSS2 properly (e.g. paragraph justification, em, etc). And despite claims of being blazing fast, as an user my experience is that it is very slow for more complicated pages, whereas for websites that are almost just plain text and images it beats any WebKit/Gecko browser out there.

It's great for Googling when debugging your code or reading HN when compiling, other than that I'd stick with <your favorite browser>.


> And despite claims of being blazing fast, as an user my experience is that it is very slow for more complicated pages, whereas for websites that are almost just plain text and images it beats any WebKit/Gecko browser out there.

I downloaded it and tried it. Every page loads very slowly, even incredibly simple sites. Maybe it has a slow HTTP implementation?


Is it "NetSurf doesn't support javascript and likely won't" or "Netsurf doesn't support javascript yet"?


They're in the process of rewriting the DOM handler to support dynamic changes from JavaScript. JavaScript itself runs well.


Yet. The Git version seems to already have preliminary JavaScript integration, based on Duktape. There was also an earlier attempt in 2012-13, utilizing SpiderMonkey.


Ok, so that explains why many sites did not work. Almost nice, though, not to experience all that annoying/excessive javascript that is so prevalent these days. I just love that NetSurf homepage - nothing that moves, pops up, scrolls oddly etc.


Also it doesn't support HTML5.


windows builds

http://ci.netsurf-browser.org/builds/windows/

not mentioned anywhere from download page

update: cannot open HN... no Ctrl-L


Not sure what you mean by "no Ctrl-L" (no shortcut to jump to address bar?); most connection issues with off-brand browsers are SSL-related:

http://download.netsurf-browser.org/netsurf/releases/ChangeL...

Removed support for all SSL versions due to vulnerabilities.


NetSurf seems to support SSL to the extent that it connected to my site, which scores an A+ on the Qualsys SSL Labs test, without any issues.

On the other hand, I agree that not being able to hit Command-L to jump to the address bar as with every other graphical browser (as well as many other browser-like applications) just… doesn't feel right.


I guess the windows version - no JS - no SSL

pretty much impaired

anyway, good stuff technology-wise... will be in my radar from time to time


Any https website that I visit with netsurf, I get this empty warning: http://imgur.com/7bmDqnP ... but I used the version available in my repo, which is 2.9 .


NetSurf includes multiple framebuffer front ends, including: the Linux framebuffer, SDL, X and VNC.

The VNC server surface uses the libvncserver library to provide a straightforward unsecured VNC server. Multiple clients may connect.


While I applaud competition, I fear that more browsers will make it ever more difficult to develop working code that doesn't break at the next update. I guess the middle ground is that developers are supposed to follow the major browsers, while the small browsers have to follow them too. This could work in practice (I suppose users have gotten used to things breaking on the web), but somehow it still feels like a failure of the field of Software Engineering.


Isn't this what standards are for? If everyone follows them then no worries..


Yes. This is the theory. But haven't you ever seen browser-support tables? For instance, this one: http://caniuse.com/


http://tkhtml.tcl.tk/hv3.html HV3 Tcl/Tk Web Browser


Posting this from NetSurf. Pretty neat. Unlike Dillo, NetSurf managed to let me log in to HN, post, and upvote.

Currently it is consuming ~50M of RAM, about 10x less than Firefox with the same one tab.


Most sites I tried were somewhat broken. But to my surprise my own website worked just perfectly (sans javascript powered comments and ads of course). And blazingly fast!


The suckless guys have their webkit-based browser, surf [0].

[0] http://surf.suckless.org/


I'm getting blocked visiting the site... weird.

> Your page is blocked due to a security policy that prohibits access to category > Remote Proxies.


Probably because it has browser in the url or something idiotic. Complain to your IT staff who use blanket rules on their gateways,


Wonder if this will build on my old BeBox? Might be a reason to turn it on this year ..


[deleted]


NetSurf is not keystroke-centric enough, obviously.

(Also, uuterm is much lighter if you want a framebuffer-based terminal, however it needs a patch ( https://github.com/asiekierka/yuyulinux/blob/master/uuterm/u... ) to support 32-bit FBs properly.)


Is there any analysis of the security of this browser?


Forgive me, but why is this on the frontpage?


You don't consider somebody writing their own browser from scratch to be frontpage worthy?


Fair enough, sorry didn't infer that from the page.


Called it!

"I wouldn't be surprised that now that both of them [Firefox and Chrome] are too complex, in a few more years someone comes out with a browser that is simpler than both of them and is intended to replace them both."

https://news.ycombinator.com/item?id=10400540


Well, except that the NetSurf project was started in 2002. Other than that, you were spot on!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: