On 9/30/2017 22:32, Karl Glazebrook wrote:
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.
There are papers covering COS and its
features and implementation at
https://github.com/CObjectSystem/COS/tree/master/doc
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]
PDL 2.x is already in stable/bitrot-prevention mode.
- 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]
One goal for the next generation PDL was to be able to
have it callable from any language with a C FFI capability
so that I could be language agnostic and still have PDL
computing capabilities.
- to be able to do something better and new c.f. julia/python/R? [Ambitious.
What?]
As I mentioned already, Julia maps very well into the new data
language features I was wanting for PDL Next Generation:
- you can call Python including NumPy and matplotlib from julia
- JIT compiling is already there
- I saw data frame support for julia
- iJulia Jupiter notebooks already done (tutorials for julia are written
in them)
- julia has a friendly matlab-ish syntax and language
A related question would be where does Perl6 fit in to this? [sigh. If you ask
me Perl6 killed Perl.]
Between python/numpy, R, and now julia, it seems
clear to me thatperl is not the language most
people look at for scientific and datacomputation.
And, to be honest, the part about the Perl Data
Language that I liked was the *Data Language* and
not specificallyperl which happened to be the
language I was using at the time.
My goals might now be specified as implementing
X-DL whereall the nice data language features
as are found in PDL andnow many languages can
be accessed from other languageswhich would
allow me to work on scientific computations
and collaborate with colleagues independent of
our individuallanguage preferences.
Frankly, Julia as as Data Language minus Julia
the languageand syntax is pretty much exactly
the features I had hopedfor PDL Next Generation.
Maybe thinking of the goals forX-DL from this
point of view is a better way to see next
generation DL capabilities.
I plan to look at Julia more. If there were a
cygwin Julia implementation (not a win32
cross-compiled one) this would be even more
compelling for my work flow use case.
Cheers,
Chris
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