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