4 ms·
Someone should vibe code Objective-C 3.0
by monster_truck 8mo ago
Someone should vibe code Objective-C 3.0
- krackers 8mo agoWhat features do you think it needs, that wouldn't spoil the "elegance" of the language? I think one good feature would be higher order messaging, in fact there's already a PL paper discussing how it looks like in objective-c [1] which would add FP-like filter/map elegance that all modern languages have. This would go nicely with simpler "JS lambda" style block syntax to make functional-style programming easier in objc. [1] https://dl.acm.org/doi/epdf/10.1145/1146841.1146844 https://dl.acm.org/doi/epdf/10.1145/1146841.1146844
- monster_truck 8mo agoProbably something like this, all it really needs to do is absorb the good parts of Swift and unfuck the actors/concurrency: https://github.com/doublemover/Slopjective-C https://github.com/doublemover/Slopjective-C I don't know if I like what that paper is suggesting, but I will give it a rip.
- avadodin 8mo agoIf it makes Objective C 1.0 with ARC(but none of the swift-alpha Java syntax) and bindings for QT I won't even care it is made by AI.
- monster_truck 8mo agoCan you elaborate on this? I learned Objective-C not long after 2.0 came out so I do not have much perspective on what exactly you'd want. I remember looking at it and thinking it was pretty fragile and boilerplate-y
- avadodin 8mo agoThe nice thing about Objective-C up to 2.0 was that it was 100% an extension over C and all new semantics were using a new syntax. So you knew that the C code was C and performing like C while the Scheme code was Scheme and performing like Scheme by looking at it. ARC semantics arguably follow this as you're using the Objective-C syntax for all occurrences of the Object. Reference counting is also great and predictable which is the main reason MRC was used in 1.0 until Apple decided it was too hard and introduced GC only for it to be canned shortly after as someone came up with the ARC solution. With property syntax sugar, however, you can't tell whether "a.length" is sending a bunch of messages or simply accessing a struct which are two very dissimilar operations.
- avadodin 8mo ago@. or some other illegal combination would have been fine.
- secretsatan 8mo agoWhy should they vibe code it?
- monster_truck 8mo agoWhy shouldn't they