freenode/#lisp - IRC Chatlog
Search
5:56:56
beach
Do you mean "why is it theoretically impossible?", or "why is the world currently set up so that it can't?"
5:57:46
beach
As I understand it, it can. But I am not very good with web stuff, so I'll let someone else answer that.
5:58:22
Usersda
theoretically a server could be set up to parse a lisp convention/dialect the way it interprets html, no ?
6:06:34
no-defun-allowed
I think Tymoon uses a HTML-lookalike templater, which you can put embedded Lisp forms in. At least the plaster tool did when I modified it.
6:08:15
no-defun-allowed
You can generate HTML, CSS and JavaScript from Lisp macros, and I've used some libraries for those a few times before.
6:17:35
Usersda
what i mean is, why does firefox for example interpret html, but any number of browsers can't read a lisp file. can't lisp be written in a hyper text markup way ?
6:18:26
beach
Usersda: You are basically asking why current technologies have made crappy choices. That's a very tough question.
6:20:45
phadthai
(:html (:head (:title ...)) (:body ...)) ? If so some systems provide macros for such
6:21:09
beach
Usersda: Yes, it's all habit. Like I often put it, people spend a lot of time and energy to avoid having to learn Common Lisp.
6:23:01
Usersda
more complex reltionships like DOM in javascript, frames ect could all be expressed in the same language. Instead of having employers for instance asking you if you are proficient in spanish, arabic and chinese, they would be like, how experienced are you with english applied to dynamic web design.
6:24:35
no-defun-allowed
If I redid the web, I would make it a distributed object system, and ask objects to draw themselves on the screen and handle events, instead of emitting a markup language no one knows how to reimplement.
6:25:30
no-defun-allowed
But, yes, you can make an Uber clone using Lisp libraries. (Except that it won't handle the legal actions to not consider your drivers employees.)
6:25:34
Usersda
Like i was recently getting a quote from linode, and their estimate wizard was intense. I still don't know if I were to rent some server space, would i be able to implement lisp in a large production that can scale.
6:25:58
fiddlerwoaroof
If you want to generate HTML for a website, you can use something like spinneret
6:28:34
no-defun-allowed
Usersda: We have run projects on OVH with a small budget. There is also Heroku (with <https://github.com/jsmpereira/heroku-buildpack-cl>) which is free, if you can handle the "serverless" management stuff they do.
6:29:50
Usersda
fifflerwoaroof: i'm not so much exploring ways to translate. I'm wondering what the actual advantage of html is. Like the chinese counting system is said to be easier or faster to sum totals. to
6:30:24
no-defun-allowed
A web browser is the most portable virtual machine ever made. Even Java doesn't have nothing on its usage.
6:30:27
fiddlerwoaroof
Most things are the way they are because of relatively arbitrary decisions made sometime in the past
6:30:57
fiddlerwoaroof
Now, we're stuck with HTML/CSS/JS just because people already know them, so it's easy to find people to work for you
6:31:47
fiddlerwoaroof
It's an annoying cycle, and it's nearly impossible to break because unusual technologies generally get scapegoated
6:32:55
fiddlerwoaroof
The fact is, when it comes to things like picking programming languages, companies look for the languages that are easiest/cheapest to hire for
6:34:21
Usersda
well python is only easy/cheap to hire for because it blew up in the 2010's for some reason.
6:34:26
no-defun-allowed
Efficiency is not well defined. "The cheapest to hire for" may be the most efficient to an accountant.
6:35:00
fiddlerwoaroof
Something like Java is popular because Sun and other companies spent billions of dollars marketing it
6:35:18
fiddlerwoaroof
And then universities all decided it was the future and started teaching it to everyone in CS
6:35:23
Usersda
i can define it as such : if i have to hire someone who has to be experienced in chinese, spanish and arabic to write an ping pong slideshow in english....like wtf ?
6:35:45
fiddlerwoaroof
The thing is, programming languages aren't as hard to learn as natural languages
6:36:12
fiddlerwoaroof
I can, and have, gotten a job writing mainly a language I didn't know and learned enough to do good work over a couple weeks
6:36:35
Usersda
even before i came accross lisp i would look at python and c++ and be like...there must be a better way.
6:37:40
Usersda
it's really affecting me, because i feel like lisp was hidden from me *insert zoolander crazy person meme*
6:39:21
fiddlerwoaroof
I learned it a long time ago, and I never really noticed marketing the way Java was
6:39:39
fiddlerwoaroof
But, I think libraries like numpy and it's relatively readable syntax made a huge difference
6:40:04
no-defun-allowed
(I really dislike most pseudocodes, so that's not a very high standard. But they do say that.)
6:40:33
fiddlerwoaroof
And, it's standard library has enough to cover most of the utility scripts I write
6:41:02
fiddlerwoaroof
There are some things that are really annoying to do in CL: like, there's no high-quality library for dealing with IMAP
6:42:28
Usersda
technically we could have different formalization of lisp for web service and a different one for locally executed scripts. The way you don't use the same terms and structures or tones at church as you do with friends.
6:44:45
Usersda
"The original Interim Mail Access Protocol was implemented as a Xerox Lisp machine client and a TOPS-20 server. " wtf
6:47:27
Usersda
even reddit was originally written in lisp. then all of sudden somebody decided we needed 50 languages and 3 years of comp sci to work on a underwear renting website.
7:04:07
Usersda
"Our point of view is that most data bases are accessed by programs written in several differentlanguages, and we do not see any programming language Esperanto on the horizon." lol
7:16:07
Usersda
which in light of the constant cature of lisp projects by other languages once they start scalling , is like illuminaty territory
7:18:38
Usersda
anyways , thank for your input friends, i get mad sometimes so sorry about the rants , i just feel like so much time has been wasted
8:54:13
jeosol
I recently dabbled with it again, and someone here ( i forgot who), I think Luis, showed me some lisp interface libs
8:55:08
beach
My (admittedly small) family was in charge of the documentation for CPLEX for a long time.
8:57:02
jeosol
btw, been trying to do remote calls to scale my applications. I recently started using docker and learned about swank-client.
8:59:04
jeosol
I am doing some benchmark now running async jobs, seeing how may connections I can make to a docker running lisp (one container).
9:07:49
beach
Actually, Bike and karlosz are the ones working on the compiler these days. I am doing bootstrapping.
9:10:29
beach
jeosol: We have also forked off a few projects. Eclector is quite good these days. Trucler (lexical environments) seems to work. So does Clostrum (first-class global environments). Incless (Common Lisp printer) is being worked on.
9:12:07
beach
And of course there are several tools that are independent from the SICL project, like Clouseau, McCLIM, CLIM flamegraph, etc.
10:41:31
heisig
What is the state of Common Lisp in Visual Studio Code these days? I am asking because some of my students are very interested in working with Lisp, but don't want to switch to Vim or Emacs.
10:43:11
moon-child
heisig: maybe try https://portacle.github.io/? It's an 'emacs distro' bundled up with slime and sbcl
10:45:05
heisig
I know about Portacle. That is what I usually recommend newcomers. But I still need to explain plenty of C-c C-... tricks before they start enjoying it.
10:45:32
no-defun-allowed
There is https://marketplace.visualstudio.com/items?itemName=ailisp.commonlisp-vscode but there's no debugger support apparently.
10:46:11
heisig
flip214: Sure, that works for some people. But I still feel I am scaring away 50% of the potential Common Lisp programmers.
10:48:05
heisig
Interestingly, the group of people that doesn't want to learn Emacs also doesn't care about the full power of Swank. They usually just want completion and indentation.
10:55:22
jackdaniel
beach: https://ilyasherdotorg.files.wordpress.com/2020/01/too_busy_to_improve_-_performance_management_-_square_wheels-1.png -- related picture
10:55:45
beach
If I were an employer, I would ask the university for a list of those, so that I wouldn't bother interviewing them for a possible job.
10:56:56
flip214
heisig: I think that's a good initial filter... just make "learn vim or emacs" (or in the other order) 20% of the final rating of that class ;)
10:57:26
flip214
only people who're interesting in learning the right tools will know the right tools later on!
10:57:27
jackdaniel
that said, I'm sure that it would be easier to sell unknown features like slime had the person not need to learn about emacs first
10:57:49
jackdaniel
(and there are efforts towards that goal, there is i.e slimv for vim, and I think that there is a client for the "atom" editor)
10:58:08
jackdaniel
so things are not that bad, probably more a discoverability problem than a wall for newcomers
10:59:41
beach
When I was in charge of the undergraduate program, we had a first-year course called "development environments" where we taught them Unix tools, Emacs, version control, GDB, etc.
11:00:59
beach
jackdaniel: Exactly! And during the rest of the teaching program, we can assume knowledge of those tools.
11:01:05
phoe
these are important because they still make use of swank, and they reimplement just the frontend/slime part
11:01:08
no-defun-allowed
heisig: I agree with beach, I think they're missing out. There's still a bit more one can get out of that VS Code extension though, but it may just be a hassle to set up.
11:01:38
phoe
I assume that someone with enough patience could implement a swank frontend in vscode, too; it just hasn't been done because nobody did it
11:01:39
heisig
Firstly, it is not the case that you can't be productive outside of Emacs (blasphemy, I know).
11:01:51
jackdaniel
beach: that reminds me the book "concrete mathematics", very useful things. but I'm getting into offtopic :)
11:02:19
heisig
But more importantly, I see that many people learn new languages after casually tinkering with them.
11:04:06
heisig
phoe: Thanks for pointing me towards the sublime and atom plugins. That could be useful.
11:04:21
no-defun-allowed
To some extent, it would be like learning Smalltalk with just terminal IO (like with GNU Smalltalk or that didactic subset from that miniature interpreter tutorial) - but I guess you can still use SBCL's debugger and stuff with just a terminal emulator.
11:06:37
beach
heisig: You seem to suggest that the problem is just one of documentation. Like, if it weren't presented as "First learn Emacs", but as a complete environment, then it would be an easier sell.
11:08:58
ck_
maybe incentive is also a factor, a demonstration of what value can be gained by investing the time
11:09:00
phoe
emacs has multiple idiosyncracies that do not make sense to people used to other editors, with the most famous one being C-z C-x C-c C-v not doing what the average non-Emacs user expects them to do
11:09:02
jackdaniel
one could argue, that learning emacs increases productivity, and that position could be defensible, however when someone wants to learn common lisp to increase productivity, having an emacs as a prerequisite seems like a big distraction -- that said, I have a strong recollection of such discussions on this channel :)
11:09:24
ck_
I remember fondly a little swf screen recording on the slime website, narrated by a person called yusuke I believe
11:10:18
phoe
I am currently helping one person learn Common Lisp. learning Emacs, as much it is a contemporary prerequisite for real CL work, is also a distraction because I want to spend time teaching CL, not to spend time answering "how do I undo the last thing I did in this editor, control-z does a weird thing"
11:10:58
phoe
ultimately, to total newbies, I want to teach Common Lisp, not Emacs - and Emacs makes this impossible
11:12:44
phoe
it's an amazing recent development; I might actually try it someday with slima instead of emacs
11:13:33
heisig
We were also discussing a fundraiser for better VSCode integration at SBCL20. But I think that discussion went nowhere.
11:14:57
beach
phoe: So that suggests that only known tools are allowed. But doesn't that contradict the fact that people seem to be willing to learn a new IDE for a new language? Or have I misunderstood that?
11:16:05
heisig
scymtym: That is why I was asking about the current state of things. Is some of this already in a presentable state?
11:16:51
beach
phoe: If it just a problem with Emacs key sequences, then one could teach them the use of the menus.
11:17:23
scymtym
heisig: i don't know. mine isn't. it is a vehicle for playing with static analysis. one other one is a SWANK adapter, i think
11:17:39
jackdaniel
beach: emacs has more unusual quirks that are annoying at times - like automatic frame managament when a debugger pops up
11:20:02
phoe
If you try to bootstrap knowledge from an environment that is already somewhat familiar to people, then there is less to learn in order to be able to use the language.
11:20:12
phoe
If you try to bootstrap knowledge from an environment that is unfamiliar to people, then there is much more to learn in order to be able to use the language.
11:20:54
phoe
And that's not a deal that everyone wants to make, since time is the ultimate currency.
11:21:37
heisig
beach: Selling a programming language is not so much different than selling, e.g., clothes. The most important part is (unfortunately) not the quality of your products but to get people into your shop in the first place.
11:33:59
beach
I still feel that some important piece of the puzzle is missing here. I guess I'll think about it over my lunch break.
11:36:59
scymtym
i wonder how pharo is sold to people. maybe it is easier since the editor question doesn't come up if you only offer one complete environment
11:40:33
green_
I don't get the clhs docs for 'search'. http://clhs.lisp.se/Body/f_search.htm . What is 'start-end' that the Description references?
11:46:52
green_
is anyone thinking of doing that.. just with fixes like this, which is an obvious error?
11:48:24
jackdaniel
since it is obvious, there is not much incentive to undertake a massive endavour of pushing for a new standard
11:49:26
scymtym
beach has plans for such a document which would focus on corrections and clarifications. i don't think the result is intended as a new standard, though
11:52:45
phoe
there were several initiatives to produce a new CLHS-like document, but nothing conclusive just yet - it's a massive amount of precise and thankless work to do something like that
11:53:24
phoe
(*especially* if your want the document to be machine-reproducible from source TeX files that CLHS was generated from)
11:54:57
green_
thanks. the :start-end fix isn't in that list. I wonder if there are many more of those.
11:57:31
mfiano
I can also speak from experience. I spent about a month total and got less than 1% finished.
12:02:48
green_
somebody should make a browser plugin that applies these changes to the online spec :)
14:56:56
jmercouris
let's say I want EVERY class that inherits from class "Salmon" to implement a "Swim" method
14:58:17
jmercouris
if it isn't possible to enforce a protocol, what is a good way of showing that in the design that I intend for a protocol to be followed
14:58:27
jackdaniel
(defmethod swine :around (object) (if (deerp object) (call-next-method) (error "not a deer")))
14:59:40
jmercouris
because swine is a noun, and I'm having a lot of trouble thinking about it as a method
14:59:44
jackdaniel
no, swine was an implementation of the swank protocol for climacs, I have no interest in swimming
15:01:11
jackdaniel
the point is that you may put an around method specialized on t that checks preconditions
15:02:55
jackdaniel
that would be answers. yes, you could use a library traits, define a :before method instead, define a non-standard generic function that checks the type of an argument
15:03:33
jmercouris
but I am really thinking about how to indicate that a specific object should conform to a protocol
15:04:32
jmercouris
I guess I could check to see if there exists a method that specializes quack on that object
15:15:21
phoe
which I guess should still work even though I have not taken a look at it in a long while
15:43:37
Lycurgus
phoe, I meant that I presume the collective readership/audience will appreciate both the function and it's documentation
16:45:44
mfiano
I only know of one threading macro library in CL that handles diamond symbols at an arbitrary depth, and at first glance it appears this one does not.
16:46:21
phoe
arrow-macros depend on a code walker to implement this, but the author of arrows does not want to depend on such a heavy piece of machinery
16:52:48
mfiano
When I used threading macros, I switched to arrow-macros because limiting diamonds to the top level is pretty restrictive in the code I was writing
16:53:10
Bike
looks like it would happily replace the <> in '<>, since it doesn't know anything about lisp?
17:10:55
jeosol
Is there anyway, I can build an executable (SBCL) but have it run and enter a repl. I understand building application takes an entry function. I am trying to avoid (re)building a docker, if I can just rebuild on my local machine, then push to docker.
17:11:29
jeosol
Using core files, I obviously run into the issue of different runtime. Is there some hack around this?
17:11:40
lotuseater
but in a class that inherits from superclasses the :allocation :class isn't given to the subclass
17:12:17
jeosol
really. I tried to build a core file on my box but push it to the docker image and do sbcl --core corefile
17:12:53
jeosol
so maybe that is the hack I need, build an executable but leave out the entry function
17:23:59
jeosol
phoe: for my learning, when you say match, that's takes into account the machine/os. So using the same SBCL compiler v2.0.10 and say OpenSuSe, will not work for SBCL v2.0.10 and Debian
17:24:59
phoe
jeosol: AFAIK they must have the identical binary, so differently compiled binaries with different md5 hashes likely won't work
17:26:51
lotuseater
as far as i understand yet arrows are coming from category theory und functional programming for concurrency
17:28:48
_death
ebrasca: they may make sense in cases where you have a lazy processing pipeline, e.g. with series (->> (scan-file ...) (map-fn t ...) (choose-if ...) (collect)) but otherwise they're just massively abused
17:29:14
jackdaniel
is it possible on sbcl for the object to change its address (or whatever that number means) asynchronously? I mean the number in #<some-class {123412341234}>
17:30:29
jackdaniel
well, asynchronous in a sense that I'm not doing anything what could cause side effects, that's not the right term
17:31:09
jackdaniel
but it "looks like asynchronously", and it confused me quite a bit, because I was trying to find a piece of code that swapped my object (and find out when that has happened)
17:32:30
jackdaniel
thanks Bike and beach, that's the only explanation I could come up with - and printing a gensym seems to "prove" that it is the same object
17:33:47
beach
Sure. It happens to me all the time, given that I probably allocate huge amounts of memory, so the GC runs all the time.
17:38:34
jeosol
I know there is talk about CL libs having poor documentation, but given most libs are developed by small teams/individuals, there isn't much time to do full documentation for every function and also show how to use them.
17:38:57
jeosol
I say that in the light of having discovered gems and use cases by actually looking at library source code.
17:39:18
beach
jeosol: I don't think you can generalize that way. The libraries I mentioned before are usually well documented.
17:39:27
phoe
jackdaniel: yes, the GC is moving these objects - I asked about specifically this on #sbcl some time ago
17:39:46
phoe
in other words, the identity printed by print-unreadable-object is allowed to change at any time
17:40:29
jeosol
Pardon if my comment came out as a generalization. it is also not intended to mean we should not document or make things clearer
17:41:33
jeosol
I am considering teaching CL in a class setting, not formal, but introducing the students, so look for ways to avoid the frustration I hear with emacs and other tooling. I am no expert though
17:42:00
jeosol
esbrasca: I guess, I conflated "tutorial/examples" with documentation. I meant the former.
17:43:16
jackdaniel
sure, I'm usually recommending this writing by sjl_ when the topic of documentation comes up, because I've really enjoyed reading it
17:48:52
jeosol
beach: I do remember your metamodular document has a section about guidelines for documenting libraries