I threw together a little code tonight to calculate the Katz centrality of packages on Hackage. This is a measure that states that a package is important if an important package depends on it. The definition is recursive, as is the matrix computation that converges towards a fixpoint to calculate it.

Here are the top hundred Hackage packages as calculated by this method, along with their numeric measures of centrality, to which I’ve given the slightly catchier name “mojo” here.

This method has a few obvious flaws: it doesn’t count downloads, nor can it take into account packages that only contain executables. That said, the results still look pretty robust.

package | mojo |
---|---|

base | 10000 |

ghc-prim | 9178 |

array | 1354 |

bytestring | 1278 |

deepseq | 1197 |

containers | 994 |

transformers | 925 |

mtl | 840 |

text | 546 |

time | 460 |

filepath | 441 |

directory | 351 |

parsec | 299 |

old-locale | 267 |

template-haskell | 247 |

network | 213 |

process | 208 |

vector | 208 |

pretty | 187 |

random | 172 |

binary | 158 |

QuickCheck | 130 |

utf8-string | 128 |

stm | 119 |

unix | 116 |

haskell98 | 100 |

hashable | 96 |

attoparsec | 92 |

old-time | 88 |

primitive | 87 |

aeson | 72 |

unordered-containers | 70 |

syb | 69 |

data-default | 67 |

split | 64 |

transformers-base | 63 |

blaze-builder | 62 |

monad-control | 62 |

conduit | 62 |

semigroups | 59 |

cereal | 57 |

tagged | 57 |

bindings-DSL | 55 |

HUnit | 55 |

gtk | 54 |

Cabal | 54 |

lens | 50 |

OpenGL | 46 |

haskell-src-exts | 45 |

cmdargs | 45 |

HTTP | 44 |

http-types | 43 |

extensible-exceptions | 43 |

glib | 42 |

utility-ht | 41 |

data-default-class | 38 |

parallel | 35 |

resourcet | 34 |

semigroupoids | 34 |

xml | 34 |

comonad | 33 |

lifted-base | 33 |

cairo | 33 |

safe | 32 |

MissingH | 31 |

exceptions | 31 |

base-unicode-symbols | 31 |

ansi-terminal | 31 |

vector-space | 30 |

nats | 30 |

OpenGLRaw | 30 |

monads-tf | 28 |

wai | 28 |

hslogger | 28 |

regex-compat | 28 |

GLUT | 27 |

void | 27 |

blaze-html | 26 |

hxt | 25 |

dlist | 25 |

zlib | 25 |

hmatrix | 24 |

SDL | 24 |

case-insensitive | 24 |

scientific | 23 |

X11 | 23 |

tagsoup | 22 |

regex-posix | 22 |

HaXml | 22 |

system-filepath | 22 |

enumerator | 22 |

contravariant | 21 |

base64-bytestring | 21 |

http-conduit | 21 |

blaze-markup | 21 |

MonadRandom | 20 |

failure | 20 |

test-framework | 20 |

xhtml | 20 |

distributive | 19 |

Brian, it looks like your blog is somehow broken – the latest post about attoparsec is shown on the homepage but http://www.serpentine.com/blog/2014/05/31/attoparsec/ shows 404

Your share is the great knowledge I have gathered, you are an important person I admire, thank you

One of a kind blog. Thank you so much for sharing this. aaadfencedeck.com/deck-building-company/

Wow. I appreciate your insights!

Kelly | https://www.adrenalinemarketingpros

Hey there! So, this method we’re using has a couple of flaws when we use it in Marietta – it doesn’t count downloads and can’t take into account packages that only contain executables. But, don’t worry, the results still look pretty solid!

Thanks for providing the link. Been on the lookout for this one Vancouver Metalwork

Wow. Thanks for sharing your ideas Stone Block

The article is much appreciated. Amazing write up

Retaining Wall Contractors

Amazing work. The classic attoparsec blog.

Concrete Finishing Victoria

That sounds like an interesting project for drywall! Katz centrality is a measure of centrality in a network that takes into account the total number of walks between a pair of actors.

The package looks amazing! Thanks for sharing it with Charlotte Drywall Contractors. I’ll definitely let my friends know about it!

More power!

This is a classic blog. Construction

Brian, it looks like your blog is somehow broken

Jules| El Paso Fence Contractors

Good content. Landscape Pros

This is a fascinating approach Baltimore Concrete Services. Great work!

Considering dependencies for importance is a unique twist. | Midland Drywall Contractors

Good post. See you guys on another blog! Retaining Nanaimo

Fascinating approach! “Mojo” certainly adds a catchy flair to centrality measures.

It’s fascinating to see how you’ve applied network analysis concepts to measure the centrality of packages on Hackage. Katz centrality indeed provides a valuable perspective on package importance within the Haskell ecosystem, particularly emphasizing the influence of dependencies. corporate events

Cheers to your coding adventure! | insulate basement company

It’s nice seeing this informative content here. lip flip

Thank you for sharing this post. house painters

Thanks for the info you shared.

Glad to check this site. Thanks for sharing. Germantown Concrete concrete foundation

Augusta is looking forward to hearing more about your findings!

Great content!

Thanks for keeping us posted.

This is awesome! Thanks for the share. residential window cleaning

It’s impressive that you’ve developed a code to calculate Katz centrality for packages on Hackage! While it may have its limitations, such as not factoring in downloads or packages containing executables, it’s still a valuable approach for identifying important packages based on dependencies.

Despite its limitations, the results sound promising. | Irving Concrete Company

Thanks for the great content!

Very informative post! Great share. Collierville Concrete Company concrete contractor

Impressive! Haskell packages are truly promising to our drywall company. Keep up the great work!

I’d love to see the list and delve deeper into the results!

Can i use this package together with my website plugin? What’s its impact in the long run?

Calculating Katz centrality for Hackage packages to measure their importance based on dependencies is an interesting approach to understanding the influence and connectivity of packages within the ecosystem. Katz centrality is particularly useful in networks where the influence of nodes is cumulative and recursive, such as in software package dependencies.

Great Post!

Calculating the Katz centrality for packages on Hackage can indeed provide valuable insights into the significance of each package within the Haskell ecosystem. Katz centrality, which measures the influence of a node within a network by considering the importance of its neighbors, is particularly suited for dependency graphs where the importance of a package is propagated through the graph of dependencies. https://cprpool.com/

It’s great to see this information here. plaster repairs

This post takes a fun approach, using graph centrality (think popularity in a network) to identify Haskell’s most “important” packages. Imagine packages with lots of connections and influence as the coolest kids in school!

Looking forward to seeing more information shared from this site. concrete repair

Wow, the results are looking great!