gchristensen changed the topic of #nixos-chat to: NixOS but much less topical || https://logs.nix.samueldr.com/nixos-chat
Lisanna has quit [Ping timeout: 276 seconds]
<gchristensen> elvishjerricco: its not reaed-only anymore
lassulus_ has joined #nixos-chat
lassulus has quit [Ping timeout: 255 seconds]
Lisanna has joined #nixos-chat
Lisanna has quit [Quit: Lisanna]
<MichaelRaskin> public-inbox sounds a cool idea
MichaelRaskin has quit [Ping timeout: 256 seconds]
jtojnar has quit [Read error: Connection reset by peer]
jtojnar has joined #nixos-chat
MichaelRaskin has joined #nixos-chat
jD91mZM2 has joined #nixos-chat
unlmtd has quit [Ping timeout: 256 seconds]
sphalerit has quit [Ping timeout: 256 seconds]
unlmtd has joined #nixos-chat
sphalerit has joined #nixos-chat
jtojnar has quit [Read error: Connection reset by peer]
jtojnar has joined #nixos-chat
nand0p has quit [Remote host closed the connection]
nand0p has joined #nixos-chat
jtojnar has quit [Remote host closed the connection]
jtojnar has joined #nixos-chat
jD91mZM2 has quit [Quit: WeeChat 2.0]
dmc has quit [*.net *.split]
dmc has joined #nixos-chat
Synthetica has joined #nixos-chat
<MichaelRaskin> infinisil: if you want to use upstream build systems, it is «know shell well or your life is hell» anyway
drakonis has joined #nixos-chat
<infinisil> MichaelRaskin: I'm not sure if knowing shell well makes it any less painful
<MichaelRaskin> It does. I can just read the configure lines and see what it doesn't like and where it wants to look
<infinisil> But if we used a compiled language you could make it so such faults don't even get there in the first place
<MichaelRaskin> Haskell proposal guarantees that people competent to do Ruby packaging are an empty set
<MichaelRaskin> I mean, you cannot solve the problem that upstream uses a shell script that works on Debian, Fedora, and FreeBSD by changing what _you_ use
<infinisil> True
<infinisil> But just imagine everybody using Haskell or so everywhere
<MichaelRaskin> Horrible
<MichaelRaskin> Worse than shell
<infinisil> I think it might work
<MichaelRaskin> A smaller part of Shell syntax is deprecated compared to the share of Prelude that is deprecated
<MichaelRaskin> Also, Haskell is just not good for IO.
<MichaelRaskin> That parts where Haskell is good are already in Nix…
<infinisil> Ah yeah, the API changes would be somewhat of a problem
<MichaelRaskin> «Somewhat»
<infinisil> E.g., we could fix it to a stackage LTS
<infinisil> And only allow stackage packages
<MichaelRaskin> I think I was unclear
<MichaelRaskin> I am told by Haskell users that obviously approximately half of _Prelude_ is deprecated
<infinisil> It is?
<MichaelRaskin> That's before the annoying details like stackage version.
<infinisil> Hmm
<drakonis> wait really?
<infinisil> I mean, a lot of stuff in prelude isn't that good, so i can understand that
<MichaelRaskin> They might not say deprecated.
<drakonis> MichaelRaskin, which upstream is this that actually supports freebsd?
<MichaelRaskin> But I bet that a vote «you'd better not use…» will get majority of votes for around half of Prelude names.
<MichaelRaskin> Autotools
<drakonis> ah right
<infinisil> MichaelRaskin: Do you have a favorite "alternate prelude"?
<MichaelRaskin> Every time I tried to use Haskell I came to the the conclusion that it doesn't fit what I want to do
<infinisil> Ah heh, I can't share the same opinion
<MichaelRaskin> Finding out the real requirements is harder than making the program conform to them anyway
<infinisil> What do you mean by requirements here?
<MichaelRaskin> And when a problem fits naturally to some model of using I/O, I don't want to change the model of world just because it is painful to explain to a compiler. I want to be able to define different safe ways to structure things, not use The One True Way
<MichaelRaskin> Requirements… well, _what_ does it mean that the program is correct?
<infinisil> Ah, the specification
<MichaelRaskin> If you can (even after writing the program!) get to the state where there is something worth calling a specification…
<infinisil> But tbh, I find Haskell can be used conveniently for any problem set, the abstractions it can provide are very useful
<MichaelRaskin> Erm
<infinisil> I stand by that
<drakonis> okay what exactly is prelude? the repl?
<infinisil> The standard library if you will
<MichaelRaskin> I mean, abstractions it can provide, I can get in any first-class-functions first-class-types language. Ah, I need multiple dispatch, too, why use languages without it.
<drakonis> ah i see
<infinisil> drakonis: Actually no, only the stuff imported by default from the standard lib
<infinisil> Stuff like head, Maybe, Either, IO, etc.
<infinisil> The basics
<drakonis> crappy standard lib?
<infinisil> Yeah prelude has a lot of controversial functions
<infinisil> E.g. `head :: [a] -> a` will get the first element of a list
<infinisil> But if the list is empty it will crash at runtime
<infinisil> MichaelRaskin: first-class-type? So dependent types?
<drakonis> must be like python or something
<MichaelRaskin> No, not dependent types. Just types that can be put into a variable.
<infinisil> MichaelRaskin: Which language does that?
<infinisil> Dynamic ones?
<MichaelRaskin> Common Lisp.
<MichaelRaskin> Yeah, it is formally dynamic
<MichaelRaskin> Optimiser will catch your type errors anyway…
saeedgnu has joined #nixos-chat
<Synthetica> Did someone say language war?
<MichaelRaskin> In SBCL even when you enter the code in REPL, it is still compiled and optimiser will complain.
<saeedgnu> i did
<infinisil> MichaelRaskin: But you can also create code at runtime and try to run that at which point it can crash?
manveru has joined #nixos-chat
<drakonis> at least it isn't lisp vs haskell
<MichaelRaskin> Well, technically you can even code a type error that optimiser won't catch
<MichaelRaskin> In static code.
<MichaelRaskin> Runtime eval… well, it is reserved for special occasions, it is quite expensive however you implement it.
<saeedgnu> some scripting languages also compile on demand (JIT)
<saeedgnu> like python that creates .pyc or .pyo
<MichaelRaskin> A good compiler run is not free.
<infinisil> Yeah well I'm a Haskell guy, I like my static typing and the almost certainty of it not crashing when it compiles
<saeedgnu> static typing is powerful i agree, that's one of the reason i prefer Go to python, but types are annoying in java
<saeedgnu> don't know about haskell
<MichaelRaskin> Static typing per se is fine.
<saeedgnu> good thing we have no php fan here
<saeedgnu> or do we?
<infinisil> There are php fans??
<MichaelRaskin> I like PHP. I like PHP served hot, preferably after a repeated orbital bombardment.
<saeedgnu> infinisil: no, not smart fans
<saeedgnu> smart fans run C code i guess
<infinisil> Right :p
<infinisil> I really wanna get going with Idris though
<infinisil> It's like Haskell on steroids
<infinisil> And I'm thinking of using Idris for my bachelors thesis
<MichaelRaskin> Does it auto-lift to IO?
<saeedgnu> i though Idris is your buddy :D
<saeedgnu> *thought
<saeedgnu> heh, it's a programming language :D
<MichaelRaskin> At that point I should just comment that Julia is also nice.
<infinisil> MichaelRaskin: What do you mean exactly? I know of lifting regarding monad transformers
<saeedgnu> yeah i heard about Julia
<MichaelRaskin> (Julia being a rare case of a language with sane macros… and also learning from Common Lisp where applicable)
<saeedgnu> nice names
<saeedgnu> better than Dear ImGui
<MichaelRaskin> imgui sounds searchable
<manveru> i heard julia is like a modern day dylan
<saeedgnu> Julia Dear ImGui
<saeedgnu> :D
<MichaelRaskin> I don't think so. I think Julia has a specific bloodthirst, and it show
<MichaelRaskin> it shows
<MichaelRaskin> infinisil: I want tons of syntax sugar not to be completely obligatory to make something with a non-trivial IO pattern bearable
<infinisil> Hmm.. not sure what you mean, but I think Monad transformers can do that really well
<saeedgnu> i wonder why functional languages are not usually static typed?
<infinisil> And there's 2 nice effect systems in Idris (an older one and a newer one)
<infinisil> In the standard library I mean
<MichaelRaskin> Sounds bad already
<infinisil> Huh?
<MichaelRaskin> Two nice effect system in standard library by version 1.0?
<infinisil> The newer one should replace the older one
<infinisil> But that's no indication of something bad
<infinisil> Every language has new stuff which deprecates old stuff
<saeedgnu> major releases typically break compatibility
<saeedgnu> but they make a migration helper if they are nice enough
drakonis has quit [Remote host closed the connection]
saeedgnu has left #nixos-chat [#nixos-chat]
drakonis has joined #nixos-chat
drakonis has quit [Remote host closed the connection]