4 ms·
I like to read about various problems in language design, as someone who is relatively naive to its deeper intricacies it really helps broaden my view. That sai
by gavanwoolery 9y ago
I like to read about various problems in language design, as someone who is relatively naive to its deeper intricacies it really helps broaden my view. That said I have seen a trend towards adding various bells and whistles to languages without any sort of consideration as to whether it actually, in a measurable way, makes the language better.
The downside to adding an additional feature is that you are much more likely to introduce leaky abstraction (even things as minor as syntactical sugar). Your language has more "gotchas", a steeper learning curve, and a higher chance of getting things wrong or not understanding what is going on under the hood.
For this reason, I have always appreciated relatively simple homoiconic languages that are close-to-the-metal. That said, the universe of tools and build systems around these languages has been a growing pile of cruft and garbage for quite some time, for understandable reasons.
I envision the sweet spot lies at a super-simple system language with a tightly-knit and extensible metaprogramming layer on top of it, and a consistent method of accessing common hardware and I/O. Instant recompilation ("scripting") seamlessly tied to highly optimized compilation would be ideal while I am making a wishlist :)
- ColanR 9y agoEver heard of K?
- imnotlost 9y agoSpecial K? It'll take care of most of your language problems, computer or otherwise.
- kbenson 9y agoIs there a free version? I was interested I was interested in learning it a few years ago but couldn't find a version that was free for both commercial and non-commercial use, which tempered my enthusiasm.
- grayrest 9y agoTo my knowledge, there isn't a full OSS implementation of K/Q. I do know of a K5 interpreter in JS [1] but otherwise I've only been able to find the free for personal use 32 bit Q distribution. [1] https://github.com/JohnEarnest/ok https://github.com/JohnEarnest/ok
- pja 9y agoKona implements K3 according to its github.
- ColanR 9y agoYeah. It comes bundled with Q in a free non-commercial 32 bit binary. Q and KDB+ is a higher-level 'wrapper' of sorts around the language. https://kx.com/download/ https://kx.com/download/
- tel 9y agoMany of the ideas expressed here may feel like bells and whistles but tend to have a formal backing which makes them quite a bit different than other language features. They might still impact UI in a way that's highly undesirable, but they're less-than-average likely to be leaky abstractions or gotchas. Typically, I feel these sorts of ideas appeal to simpler foundations and achieve richness through rich additions to a simple foundation that can be shown to be consistent and compatible with that foundation in a thorough (proven) way. It's just a different ballgame. Although, again, UI is another issue.