| ▲ | ModernMech 5 hours ago | |
> People get by with the existing programming languages and models, that seems to be fine. People like what they like, and they have trouble with anything other than imperative structured programming. It’s been a pain over the last decade plus to get people just to try functional programming, and they already know what functions are! It’s so hard I think it’s a losing battle. No matter how good a paradigm people will always stick to a) what they know and b) what they’re paid to know. However, I still think there’s a future for paradigms like dataflow because LLMs use random esoteric languages with great ease, and without complaint. They will use the tool for the job, even if they’re unfamiliar with it at first. “Mainstream” doesn’t really matter anymore. | ||
| ▲ | porridgeraisin 4 hours ago | parent [-] | |
There is a reason imperative programming is so common. It is more amenable to poorly designed, under specified, iterative development. Most real world software is in that category naturally. If you're meticulously designing and engineering it really well from the start, sure functional languages represent it well without leaving much room for misinterpretation and thus bugs. But no one does that. Marginal cost of adding a feature has to be proportional to the revenue made by that feature. Then In Java or go you just add a ugly special case to appease the large customer and ignore the small ones' emails. Bugs getting shunted around instead of truly fixed at the root is also totally OK as long as they are not in the major revenue/cost centers of the product. No one has time to replace these piles of hacks and eventually you would have given up most of your languages benefits and your types now mean nothing there is probably a hundred flags making it a union effectively. Rust is one language though where hacking around goes a long way without breaking too many of the guarantees, although it's not perfect, from my experience at a company where services spanned java go rust and ruby. | ||