• Activity
  • Votes
  • Comments
  • New
  • All activity
  • Showing only topics with the tag "browsers". Back to normal view
    1. Ladybird chooses Swift as its successor language to C++

      I've copied the full tweet below (it's from August, I missed this news somehow): We've been evaluating a number of C++ successor languages for @ladybirdbrowser , and the one best suited to our...

      I've copied the full tweet below (it's from August, I missed this news somehow):

      We've been evaluating a number of C++ successor languages for @ladybirdbrowser , and the one best suited to our needs appears to be @SwiftLang 🪶

      Over the last few months, I've asked a bunch of folks to pick some little part of our project and try rewriting it in the different languages we were evaluating. The feedback was very clear: everyone preferred Swift!

      Why do we like Swift?

      First off, Swift has both memory & data race safety (as of v6). It's also a modern language with solid ergonomics.

      Something that matters to us a lot is OO. Web specs & browser internals tend to be highly object-oriented, and life is easier when you can model specs closely in your code. Swift has first-class OO support, in many ways even nicer than C++.

      The Swift team is also investing heavily in C++ interop, which means there's a real path to incremental adoption, not just gigantic rewrites.

      Strong ties to Apple?

      Swift has historically been strongly tied to Apple and their platforms, but in the last year, there's been a push for "swiftlang" to become more independent. (It's now in a separate GitHub org, no longer in "apple", for example).

      Support for non-Apple platforms is also improving, as is the support for other, LSP-based development environments.

      What happens next?

      We aren't able to start using it just yet, as the current release of Swift ships with a version of Clang that's too old to grok our existing C++ codebase. But when Swift 6 comes out of beta this fall, we will begin using it!

      No language is perfect, and there are a lot of things here that we don't know yet. I'm not aware of anyone doing browser engine stuff in Swift before, so we'll probably end up with feedback for the Swift team as well.

      I'm super excited about this! We must steer Ladybird towards memory safety, and the first step is selecting a successor language that we can begin adopting very soon. 🤓🐞


      Nitter link:

      https://nitter.poast.org/awesomekling/status/1822236888188498031

      Original post:

      https://x.com/awesomekling/status/1822236888188498031


      Some of Kling's replies in that thread are also pretty interesting:

      My general thoughts on Rust:
      - Excellent for short-lived programs that transform input A to output B
      - Clunky for long-lived programs that maintain large complex object graphs
      - Really impressive ecosystem
      - Toxic community

      In the end it came down to Swift vs Rust, and Swift is strictly better in OO support and C++ interop.


      The September monthly report for Ladybird released the day after I posted this. It provides basically the same information:

      This Month in Ladybird September 2024

      The section about Swift:

      Successor language search progress

      Over the past year, our core contributors have been exploring potential safe languages to complement or succeed C++. We evaluated several options, including Rust, Swift, Fil-C, and others. While some languages offered compelling features, many fell short in either C++ interoperability or providing the level of memory safety we needed.

      After extensive testing and discussion, Swift emerged as the top choice among our core developers, thanks to the new Swift 6 interoperability features and its growing cross-platform support. As a result, we’ve decided to adopt Swift as our C++ successor language.

      That said, this will be an incremental shift. The existing C++ codebase is deeply embedded in the project, and a complete rewrite would be impractical. Instead, we’ll be gradually introducing new components in Swift, carefully integrating them with our existing C++ code over time. Look forward to a dedicated blog post on the topic soon.

      32 votes
    2. Relative installed shady browser extension

      [Possibly solved, please look at comments] Hey, so recently a family member accidentally downloaded a shady browser extension called: "Easy Print" on Firefox. 30k downloads, no ratings, weird...

      [Possibly solved, please look at comments]

      Hey,

      so recently a family member accidentally downloaded a shady browser extension called: "Easy Print" on Firefox. 30k downloads, no ratings, weird "offical" website and installed accidentally trying to buy tickets. I assume it showed something along the lines of: "Buy ticket now" and they just clicked on it (being overall inexperieced with security). Only extension installed was uBlock until then.

      I won't post a link just in case, but you can easily find it by googling: "Easy Print Firefox" or "Easy Print App" for their website.

      What makes this weirder is that they change the default search engine to Yahoo, which for me was always a red flag for a hijacked browser.

      I uninstalled it, but am concerned that they installed something like a keylogger along with it.

      Can anyone help me what this is and, especially, how I can properly teach them the basics of internet safety? Not the first time their PC/browser was filled with unwanted stuff...

      Thank you and best regards!

      15 votes
    3. Help me ditch Chrome's password manager!

      I've been trying to reduce my reliance on all things Google, and one of the big ones is password management. I've tried several times to make the jump, but every time I start researching options...

      I've been trying to reduce my reliance on all things Google, and one of the big ones is password management. I've tried several times to make the jump, but every time I start researching options I'm overwhelmed by the selection. There are a lot of popular options out there, and I really don't have the time/energy to endure a misstep. So without a clear idea of which manager will check all of my boxes, I end up bailing on the process and keep using chrome's built in option.

      So to start, here's what I like about Chrome:

      • Automatically offers to store passwords without extra clicks
      • Autofills automatically where it can, and gives me an easy choice when it can't
      • Works everywhere I need passwords. (basically everywhere I browse the internet since chrome works everywhere)
      • Minimal overhead. This is hard to beat since Chrome just includes it, so I'm fine with a little extra setup if necessary.

      I used to use keepass portable on a thumb drive (I want to say circa ~2009ish), but it became really inconvenient as my usage shifted more to mobile devices.

      I see this as a first step to also reducing my reliance on Chrome so I can start to consider other browsers. Right now I feel locked in to Google's ecosystem, but I know I can break it up if I don't get too bogged down by choice. Much appreciate any help. :)

      34 votes
    4. Getting tired of Firefox

      Am I the only one? They've made some serious improvements and I generally enjoy using Firefox but I occasionally run into issues that just shows complete disregard for end users. Assuming, of...

      Am I the only one?

      They've made some serious improvements and I generally enjoy using Firefox but I occasionally run into issues that just shows complete disregard for end users. Assuming, of course, my issues are not isolated.

      Every month or so, when Firefox updates, it completely resets itself. This doesn't happen with every update, but Mozilla pushes an update that breaks the functionality of my browser. My browser settings, my userChrome profile, my extensions and their settings, and my bookmarks are all gone. Everything.

      I do have sync but that doesn't work properly either. It only syncs some of my settings (which actually makes it harder for me to figure out what's enabled/disabled) and while I do get my bookmarks (none of which have their favicons), the extensions that manage to sync (meaning the ones that were installed from the store) don't sync their settings unless they have cloud support.

      I do not understand this. Why do I, as an end user who care about Mozilla's mission, have to deal with this? I'd overlooked many of Firefox's shortcomings in the past, but when the browser works, it works well. I have some issues, but browsers are complicated and running into issues are to be expected. I understand that, but I simply cannot understand how eager they are to break the end user's workflow. Isn't it supposed to be a cardinal sin for every software company, especially the ones trying to survive, to not do this?

      I just spent roughly half an hour of my day to get my browser back to its previous state. Adding the times I had had to deal with this issue before, I've spent hours on dealing with Firefox that I shouldn't have. I don't think I have another half an hour to spare for it and I don't want to anymore, but is there even an alternative for Windows that suck less?

      (Apologies for the rant, but I needed to vent and perhaps get a discussion going about the current state of browsers.)

      29 votes