On Sun, 12/29/2024 9:32 AM, Kenny McCormack wrote:
In article <vkrfue$vl1b$1@dont-email.me>, Paul <nospam@needed.invalid> wrote:
...
Is the whole thing obscene ? Yes. You won't find too many
software creations, this distorted. Still, people are using it.
Most people are not aware what is under the hood. It's
a herd of elephants :-)
Just out curiosity, does all of this apply to the Windows version as well?
I know this thread is mostly about the Linux version, and although I
actually don't use TB at all, I know someone who uses the Windows version.
It's a FOSS software that compiles on multiple platforms.
Just as Firefox (which is most of the code inside after all),
is FOSS software that compiles on multiple platforms.
There's even a Firefox.dmg for example, for a Mac computer.
I don't keep track of how many platforms it supports.
One way to do this, is to, say, use OpenGL for graphics, as
OpenGL was available in lots of places. But, they don't do
that, not exactly. On Windows, the Google ANGLE driver is
used, which converts something like Direct3D, into an emulation
of OpenGL. And later, Google may have added WebGL or something.
The Firefox graphics runs at 20% speed on Windows, compared to
Linux, and it has something to do with the different means
of getting a working WebGL. There could have been support provided
by graphics card drivers, a more direct path, but they didn't use that.
In fact, the Mozilla graphics designer, is more than a bit annoyed
about just how many graphics standards and APIs that ended up supported.
Any notion of Keeping It Simple, went out the window long ago.
I'm impressed it works as well as it does.
Like the design of the iceburg, the news and email code is
the 10% that floats above the water line. While the huge mass
of cross-platform-ready code underneath for Firefox, does the
rendering.
If you have ever examined the tarball for a copy of Firefox
or Thunderbird, you will develop new respect for it. In the
sense that, somehow, a team of people corralled 400,000 files
of various types and made something that sorta works out of it.
How many projects do you know of, that have 400,000 files in the
tree ? Many of the files are test benches, for detecting
regressions when minor code changes are made.
One day, I was sick of line ending problems, so I made a little
project out of converting (400K files) to something common I could use.
Before doing this, I did a scan with the Linux "file" command first,
to get a declaration of the couple text file formats I was expecting.
When I sorted all the declarations found, there were *100 text file formats*
in the tree. For one particular file, if you change the line endings
in any way, it triggers a bug in the compiler, and you don't get
your build. And that's what I mean by the herd of elephants thing,
there are extensive amounts of excrement down there, and don't
step in it. It's real easy to think you can kick the tree around, when
it doesn't actually accept abuse as a tree.
One day, I used Visual Studio, and a debug build, to single-step
Firefox through a Print routine. As IDE windows opened and closed,
I noticed I had traversed three source files, source files which
modified some common print settings, but not the exact same set of
common settings. It seemed there were three routines running
sequentially, and presumably the last one executing, was the "latest version".
The two moribund versions of code, having never been removed.
And that's how you manage 400,000 files in a tree. Careful
where you step!
Paul