Most active commenters

    ←back to thread

    403 points jaytaph | 16 comments | | HN request time: 1.923s | source | bottom

    Last year I wrote a post about trying to make a change in the world by writing a browser.

    Today, we're excited to introduce Gosub, a new open-source browser engine that we are building from the ground up in Rust!

    Gosub aims to be a modern, modular, and highly flexible browser engine. While still in the early development and experimentation phase, Gosub is shaping up nicely, and we’re looking to onboard more contributors to help us bring this project to life.

    Some of the key highlights:

      * Written in Rust: We're leveraging Rust's safety and performance features to create a robust and efficient engine.
      * Modular Design: The project is organized around modules, allowing for clean separation of concerns and easier collaboration. It also allows us to easily swap components based on needs and allows more freedom for engine implementers in the future.
      * Collaborative and open source: We’re building Gosub with the intention of making it approachable and open to contributions, aiming to create a project that's easier to understand and collaborate on compared to existing browsers.
    
    Instead of writing another shell around Chromium or WebKit, we decided to write a browser engine from scratch. We believe that having a diverse landscape of engines is the only way to defeat a monoculture that is currently threatening current browsers and by extension the internet itself. We cannot and should not let a very small number of large companies dictate the future of the web and its usage.

    With Gosub, we're aiming to build something more approachable that can evolve with the latest web technologies, all while being open to contributors from day one.

    We’re looking for developers with or without experience in Rust. You just need to be interested in browser technologies. There are plenty of opportunities to work on core modules, document our progress, and help shape the project's direction.

    We can already render simple pages, including the hackernews front page. However, to render most sites correctly, it is still a long journey, so come and join us!

    1. jfengel ◴[] No.41841295[source]
    As a BASIC programmer from the 1980s, thank you for that heart attack.
    replies(5): >>41841335 #>>41841364 #>>41841370 #>>41847887 #>>41849457 #
    2. sharktheone ◴[] No.41841335[source]
    lol GOSUB as a BASIC command, yes I can see the reference. It actually referes to the BASIC command.
    replies(1): >>41841706 #
    3. IshKebab ◴[] No.41841364[source]
    It's a great name!
    4. moron4hire ◴[] No.41841370[source]
    They say BASIC programmers never die, the just GOSUB and never RETURN.
    replies(3): >>41841529 #>>41846976 #>>41847482 #
    5. Yoric ◴[] No.41841529[source]
    Or we get lost in DATA.
    replies(1): >>41843111 #
    6. mxuribe ◴[] No.41841706[source]
    Thanks for this! I didn't really use BASIC much back in the day, but I am from - ahem - an older time...and the name seemed so familiar, but quite couldn't place my finger on it. so, thanks for clarifying this! :-)
    replies(1): >>41850967 #
    7. readyplayernull ◴[] No.41843111{3}[source]
    Just PEEK every address.
    replies(1): >>41843263 #
    8. hallway_monitor ◴[] No.41843263{4}[source]
    Careful doing that, you could POKE your eye out
    replies(1): >>41847025 #
    9. versteegen ◴[] No.41846976[source]
    Trivia: at least in some BASICs (QBasic, QuickBasic, FreeBASIC) it's not necessary for every GOSUB to be matched with a RETURN, since the GOSUB is a single 'call' instruction that pushes onto the stack (and RETURN is a single 'ret' instruction, hence GOSUB-RETURN is highly efficient!) so it gets removed when you exit the function if you didn't RETURN, like alloca(). I actually re-implemented GOSUB this way using macros and inline assembly. I called it GOSUB/RETRACE.
    replies(1): >>41848269 #
    10. Yoric ◴[] No.41847025{5}[source]
    Think of what TRON would do with that.
    replies(1): >>41847248 #
    11. wiz21c ◴[] No.41847248{6}[source]
    I don't have a Clu
    12. p0w3n3d ◴[] No.41847482[source]
    I remember my Atari behaving awfully slow (whole atari basic environment, even after the program finished) because I did many GOSUBs without the amount of RETURNs necessary, and didn't understand why because I was only 9yo at that time...
    13. arethuza ◴[] No.41847887[source]
    For some reason your comment made me think about computed gosubs - pretty sure I've managed to forget about those for ~40 years!
    14. tasty_freeze ◴[] No.41848269{3}[source]
    In Wang BASIC, there was the "RETURN CLEAR" statement which cleared the stack up to and including the most recent GOSUB call frame. This includes any FOR loop frames that were push on the stack in the subroutine before the GOSUB. This was intended to be used for handling error conditions.

    https://www.wang2200.org/basic_comparison.html#retclear

    15. ◴[] No.41849457[source]
    16. legends2k ◴[] No.41850967{3}[source]
    Logo? Lisp? Punched cards?