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.

Reply via email to