On 20/05/2017 17:49, Chris Angelico wrote:
On Sat, May 20, 2017 at 8:46 AM, Viktor Hagström
<viktor.hagst...@outlook.com> wrote:
I have followed this discussion since the beginning, and I have been intrigued.
I recently read a relevant blog post that I'd like to share. It has arguments
for both sides: http://nullprogram.com/blog/2017/03/30/.
Truly portable code either targets the lowest common denominator,
which means avoiding any sort of file system processing or any
features not in C89, or has multiple branches. That's the only two
ways to do it.
Why avoid file processing? Standard C has long had fopen and fclose, and
a handful of other functions (basically to read files and to write
them). You don't need much else.
That blog link also had a reader comment that included these remarks:
"CMake and other tools that build build-configuration projects are
overly complex and are an impediment to the software development cycle.
They hide details like compile and link options, or make you use their
language/syntax to express those options, and don't help you avoid
os-dependent configuration issues."
It goes on [after Cmake was replaced]:
"A fresh build would run in a couple of minutes instead of 17 minutes.
If no changes are made, it would take Visual Studio and Cmake 20-30
seconds to determine there was nothing to build. Now it takes a split
second.
...Keep the build as simple as possible."
(Which is exactly what I strive to do. Although my projects are small,
they could still involve dozens of source and support files, and require
running non-standard tools to build, which would then require other sets
of sources to built those.
It still doesn't work though because you can get down to just a single
file, and people will still moan that it's too complex. You've reduced
the job of building a set of kitchen units to hammering in just one
nail, but then find that someone has never hammered a nail in before.
I'm now investigating how to reduce a project to no files at all!)
--
bartc
--
https://mail.python.org/mailman/listinfo/python-list