August 15, 2014
On Monday, 11 August 2014 at 15:42:17 UTC, Ola Fosheim Grøstad wrote:
> On Monday, 11 August 2014 at 15:13:43 UTC, Russel Winder via ...
>
> C++ is good example of the high eco system costs of trying to support everything, but very little out of the box. You basically have to select one primary framework and then try to shoehorn other reusable components into that framework by ugly layers of glue…

So is the cost of trying not to have an healthy set of libraries as part of the standard like the other programming languages. Thanks to the C tradition that the language library is the OS.

Thankfully, the standard is now catching up and will eventually cover a good set of use cases in the standard library.

However, there is code legacy code out there that doesn't know anything about ANSI standard revisions.


--
Paulo
August 20, 2014
On Friday, 15 August 2014 at 12:49:37 UTC, Paulo Pinto wrote:
> So is the cost of trying not to have an healthy set of libraries as part of the standard like the other programming languages. Thanks to the C tradition that the language library is the OS.
>
> Thankfully, the standard is now catching up and will eventually cover a good set of use cases in the standard library.

I think the importance of standard libraries are overrated beyond core building blocks for real system programming. You usually want to use the ADTs of the environment to avoid format conversions or fast domain specific solutions for performance.

If you want FFT you need to look for the best hardware library you can find, no language library willl be good enough. Same with unwrapping of complex numbers to magnitude/phase, decimation and a lot of other standard routines.

Libraries with no domain in mind tend to suck. So performant frameworks tend to roll their own.

I think phobos is aiming too wide, it would be better to focus on quality and performance for the core stuff based on real use and benchmarking. A benchmarking suite seems to be missing?

A good clean stable language and compiler is sufficient. A library with core building blocks that can be composed is a nice extra. Phobos should be more focused. Too much added and you end up with underperformant solutions, unmaintained code, untested buggy code, or weird interfaces, e.g. lowerBound() that returns the inverse of what the name indicates, walkLength() that does not take a visitor object etc.

Providing good solid interconnects / abstractions are more important than functionality and solutions for growing the eco system. In python the key interconnect feature is having solid language level support for lists/dicts. C++ tried iterators, but it is tedious to define your own and tend to be underperformant, so frameworks might not want to use them. D is trying ranges... But without benchmarks... Who knows how it fares in comparison to a performance oriented algorithm?

15 16 17 18 19 20 21 22 23 24 25
Next ›   Last »