Skip to content
Philip Lykke Carlsen edited this page Nov 16, 2012 · 3 revisions

Project Health

How good is the project health? That is, we want to determine how likely is it that development on the language will continue and that it will keep getting funding and interest from developers.

Subquestions include:

  • (in report) Quality of documentation

    Extensive haddock api documentation.

  • (in report) Code review

  • (in report) Portability

    GHC.

  • (in report) Installation process

    Just plain cabal-install.

  • (in report) Number of dependencies (incl. GHC extensions)

    base primitive ghc-prim deepseq

  • (in report) Number of users (reverse dependencies)

    abstract-par-accelerate 0.3.3 accelerate-examples 0.12.1.0 accelerate-io 0.12.1.0 adict 0.1.0 aeson 0.6.0.2 aeson-native 0.3.3.2 aeson-pretty 0.6.3 aeson-schema 0.2.0.0 anatomy 0.4 arx 0.1.1 atomo 0.4.0.2 basic-prelude 0.3.0.0 BiobaseInfernal 0.6.2.0 BiobaseTrainingData 0.1.2.3 bitvec 0.1 blakesum 0.5 blakesum-demo 0.5 blaze-textual 0.2.0.8 blaze-textual-native 0.2.1.1 buildwrapper 0.6.1 cassava 0.1.0.1 classy-prelude 0.3.0 colada 0.5.1 collada-output 0.6 collada-types 0.3 couchdb-conduit 0.10.4 criterion 0.6.1.1 cryptocipher 0.3.5 CV 0.3.6.0 darcs 2.8.2 darcs-beta 2.7.99.2 dbus 0.10.1 factual-api 0.5.2 fay 0.9.2.0 freenect 1.0.2 gamma 0.9.0.2 ghclive 0.1.0.2 github 0.4.0 gloss-examples 1.7.6.2 GLUtil 0.2 gps 1.1 HarmTrace 2.0 hashtables 1.0.1.8 haskell-aliyun 0.1.0.0 hbayes 0.5 hedis 0.6.2 hedn 0.1.6.0 heist-aeson 0.5 hF2 0.1 HiggsSet 0.1.1 hinduce-associations-apriori 0.0.0.0 hinduce-examples 0.0.0.2 histogram-fill 0.7.3.0 histogram-fill-cereal 0.6.2.0 hit 0.4.0 hlbfgsb 0.0.1.0 hmatrix 0.14.1.0 hmatrix-repa 0.1.2.1 Homology 0.1.1 hsc3-sf-hsndfile 0.8 HSGEP 0.1.4 hsndfile-vector 0.5.2 hsnoise 0.0.2 hstatistics 0.2.4.1 instinct 0.1.0 ismtp 4.0.2 jmacro-rpc 0.1 json-builder 0.2.5 JSON-Combinator 0.2.8 JsonGrammar 0.3.2 json-tools 0.4.0 JuicyPixels 2.0.1 kmeans-vector 0.2 ks-test 0.1 lambdacube-bullet 0.2.1 lambdacube-engine 0.2.4 language-puppet 0.1.8.0 lda 0.0.2 levmar 1.2.1.3 math-functions 0.1.1.2 maximal-cliques 0.1 MC-Fold-DP 0.1.0.1 meta-par 0.3 meta-par-accelerate 0.3.5 MFlow 0.1.5.5 misfortune 0.1.1.1 modular-prelude 0.3.0.0 monad-ox 0.1.1 mwc-random 0.12.0.1 mwc-random-monad 0.3 NestedSampling 0.1.4 netwire 3.1.0 Noise 1.0.5 numbering 0.2.1 numeric-tools 0.2.0.0 Paraiso 0.3.1.2 persistent 1.0.1.2 polynomial 0.6.5 polynomials-bernstein 1.1.1 postgresql-simple 0.2.4.1 PrimitiveArray 0.3.0.0 property-list 0.1.0.2 qrcode 0.1.1 QuadEdge 0.2 random-fu 0.2.3.1 rangemin 2.2.2 repa-v4l2 0.2.0.0 resource-pool 0.2.1.1 resource-pool-catchio 0.2.1.0 RNAwolf 0.4.0.0 samtools 0.2.1.2 sequor 0.2.3 sgd 0.2.1 shell-escape 0.1.1 soyuz 0.0.0 splines 0.3 spool 0.1 StatisticalMethods 0.0.0.1 statistics 0.10.2.0 statistics-fusion 1.0.1 statistics-linreg 0.2.1 stunts 0.1.2 suffixarray 0.0.3.1 SVGFonts 1.1.2 svm-simple 0.2.7.1 swift-lda 0.4.1 sym 0.1.1 Sysmon 0.1.2 temporal-music-notation 0.2.1 tensor 0.2.0 tkyprof 0.0.6.3 tls-extra 0.4.7 triangulation 0.3 TrieMap 4.0.1 typography-geometry 1.0.0 unpack-funcs 0.3.0 vector-algorithms 0.5.4.2 vector-binary-instances 0.1.2 vector-buffer 0.4 vector-mmap 0.0.2 vector-random 0.2 vector-read-instances 0.0.2.0 vector-strategies 0.3 vector-th-unbox 0.1.0.1 vty 4.7.0.14 vty-ui 1.5.1 webdriver 0.4 xml2json 0.2.0.0 xsha1 0.0.0 yackage 0.6.0 yaml 0.8.1 yesod-core 1.1.2.1 yesod-json 1.1.0 yesod-routes 1.1.0.1 yices-painless 0.1.2 zoom-cache-sndfile 1.1.0.0

    Even without counting recursively, we easiliy see that vector has well past 150 reverse dependencies, making it a very used package. Even repa uses it, and the yesod web framework (which according to ohloh.net appears relatively large and healthy).

  • Number of contributors

    For darcs this can be done by

    darcs log | grep -e "^[^ ]" | cut -c 31- | sed "s/^[ ]//" | sort | uniq | wc -l

  • How easy is it to start contributing?

  • (in report) Latest project activity (e.g. which version of GHC does it compile on?)

  • (in report) Licensing

  • (in report) Funding

Ease of use and expressiveness

How easy is the language to use? And how expressive is it? Our aim is to find a language that might be suitable for a financial engineer and we thus want a suitably high-level language. It should be near the complexity level of R. We still want the language to expressive enough to cover the domain of financial algorithms.

Subquestions include

  • Which programs can we write, and which can't we write?

    • Can we write nested loops?
    • Does it include all of: scans, folds, zip/map, stencils,
  • How good are the error messages?

  • How high-level is it on the scale from R to CUDA?

Performance

How does the languages compare in a performance benchmark?

  • Benchmark of binomial pricer on expiry = 1,2,4,8,16,32,64,128 years.

  • Benchmark of Longstaff and Schwartz

  • How many in-code optimiser hints (inlining-statements, forcing of delayed arrays etc.) are necessary to get decent performance?

  • How does the performance of a naive implementation (no optimiser hints) compare to an optimised version?

Survey "VectorMARK" in progress

Clone this wiki locally