Beyond the barrier of this being a huge vaporware effort, bare in mind that a large percentage of Browsers are implemented in C/C++ for performance reasons.
In the cases of Firefox and Chrome its 50% in both cases that is made in C/C++. https://www.openhub.net/p/firefox https://www.openhub.net/p/chrome So immediately that means you have 3 options 1) Code it yourself/ your team in C/C++ that 50% 2) Use the existing code bases of either Firefox or Chrome 3) Code it all in pure Pharo (3) is the most attracting for Pharo devs and it will really prove that Pharo can make a Internet browser but you can forget about it. Pharo is around 10-50 times slower than C/C++ and if we take into account that Firefox alone can easily eat alive a quad core cpu and 1GB of memory , numbers that are unheard of to Pharo developer in large , it make the use of Pharo a non choice. So he erase (3) from the list. (1) Code it yourself C/C++ is again not doable since we are talking about milions and millions of lines of code , that means your browser will end up being 3-10 times larger to Pharo itself. Good luck with that. (2) is your realistic options that 50% that is coded in C/C++ will save you quite a lot of developing time and give you the performance you need but even this option comes with huge drawbacks of having to wrap millions and millions of lines of code so Pharo can have access to it, you could automate it to an extend but still A TON of work. Also do not be misled by that 50% if you think it covers 50% of the features, it does not. I would not be surprised if it covers 80-90% of the features so its not the 50% you can ignore or not focus on. Simply put Pharo is not a language designed for high performance coding. Bare in mind that we only recently got 64 bit support , something that would make C/C++ developers laugh. Not to exclude the sheer number of tools that C/C++ have that can debug and optimise code especially when it comes to memory management. We talking here not about 5-10 tools/libraries but an entire universe of options. I am not saying that Pharo is a bad language by any means. We would laugh at C/C++ coders with the way they try to implement OOP or dynamic coding. Pharo is amazing for low performance coding and if you want to quickly put together applications on the fly. If you want to do something realistic then your best bet will be to assist the PharoJS folks because the number one thing you need to even got the attention of web devs is excellent JS , HTML and CSS support out of the box. An area that I have worked with Pharo is IPC (Inter Process Communication) that makes it possible for Pharo to communicate with any software and language and use any tool, any library of any language etc. Embedding a browser inside Pharo could be beneficial for the community under a single scenario. Abandoning Morphic and Bloc and moving to QT. I know this is enough to start people throwing tomatoes at me but I do believe it would be of immense value to Pharo. QT is de facto THE KING of GUIs , not only QT can embed a browser , OpenGL contexts it can also embed itself inside mobile apps and web apps. Its an extremely powerful API that will open the doors for us to all enviroments and OSes, web dev, iOS, Android, Macos, Windows, Linux etc. But realistically this will never happen because it will require for Pharo devs to start coding in C++ to wrap QT for Pharo (its a C++ lib) and then they will stop throwing tomatoes at me and start throwing knifes and I would not even blame them. Good luck with anything you decide doing you are going needs tons of it and tons of patience.
