Interesting. Thanks for launching this discussion Chris. I will have to read 
that Bezanson thesis!

I took a look at the COS, what exactly are the objects implemented? This was 
not clear to me. The README did not say much.

In designing PDLNG one has to clear discuss and decide ‘what is it for’ ? I 
think it is fairly obvious that the scipy ecosystem has taken over the world, 
it has passed a critical mass in the last 3 years, and one must view it in that 
context [confession: I use scipy, I have too. All my students and collaborators 
do!]. 

There could be multiple goals:

- keep existing PDL code working for as long as possible? [this is a very 
conservative goal; on the other hand without refresh there will be bitrot as 
operating systems update]

- to be able to do all the things that scipy does [graphics, ML libraries, 
jupyter, etc.] but using Perl syntax? [this can be way more efficient and 
flexible, but may not be enough to justify a major effort. Unless there is a 
clever way to plug-and-play the ecosystem? I certainly would be very happy if I 
could write PDL code and call matplotlib in a jupyter notebook]

- to be able to do something better and new c.f. julia/python/R? [Ambitious. 
What?]

A related question would be where does Perl6 fit in to this? [sigh. If you ask 
me Perl6 killed Perl.]

cheers,

Karl




> On 29 Sep 2017, at 11:18 pm, Chris Marshall <[email protected]> wrote:
> 
> Here is a dissertation on how the Julia language was
> designed:
> 
>  https://github.com/JeffBezanson/phdthesis/blob/master/main.pdf
> 
> It was interested to see the development for the abstractions
> used and how they made effective technical computation
> possible.  The development of the type system could help
> guide extended types support for PDL Next Generation as
> we go from a fixed set of numeric types to a hierarchy of
> types including user defined ones.  Some things of specific
> note:
> 
> * bitfields as the boolean data (maybe this could be used
>  for an alternate implementation of bad data).  We could
>  start with https://github.com/noporpoise/BitArray/
> 
> * generic functions and multimethod dispatch make it easy
>  to support JIT compilation for efficiency when desired.
> 
> * COS supports functors and closures which might be
>  compatible with the higher order function approaches
>  in julia
> 
> * Union and UnionAll and the general implementation of
>  the type system might be applicable to PDL Next
>  Generation.  There may be benefit in implementing
>  method types and specifications similar to the ones
>  in Julia.
> 
> * COS can support types as first class objects
> 
> * There is a question of how to support dynamic features
>   with COS since it is implemented as a C library.
>   Maybe we need to have JIT for this?
> 
> Cheers,
> Chris
> 
> On Thu, Sep 28, 2017 at 10:37 AM, Chris Marshall <[email protected]> 
> wrote:
>> I recently took a look at the Julia programming language
>> 
>>  https://julialang.org/
>> 
>> with the thought of converting a julia library of interest
>> into something for PDL/perl computation.  I discovered
>> that Julia is based on the use of multi-methods which
>> is the capability provided by the C Object System (COS)
>> 
>>  https://github.com/CObjectSystem/COS
>> 
>> that I have proposed as a basis for a new PDL Next
>> Generation core architecture.  A look at Julia shows
>> that we might get some inspiration for our own
>> development from their language implementation and
>> use.
>> 
>> --Chris
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> pdl-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/pdl-general


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
pdl-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pdl-general

Reply via email to