4 ms·
There's very few debates where I feel good about upstream moderating downstream's access to capabilities because they're afraid of uses. Postgres notably refus
by rektide 5y ago
There's very few debates where I feel good about upstream moderating downstream's access to capabilities because they're afraid of uses.
Postgres notably refuses to implement query hints because people might do wrong => forks like OrioleDB emerge. EcmaScript promises refuse to allow synchronous access because ___ => we end up with endless userland dual sync/async constructs such as AbortSignal.
In general, I think we need more people to take inspiration from perl. "Perl, the first post-modern programming langauge"[1] is an old old old write-up, but I think it still holds very true that we generally ought enable. Even when we do set down guidelines, I feel like there should usually be ways to go outside the boundaries. To me, it's a huge feature & logical that there be capabilities in Java to peek into the private fields of a class- maybe not all code should have access to this, but this kind of deep access to a system is still, to me, highly desireable. It makes me sad to see languages like JS, once fore-runners in first-class everything, dynamic programming, accrue the trappings of a constrained, restricted, denying language: private fields (with no workarounds), annotations/decorators but load-time compiled away/invisible. Systems that expose what they are & let us monkey around are just better, cooler, have more potential.
Imagining nice pleasant happy well groomed langauges & systems is, to me, the ultimate premature optimziation: favoring some internal idea of a plan & binding everyone to it is a horrible mistake, one that often prevents criticism by simply denying the other party's their option, the chance to be explored.
[1] http://www.wall.org/~larry/pm.html http://www.wall.org/~larry/pm.html
- password4321 5y agoInteresting re:OrioleDB, but the project seems to be targeting a number of additional major features vs. just query hints which would "in theory" seem to be do-able with relatively minor changes (eg. mostly parser tweaks). The project might win a few more stars if they mentioned query hints in the readme!
- viraptor 5y agoThere's also an extension if you want just the hints: https://pghintplan.osdn.jp/pg_hint_plan.html https://pghintplan.osdn.jp/pg_hint_plan.html
- AstralStorm 5y agoOld adage is "Make right thing simple, make complex thing possible." Thing is, we're taking about C library here, a piece of code that is potentially being built for a system that is not running yet and has no emulator. The complex case is one of the defaults they must consider, but they made it impossible. On the upside, that makes a strong case to just not use or support Musl. Glibc and uclibc exist.
- pxeger1 5y agoJust as a counterexample, I'd like to mention Python. I think Python is very well known for matching your description: > Systems that expose what they are & let us monkey around are just better, cooler, have more potential. But Python really suffers performance-wise because of this. There are a lot of optimisations that could be applied to the interpreter if it weren't for the fact that <edge case> is allowed in Python.
- shp0ngle 5y agoI was writing in perl in the 2000s and early 2010s. I don’t want other languages to be more like perl.