<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
<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>
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]