Fork me on GitHub
Drew Verlee03:09:27

What does war mean? > An argument. > A desire for more cows. I feel like a piece just fell into place watching the movie Arrival. I can't just translate requirements into software from text based descriptions. I have to be more immersed in the final goal. It's about having access to the whole range of the human experience to draw upon to understand what someone means. Though addentionally, my struggles with the English language might be causing extra strain on text based communication.


I see war and my first thought is a web archive file like you use with Tomcat πŸ™‚

πŸ˜‚ 30
βœ… 9
Vincent Cantin05:09:46

That makes web engineers warriors 😎

πŸ˜† 3

If you have a war I’ll lend you an ear…

Jon Harvey10:09:02

Drat @U04V5VAUN - you beat me to it on the ol’ Java enterprise jokes! πŸ˜€ Does anyone still use J2EE servers these days?…

πŸ˜‚ 3

Apropos Arrival, please read the short story it is based on. Author is Ted Chiang, has only done a few short stories but they are completely mind blowing.

☝️ 9

it's now at least two collections of short stories iiuc :)

Endre Bakken Stovner16:09:52

Speaking of brainy Chinese sci-fi: The people behind GoT will produce it 😎


Read that about a year ago, it was mind-blowing

🀯 3

Not sure I dare read the second one πŸ˜„

Alex Miller (Clojure team)16:09:25

the second one was imho better than the first

Alex Miller (Clojure team)16:09:31

and equally as mind-blowing

Alex Miller (Clojure team)16:09:49

I'm about halfway through the 3rd one, it is also good, will reserve judgement till the end!


Time for a trip to the bookstore then.

Alex Miller (Clojure team)17:09:56

apparently there is also a 4th story written by someone else but applauded by the author

Endre Bakken Stovner16:09:04

Any suggestions for a backward-compatible typed functional language? I played around with Haskell a lot some time ago but was bummed out that half of the recipes in Real World Haskell did not compile XD


Type systems foster breakage, so good luck finding that.

😈 6
πŸ˜‚ 3
Endre Bakken Stovner16:09:17

I agree with you, but I think I would learn a lot from going to beginner/intermediate typed functional programmer to expert. I guess I should just use Haskell. Not for real world stuff, but to expand my mind further πŸ™‚


For solving puzzles, Haskell is a nice language :)

πŸ‘ 3
Endre Bakken Stovner16:09:45

Yeah, I think that Eric Raymond quote applies to Haskell, not LISP.

Endre Bakken Stovner16:09:15

But despite their shortcomings, some typed languages like Java are very backward-compatible. Why are typed functional languages so notoriously bad at it?

David Pham16:09:04

Maybe because we are kids, and we like to break things


Because typed functional languages are often test beds for research, which leads to lots of new and interesting ideas, but types are inflexible so things break when you implement the new and exciting ideas

Endre Bakken Stovner16:09:23

I knew Haskell had its origins in academia, but F# is presumably a more pragmatic language. Still, from what I can gather it is not backwards compatible. Neither is Elm, OCaml nor any other.


It isn't academia as such, just research, there is a lot of new stuff in f#, active patterns (or whatever they are called), type providers, etc


And type analysis tends to be done by compilers assuming a closed world, which doesn't hold when new things are added

πŸ‘ 3

And once you accept that sort of thing from your compiler you start to accept it other places

Endre Bakken Stovner17:09:11

All good points :thumbsup:


I know Elm had some fairly serious breakages in the early days, as it developed its (very opinionated) "Elm Way" to solving architectural issues, but I had assumed it had settled down recently? (I learned it in the early days, when it was still finding its way and stopped using it around the time that "ports" were formalized as the JS interop story)


How long was that? When I did a few things with it, a few years ago, they completely removed any way to interact with JS other then ports, and they removed websockets. With types new things don't have to break. Like with Rust it took a while for async/await to become part of stable. It's just an additional thing. Also you use builders to not break users when you add things.


@endrebak85 SPJ talks about Haskell's deliberate breakages and how its users accept this as part of

πŸ‘ 9

The types lead to information rich code, which the compiler can do all sorts of stuff to, but as soon as the types change the compilers assumptions are invalidated


He also talks about why there's really only one implementation of Haskell (GHC) and how most real world Haskell code relies on so many GHC extensions.

Endre Bakken Stovner16:09:44

Thanks, I'll make sure to watch it.


He's a very entertaining speaker πŸ™‚

Endre Bakken Stovner16:09:48

I watched a few talks by him a long time ago and I agree :thumbsup:

Lennart Buit17:09:29

… also one of the very few that can reliably pull off Comic Sans or horrid slide colour combinations without losing any of his credibility

Lennart Buit17:09:56

(SPJ is one of those programmer heroes!)