Logs: liberachat/#haskell
| 2025-08-28 10:36:56 | <Lycurgus> | polymorphism, i forget the other |
| 2025-08-28 10:38:01 | Lycurgus | remembers when OOP was new |
| 2025-08-28 10:38:23 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-08-28 10:38:27 | <Lycurgus> | and FP had already been araound a while |
| 2025-08-28 10:39:37 | → | arandombit joins (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) |
| 2025-08-28 10:39:37 | × | arandombit quits (~arandombi@2603:7000:4600:ffbe:2ca2:a28f:2f37:22f6) (Changing host) |
| 2025-08-28 10:39:37 | → | arandombit joins (~arandombi@user/arandombit) |
| 2025-08-28 10:39:55 | <Lycurgus> | biz likes OOP and it is foundational and presumed in modern data processing |
| 2025-08-28 10:41:22 | <Lycurgus> | but doers of this time were mostly born after OOP began and even after its universal adoption |
| 2025-08-28 10:41:40 | <Lycurgus> | in the 90s |
| 2025-08-28 10:42:43 | <Lycurgus> | the once exciting and magical is for them the old crusty and banal |
| 2025-08-28 10:43:04 | × | segfaultfizzbuzz quits (~segfaultf@23-93-74-222.fiber.dynamic.sonic.net) (Ping timeout: 260 seconds) |
| 2025-08-28 10:44:23 | <ski> | <https://web.archive.org/web/20061014103835/http://community.schemewiki.org/?p=object-oriented-programming&c=hv&t=1108777713> lists nine different aspects |
| 2025-08-28 10:45:49 | <ski> | encapsulation,protection,ad-hoc polymorphism,parametric polymorphism,everything is an object,all you can do is send a message,specification inheritance,implementation inheritance,sum-of-product-of-function pattern |
| 2025-08-28 10:46:39 | <Lycurgus> | yeah that list is bloated and repetitive |
| 2025-08-28 10:46:54 | → | takuan joins (~takuan@d8D86B9E9.access.telenet.be) |
| 2025-08-28 10:47:10 | <Lycurgus> | you could say st was the species specimen, model type whatever |
| 2025-08-28 10:47:25 | <ski> | SmallTalk ? |
| 2025-08-28 10:47:31 | <Lycurgus> | y |
| 2025-08-28 10:47:43 | <probie> | All I know is that Common Lisp's Object System often doesn't meet definitions of "object-oriented", which is a shame, because it's definitely one of my favourite object systems to work with |
| 2025-08-28 10:48:00 | <Lycurgus> | it also came about a decade later |
| 2025-08-28 10:48:49 | × | fp quits (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) (Ping timeout: 248 seconds) |
| 2025-08-28 10:48:52 | <Lycurgus> | and in a sense didn really gel in stable stuff ppl actually use till much later |
| 2025-08-28 10:48:54 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-28 10:49:21 | <Lycurgus> | CLOS was shaky in my perception till after the turn of the century |
| 2025-08-28 10:49:54 | → | fp joins (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) |
| 2025-08-28 10:50:13 | <ski> | OO largely improved on design, by encouraging accessing state through a defined interface (making it easier to uphold representation invariants, and do possible validation), rather than arbitrarily reaching into state of one subsystem, from another sub-system |
| 2025-08-28 10:50:18 | <Lycurgus> | in terms of you could expect it would just work in an implementation |
| 2025-08-28 10:50:55 | <Lycurgus> | well you can see how transformative it is compared to the flat code scene b4 it |
| 2025-08-28 10:51:03 | <ski> | (as compared to plain structured (but not necessarily modular) programming, that is) |
| 2025-08-28 10:51:28 | <Lycurgus> | 'structured programming' which produced pascal was the preceeding big thiing |
| 2025-08-28 10:51:39 | <ski> | right |
| 2025-08-28 10:52:32 | <Lycurgus> | which basically meant no uglu bowsl of spagheeti |
| 2025-08-28 10:52:32 | <ski> | insisting on single-entry and single-exit control structures (to avoid spaghetti programming) |
| 2025-08-28 10:52:50 | <Lycurgus> | *ugly |
| 2025-08-28 10:53:15 | <Lycurgus> | *bowls |
| 2025-08-28 10:53:31 | <ski> | (and short-circuit facilities, like `&&' and `||', as well as `return',`break',`continue', are all deviations from this) |
| 2025-08-28 10:54:17 | <Lycurgus> | *spaghetti |
| 2025-08-28 10:54:54 | <probie> | Lycurgus: It was the early 2000s before I ever touched LISP, so I never experienced the implementation pains. I also learnt it _before_ "regular" object orientation, so I remember being constantly disappointed at not having multiple dispatch in anything else |
| 2025-08-28 10:55:16 | <sajenim> | haskell was my first language, now at school they are teaching java |
| 2025-08-28 10:55:25 | <sajenim> | and it's fr frustrating |
| 2025-08-28 10:55:31 | <ski> | (.. in Prolog, the cut, `!', is also an example here. this, together with `return',`break',`continue', all have the aspect that they refer to an implicit surrounding "current context" (predicate clause, function definition, loop command), which makes it harder to refactor code) |
| 2025-08-28 10:55:44 | <ski> | i feel your pain, sajenim |
| 2025-08-28 10:55:55 | <Lycurgus> | well CLOS is just the aptheosis of OOP as u'd expect for the lang |
| 2025-08-28 10:56:00 | <sajenim> | idk how my prof has a phd his code stinks |
| 2025-08-28 10:56:07 | <Lycurgus> | *apotheosis |
| 2025-08-28 10:56:38 | × | tromp quits (~textual@2001:1c00:3487:1b00:6941:8da5:79d5:ac1b) (Quit: My iMac has gone to sleep. ZZZzzz…) |
| 2025-08-28 10:56:44 | <sajenim> | he turns everything into a 160 column 1 liner |
| 2025-08-28 10:56:49 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |
| 2025-08-28 10:56:57 | <Lycurgus> | so it's not surprising it took a while for the defacto thing outta PCL to become what ppl call CLOS now |
| 2025-08-28 10:57:52 | <ski> | i guess he has a high resolution screen, sajenim |
| 2025-08-28 10:58:14 | <Lycurgus> | concision freak maybe |
| 2025-08-28 10:58:16 | <sajenim> | i have 1440p aswell, but like what about multiple files open |
| 2025-08-28 10:58:53 | <ski> | too long lines tend to be hard to read (hard to quickly see where the next line starts), also in prose text |
| 2025-08-28 10:58:58 | → | jreicher joins (~user@user/jreicher) |
| 2025-08-28 10:58:59 | → | lortabac joins (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) |
| 2025-08-28 10:59:00 | × | takuan quits (~takuan@d8D86B9E9.access.telenet.be) (Remote host closed the connection) |
| 2025-08-28 10:59:46 | × | marinelli quits (~weechat@gateway/tor-sasl/marinelli) (Quit: marinelli) |
| 2025-08-28 10:59:58 | <sajenim> | my peers called me a bad coder because i mentioned it's frustrating reading his wall of text |
| 2025-08-28 11:00:04 | × | caconym747 quits (~caconym@user/caconym) (Quit: bye) |
| 2025-08-28 11:01:15 | <probie> | sajenim: You don't need to write good code for a PhD; the quality of code written doesn't directly map to quality of the research, and there's often less incentive to have things maintainable |
| 2025-08-28 11:01:38 | <sajenim> | i did read something along the lines of what you are saying |
| 2025-08-28 11:01:44 | × | fp quits (~Thunderbi@wireless-86-50-141-108.open.aalto.fi) (Ping timeout: 260 seconds) |
| 2025-08-28 11:01:50 | <sajenim> | in relation to academia |
| 2025-08-28 11:02:12 | → | caconym747 joins (~caconym@user/caconym) |
| 2025-08-28 11:03:42 | <jreicher> | ski: A closure is not a delayed computation. It's a solution to the upward funarg problem if you optimise the substitution rule for beta reduction by using an environment. |
| 2025-08-28 11:04:51 | <Franciman> | how much fun did i have when i implemented fully lazy sharing and obtained a 20x increase in speed from ghc's compiled output |
| 2025-08-28 11:04:51 | <ski> | yes. aka an implementation strategy for a delayed computation |
| 2025-08-28 11:04:56 | → | fp joins (~Thunderbi@2001:708:150:10::72df) |
| 2025-08-28 11:05:14 | <Franciman> | 30 years of research and implementation bottled by a interpreter done in 2 hours |
| 2025-08-28 11:06:00 | <Franciman> | if P = NP, life would be brutal |
| 2025-08-28 11:06:09 | <ski> | (delaying substitutions for variables, in the body of the delayed computation, by bundling that body with the mapping, the substitution/environment. in the case of object-orientation, that environment is known as "instance state") |
| 2025-08-28 11:07:49 | → | merijn joins (~merijn@host-vr.cgnat-g.v4.dfn.nl) |
| 2025-08-28 11:13:45 | <Lycurgus> | i guess i'm feeling that P is prolly = NP, intuitively, verification being semantically close to computation of a value, and i sense a vested job security interest in the opposite position |
| 2025-08-28 11:14:33 | × | merijn quits (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 260 seconds) |
| 2025-08-28 11:15:26 | <jreicher> | You might want to check the difference between constructive and non-constructive proofs before you get comfortable with that |
| 2025-08-28 11:15:50 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2025-08-28 11:16:47 | <Lycurgus> | well it's a matter of abstract principle, i have no interest in setting off on a proof of stuff like that or say church's thesis |
| 2025-08-28 11:17:04 | → | califax joins (~califax@user/califx) |
| 2025-08-28 11:17:09 | <Lycurgus> | having a considered opition is enough for a humble doer like myself |
| 2025-08-28 11:18:49 | <Lycurgus> | *opinion |
| 2025-08-28 11:19:26 | <jreicher> | Church's thesis can't be proven. That's why it's a thesis. :) |
| 2025-08-28 11:19:57 | <Lycurgus> | so what to you call P = NP, a conjecture? |
| 2025-08-28 11:20:04 | <Lycurgus> | *do you |
| 2025-08-28 11:20:10 | → | humasect joins (~humasect@dyn-192-249-132-90.nexicom.net) |
| 2025-08-28 11:22:38 | <jreicher> | Yes, it's a conjecture. It's liable to formal proof, disproof, or independence. |
| 2025-08-28 11:22:55 | <Leary> | 'Conjecture' suggests that it's considered likely to hold. I would just call it an open question. |
| 2025-08-28 11:25:46 | <kuribas> | OO or actor model are good for large scale parts, where each part is self contained, and communicates with messaging. |
| 2025-08-28 11:26:01 | <Lycurgus> | my feels are that proving church's thesis is like proving there's no god |
| 2025-08-28 11:26:04 | <kuribas> | Using OO for numbers is ridiculous IMO, why send a message to add two numbers. |
| 2025-08-28 11:26:10 | × | Lord_of_Life quits (~Lord@user/lord-of-life/x-2819915) (Ping timeout: 245 seconds) |
| 2025-08-28 11:27:19 | <kuribas> | The cell analogy for OOP shows this clearly, a cell is a super complicated things, maybe even more than your whole computer. |
| 2025-08-28 11:27:49 | <kuribas> | It's not a thing that magically heals and solves problems. |
| 2025-08-28 11:28:13 | <Lycurgus> | being life itself atomically dont count? |
| 2025-08-28 11:29:11 | × | califax quits (~califax@user/califx) (Remote host closed the connection) |
| 2025-08-28 11:29:53 | <Lycurgus> | and yeah good analogy if you just look at cells as bags with some properties or structure, i.e an abstraction |
| 2025-08-28 11:29:56 | <kuribas> | "Organically" is often used as a good adjective, but in reality what we consider "organic", is carefully managed by us, like growing plants, or maintaining a garden. |
| 2025-08-28 11:30:35 | <kuribas> | Lycurgus: the cell analogy was used by Alan Kay. |
| 2025-08-28 11:30:48 | <ski> | there are "internalized versions" of Church's thesis, basically claiming that every (computable) function is algorithmic (in some particular system). these could be provable, like in versions of constructive math, given appropriate axioms |
| 2025-08-28 11:32:37 | → | xff0x joins (~xff0x@2405:6580:b080:900:b44c:4dd6:a7f0:d125) |
All times are in UTC.