7 ms·
Show HN: nEXT Browser – A Lisp-based browser
A demonstrator of what is possible with Common Lisp and what kind of new interface a rethink of browsers could provide.
https://github.com/nEXT-Browser/nEXT https://github.com/nEXT-Browser/nEXT
Very Alpha. Missing history, bookmarks, sessions etc.
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.
- ams6110 9y agoThe logo and odd capitalization of "nEXT" might get some attention from Apple laywers, if they care about the NeXT trademarks at all anymore.
- smcl 9y agoWell if the success of Firefox (née "Phoenix", née "Firebird") is anything to go by, that could be a good start!
- patricksimpson 9y agoWow, this is actually an amazing idea! Great job.
- jmercouris 9y agoHi! Thank you!!
- peatmoss 9y agoI 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 :-)
- patrickmay 9y agoThat's no cult, that's a Utopia!
- Zaak 9y agoI wouldn't like to see CSS replaced with lisp. CSS is declarative, lisp is imperative/functional.
- keymone 9y agoLisp can be very much declarative. It can be literally any paradigm by virtue of being a direct representation of it's AST while all other languages have to be parsed into AST.
- infinite8s 9y agoCSS's cascading rules can be diagrammed as a tree, so can be shown as s-exprs.
- keymone 9y agoHTML: https://github.com/weavejester/hiccup https://github.com/weavejester/hiccup CSS: https://github.com/noprompt/garden https://github.com/noprompt/garden Javascript: https://github.com/clojure/clojurescript https://github.com/clojure/clojurescript seriously, Clojure is the utopia.
- zeveb 9y agoNo reason this couldn't accept a content type of application/htsl (for hypertext S-expression language, of course). I proposed something like this in a comment of mine a couple of months back: https://news.ycombinator.com/item?id=14931277 https://news.ycombinator.com/item?id=14931277
- Fice 9y agoWouldn't that be "reinventing the flat tire"? The Web needs far more serious redesign than just replacing the syntaxes.
- soperj 9y agoWhat's it using as a browser engine?
- Posibyte 9y agohttps://github.com/nEXT-Browser/nEXT/blob/76d73d5de55f53e49a1862ed3712980b4dcff888/next/lisp/base.lisp#L5 https://github.com/nEXT-Browser/nEXT/blob/76d73d5de55f53e49a... QT5 Webkit :)
- dna_polymerase 9y agoWhat rendering engine does nEXT utilize, assuming you didn't write a rendering engine in Lisp?
- Posibyte 9y agoLooks like the QT WebKit engine.
- nextos 9y agoNow that Vimperator is mostly dead, this looks like a potentially interesting alternative to have a programmable browser.
- j_s 9y agoQutebrowser – 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
- pg_is_a_butt 9y agoless and sass called. they disagree. you're all idiots.
- SeanLuke 9y agoThis 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 9y agoHi 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.
- orwin 9y agoHoly 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 9y agoHi! Thank you for the kind words!
- zeveb 9y agoOh, 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 9y agoHi 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 :)
- kup0 9y agoThe readme references a "releases" section to go to for pre-built binaries. Is this not available yet?
- jmercouris 9y agoHi yes! They are available for Mac OS High Sierra from release 0.03 onwards Working on others too!
- eschaton 9y agoHow 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 9y agoWell, that would be quite slow :D You’re right in a most technical sense, it’s a lisp programmable browser
- eschaton 9y agoWhy do you think so? Compiled Common Lisp can be quite fast.
- jmercouris 9y agoCompiled 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
- db48x 9y agoConsidering the amount of work it would take to write an HTML rendering engine from scratch, this is a perfectly reasonable way to go.
- eschaton 9y agoAnd yet WebKit came from the KDE folks deciding to do just that.
- gkya 9y agoThen Emacs does not count as a Lisp based editor too, given it's renderer is in C.
- 9y ago
- saijanai 9y agoEh, why not a 3D browser ala croquet/cobalt? I mean, Croquet WAS designed to show what a peer-to-peer internet could do.
- jmercouris 9y agoAn 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
- flavio81 9y agoJMercouris, 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 9y agoHi 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!
- fiatjaf 9y agoPlease post the link directly.