freenode/#lisp - IRC Chatlog
Search
17:23:53
samlamamma
You know, Lisp is really the ultimate CRUD-application builder. Just provide the definition of your data and Lisp can generate all the code to transfer it between your app, the database, the protobuf layer, what have you.
18:06:29
beach
ACTION learned a new acronym today: https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
18:13:28
beach
Databases seem to imply copying, and copying is contrary to the semantics of Common Lisp, so I am trying to figure out ways of managing data without copying it.
18:21:03
shka_
beach: yeah, you see this is stuff used to build every single webapp, and since it is used to build every single webapp efforts has been made to make it painless even though it still sucks
18:23:49
shka_
at this point potential for the change is minimal, everybody wants to have database in a separate docker etc.
18:29:08
asarch
And when you write your own implementation, how do you know if it is 100% compatible with the standard?
18:29:40
jackdaniel
asarch: there are ansi-tests written by pfdietz, they are very useful when looking for non-conformities
18:40:38
p_l
beach: have you seen GemStone/S? While it's proprietary, the source should be interrogatable at runtime, and it's based about object persistence at language level, iirc
19:33:32
vms14
It's too soon for me to have changed, but I start to see how you change your mind gradually while learning lisp
19:35:04
vms14
I guess the first step is realizing everything is made of abstractions and the way you don't care about non-yet-defined things. But I cannot explain it well since I'm only having a little taste of common lisp
19:59:23
aeth
vms14: It's kind of the opposite of abstractions here. Almost every other language offers heavily abstracted syntax.
20:00:56
aeth
for foo[42] instead of (aref foo 42) and saving maybe half a second of typing and a few characters, you lose a lot, particularly the ability to conveniently define your own syntactic abstractions
20:02:18
aeth
Well, I mean, many languages are stuck with (aref (aref foo 42) 15) instead of (aref foo 42 15) because they're stuck with foo[42][15] instead of having a true foo[42,15] or whatever because that would require new syntax
20:02:28
aeth
So even in my simple example what seems harder winds up being more powerful because it's extensible
20:03:02
vms14
lisp not only lets me build, it also has a lot of builtin functions prepared just to create abstraction