I propose something TOTALLY different. What if all of the browsers SHARED their data in real time. So that no matter which browser you opened you had access to the same bookmarks, the same history, the same … well you should have the ability to tell each of the browsers what they were allowed to see and share so that if you didn’t want browser A to see the bookmarks OR history of browser B, you could set that in settings or whatever you want to call it. That way no browser would have control over us.
That’s actually why I wanted to be able to make a Bookmarks module. ![]()
My idea here, is to use a central database, which is not something that belongs to some big company, but the user can choose to host on his/her own server if desired.
I think that especially bookmarks today are used by the companies to keep you using their’ browser, just too bad if you can’t use it any longer for some reason, then you’ll have to manually copy the bookmarks one-by-one (that also applies to bookmarks “shared with all your devices” in the cloud).
I’d like to make a Bookmark module, which interfaces with Redis (or any database of the user’s choice, as long as some basics are met, but I’m quite fond of Redis).
As far as I remember, Net+ on BeOS stored bookmarks as 0byte files with attributes. No reason other browsers on Haiku can’t do the same
While it was a good idea at the time, Please remember that 0-byte-files still use storage-space. Copying one such file to for instance a FAT16-formatted storage device would lose all the information, even part of the name, if it’s not all uppercase and not in the 8-dot-3 format.
I believe that a common format would be much better; a format like JSON for instance; it’s very clean, it’s very easy to parse and it’s easy to understand for humans as well; but this really isn’t about the format, it’s about the freedom the user has to choose what he/she wants to use. People can purchase their own computers fully assembled or they can purchase all the parts (choosing each part) and put the parts together. I believe it’s possible to come up with an interface-standard, so that modules can communicate with each other. Before Oracle made the ECMA specification, Javascript was messy and not very good. After the specs were made (yes, it took years), it’s now possible to make a Javascript, which runs quicker than similar code written in C (because of the JIT compiler - I’m not saying it’s a rule of thumb). That was never possible before ECMA.
Yes, Web+ on Haiku still does exactly that.
Sure, if you don’t mind losing compatibility with upstream.
I’ve moved this, since it has nothing to do with the status of the webkit2 port.
I don’t think so.
Regarding the module ‘protocol’ you have to recode every browser yourself or convince the developers - both theoretically possible but hard to do. Look at how each project does its own thing. Linux kernel can now support multiboot spec but the developers still prefer the bzImage. Or Python making its own ecosystem, incompatible with C. And so on.
You are calling it a module which means that it would be used as part of something and I don’t see the major companies that make browsers (to tie them to their systems) as being willing to including an options so that people could attach your module to their browser.
You will have to think of it as a totally separate program and you would have to make it so that it is ten times better than the bookmarks that browsers currently have.
Just to be clear, when the #$@#(& Elon Musk decided to buy out the creators of Tesla cars and take it over with the idea that he would mass produce electric vehicles. He KNEW that the electric cars couldn’t JUST be as good as gas/diesel cars but had to be much better. And they really are with a LOT less maintenance and the much better acceleration. Once enough money had been spent on batteries they will be equal in how much time (or less) than it takes to fill up with gas/diesel.
Keep in mind that literally TRILLIONS of dollars in today’s money has been spent on gas engines and all the parts that go into them. One car can cost car companies over 5 BILLION dollars to design and get to the point of producing them in factories with all the costs of proving that all the parts work in a “mule” (another car that they put all the working parts into to test them) and then they have to setup the assembly line and pay all those workers and 5 billion goes quickly. And how many cars do car companies have? Add it up and then you understand how much is spent on gas cars and than think about them being created for more than 100 years.
Electric cars actually existed BEFORE gas cars did. But the battery technology wasn’t there and the men that had found oil invested in car companies and bought out any companies working to improve car batteries so that they didn’t have to compete with anyone until Elon Musk came around and they couldn’t stop him. In the meantime over 400 car companies came and went around the world.
Which is why I’m saying that any bookmarks “module” that you make has to be 10 times better than what web browsers have. And not just 10 times better for you and me but for anyone that you might get to use it.
Oh, and then there is the cost of just TRYING to get people to try it out in the first place let alone continue using it. You will have to advertise but guess what, Microsoft and Apple and Google will THREATEN to take away any advertising money they spent with that company if they take money from you to advertise a competing product. They hate competing with each other but love it at the same time. But they do NOT want anyone else eating their cheese.
So you will have to do something different like give away prizes for people trying it out. One way would be for it to be a puzzle they have to solve by finding where certain things are in your modules and once they have found them (thereby learning your product) they will be able to answer the puzzle and win a prize and MIGHT JUST continue using your product along with anyone else that tried to figure out the puzzle first.
Oh, and make sure you don’t have any skeletons in your closet because they WILL be found and used against you. It won’t appear to be your competitors (web browser companies). They will hire lawyers from east Texas where you can file frivolous lawsuits and you have to spend a lot of money to defend yourself and if you can’t afford it your idea dies.
I’m not saying all this to stop you. I’m just letting you know what WILL happen in the future so you and anyone in the upper part of your company must be prepared for the dirty things that big companies do to protect their cheese even if it is a module that you are creating that you just want them to add.
IF they let their product use your module then anyone would be able to switch to any browser and they won’t like that. Just remember that and develop thick skin.
Also, it doesn’t have to be a perfect product. You just must be able to continue working on it and improving it and somehow getting the word out and EVENTUALLY you will succeed. You just have to be willing to feel like you’ve lived eighteen life times to meet your goal.
It is an EXCELLENT goal. I hope that you succeed. I would love to be part of it in some way.
I’m not saying that every C-program you make can be made into a lot faster Javascript; absolutely not. But a few years ago, I saw Javascript code, which ran a lot faster than the same code compiled using GCC. That was impressive. The only reason this was possible, was because of the JIT compiler.
Regarding the module ‘protocol’ you have to recode every browser yourself or convince the developers - both theoretically possible but hard to do. Look at how each project does its own thing. Linux kernel can now support multiboot spec but the developers still prefer the bzImage. Or Python making its own ecosystem, incompatible with C. And so on.
I’d like to put it in a completely different way:
My idea is to make one browser, which is “completely empty” - it’s unable to do anything at all, except from loading and connecting plugins to each other.
That means, it needs a HTML-parser, Javascript engine, rendering engine, SSL-plugin, Bookmark manager, Download manager, etc.
Other browsers can do what they want; they can stay incompatible; this is not related to the module-based browser.
What I’m actually suggesting, is taking something that is integrated and then de-integrate it and making a universal interface for it. Architecting the interface(s) correctly is the most important part.
For instance: “What is expected from a download manager and what can a download manager expect from a browser?” (note: that is not a question for you; it’s a question the architect should ask before designing the interface).
It’s likely that the architect cannot think of everything before releasing the specs for the first interface-collection, so like ECMA has different versions, this interface-spec could have different versions as it improves.
Just to be clear: I have no intention of selling a web-browser.
This is about an idea of a modular browser, where people can take what they want and put together; it’s not about making money or advertising that it’s better than anything else. The people who decide to use or not use it would promote it if it’s worth it.
-I’m just putting my idea in the public, because it’s something I desire to have; it all started with the bookmarks, but I’d like to be able to switch out the rendering engine or the Javascript engine if I feel like it. I’d like everyone to be able to write their own replacement for existing modules, so they’re not constrained to what is provided. In other words; it should provide more freedom to people, not constraints.