|
mystes posted:They're unfortunately probably not going to be able to build that in any time soon because it would break existing apis but basically just use f# if you want that yeah, but if we're dreaming of a better world...
|
# ? Nov 21, 2022 07:34 |
|
|
# ? Jun 4, 2024 03:35 |
I haven't followed Haskell development in a few years, probably since ~2017 or so. I remember that at the time there was a lot of discussion about replacing monad transformers with fancy free monad stuff, because free monads composed better, but it was still pretty experimental at the time. What ever happened with that?
|
|
# ? Nov 24, 2022 05:24 |
|
VikingofRock posted:I haven't followed Haskell development in a few years, probably since ~2017 or so. I remember that at the time there was a lot of discussion about replacing monad transformers with fancy free monad stuff, because free monads composed better, but it was still pretty experimental at the time. What ever happened with that? People do that, but they also do lots of other things. Monad transformers have always been in libraries, not part of the language itself, so there is no need or ability to replace anything across the entire ecosystem. If anything has happened, it is my impression that people don't assemble very complicated monad stacks anymore, if they ever did. I use free monads myself sometimes, but never to mash together different kinds of effects. I also still use reader/state/except monad transformer stacks, but rarely more than that.
|
# ? Nov 24, 2022 08:16 |
|
I think the new idea is algebraic effects. IIRC nobody has gotten them to perform well enough in haskell yet (there was some work that looked like it was going to require compiler modifications), but I think other languages like purescript and idris use them. Actually ocaml is also getting an algebraic effect system as a byproduct of the multicore work so it might randomly turn into a pure functional language.
|
# ? Nov 24, 2022 14:56 |
|
redleader posted:shouldn't you do public Yos? Pos() {} for this? you should, but if you don’t want to, all that’s standing in your way is a compiler warning, and if you’re writing a library, your consumers won’t know that you didn’t
|
# ? Nov 24, 2022 16:03 |
|
icantfindaname posted:what is the thread's favorite programming language, given they are all fallen and damned? haskell or lisp or somesuch? Lisp is in neither fallen nor damned, it is pure and good and should be embraced by all
|
# ? Nov 25, 2022 04:23 |
|
distortion park posted:I'm sure there's a good reason for it but I don't get why there isn't a major nominal/structural language which has first class support for the other. Like a nominal language which lets you say with keyword an interface is fulfilled by any structural matches or something. I think it works in Swift to just say extension Foo: SomeProtocol {} if type Foo already has the functions and properties in SomeProtocol
|
# ? Nov 25, 2022 04:30 |
|
The_Franz posted:Did threads in the form that we know them today exist before the 90s, yes, they weren’t always called threads but they existed in the 1980s most of the UNIX and related world got them from Mach, more via imitation than anything else, but other minicomputer operating systems had various forms of lightweight processes since the 1970s FORTH may have been one of the progenitors, its original process/task abstraction was much more like what we’d call a thread than a UNIX or equivalent process INMOS implemented lightweight processes and Erlang-like I/O channels in its Transputer CPUs in the 1980s and they loving rule; Occam is a bit of an odd duck of a language though: it has a Pascal-ish rather than C-ish or Lisp-ish syntax, and every code block has to be marked as SEQ or PAR to indicate sequential or (allowed) parallel execution
|
# ? Nov 25, 2022 04:57 |
|
the INMOS look
|
# ? Nov 25, 2022 04:58 |
|
mystes posted:the INMOS look pro username right here
|
# ? Nov 25, 2022 05:04 |
|
raminasi posted:you should, but if you don’t want to, all that’s standing in your way is a compiler warning, and if you’re writing a library, your consumers won’t know that you didn’t surely the compiler would complain if your library has nullable reference types enabled and you return null from a method returning a non-nullable type? i'm not at a computer i can test this on right now if you're using a library that doesn't use nullable reference types then sure, you won't get a warning, which sucks. i guess that, in theory, calling a library that's not nullable-aware from a nullable-enabled project could warn you that the result could be null - but that would lead to a shitload of false positives
|
# ? Nov 25, 2022 06:33 |
|
the “existing API, not yet marked up” problem is why Swift has concepts of both optional and implicitly-unwrapped optional any type signatures imported from ObjC without nullability annotations are projected into Swift as implicitly-unwrapped optional, and thus one can avoid the tedium of explicit unwrapping at the cost of potential catastrophic failure if you got a null after all, like in an unmanaged language the ideal use is to still write code with explicit unwrapping, so you never see such a failure, and then when the API you’re writing against gets annotated all the new code you wrote continues to work just fine, but some of it may have warnings it’s unneeded because some things can’t be null after all—so you can take that out and also still compile against the pre-annotation API if need be
|
# ? Nov 25, 2022 13:08 |
|
eschaton posted:Lisp is in neither fallen nor damned, it is pure and good and should be embraced by all lisp did everything first, well, except adoption and success
|
# ? Dec 2, 2022 03:15 |
|
i'd love to read a clojure "postmortem" some time, felt like it had a ton of momentum circa 2012 and it all petered out. seemed like the last great chance for lisp wonder if it coincides with the turn back towards static typing amongst a lot of companies
|
# ? Dec 2, 2022 03:40 |
|
abraham linksys posted:i'd love to read a clojure "postmortem" some time, felt like it had a ton of momentum circa 2012 and it all petered out. seemed like the last great chance for lisp a lot of companies got 10x’d but idk if that counts as momentum
|
# ? Dec 2, 2022 04:52 |
|
Nomnom Cookie posted:a lot of companies got 10x’d but idk if that counts as momentum I think you mean (* x 10)’d
|
# ? Dec 2, 2022 09:57 |
|
abraham linksys posted:i'd love to read a clojure "postmortem" some time, felt like it had a ton of momentum circa 2012 and it all petered out. seemed like the last great chance for lisp let's see 1. the jvm was kinda super popular and isn't any more 2. twitter picked scala, and scala was the popular jvm choice 3. a bunch of big names in the community just got mad with the "i am rich hickey and i am an auteur" thing 4. rich hickey stopped doing the conference circuit to drum up interest plus i guess 5. hell is other people's macros. not to be "the technical is technical before it is social" but it really feels like clojure wasn't allowed to grow beyond rich hickey's sideshow project and there's only so much one man can do to sell it to users
|
# ? Dec 2, 2022 11:08 |
|
A Brazilian bank bought Cognitect, the consultancy that cohered around Hockey and other core Clojure contributors. Retrospective and postmortem are synonyms, right? https://building.nubank.com.br/clojure-15th-anniversary-a-retrospective/
|
# ? Dec 2, 2022 15:19 |
|
prisoner of waffles posted:A Brazilian bank bought Cognitect, the consultancy that cohered around Hockey and other core Clojure contributors. How do we get more people to expand our bank with this niche programming language? I know, we'll buy out the people who created it in the first place!
|
# ? Dec 2, 2022 17:23 |
|
tbh i think the jvm not being as obvious a choice as it was at one point has at least as much to do with clojure losing some steam. oracle hasn't really ruined things yet, but i think many are feeling less sure about the future direction.
|
# ? Dec 2, 2022 17:29 |
|
we're doin kotlin for our backend at work and consider the JVM to be a pretty nice thing all things considered. lotta out of the box monitoring tools, lots of library options
|
# ? Dec 2, 2022 17:47 |
|
Cybernetic Vermin posted:tbh i think the jvm not being as obvious a choice as it was at one point has at least as much to do with clojure losing some steam. oracle hasn't really ruined things yet, but i think many are feeling less sure about the future direction. also doesn't help that python is as fast enough for by far most of the things and on the whole easier to use than clojure
|
# ? Dec 2, 2022 18:04 |
|
abraham linksys posted:we're doin kotlin for our backend at work and consider the JVM to be a pretty nice thing all things considered. lotta out of the box monitoring tools, lots of library options i'd still likely pick the jvm if i had to pick a platform to build on for almost any task, but in like 2008 i don't think i'd have even given alternatives serious consideration. whereas now .net is a real choice for example, easier to trust microsoft than oracle even if you're a linux shop. stuff like python and rust have gotten to a much more legit place too. even weirdo things like erlang seemed kind of moribund around the beginning of the millennium, and has largely returned to strength since. Cybernetic Vermin fucked around with this message at 18:43 on Dec 2, 2022 |
# ? Dec 2, 2022 18:40 |
|
I had a PL experience last week. I was external examiner at a university, for a project course where the students had to design and implement their own language from scratch. This is in many ways an ill conceived idea, as these are second year students who have seen only C#, Java, and maybe a bit of Javascript. Their language designs are not very imaginative, usually tiny subsets of C# or Java, and they compile to C# and Java too. That means things like scope rules and control flow can largely just be inherited from the target. They still find interesting ways to screw up, because really, they haven't been properly taught how to do this. (I won't even get into their attempts at defining formal operational semantics for their languages.) There was one very interesting project, though. They wanted to implement some kind of CSV processing language, and they eventually decided on a dynamically typed and interpreted language. Then somehow they managed to also implement first class functions and proper lexical scope with mutation in their language. They implemented a fully operational Lisp (except for the syntax) by accident! You could use all the classic SICP tricks to build up arbitrary data structures from closures. These are students who have never been shown anything this flexible or powerful in their studies. They also had a JavaScript-ish object system, so you could build up a decent object-oriented programming system with conventional f.m(x) syntax by putting closures in object fields. When I showed them this kind of programming they got very confused and afraid, and started suggesting that perhaps their language should be restricted so that this kind of programming would not be allowed. Very strong Plato's Cave vibes.
|
# ? Jul 4, 2023 20:12 |
|
that was the right reaction imo
|
# ? Jul 4, 2023 23:37 |
|
Carthag Tuek posted:that was the right reaction imo
|
# ? Jul 5, 2023 01:10 |
|
Carthag Tuek posted:that was the right reaction imo
|
# ? Jul 5, 2023 01:25 |
|
Carthag Tuek posted:that was the right reaction imo
|
# ? Jul 5, 2023 05:37 |
|
Athas posted:I had a PL experience last week. I was external examiner at a university, for a project course where the students had to design and implement their own language from scratch. This is in many ways an ill conceived idea, as these are second year students who have seen only C#, Java, and maybe a bit of Javascript. Their language designs are not very imaginative, usually tiny subsets of C# or Java, and they compile to C# and Java too. That means things like scope rules and control flow can largely just be inherited from the target. They still find interesting ways to screw up, because really, they haven't been properly taught how to do this. (I won't even get into their attempts at defining formal operational semantics for their languages.) lmao
|
# ? Jul 5, 2023 05:42 |
|
Athas posted:I showed them this kind of programming
|
# ? Jul 5, 2023 06:15 |
|
VikingofRock posted:I haven't followed Haskell development in a few years, probably since ~2017 or so. I remember that at the time there was a lot of discussion about replacing monad transformers with fancy free monad stuff, because free monads composed better, but it was still pretty experimental at the time. What ever happened with that? i think theres been more development on the effect system front. but i cant tell u much about it
|
# ? Jul 5, 2023 06:17 |
|
i've been working for quite a while on a hypercard-like multimedia authoring tool called decker. it uses a novel scripting language, lil, which might be interesting (or at least bemusing) to some of the folks in this thread in a nutshell, lil is a dynamic, functional language that aesthetically resembles Lua but semantically is similar in many ways to Q, the vector language. it has uniform precedence, vector conforming, and database tables as a first-class type with query syntax: another feature i think is kinda neat is a pair of primitives for tokenizing and formatting strings, sort of like scanf()/printf() but designed to be symmetrical, so that often you can reuse the same pattern for round-tripping data: in practice most lil scripts are closer to: but if you ever need it, there's a reasonably nice, expressive programming language available that can handle crud and data munging
|
# ? Jul 5, 2023 06:21 |
|
I have an istp project that would use the hell out of that if it were written in C and were lua/kuroko grade embeddable, especially with the SQL-y tables as a first class object
|
# ? Jul 5, 2023 06:48 |
|
lil is implemented in c, and there's also a parallel fork implemented in js, just like the rest of decker nowhere close to as robust as lua though, and embedding it in other applications isn't as slick, but i'll keep chipping away at it over time Internet Janitor fucked around with this message at 06:54 on Jul 5, 2023 |
# ? Jul 5, 2023 06:52 |
|
Internet Janitor posted:lil is implemented in c, and there's also a parallel fork implemented in js, just like the rest of decker kickin rad. my istp could use some way to quickly manipulate databases in memory without needing some gigantic fat thing like sqlite, and having it attached to a scripting language would be absolutely phenomenal to make it easier to rewrite kernel tasks on the fly without needing to recompile the whole loving kernel and rebooting the machine and thus losing all the state of everything other than what's being fiddled with.
|
# ? Jul 5, 2023 07:07 |
|
heres an idea. anyone can take it for free, no royalty or license fee: lisp, but with < > instead of ( )
|
# ? Jul 5, 2023 07:19 |
|
it's called xslt
|
# ? Jul 5, 2023 08:00 |
|
pokeyman posted:it's called xslt and it's good, op
|
# ? Jul 5, 2023 08:46 |
|
fart simpson posted:heres an idea. anyone can take it for free, no royalty or license fee: brillant design code:
|
# ? Jul 5, 2023 08:53 |
|
|
# ? Jun 4, 2024 03:35 |
|
fart simpson posted:heres an idea. anyone can take it for free, no royalty or license fee: lisp, but with any of the brackets from this list https://en.wikipedia.org/wiki/Bracket#Unicode
|
# ? Jul 5, 2023 12:31 |