Logs: freenode/#haskell
| 2020-10-19 11:20:44 | <sclv> | no paid ide would be profitable or even close |
| 2020-10-19 11:20:58 | <kuribas> | and not enough users because not good tooling |
| 2020-10-19 11:22:25 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2020-10-19 11:22:35 | <kuribas> | so how does clojure do it? |
| 2020-10-19 11:23:25 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-19 11:23:30 | → | thir joins (~thir@pd9e1b1d6.dip0.t-ipconnect.de) |
| 2020-10-19 11:23:35 | <dminuoso> | Running on jvm and java interop is probably a big part of it. |
| 2020-10-19 11:23:56 | <dminuoso> | That means interfacing with existing code is reasonably easy, and you get access to a relatively large eco system that way |
| 2020-10-19 11:23:57 | → | da39a3ee5e6b4b0d joins (~textual@n11211935170.netvigator.com) |
| 2020-10-19 11:25:17 | <dminuoso> | I'd argue that similarly C++ wouldn't have had nearly as much success as it did, if it wasn't largely C-compatible by syntax, and didn't have seamless linkage into C. |
| 2020-10-19 11:25:33 | <merijn> | kuribas: "we provide escape from Java" |
| 2020-10-19 11:25:46 | <merijn> | kuribas: Also, by Rich Hickey labouring unpaid for ages to bootstrap things |
| 2020-10-19 11:26:01 | <dminuoso> | merijn: And that's probably survival bias right there! |
| 2020-10-19 11:26:04 | × | invaser quits (~Thunderbi@31.148.23.125) (Ping timeout: 260 seconds) |
| 2020-10-19 11:26:08 | <merijn> | Yeah |
| 2020-10-19 11:27:00 | <merijn> | It's just baffling how software engineers as a community can see billion/trillion dollar companies exploiting unpaid labour in open source while stressing out maintainers and go "yeah...this is fine!" |
| 2020-10-19 11:27:23 | → | christo joins (~chris@81.96.113.213) |
| 2020-10-19 11:27:34 | <kuribas> | merijn: for what it's worth, we are not a billion dollar company, and we are barely profitable. |
| 2020-10-19 11:27:37 | → | Franciman joins (~francesco@host-82-48-166-25.retail.telecomitalia.it) |
| 2020-10-19 11:27:50 | × | thir quits (~thir@pd9e1b1d6.dip0.t-ipconnect.de) (Ping timeout: 256 seconds) |
| 2020-10-19 11:27:53 | <kuribas> | merijn: actually our current project isn't even profitable yet |
| 2020-10-19 11:27:57 | <merijn> | And instead of going "hey, wait, maybe these people can damn well pay for all this support they want" and instead go "we should bend over backwards to be used" |
| 2020-10-19 11:28:14 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 260 seconds) |
| 2020-10-19 11:28:16 | <merijn> | kuribas: That sounds like a "your company" problem and not a "open source maintainer" problem |
| 2020-10-19 11:28:16 | × | Franciman quits (~francesco@host-82-48-166-25.retail.telecomitalia.it) (Client Quit) |
| 2020-10-19 11:28:34 | → | Franciman joins (~francesco@host-82-48-166-25.retail.telecomitalia.it) |
| 2020-10-19 11:30:09 | <kuribas> | btw clojure tooling isn't that nice IMO |
| 2020-10-19 11:30:26 | <kuribas> | I think haskell is still better, if only because of the type system. |
| 2020-10-19 11:31:01 | <kuribas> | clojure: no dead code detection, no way to see if you are calling functions that don't exist. |
| 2020-10-19 11:31:02 | <merijn> | Frankly, I don't care if companies are billion dollar companies or 2 cents away from bankruptcy. I support what's convenient for me and if you need more I can send you my bank account and an invoice |
| 2020-10-19 11:31:15 | <opqdonut> | well said |
| 2020-10-19 11:31:43 | <kuribas> | merijn: personally I think with the bad tooling etc haskell is still better and more productive than what we have currently. |
| 2020-10-19 11:31:50 | <kuribas> | merijn: but it's hard to convince others |
| 2020-10-19 11:31:51 | <merijn> | And if that causes everyone who wants more from open source to leave, I say "good riddance" |
| 2020-10-19 11:32:01 | → | avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
| 2020-10-19 11:32:51 | <kuribas> | it's always the same myth "haskell is not practical because it's made by/for academists" |
| 2020-10-19 11:33:21 | <merijn> | I'm not convinced "better tooling" will have measurable impact on "people who have dumb opinions" |
| 2020-10-19 11:35:14 | <kuribas> | though there is some truth to it. |
| 2020-10-19 11:35:33 | → | tersetears[m] joins (tersetears@gateway/shell/matrix.org/x-idycfalifvfectvy) |
| 2020-10-19 11:38:08 | × | avoandmayo quits (~textual@122-58-158-238-adsl.sparkbb.co.nz) (Quit: My MacBook has gone to sleep. ZZZzzz…) |
| 2020-10-19 11:38:33 | → | avoandmayo joins (~textual@122-58-158-238-adsl.sparkbb.co.nz) |
| 2020-10-19 11:39:11 | <dminuoso> | So... for over a year Ive been using LoggingT and ReaderT. Why exactly have runLoggingT and runReaderT the argument order they have? |
| 2020-10-19 11:39:23 | <dminuoso> | Every time I feel like they should be flipped |
| 2020-10-19 11:39:52 | <merijn> | dminuoso: Because they use record syntax? |
| 2020-10-19 11:40:02 | <dminuoso> | merijn: That's such a poor reason. :( |
| 2020-10-19 11:40:06 | <merijn> | Yes |
| 2020-10-19 11:40:29 | <kuribas> | dminuoso: that annoys me too |
| 2020-10-19 11:40:43 | <kuribas> | runState as well |
| 2020-10-19 11:40:48 | <kuribas> | :t runStateT |
| 2020-10-19 11:40:50 | <lambdabot> | StateT s m a -> s -> m (a, s) |
| 2020-10-19 11:41:39 | → | knupfer joins (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de) |
| 2020-10-19 11:41:41 | <lortabac> | has anybody every used run* without flip? |
| 2020-10-19 11:41:54 | <dminuoso> | lortabac: Yes |
| 2020-10-19 11:42:01 | <dminuoso> | I use & (.) and sections |
| 2020-10-19 11:42:25 | <merijn> | I use where bindings :p |
| 2020-10-19 11:42:28 | <merijn> | I dislike flip |
| 2020-10-19 11:42:32 | <dminuoso> | foo & (`runFoo` f) . (`runBar` b) |
| 2020-10-19 11:42:42 | <dminuoso> | (you can align the dots with the (&) nicely |
| 2020-10-19 11:42:48 | <lortabac> | I use where too, it was just a joke |
| 2020-10-19 11:43:11 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-19 11:43:11 | × | knupfer quits (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de) (Read error: Connection reset by peer) |
| 2020-10-19 11:44:23 | → | Amras joins (~Amras@unaffiliated/amras0000) |
| 2020-10-19 11:44:44 | → | knupfer joins (~Thunderbi@dynamic-046-114-151-029.46.114.pool.telefonica.de) |
| 2020-10-19 11:46:09 | × | cfricke quits (~cfricke@unaffiliated/cfricke) (Ping timeout: 246 seconds) |
| 2020-10-19 11:46:09 | × | elosant quits (uid446058@gateway/web/irccloud.com/x-gqcalxxblktojltg) (Quit: Connection closed for inactivity) |
| 2020-10-19 11:47:45 | × | heatsink quits (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) (Ping timeout: 240 seconds) |
| 2020-10-19 11:48:25 | × | christo quits (~chris@81.96.113.213) (Remote host closed the connection) |
| 2020-10-19 11:49:32 | → | christo joins (~chris@81.96.113.213) |
| 2020-10-19 11:50:13 | → | unfixpoint joins (550112fd@253.18.1.85.dynamic.wline.res.cust.swisscom.ch) |
| 2020-10-19 11:50:30 | × | kenran quits (~maier@b2b-37-24-119-190.unitymedia.biz) (Ping timeout: 256 seconds) |
| 2020-10-19 11:50:53 | <unfixpoint> | It's been a while since I've been using lenses for the last time, here's a thing which I'm stuck on: |
| 2020-10-19 11:51:29 | <dminuoso> | lortabac: I was serious though https://gist.github.com/dminuoso/e28a461bcb324a5d29c125165c0da0e0 |
| 2020-10-19 11:51:43 | <unfixpoint> | If I have a `State (Array Int Bool) *` I can change state with `ix 0 .= True` but I cannot read somehow? |
| 2020-10-19 11:52:16 | <unfixpoint> | `use (ix 0)` always tells me: No instance for (Monoid Bool) arising from a use of `ix' |
| 2020-10-19 11:52:30 | <dminuoso> | unfixpoint: You are probably view'ing through a Fold. |
| 2020-10-19 11:52:40 | <dminuoso> | (Or a traversable) |
| 2020-10-19 11:52:51 | <dminuoso> | Consider: |
| 2020-10-19 11:52:58 | <unfixpoint> | Are you saying it's an issue with GHC.Arr.Array? |
| 2020-10-19 11:53:12 | <dminuoso> | oh mm |
| 2020-10-19 11:53:26 | <unfixpoint> | I could move to `IntMap` but not sure whether that'd help |
| 2020-10-19 11:53:26 | <dminuoso> | unfixpoint: ix gives you a traversal back |
| 2020-10-19 11:53:29 | <dminuoso> | That's the problem |
| 2020-10-19 11:53:43 | <dminuoso> | Consider a more simplified example: |
| 2020-10-19 11:53:45 | → | heatsink joins (~heatsink@107-136-5-69.lightspeed.sntcca.sbcglobal.net) |
| 2020-10-19 11:53:56 | <dminuoso> | [Product 1, Product 2, Product 3] ^. each |
| 2020-10-19 11:53:58 | <dminuoso> | What should that give you? |
| 2020-10-19 11:54:03 | <dminuoso> | What would you expect? |
| 2020-10-19 11:54:08 | <unfixpoint> | [1..3]? |
| 2020-10-19 11:54:19 | <dminuoso> | % [Product 1, Product 2, Product 3] ^. each |
| 2020-10-19 11:54:19 | <yahb> | dminuoso: ; <interactive>:76:1: warning: [-Wtype-defaults]; * Defaulting the following constraints to type `Integer'; (Show a0) arising from a use of `print' at <interactive>:76:1-41; (Num a0) arising from a use of `it' at <interactive>:76:1-41; * In a stmt of an interactive GHCi command: print it; Product {getProduct = 6} |
| 2020-10-19 11:54:24 | <dminuoso> | % [Product 1 :: Product Int, Product 2, Product 3] ^. each |
| 2020-10-19 11:54:25 | <yahb> | dminuoso: Product {getProduct = 6} |
| 2020-10-19 11:54:30 | <dminuoso> | unfixpoint: ^- voila. Maximum surprise. |
| 2020-10-19 11:54:52 | <dminuoso> | When you view through a fold/traversable, it uses the monoid instance on what you're looking at to combine all targets. |
| 2020-10-19 11:54:54 | <unfixpoint> | Oh so it wants to mconcat it? |
| 2020-10-19 11:55:01 | <dminuoso> | and it defaults to mempty if there's nothing to look at |
| 2020-10-19 11:55:03 | <dminuoso> | so |
| 2020-10-19 11:55:11 | <dminuoso> | % [] ^. each :: Product Int |
| 2020-10-19 11:55:11 | <yahb> | dminuoso: Product {getProduct = 1} |
| 2020-10-19 11:55:14 | → | invaser joins (~Thunderbi@31.148.23.125) |
All times are in UTC.