Logs: freenode/#haskell
| 2020-10-06 12:57:37 | → | oxide joins (~lambda@unaffiliated/mclaren) |
| 2020-10-06 12:57:47 | <dminuoso> | quazimod1: It might take 6 months before you can write solid code though, if you're completely new to Haskell. |
| 2020-10-06 12:57:55 | <sm[m]> | Haskell is the language you can be sure you can refactor yourself way out of wrong decisions |
| 2020-10-06 12:58:05 | <dminuoso> | The curve is difference, you can't just "simply switch". Overall Id say its worth learning |
| 2020-10-06 12:58:10 | <quazimod1> | rails was good to me, to be honest. in fact ruby is the easiest language i've ever used and they're adding static typing to it so it'll be waaay more scalable soon. Shame it's so slow |
| 2020-10-06 12:58:12 | <sm[m]> | s/way// |
| 2020-10-06 12:58:24 | <maerwald> | sm[m]: also depends |
| 2020-10-06 12:58:29 | <kuribas> | yeah, I never understood the argument why clojure would be more "organic", as if it automatically grows with your problems... |
| 2020-10-06 12:58:40 | <dminuoso> | quazimod1: The type system is absolute rubbish. :) |
| 2020-10-06 12:58:47 | <quazimod1> | dminuoso: it's a type system at least |
| 2020-10-06 12:58:50 | <dminuoso> | It's not really |
| 2020-10-06 12:58:59 | <quazimod1> | i don't need it to be brilliant, i need it to stop devs making type mistakes |
| 2020-10-06 12:59:03 | <maerwald> | sm[m]: vertical refactoring isn't much easier (as in: change the way you express effects, exceptions etc) |
| 2020-10-06 12:59:14 | <dminuoso> | The main problem is, Ruby by design and ecosystem promotes reflection techniques and monkey patching so hard |
| 2020-10-06 12:59:16 | <maerwald> | horizontal yes |
| 2020-10-06 12:59:18 | <quazimod1> | dminuoso: have you inspected the rails 3 type system? |
| 2020-10-06 12:59:18 | <dminuoso> | The type system cant keep track of it |
| 2020-10-06 12:59:27 | × | albert_99 quits (~Albert@p200300e5ff0b5b39340e476afbaec452.dip0.t-ipconnect.de) (Ping timeout: 260 seconds) |
| 2020-10-06 12:59:32 | <dminuoso> | quazimod1: Ive stopped with Ruby 2 years ago in favor of Haskell |
| 2020-10-06 12:59:34 | <quazimod1> | yeah the monkey patching isn't great |
| 2020-10-06 12:59:42 | <sm[m]> | quazimod1: yesod is a good industrial strength "rails" worth looking at - not as easy to use but faster |
| 2020-10-06 12:59:44 | <kuribas> | quazimod1: ruby (and python/perl/clojure/php...) are easy tot get started with, but hard to maintain. |
| 2020-10-06 13:00:02 | <quazimod1> | sm[m]: in 10 years i've never had speed issues with rails tbh |
| 2020-10-06 13:00:04 | <sm[m]> | you might also like to chat out the new IHP |
| 2020-10-06 13:00:04 | <dminuoso> | There's very few popular languages that I consider to have respectable type systems. Rust is one of them. |
| 2020-10-06 13:00:16 | <kuribas> | thanks to monkey patching, you never know what your standard library functions are doing. |
| 2020-10-06 13:00:18 | → | mirrorbird joins (~psutcliff@2a00:801:2d5:9d73:ff00:6553:d451:a276) |
| 2020-10-06 13:00:21 | <sm[m]> | quazimod1: ok, I thought you just said it was slow |
| 2020-10-06 13:00:24 | × | ryansmccoy quits (~ryansmcco@193.37.254.27) (Ping timeout: 258 seconds) |
| 2020-10-06 13:00:33 | <quazimod1> | sm[m]: for computation & the like, web server is fine |
| 2020-10-06 13:00:46 | → | ryansmccoy joins (~ryansmcco@193.37.254.27) |
| 2020-10-06 13:01:12 | <quazimod1> | dminuoso: i'm 90% settled on writing this thing in rust actually |
| 2020-10-06 13:01:19 | <quazimod1> | that language does not appear to fuck around |
| 2020-10-06 13:01:27 | <quazimod1> | the tooling is easy to use too, as far as i've used it |
| 2020-10-06 13:01:45 | <maerwald> | kuribas: what does ("/foo" </> "/bar") (from System.FilePath) return? |
| 2020-10-06 13:02:02 | <quazimod1> | but it was in reading about stuff that i stumbled on the lazy v strict thing... such a shame ocaml is surrounded by very ... non commercial thinking contributors |
| 2020-10-06 13:02:05 | <kuribas> | maerwald: "/foo/bar"? |
| 2020-10-06 13:02:07 | <maerwald> | no |
| 2020-10-06 13:02:23 | → | urodna joins (~urodna@unaffiliated/urodna) |
| 2020-10-06 13:02:31 | <kuribas> | "/foo//bar" then? :-) |
| 2020-10-06 13:02:39 | <quazimod1> | sm[m]: i don't think i would do any financial computation stuff in ruby, even ruby 3 with the JIT |
| 2020-10-06 13:02:44 | <maerwald> | kuribas: "/bar" |
| 2020-10-06 13:02:47 | → | rihards joins (~rihards@balticom-142-78-50.balticom.lv) |
| 2020-10-06 13:02:51 | <kuribas> | ?? |
| 2020-10-06 13:02:54 | <maerwald> | :) |
| 2020-10-06 13:02:59 | → | albert_99 joins (~Albert@p200300e5ff0b5b39340e476afbaec452.dip0.t-ipconnect.de) |
| 2020-10-06 13:03:25 | <kuribas> | FilePath is a historical smell |
| 2020-10-06 13:03:26 | → | Tops2 joins (~Tobias@dyndsl-095-033-093-242.ewe-ip-backbone.de) |
| 2020-10-06 13:03:26 | <dminuoso> | quazimod1: The one thing that Haskell is just pretty good at, reasoning about code like equational reasoning. |
| 2020-10-06 13:03:27 | <sm[m]> | quazimod1: I build a financial app in Haskell, its great |
| 2020-10-06 13:03:36 | <maerwald> | kuribas: https://github.com/haskell/filepath/issues/49 |
| 2020-10-06 13:03:42 | <quazimod1> | sm[m]: tell me more |
| 2020-10-06 13:03:44 | <dminuoso> | For financial code, Haskell would be at the top of my list probably :) |
| 2020-10-06 13:03:51 | <quazimod1> | dminuoso: it appears to me that that's the case too |
| 2020-10-06 13:03:53 | <maerwald> | kuribas: just saying... are you *sure* we are doing better wrt sdlib :p |
| 2020-10-06 13:04:14 | <dminuoso> | The better you can reason about code, the more likely your code is correct, the easier you can maintain your code, and it makes refactoring that much easier. |
| 2020-10-06 13:04:24 | <quazimod1> | dminuoso: yeah i guess i got spooked by the lazy thing. It doesn't help that the jane street nerds specifically didn't use haskell because it would make their high speed trading less predictable... which spooked me again |
| 2020-10-06 13:04:28 | <quazimod1> | even though i'm nothing near high speed |
| 2020-10-06 13:04:30 | <sm[m]> | smooth evolution from "I have no idea what I'm doing" to "pretty decent architecture that gets the job done" |
| 2020-10-06 13:04:34 | <kuribas> | maerwald: at least it's consistently wrong :) |
| 2020-10-06 13:04:39 | <sm[m]> | over 13 years.. |
| 2020-10-06 13:04:45 | <Uniaika> | sm[m]: :D |
| 2020-10-06 13:04:48 | <dminuoso> | quazimod1: One of Haskell's primary use is actually in financial institutions. |
| 2020-10-06 13:05:10 | <dminuoso> | It's not as if Haskell was "made for it" or that its "particularly well suited", but it *is* used there. |
| 2020-10-06 13:05:19 | <sm[m]> | quazimod1: (hledger.org) |
| 2020-10-06 13:05:32 | <quazimod1> | i can understand why, if i was going to analyse existing data it'd be different |
| 2020-10-06 13:05:44 | <quazimod1> | i'm sure lazy or not the throughput would be fantastic & the code very very reliable |
| 2020-10-06 13:05:50 | <dminuoso> | It felt like every third person I met in London as Haskell eXchange was working for some financial institution |
| 2020-10-06 13:05:51 | <sm[m]> | but yes look at cards I for a much more significant financial app |
| 2020-10-06 13:06:13 | <quazimod1> | also whoever mentioned clojure before: i do not need a language that encourages deveolpers to dump their brain thoughts into files thank you |
| 2020-10-06 13:06:18 | <sm[m]> | Cardano. Dangit, phone.. |
| 2020-10-06 13:06:31 | → | drbean joins (~drbean@TC210-63-209-203.static.apol.com.tw) |
| 2020-10-06 13:06:33 | <quazimod1> | i will never implement another thing in lisp again |
| 2020-10-06 13:06:36 | <quazimod1> | except emacs |
| 2020-10-06 13:06:53 | <quazimod1> | sm[m]: hey that's cool |
| 2020-10-06 13:07:08 | × | notzmv quits (~user@unaffiliated/zmv) (Ping timeout: 260 seconds) |
| 2020-10-06 13:07:29 | <dminuoso> | quazimod1: But yeah, dont be spooked by lazyness. Overally I think it makes writing code easier, and the rare space leaks it brings with it can be debugged - for some reason some people trip into space leaks more often than others. |
| 2020-10-06 13:07:33 | <frdg> | now that I think about it, Haskell isn't good for talking about sets because sets should be able to hold different types of elements. |
| 2020-10-06 13:07:38 | → | cosimone joins (~cosimone@2001:b07:ae5:db26:b248:7aff:feea:34b6) |
| 2020-10-06 13:07:47 | <dminuoso> | frdg: Why should it? |
| 2020-10-06 13:08:03 | <quazimod1> | dminuoso: so what do i do, use rust, python, ocaml or haskell for the quant app |
| 2020-10-06 13:08:28 | → | berberman_ joins (~berberman@123.118.97.97) |
| 2020-10-06 13:08:32 | <dminuoso> | quazimod1: Why are you asking #haskell what you should do? |
| 2020-10-06 13:08:38 | <dminuoso> | That seems like the wrong question |
| 2020-10-06 13:08:42 | <quazimod1> | you're all pretty smart |
| 2020-10-06 13:08:50 | <frdg> | dminuoso: [1,2,foo] is valid mathematically but in haskell this is a type error. |
| 2020-10-06 13:08:51 | <sm[m]> | prototype in all until you see a winner! |
| 2020-10-06 13:08:52 | <ski> | Scheme is cool. CL seems a bit less principled, more focused on getting things done, now. haven't looked at Clojure |
| 2020-10-06 13:08:53 | <dminuoso> | Im not very smart |
| 2020-10-06 13:08:55 | × | berberman quits (~berberman@2408:8207:2563:5ae0:584e:a9ff:fe9b:d3fe) (Ping timeout: 244 seconds) |
| 2020-10-06 13:08:58 | <dminuoso> | Which is why Im using Haskell |
| 2020-10-06 13:08:59 | <quazimod1> | never had any jackassery here that i can remember |
| 2020-10-06 13:09:14 | <dminuoso> | It allows me to write good code *despite* being only average. |
| 2020-10-06 13:09:28 | <sm[m]> | heh same :) |
| 2020-10-06 13:09:32 | <quazimod1> | ski: CL is an abomination |
| 2020-10-06 13:09:35 | <dminuoso> | Of course people here will tell you how good Haskell is |
| 2020-10-06 13:09:41 | <dminuoso> | So Im not quite sure what you hope to hear. |
| 2020-10-06 13:09:43 | <ski> | frdg : "[1,2,foo] is valid mathematically" -- in actual mathematical practice, that doesn't happen (or only very rarely) |
| 2020-10-06 13:09:43 | <quazimod1> | lol |
| 2020-10-06 13:09:52 | <quazimod1> | i'm honestly thinking rust |
All times are in UTC.