freenode/#lisp - IRC Chatlog
Search
9:11:20
flip214
because long lines that get broken might be interpreted as first line + syntax error or, worse, two individual lines
9:37:37
dim
what would you recommand to a retiree using windows who wants to hack some common lisp, in terms of setup? I'm thinking ACL or LispWorks might make sense in that case, right?
9:46:45
dim
yeah I told the guy to use Emacs if he already knows how to, or if he's ready to take on the learning curve
9:47:14
dim
the other options are for if he wants a windows native IDE for CL, I guess, where you can click and discover things
9:47:55
dim
Shinmera: with some luck this guy will to, but I just don't know him and won't be able/willing to offer any guidance other than an email sometimes, so...
9:49:42
jackdaniel
being able and willing two are two different things. if I had a choice I'd dump emacs today despite knowing it reasonably well
9:52:24
dim
oh? for me Emacs embeds my whole workflow, tailored the way I like it… I think the only reason I can work from a mac laptop is because I have Emacs and the underlying Unix tools easily available
9:53:55
jackdaniel
I agree it is a powerful tool etc etc, and when I'm installing Windows VM to test ECL usually I'm hacking from inside Emacs too
9:56:51
runejuhl
dim: maybe spacemacs? I've only tried it briefly, but it seems like a good introduction to emacs with a pretty sizable community
9:59:41
dim
I sent the email now, saying Emacs/SLIME first, then maybe ACL or LispWorks for having a windows like experience
10:00:34
dim
jackdaniel: oh and I think for hacking lisp I would like having a McCLIM based environement with some kind of graphics support and things, really, but well, it's not there yet
11:25:14
myrkraverk
flip214: (I honestly don't know much about the optional ; in JS, and the flak it's gotten) and that is precisely why I was surprised to learn Go doesn't have semi colons.
11:30:44
myrkraverk
Well, it's surprising enough for newbies, and sometimes people just want to align numbers with zero instead of space.
11:32:22
_death
newbies make tons of mistakes and this would just be another one.. and I doubt it's a very common mistake anyway
11:32:51
myrkraverk
I thought the idea behind Go (and Rust for that matter) was to create a language that'd be safer than C. Apparently Go has already failed in my opinion; not that I'm likely to learn much more of Go.
11:33:27
loke
myrkraverk: As I said on Mastodon some time ago, “Go is the Visual Basic of systems programming”
11:34:28
_death
Go fixes some C stupidities, though it lacks C's ABI.. it also has a nice and readable standard library.. but it's also kind of the antithesis to Lisp, so..
11:35:56
myrkraverk
Lisp is my go-to language for many, many tasks now; a lot of it has to do with quicklisp.
11:36:00
jackdaniel
I've heard the opinion, that it is an improvement over C (so basically that it is better C). But do we want to get stuck with another (albeit better) C for next 40 years? :-)
11:37:20
_death
it's an improvement in some respects, but not others.. also, why would we be stuck? we use CL :)
11:37:23
myrkraverk
I've seen a recent advertisement/comment/opinion that people need programmable programming languages for today's tasks -- and my thought was "we already have had that in lisp for centuries now"
11:38:20
runejuhl
Go is a decent language IMO, it's beginner friendly (good stdlib, highly opiniated wrt style making source easy to ready), the (weak) type system saves some errors, but the main attraction @work is that we can compile a statically linked binary that's relatively small and efficient
11:39:27
runejuhl
I'd love to replace it with something lispy though, but haven't found a good fit.. And I'm sure my coworkers would object a bit, since they have just gotten fairly procient in Go...
11:48:24
beach
When I give talks to industry, I always point out that I think a project leader or manager who chooses a programming language without an independent standard should be fired. Such a choice may very well require substantial maintenance work in the future, and in some cases complete rewrites (when the single implementation is no longer supported).
11:49:25
beach
Actually, I give them one more possible choice, namely to also hire an entire team of compiler experts that are able to keep the language they chose going even when it is abandoned.
11:52:30
beach
Thanks. I have given this a lot of thought actually, so I am glad that my work is recognized.
11:53:40
beach
In a talk like that, I talk about "risk analysis", and if they had done one of those, they would have seen the light. Unfortunately, most project leaders and managers don't even know what a risk analysis is.
11:54:10
beach
myrkraverk: Ask Google about Java. They were sued by Oracle after having chosen Java, thinking it was free.
11:56:09
beach
I require the standard to be "independent", i.e., not from the supplier of the implementation.
11:56:20
_death
since there is a clear divide between the users of the language and the designers (and implementers) of the language
11:56:32
myrkraverk
beach: Google also complained about "the community" dropping the JVM implementation that was formerly an Apache project; not ever mentioning that it was Oracle's move to make it cost real world money to maintain.
11:58:02
myrkraverk
I don't remember the specifics, but Oracle made the test suite cost real world money, if it wasn't used for OpenJDK and/or GPL licensed; something along those lines.
11:58:37
_death
and there are also nontechnical reasons that make deprecating yesterday's stuff with tomorrow's deprecated stuff a thing
11:59:35
dim
beach: the risk analysis certainly weights in the expected life time of the project at hand and the cost of a rewrite, either for using a new programming language, a new version of a non-standard programming language (PHP/Python I'm looking at you guys), or maybe even for architectural changes (micro services, distributed network / serverless / k8s and such)?
12:01:03
dim
with Golang, I kind of like the default tooling, wherein you don't have much to think about before you can build a project and have a program to run, static binary, it's quite easy
12:02:40
dim
I mean, I use CL to ship a program to people who are not expected to hack it, just use it, and they know nothing about CL
12:03:33
dim
I wish we had something like that for CL, including support for shared libs, or even better, having CL implementations of common libs so that you don't need the .so at all
12:04:13
dim
pgloader, pgcharts, pginstall, those are applications that happen to be written in CL; the REPL is awesome for me as a developer, totally useless for the users
12:04:33
runejuhl
dim: that sounds like what I've been looking for -- if you do find something, I'd love a heads up
12:08:13
dim
for pgloader, my whole goal is “Continuous Migrations”, that is, a way to automate a task and do it again and again, unmanned
12:10:49
_death
a repl doesn't exclude it.. I won't elaborate on the advantages, expect them to be obvious to people here ;)
12:12:01
jackdaniel
slapping REPL on top of some complicated software gives you nothing - not much different than attaching gdb to running C process
12:12:13
dim
yeah I agree, but it doesn't help solve the problems I mentionned in any way that I can see :/
12:16:20
jackdaniel
maybe that's why I don't like Emacs. I'm interested in editing files, not programming them.
12:17:22
jackdaniel
if we assume that Lisp is an application to write programs with, then I have to conclude that it is a very crappy application
12:17:50
Shinmera
dim: What's the difference? You're using an interface (text) to make the computer do things (evaluation).
12:18:03
dim
I don't use Emacs as an application either, it's an interactive environment that I can program to my desires, I like that
12:19:00
dim
Shinmera: I would say that for me, an application implements a solution to a use-case, or a set of use cases, it's not open-ended and supposed to be evolved by the user into something else
12:19:44
dim
when you're given lisp, nobody knows what kind of problem you're going to solve with it
12:19:55
Shinmera
My point is that the distinction between what people see as an "application" or not is very arbitrary. Whether you're pushing buttons or writing text is hardly consequential.
12:20:02
dim
when you're given an application, I'd argue that people know what kind of problem you might want to solve with it
12:20:47
dim
what I know for sure is that everytime a pgloader user sees the lisp REPL / prompt with the useful restart values, they feel like I didn't do a proper job at writing an application that just works
12:21:33
dim
it began with comparing Golang and Lisp in several dimensions, including the default tooling, and I think the default tooling for Golang makes a lot of sense
12:21:35
stacksmith
Modern idiocy is to create a lot of declarative layers like CSS or crap in Emacs. Once it gets big, there is no way to figure out who sets a color or responds to a message...
12:22:25
_death
dim: both CL and Elisp provide abstractions useful for particular domains (abstractions for creating abstractions, or abstractions for manipulating buffers and windows and points and marks and...).. this suggests to their users the kind of things they may be used for
12:23:49
dim
like saying that having gcc and the libc is preferable to shipping cat, it's a coupld open and dup calls anyway
12:24:53
dim
some users want to be able to use /usr/bin/cat without having to know how simple it is to write the C code behind it, that's my argument in favor of the go build default tooling vs the immense flexibility we have in CL with the REPL, I guess
12:25:25
_death
dim: it's more like saying that a Lisp with a properly designed CAT function can be nicer than UNIX cat
12:26:38
myrkraverk
And shipping a cat can be painful if it's not in a good enough box. They have claws.
12:27:09
dim
the unix box comes with a good enough REPL for most users, because they know nothing else, mainly, but that's not the point
12:27:27
dim
so default golang tooling is pretty good at targetting the Unix user experience, I guess?
12:28:04
dim
whereas the CL default tooling is meant for something else entirely, which means that using CL to target the unix user experience is full of traps, uneasy, and frustrating as hell
12:28:16
Shinmera
myrkraverk: My messages are: whether something is or isn't an application is entirely arbitrary, and: whether people are comfortable with something or not is almost entirely a question of presentation.
12:30:08
myrkraverk
dim: for my lisp code, I've settled on SBCL; which can be painful enough to handle, when shipping to many boxes.
12:33:54
jackdaniel
imho not in this case - it just introduces noise which (once again - imho) misses the point yet redirects people attention
12:51:18
_death
I suspect many of them are.. and this is why pgloader may be much more useful (hackable, extensible, maintainable) than a go-pgloader.. maybe 99.9% of your users don't care, but that is the target audience you picked :)
13:17:03
beach
schweers: I haven't decided that. Perhaps how special variables are handled in the presence of threads. But that's a good point.
13:17:57
schweers
is there any thread aware implementation in which threads don’t inherit the root binding of the main thread?
13:19:14
beach
In all implementations I know of, the global binding is shared between all threads and every subsequent binding is thread specific.
13:19:39
beach
And of some implementation doesn't do it that way, it would have to change in order to be WSCL conforming.
13:19:53
schweers
by global binding you mean the root binding, not the binding active when the thread is spawned, right?
13:21:15
beach
dim: Yes, and as the article by Hudak and Jones shows, the cost of learning a new programming language is minuscule compared to the potential savings in productivity of choosing a language that is adapted to the task at hand.
13:23:35
myrkraverk
By CL's default tooling, are we talking about the compiler/interpreter environment, or quicklisp?
13:24:34
beach
schweers: Only one that I know of. They don't exist because the cost of conducting one is exorbitant. Luckily, the US Navy did a small one once. It is not perfect, but it gives some indications.
13:27:52
schweers
but in all seriousness, given a Lisp OS, there should still be cases where a reboot is inevitable, right?
13:28:20
TMA
schweers: there are experiments in live kernel patching in linux (both suse and redhat are developing one, iirc)
13:29:11
dlowe
I would think that it's possible for any OS data structure to become corrupted in such a way that it will require a reboot to fix.
13:30:04
trafaret1
I have started using emacs I would like to have lisp like ipython shell in emacs where I type some expression and it will be instantly evaluate into text file beneath expression
13:33:24
_death
trafaret1: https://www.quicklisp.org/beta/ in particular "To install and configure SLIME"
13:33:33
svillemot
trafaret1: "apt-get install slime" actually works (though you won't necessary get the latest version, depending on your distribution)
13:33:36
trafaret1
I fall in love to emacs and shortcuts in programming I don't have expirience but I want start with lisp
13:34:28
beach
dlowe: Do you see what I mean about having to reboot even when the system is bug free?
13:35:07
shrdlu68
trafaret1: Great! Well, quicklisp is a package manager used for CL, used to install libraries not in the language's "standard library".
13:35:37
svillemot
beach: why do you recommend against using apt-get for install slime? (I'm maintaining the package in Debian)
13:36:56
beach
svillemot: Maybe my information is outdated, but I have seen several newbies in the past who do not use Quicklisp for installing SLIME and then they get outdated or incompatible versions. I will gladly accept being corrected.
13:37:05
trafaret1
for little correction I have started installing slime through apt-get and next do I need to add package from melpa into emacs?
13:37:49
beach
dlowe: Restart should not be needed in most cases for the LispOS I am planning, just like we don't need to restart our Common Lisp system when we update a function.
13:39:01
beach
dlowe: And, yes, the current situation is what it is because most existing operating systems have monolithic kernels.
13:39:18
svillemot
still, it is easy to use, since it registers the proper bits into both Emacs and ASDF
13:39:22
schweers
there are cases in which I have made a change and found it easier just to restart the lisp session than to "undefine" the relevant parts and reload code in the correct order.
13:39:35
svillemot
_death: in this precise case, trafaret1 told he was using an apt-based distribution
13:40:00
beach
schweers: Yes, there are situations like that, mainly because existing Common Lisp systems rely on that being a reasonable possibility.
13:40:09
_death
svillemot: yes, but other people in the channel may not be able to help with debian-specific issues
13:40:29
beach
schweers: SICL (the basis for the OS I am thinking of) has first-class global environments which will make many of those situations unnecessary.
13:41:15
beach
schweers: It is compatible with the standard, but it is an extension,yes. http://metamodular.com/environments.pdf
13:43:18
schweers
if I understand correctly, (some?) scheme implementations have an extra argument to eval, which is an environment. I suppose that is at least something.
13:44:44
schweers
trafaret1: if you mean “Can I produce standalone binaries?” the answer is that it depends on your implementation, but mostly, yes, you can.
13:45:38
shrdlu68
trafaret1: The distinction between language and implementation is rather clear in CL, but you'll get used to it.
13:51:56
trafaret1
I worring about hard connection between lisp and pure math stuff like lambda expression and recurrsion
13:54:53
trafaret1
shrdlu68: I mean does learning lisp require more math skill compare to c++ for example
13:55:08
shrdlu68
trafaret1: Lisp's reputation precedes it. Unfortunately almost everything in that reputation is inaccurate.
13:55:46
schweers
as lisp covers more ground than any other programming language or runtime I have yet seen (with the possible exception of concatinative languages), there is more stuff to learn. But in a way, this is an advantage. I always viewed compilers as a box of black magic (and to some extent still do), but lisp lets you, the user of the language, change how compilation works. this is something which takes some time to learn, bu
13:55:46
schweers
more than in other languages, because most other languages do not cover this topic in the languages themselves.
13:56:22
shrdlu68
trafaret1: In many ways CL is just a language that doesn't get in the way of your coding.
13:56:25
schweers
speaking of which: I find C++ templates hard to understand. But I have to admit that I never tried that hard :/
13:57:23
schweers
trafaret1: try not to be too put off by some things in the language and the standard that just seem weird. Almost everything in CL is the way it is for a very good reason.
13:58:20
schweers
yes, there are dark corners everywhere, but it seems to me that CL has surprisingly few such corners
14:02:02
schweers
Do people use lisp on microcontrollers these days? I know that there have been such projects, but I’m not sure it can be done with current free implementations.
14:03:01
trafaret1
about emacs I have quesion. It's very powrfull tool. Are here borgs who can programming at least 10 langauges in it?
14:04:19
shrdlu68
trafaret1: You don't need all that power. Learn what you need to get started, simple things like saving a file, and learn the rest on a need-to-know basis.
14:04:41
_death
shrdlu68: of things that are not widely and perfectly understood? nested backquotes, evaluation times, method combinations, restart-bind, the pretty printer, etc.
14:06:09
schweers
those things not being perfectly understood doesn’t necessarily make them dark corners of the language, if you ask me.
14:06:29
trafaret1
question for american fellows. Do you always buy books or can you download it from web and what kind of panishment for it?
14:11:48
shrdlu68
trafaret1: Americans are wealthy, generally speaking. They buy primarily because they can, not because of the law.
14:19:25
trafaret1
I know authtor who started gathering donats form people and write his book but the way he had gathered a decent amount of money and now this book is free
14:19:53
beach
Well, the entire idea of writing/recording once and making money N times is wrong in my opinion. I welcome the fact that most musicians now have to make money by working (giving concerts) instead.
14:21:01
schweers
I don’t think its ever been that different for the musicians themselves, at least those who did not produce overtly mainstream pop music. It has been different for the content mafia^W^Wmusic labels though.
14:22:11
rumbler31
I don't know, at least about books, the cost of printing is born by someone. If an author only gets paid once, they get paid once by whom?
14:34:30
stacksmith
The entire publishing model is _obviously_ wrong, since the only way to enforce payment is with a gun.
14:39:52
stacksmith
95 percent of the 'value' of purchasing a books has nothing to do with a book, but a bribe to avoid kidnapping, having your house torn apart and property confiscated, and extortion by the legal system.
19:51:56
phoe
jeosol: looks like https://github.com/Shinmera/oxenfurt - or that's what his github says