Hacker News new | past | comments | ask | show | jobs | submit login

As a meta comment, there will always be detractors of any even slightly esoteric language.

The author of pgloader[1] said the other day "When I told people I was going to use Lisp, I was told it was stupid because there weren't any libraries; when I packaged it for Debian, I was told that I had too many external dependencies"

It was probably different groups, but there were complaints both about not enough and too many libraries!

1: http://pgloader.io/




FYI, here is list of pgloader (direct) dependencies (35 of them): abnf, alexandria, asdf, asdf-finalizers, asdf-system-connections, bordeaux-threads, cffi, command-line-arguments, csv, db3, drakma, esrap, fad, flexi-streams, interpol, local-time, log, lparallel, markdown, md5, metabang-bind, postmodern, ppcre, py-configparser, qmynd, quri, simple-date, split-sequence, sqlite, trivial-backtrace, trivial-utf-8, unicode, usocket, utilities, uuid.


List of what they do, summary first, then detailed:

Portability libraries[1]6: bordeaux-threads, CFFI, command-line-arguments, trivial-utf-8, trivial-backtrace, usocket

Parsing 6: abnf, esrap, markdown, py-configparser, simple-date, quri

Database interfacing 5: csv, db3, postmodern, qmynd, sqlite

Build-tool/dependency management 3: asdf, asdf-finalizers, asdf-system-connections

utilities 3: alexandria, split-sequence, utilities

portable I/O & character encoding 3: unicode, fad, flexi-streams

sugaring 2: metabang-bind, interpol

Other 6: drakma(HTTP), log, lparallel, md5, ppcre(regex), uuid

abnf: parser generater for augmented BNF

alexandria: utility library

asdf-*: build-tool

bordeaux-threads: mutithreading primitives

cffi: foreign function (i.e. calling C)

command-line-arguments: exactly what it says on the tin

csv: comma separated variables (also supports similar things like tsv)

db3: dBASE III reader

drakma: http client

esrap: Parser generator

fad: Files And Directories (portable file-system)

flexi-streams: in-memory streams (file-like objects) and encoding

interpol: interpolated strings (e.g. variable substitution in strings). Also includes regex literals.

local-time: timestamps &c.

log: logging

lparallel: high-level threading

markdown: markdown

md5: md5

metabang-bind: macro library for doing various fancy bindings (setting a variable to a value for a particular lexical or dynamic scope) in a single construct.

postmodern: Postgresql interface library

ppcre: perl compatible regex

py-configparser: parser for .ini like files (compatible with the python "configparser" library)

qmynd: MySQL library

quri: fast URI parsing/emitting library ("quicker" than puri, the Portable URI parsing library)

simple-date: date/time; not sure what it offers that local-time doesn't

split-sequence: Splits sequences based upon value or function of value

sqlite: sqlite3 interfacing

trivial-backtrace: tool for getting backtraces

trivial-utf-8: Portability for UTF-8

unicode: things like character classes for Unicode

usocket: socket library

utilities: utilities library

uuid: UUID library

1: wraps commonly available, but not standardized behavior in lisp implementations: sockets, threads, debugger &c. often named "trivial-"




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: