
Show HN: nEXT Browser – A Lisp-based browser - jmercouris
A demonstrator of what is possible with Common Lisp and what kind of new interface a rethink of browsers could provide.<p><a href="https:&#x2F;&#x2F;github.com&#x2F;nEXT-Browser&#x2F;nEXT" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;nEXT-Browser&#x2F;nEXT</a><p>Very Alpha. Missing history, bookmarks, sessions etc.<p>nEXT is not intended to replace your current browser. It is just like adding another tool in your toolbox, you use nEXT when you want to get actual work done.
======
peatmoss
I love it! Now, if it can render content where:

\- HTML is replaced with S-Exprs

\- CSS is replaced with lisp

\- javascript is replaced with lisp

Then I think I'll be ready to join whatever cult you ever feel like starting
:-)

~~~
Zaak
I wouldn't like to see CSS replaced with lisp. CSS is declarative, lisp is
imperative/functional.

~~~
infinite8s
CSS's cascading rules can be diagrammed as a tree, so can be shown as s-exprs.

~~~
Zaak
I can clearly imagine how s-exprs can replace html, but I don't understand how
s-exprs would replace css. Would you show a toy example?

~~~
escherize
Here's a working example:
[https://github.com/noprompt/garden](https://github.com/noprompt/garden)

------
zeveb
Oh, this is awesome! Between StumpWM, emacs & now nEXT, my entire desktop
could be Lisp.

Rather than using ECL to embed Lisp in C++, have you considered using an FFI
to call out to QT from Lisp? Nothing's wrong with your approach, of course
(the venerable emacs is Lisp atop a C core, after all!).

I wonder how difficult it'd be to get uBlock-style adblocking working on this.

~~~
jmercouris
Hi zeveb, thank you for the kind words!

I have thought about that, and afaik that is the approach of CommonQT,
definitely a good solution, but I chose EQL + ECL specifically due to the
fantastic support their respective developers provided. They're really smart
guys, and I appreciate what they're doing.

Ad-blocking shouldn't be too hard to do in QT, I think I may have to do it in
the C++ Layer below though. I believe one has to extend QNetworkManager or
some other similarly named class.

Anyways, thank you for your interest, lots of new features in the works :)

------
flavio81
JMercouris,

Thanks for this, you made my day!! I was always curious of what could be done
using EQL.

Do you have binaries compiled for Windows​? What would your recommendation be
for building under windows? Just regular ECL configured for working with EQL?
plus GCC tools?

Keep the light of Common Lisp shining like a beacon of hope and joy for the
devoted hackers!

~~~
jmercouris
Hi Flavio, no problem, happy to make your day!!

Unfortunately I don’t have access to a Windows machine.

The EQL5 repository has a readme, which I believe has windows instructions, if
you can run EQL5, running nEXT is trivial, you would just type in ‘eql5
run.lisp’ from the source directory and it would just work!

------
ams6110
The logo and odd capitalization of "nEXT" might get some attention from Apple
laywers, if they care about the NeXT trademarks at all anymore.

~~~
smcl
Well if the success of Firefox (née "Phoenix", née "Firebird") is anything to
go by, that could be a good start!

------
orwin
Holy cow. Great job. Sadly i'm busy even on weekends atm, but i'm bookmarking
this and i will try to contribute when i find some time.

~~~
jmercouris
Hi! Thank you for the kind words!

------
dna_polymerase
What rendering engine does nEXT utilize, assuming you didn't write a rendering
engine in Lisp?

~~~
Posibyte
Looks like the QT WebKit engine.

~~~
nextos
Now that Vimperator is mostly dead, this looks like a potentially interesting
alternative to have a programmable browser.

~~~
j_s
Qutebrowser – a keyboard-focused browser with a minimal GUI |
[https://news.ycombinator.com/item?id=15458824](https://news.ycombinator.com/item?id=15458824)
(Oct 2017, 91 comments)

>vortico: _This is definitely the best hackable browser out there_

>asmdev: _Is there a good alternative for VimFx?_

\- Vimium-FF, Saka Key, Tridactyl, QuantumVim

[https://github.com/qutebrowser/qutebrowser#active](https://github.com/qutebrowser/qutebrowser#active)
\- similar projects

------
eschaton
How is this “Lisp-based” when it’s a wrapper around QtWebKit?

I’d expect a “Lisp-based” browser to implement its rendering engine in Lisp,
probably atop CLIM. Otherwise you’re just using Lisp as a scripting language
to glue a couple prefab components together.

~~~
jmercouris
Well, that would be quite slow :D

You’re right in a most technical sense, it’s a lisp programmable browser

~~~
eschaton
Why do you think so? Compiled Common Lisp can be quite fast.

~~~
jmercouris
Compiled Common Lisp can be quite fast, but not fast enough. Additionally, I
don't see the added value in having the rendering be done in Lisp, I'm only
interested in the manipulation of the data in Lisp

------
kup0
The readme references a "releases" section to go to for pre-built binaries. Is
this not available yet?

~~~
jmercouris
Hi yes! They are available for Mac OS High Sierra from release 0.03 onwards

Working on others too!

------
patricksimpson
Wow, this is actually an amazing idea! Great job.

~~~
jmercouris
Hi! Thank you!!

------
soperj
What's it using as a browser engine?

~~~
Posibyte
[https://github.com/nEXT-
Browser/nEXT/blob/76d73d5de55f53e49a...](https://github.com/nEXT-
Browser/nEXT/blob/76d73d5de55f53e49a1862ed3712980b4dcff888/next/lisp/base.lisp#L5)

QT5 Webkit :)

------
SeanLuke
This feels like a particularly ill-considered name.

First off, there is already commercial software called "Next Browser" \-- it
appears before your code in google searches. I don't think they have a US
trademark (yet). They might have a chinese trademark. At any rate, it might
not be wise to be naming something that puts you in potential future trademark
jeopardy.

Second, when I think of "Next Browser" I think of this:

[https://www.w3.org/People/Berners-
Lee/WorldWideWeb.html](https://www.w3.org/People/Berners-
Lee/WorldWideWeb.html)

I'm sure others do too. You sure you want to be competing with
_WorldWideWeb.app_ , of all applications, for mindshare?

~~~
jmercouris
Hi Sean, thank you for your feedback. You're right, it's probably not a really
good idea. I'm open to any ideas for names, having said all of that, I really
like the name nEXT Browser because it gives an idea of efficiency, progress,
and getting stuff done.

In terms of names in general, I think you will always be stepping on toes
somewhere, there are so many names out there, and especially when you want to
use a normal English word, it is hard to find anything really available
without making up something.

------
fiatjaf
Please post the link directly.

------
saijanai
Eh, why not a 3D browser ala croquet/cobalt?

I mean, Croquet WAS designed to show what a peer-to-peer internet could do.

~~~
jmercouris
An interesting idea, but a browser is only designed to render and manage web
pages, I think what you’re more talking about is the underlying protocol and
network implementation

