What are the most used packages?

What are the most used Racket libraries, applications and languages?

I’ll admit I’m guilty of going whole releases without installing anything because the distribution has so much included.

If you reply with what you have installed I’ll tally it up!

3 Likes

I should go first

I also have some quickscripts and some plugins installed:

  • DrComplete
  • Files Viewer
  • Sauron
5 Likes

I have a ton (20?) of personal packages installed, mostly not on the package server, I'm not going to count those.

Some of my favorites:

  • frog : frog is indispensable in building my website. It basically is my website.
  • sugar : I use sugar all the time. Usually I'm reaching for frequency-hash, or one of the slicing functions.
  • crypto : all of the standard crypto functionality.
  • cover : check code coverage. This is an awesome package that I think isn't widely enough known. It really plays to Racket's strengths.
  • handin : well, obviously useful if you're running a handin server.
  • csv-reading : yep, reads CSV files
  • csv-writing : I just can't seem to remember what this one does.
  • html-parsing : parses html
  • sxml : parses & processes xml
  • pfds : purely functional data structures
  • text-table : displaying tables for monospace fonts
  • levenshtein : levenshtein distance. Almost seems like it should be a part of another package, just like
  • t-test : that's all, just the t-test function.

I bet I've missed a bunch of others.

EDIT: yours are also really nice: I think I'm very likely to go for gui-easy at some point. Also, if I find limitations in threading or 2htdp/images, I should reach for Qi or metapict.

4 Likes

I don't think I've re-installed all my packages since I switched to building from source, but since that's been a while, it looks like all I use for my recent projects are, in alphabetical order:

csv-reading
debug
frog
gregor
threading

I should confess that I may suffer from NIH more than most, but I'm trying to improve :slight_smile:

3 Likes

I rely on the generic graph library quite a lot.

I am also an avid user of Racket Mode, which is one of the main reasons Racket is my favorite Lisp as of today.

5 Likes

As of Sunday evening the top 14 is

  1. threading
  2. text-table
  3. gregor
  4. urlang
  5. sxml
  6. sugar
  7. sexp-diff-lib
  8. sawzall
  9. qi
  10. parsack
  11. mred-designer
  12. markdown
  13. html-parsing
  14. cover

Other popular packages:
unstable-pretty-lib, typed-stack, txexpr, search-list-box, syntax-macro-lang, static-rename-lib, scribble-abbrevs, reprovide-lang-lib, rackunit-spec, rackunit-abbrevs, rackjure, quickscript-extra, pollen, overeasy, nanopass, mischief, mcfly, http-easy, graph, gui-easy, frog, files-viewer, fancy-app, drcomplete, data-frame, csv-reading, al2-test-runner

Honorable mentions:
webscraperhelper, upi-lib, text-block, tasks, t-test, srfi-171, sicp, sawzall-lib, sawzall-doc, Sauron, satore, rktfetch, rsound, rebellion, rascas, racket-paint, quickscript-competition-2020, pfds, numspell, net-jwt, mike, metapict, measures, levenshtein, lang-file-lib, irregex, interactive-brokers-api, html-writing, handin, global, ebuild, drwhitespace, drracket-one-dark, define2, debug, custom-load, csv-writing, crypto, cover-coveralls, counter, binaryio, bazaar, andlet, adjutor

You can find all the packages listed by searching the package index.

This is not science. My methodology is...questionable. The sample is the people who responded on r/racket, discord, discourse, slack, racket-users as of Sunday evening. It would be good to have a better understanding of what people use.

I hope everyone had a good weekend.

Stephen

3 Likes

Racket-Mode is awesome!

4 Likes

I am deeply interested in this. Mainly because I am looking for good racket code to read. So thanks for organising this.

The results of my raco pkg show:

  • al2-test-runner - I just started looking at this to see if my tests could be more expressive
  • beautiful-racket - Becuase it's a fabulous book and I'm enjoying following along
  • cover - code coverage because I care
  • gregor - I don't know how I'd do date things without it
  • mock - mocks for TDD
  • mock-rackunit - rackunit forms that augment for mocks
  • txexpr - how I'm making HTML right now

Hope that helps :slight_smile:

1 Like

Those that I am aware I import/use off the top of my head:

  • gregor
  • racket-mode
  • threading
  • rackunit
  • web stuff: web-server, koyo, deta, north, marionette, db, forms, crypto
  • scribble
  • plot
  • pict

Regarding methodology, I'd suggest grouping by use case. Mine is tilted heavily towards the web, and that shows, as well as occasionally using Racket to plot graphs.

2 Likes

Thanks @robertpostill !

Thats one of my reasons too! Thank you for participating.

I haven't seen txexpr - I'll have to check it out. TYVM

1 Like

Thank you @marc !

Categorisation is a good idea - I could have got that from the Package server. Next time.

I was wrong to exclude the packages that are included in the Racket distribution. I love scribble and plot, and pict has a special place in my heart. :fish:

image

(PS @admins can we have a standard fish emoji please?)

1 Like

txexpr I found via Jesse Alama (https://lisp.sh/practical-html-generation-with-txexpr/). It's not like JSX/haml where you're writing templates then filling out the dynamic pieces. The major pro of that is you get a nice tree at the end and you can work with as you wish. The downside is I can't give off the source to a designer and have them collaborate with me easily. I'm going to take a look at using scribble for that job.

1 Like
  1. framework(gui)
  2. db
  3. sql
  4. plot
2 Likes

What works best when working with designers?

1 Like

Newbie here.

I've installed:

  1. threading , which is ubiquitously useful
  2. bencode-codec, aids bencoding in Bittorrent applications
  3. graph for tackling a couple of algorithmic problems
  4. sicp when I started out, to follow SICP conveniently

I also use racket-mode in Emacs ocassionally.

Looking to install qi next.

3 Likes

In re-reading that message I'm now aware that I'm indulging in sweeping generalisation :grimacing:.

So perhaps a better way for me to put it is that when I've worked with designers in the past we've often used a pattern where I've "worked up" to the HTML and they've "worked down" to the HTML. So they've designed mockups in a tool like Figma, turned that to HTML and then I've provided the dynamic sections of content in code.

That works even when a callout like {{results_table}} has gone into a larger HTML page. Because then the communication around things like CSS styling has been more "well I want the table to use these styles" and then I've taken a sample HTML table and used the styles given. And the designer can have relatively unfettered commit rights to the repository.

In some cases I've used markdown as a slightly less verbose HTML and the results have been OK. But as not as good as having real HTML with markers for dynamic content.

Does that make more sense?

3 Likes