ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Picolisp latest found at http://www.software-lab.de/down.html | check also http://www.picolisp.com for more information
alexshendi has quit [Ping timeout: 252 seconds]
stultulo has joined #picolisp
rgrau has quit [Ping timeout: 252 seconds]
akkad has quit [Ping timeout: 252 seconds]
f8l has quit [Ping timeout: 252 seconds]
stultulo is now known as f8l
rgrau has joined #picolisp
akkad has joined #picolisp
alexshendi has joined #picolisp
yumaikas has quit [Ping timeout: 255 seconds]
<rick42> beneroth: actually, they're not saying (yet) what happened. report in a few days: https://status.npmjs.org/incidents/41zfb8qpvrdj
<rick42> cue suspenseful music :)
<rick42> glad i'm not working in that ecosystem
orivej_ has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
aw- has joined #picolisp
yumaikas has joined #picolisp
<aw-> npm world is such a goddamn mess
<aw-> same with golang
<aw-> horrible programming languages and ecosystems
<yumaikas> I'd say npm is messier
<yumaikas> Given the recent kerfluffle
<yumaikas> Though npm is also easily more popular
<yumaikas> Masses bring messes
<aw-> perhaps
<aw-> more like Masses of noobs bring messes
<yumaikas> aw-: What about golang so disgusts you?
<yumaikas> aw-: Masses mean more noobs, it's implied, and something that is a side-effect of popularity
<yumaikas> And not necessarily a bad thing in itself
<aw-> haha agreed
<yumaikas> I am curious what you dislike about Golang, because I've found it to be an exellent ecosystem as a hobbyist
<aw-> for golang, the syntax is ugly, and 99% of the Go projects I've found interesting have over 200+ open issues (bugs), and only 50% implementation of what they're trying to do
<yumaikas> (In particular, Golang servers are *super* easy to adminster)
<yumaikas> aw-: What projects do you find interesting in Golang?
<aw-> nothing is complete, everything is full of bugs, and each app has as many external dependencies as every other NodeJS project
<aw-> examples: IPFS, SyncThing, Letsencrypt (boulder)
<yumaikas> aw-: There are some things that I think are decent in golang. Linx is fairly decent. I'll admit that my own projects (https://pisc.junglecoder.com and related things) have non-zero external deps, and are incomplete, but for me, that's kinda the nature of a side-project.
<yumaikas> I've not had major problems with SyncThing ?
<yumaikas> Other than it not working so well on Andriod, but for servers and PCs it works quite nicely, IME
alexshendi has quit [Ping timeout: 252 seconds]
<yumaikas> aw-: What language community actually demonstrates the type of maturity of features that you're looking for?
<yumaikas> Especially in the OSS work that has been going on for less than a decade?
<aw-> #picolisp
<yumaikas> (I don't think of 200+ issues as a sign of having a lot of bugs, so much as I think of it a sign of having lots of users)
<yumaikas> Less than a decade
<yumaikas> But I kinda understand your point
<aw-> i don't trust any software created less than decade ago
<yumaikas> Though PicoLisp also has a lot less maturity than Golang in some key areas IMO, at least on the server front
<aw-> ;)
<aw-> i don't know what you mean by "maturity"
<yumaikas> HTTP2 support, a runtime that isn't limited to only really being effective on Posix style forking, things like that.
<aw-> Nginx has HTTP2 support
<aw-> HTTP2 is absolutely terrible as well
<yumaikas> I think the performance gains it gets are at least a step in the right direction
<aw-> debatable
<aw-> you need more powerful CPUs to process HTTP2 requests
<aw-> how is that better?
<yumaikas> What, because of the required encryption?
<aw-> encryption and decoding of the binary format
<yumaikas> I don't know the details, but I suspect the binary format decoding is actually faster than text, not slower
<aw-> which is much more complex than the current HTTP format
<aw-> that's what i mean "debatable"
<yumaikas> Fair enough point, I suppose.
<aw-> i can imagine if chip (CPU/MCU/whatever) had an instruction set designed specifically for decoding HTTP2 requests, it would be much faster than text
<yumaikas> aw-: No, I'm 95% certain HTTP2 was built to be faster than HTTP1 in the common case
<yumaikas> Trading off a little more CPU usage for much better IO usage
<aw-> yes, assuming your CPU is fast enough to decrypt, decompress, and decode the requests
<aw-> yeah that's exactly the tradeoff
<yumaikas> I don't have benchmarks, mind, so I'm speaking from a loose understanding, but being able to resuse a connection helps reduce header and reconnect overhead
<aw-> yes same here, no benchmarks ;)
<yumaikas> aw-: Why, have you run across machines where CPU usage of HTTP2 specifically is a problem?
<yumaikas> Also, HTTP2 comes from Google and Co, and server performance is money to them
<aw-> no I haven't tested HTTP2 at all
<aw-> only read the RFC a few times while it was being drafted
<yumaikas> Hrm. I've not really read the RFC, just seen the demonstrations, and various high level explainations.
<yumaikas> aw-: That's a good example of the sort of difference HTTP2 can make in the best case
<aw-> yeah that's the other problem
<aw-> websites were rarely ever slow
<aw-> except when they had hundreds of assets
<aw-> or big Flash intros
<aw-> so HTTP/2 is a fix to make those things acceptable
<aw-> when the real fix would be to go back to having sane websites with a sane number of assets per page load
<yumaikas> Well, they were around for quite a few years before HTTP2 becaome a thing.
<aw-> "we noticed loading 100 assets is slow, so we designed a new protocol to make that fast" instead of "we noticed loading 100 assets is slow, so we decreased it to 10"
<yumaikas> This is Google we're talking about: they run Youtube and Google Maps. They also have an interest in keeping the web from having a poor experience
<yumaikas> I do recall them setting up SEO to be partially perf dependent
<aw-> perhaps, but seeing the new Youtube interface design, there's no way in hell you would they think care about speed/efficiency/performance
xificurC has joined #picolisp
<yumaikas> Heh, fair. I'm sure their Search and SREs do. Google is large enough to have a *wide* variety of cares on that though.
<aw-> same with Google Maps
<aw-> it's barely usable anymore
<aw-> i know why though.. i need a faster computer!
<aw-> ;) ;)
<yumaikas> How old of a computer are you on?
<aw-> i was being sarcastic
<yumaikas> Ok.
<aw-> you write picolisp and golang?
<aw-> seems like an odd match
<yumaikas> More Golang than PicoLisp at this point
<aw-> i would punch myself if i had to look at golang every day
<yumaikas> And more C# and JS than either
<yumaikas> aw-: https://pisc.junglecoder.com is my biggest current side-project
<yumaikas> I might get back to PicoLisp in a few months, though I'm hanging out here mostly for the people atm.
<yumaikas> (C# and JS, thought TS more of late, are what I do for work. And SQL)
<aw-> interesting.. i don't really understand it, but isn't that how asm code is written?
<aw-> yumaikas: what inspired you to write a programming language, in Go?
<yumaikas> Not really
<yumaikas> Both PISC and ASM use a stack, but ASM doesn't have quotations
<yumaikas> aw-: Because Go has been my general side-project language since about 2011 or so?
<yumaikas> I learned it by writing various web-servers, the most used of which is the one sitting behine my blog
<aw-> i see
<aw-> i don't understand that either
<yumaikas> (I wrote an artisinal CMS to learn how the web worked when I was in my early college years)
<aw-> why would anyone want a webserver written in Go?
<aw-> Nginx is perfectly fine
<aw-> and so is html
<aw-> plaintext
<yumaikas> aw-: I wanted to learn how to write webapps
<yumaikas> And I wanted to learn how to do it outside of the MS tech stack
<aw-> right, learning experiments
<aw-> fair enough
<yumaikas> I like a lot of what Go was doing at a runtime level, and unlike you, I don't hate the syntax
<yumaikas> And I've stuck with Go because it's relatively easy to get up and running on the OS's I use, and the standard library offers *very* easy server support.
<yumaikas> When I want it.
orivej has quit [Ping timeout: 252 seconds]
<yumaikas> And when I started, I didn't really know nginx at the time.
<yumaikas> Since then, the other very nice aspect of Go is that because Go servers are almost always binaries serving HTTP, and/or single-file executables with easy depenedcies, it makes it *very* easy to admin and deploy Go programs
<aw-> right
<yumaikas> So I've kept using programs written in Go (SyncThing, Linx, my server, Hugo, and so on).
orivej has joined #picolisp
<yumaikas> I do prefer Go to Python/Ruby/Node.js and even PHP from an operational standpoint, because going from "I have a SSH shell, and only nginx" to "I have a server up and running" is usually more simple in Go
<yumaikas> But I've also struggled a lot getting some things figured out in Go, and I'll admit that I'm far from the world's best sysadmin
<aw-> i'm quite happy doing everything in PicoLisp with very minimal external dependencies
<aw-> less memory, less disk, less cpu requirements
orivej has quit [Ping timeout: 264 seconds]
<aw-> and more importantly: less maintenance
<yumaikas> aw-: I've not found that my blog server really requires much maintenance
<aw-> once i've written something in Pil, i rarely have to go back and "fix" or "update" it.
<yumaikas> Hrm.
<aw-> yes i guess it depends how good your code is ;)
<yumaikas> Or if you're willing to live with code that works, but isn't the ideal of "well-written"
<aw-> but if i look at my old Ruby code (from 3 years ago), none of it runs on the latest versions of Ruby
<yumaikas> See, Go has a big leg up on both Ruby and Node.js there
<yumaikas> My Go code from 5 years ago still runs on by blog, and still compiles
<aw-> they don't deprecate features?
<yumaikas> Nope
<aw-> that's good
<aw-> that's my pet peeve with Node and Ruby
<yumaikas> The only time they change standard library APIs is when a security issue happens. That's happened once, I think?
<aw-> yes well i would consider those to be expected
<yumaikas> Also, that HTTP support I mentioned comes basically for free if you're using their HTTP API
<yumaikas> Or http server writing library
<yumaikas> rather
<aw-> using a feature that's actually a bug is usually a bad idea ;)
<aw-> bbl
xificurC has quit [Quit: WeeChat 1.9.1]
<yumaikas> But no, Go's core language is enough to work with, and there are a decent set of external deps that have similar stability that you can write Go that will last for a while (external requirements change nonwithstanding)
groovy2shoes has quit [Ping timeout: 252 seconds]
yumaikas has quit [Ping timeout: 268 seconds]
yumaikas has joined #picolisp
<cess11> golang is made to replace c++ and bind coders to the google trademark with quirky syntax and so on
<cess11> I prefer C++, even Java
<cess11> Alphabet can't be trusted and it will be horrible to translate golang into something more general and less commercial down the road if one invests heavily in it
<clacke[m]> it's free software and has a big community. If abc.xyz borks it, community will keep your code working
<clacke[m]> no need for trust
yumaikas has quit [Ping timeout: 252 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 252 seconds]
yumaikas has joined #picolisp
<cess11> sure. in theory.
yumaikas has quit [Ping timeout: 276 seconds]
orivej has joined #picolisp
yumaikas has joined #picolisp
orivej has quit [Ping timeout: 248 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 265 seconds]
rob_w has joined #picolisp
alexshendi has joined #picolisp
orivej has joined #picolisp
<aw-> Regenaxer: here?
<aw-> Regenaxer: is there an alternative to (full 'lst) which returns the 'lst if there are no NIL values in the list?
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 248 seconds]
<Regenaxer> ret
<Regenaxer> Sorry aw-
<Regenaxer> What kind of alternative would you like?
<aw-> np Regenaxer
<aw-> ex: (full 'lst) -> returns 'lst if T
<aw-> instead of returning T
<aw-> i'm not suggesting you change (full)
<Regenaxer> you can always use 'bool' to get T
<aw-> because now i'm doing (let Res (mapcar ... ) (when (full Res) Res)) ... i would prefer (when (full (mapcar ...)) @)
<Regenaxer> yes, but where is the problem?
<Regenaxer> you don't need a local variable here
<Regenaxer> ah
<Regenaxer> I see
<Regenaxer> yes, you need the result in the end
<Regenaxer> Then you need a local var
<aw-> right
<aw-> so i was asking if there's an alternative function to (full)
<aw-> which returns the result rather than T or NIL
<aw-> (full) to me, seems like it should be (full?) a predicate
alexshendi has quit [Ping timeout: 240 seconds]
<Regenaxer> right, I see
<Regenaxer> 'full' cannot return the list
<Regenaxer> because then it would break for (full NIL)
<beneroth> rick42, bwahaha npm made it again? LOOOOOL
<Regenaxer> this was the reason for this behavior
<beneroth> special kind of stupid
<beneroth> hi all
<beneroth> bbl
<Regenaxer> Hi beneroth
<aw-> Regenaxer: ok thanks
<aw-> hi beneroth
<beneroth> hi aw-
<beneroth> I want to hug you for the things you said. I have the same opinion.
<beneroth> HTTP2 is bad idea.
<beneroth> (HTTP1 pipelining would also increase performance. browser have it disabled because servers rarely have it active)
alexshendi has joined #picolisp
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
<aw-> :)
yumaikas has quit [Ping timeout: 268 seconds]
alexshendi has quit [Ping timeout: 265 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 276 seconds]
aw- has quit [Quit: Leaving.]
<rick42> hi all
orivej has joined #picolisp
<rick42> +1 | <beneroth> I want to hug you for the things you said. I have the same opinion.
<rick42> aw- and yumaikas had a nice discussion. thanks, guys!
<rick42> (they're both gone now, but maybe see the log later)
orivej has quit [Ping timeout: 248 seconds]
orivej has joined #picolisp
<beneroth> rick42, exactly
<beneroth> right, thanks to yumaikas too
orivej has quit [Ping timeout: 252 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
orivej has quit [Ping timeout: 240 seconds]
yumaikas has joined #picolisp
orivej has joined #picolisp
orivej has quit [Ping timeout: 264 seconds]
alexshendi has joined #picolisp
groovy2shoes has joined #picolisp
chuckJ has joined #picolisp
chuckJ has quit [Ping timeout: 240 seconds]
clacke[m] has quit [*.net *.split]
akkad has quit [Ping timeout: 240 seconds]
raydeejay has quit [Ping timeout: 240 seconds]
rgrau has quit [Ping timeout: 240 seconds]
raydeejay has joined #picolisp
rgrau has joined #picolisp
akkad has joined #picolisp
clacke[m] has joined #picolisp
rob_w has quit [Read error: Connection reset by peer]
alexshendi has quit [Read error: Connection reset by peer]