4 ms·
That's at least the third programming language named Q: https://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems) https://en.wikipedia.org/wiki/Q_
by koloron 13y ago
That's at least the third programming language named Q:
https://en.wikipedia.org/wiki/Q_(programming_language_from_Kx_Systems) https://en.wikipedia.org/wiki/Q_(programming_language_from_K...
https://en.wikipedia.org/wiki/Q_(equational_programming_language) https://en.wikipedia.org/wiki/Q_(equational_programming_lang...
- egeozcan 13y agoThere's also a tool named q to query text files: https://github.com/harelba/q https://github.com/harelba/q
- mercurial 13y agoAnd a promise library: https://github.com/kriskowal/q https://github.com/kriskowal/q
- deleted 13y ago[deleted]
- michaelfeathers 13y agoI vote for the APL derivative.
- gruseom 13y agoIt is probably the most astonishing combination of simplicity, efficiency, and beauty that I've seen in computing. Unfortunately, it's so out-there that nearly everyone dismisses it as unreadable and daft. In a better world, it would be taught and studied as an exemplar of design. (On the other hand, they've succeeded financially so how cool is that.)
- iskander 13y agoMy experience with Q was somewhat less inspiring than yours. It has some powerful core primitives but is generally poorly designed and terribly implemented. Single letter function names (and error codes) don't actually make a language any more expressive.
- gruseom 13y agoI can understand why you'd say poorly designed, because the tradition it comes out of is so austere. But "terribly implemented"? That detracts from what you're saying. The thing achieves performance everybody else dreams of. No doubt its error handling leaves a lot to be desired, but single-character names are a different matter. That's part of the APL style, and it's a mistake to reject it out of hand. The trouble is that nearly everybody does, because it's so beyond the pale. Edit: Perhaps I should explain what I mean about the APL style. Languages in this style are not "unreadable"; rather, they trade lexical readability for whole-program readability. Their emphasis is not on names, but on operators; specifically, operator composition. Their advantage is the astonishingly high-level power of their operator strings—sequences of composed operators, each of which passes its output to the next, like Unix pipes. After a while, typical operator strings become recognizable as idioms, making them leap out at the reader. This allows one to comprehend quickly what would take many lines of code in most other languages. True, each of those many lines would be more lexically "readable" in the sense that you could grok its individual tokens more easily. But that's not how you comprehend what a program is doing. To do that requires grokking the intent of a bunch of lines together. In other words, program intelligibility is not primarily a matter of token readability but of whole-program comprehension. We're just so used to one way of doing it that we reject all others as "unreadable". We forget that variable and function names are not an end in themselves, but a means to an end. APL-based languages have a different means to that end. If APL-style programs were to use long expressive names like other languages, the shape of their operator strings—the most important thing—would be obscured, and you would lose comprehensibility rather than gain it. The role that names play in such programs is different. They are placeholders. Like colored beads, they occupy certain positions in the operator strings and demarcate what the code is doing. If these names were even half as long as what you use in conventional languages, they would overwhelm the code so much that it would consist of nothing but names with a few operators scattered here and there. The program's structure would then be less accessible. Another way of saying this is that names are so much shorter because everything is so much shorter, which is what makes the operator-oriented style so powerful. It's true that such a language is symbolic, even cryptic, compared to most. But that is a bad reason to dismiss it, especially before one's eyes have adjusted. All programming languages are symbolic and cryptic before one has learned any. The reason why programmers take for granted that conventional languages are more "readable" is that these languages are related to each other and we all know one of them. We are like Spanish speakers saying that French is more readable than Russian. Since we all (to extend the analogy) know at least one Latin language, we take this view for granted when it's really just relative and—if one wants to push the point—false. Now where are beagle3 and silentbicycle to back me up.
- ww2 13y agoI found that APL/Q/J and vim share the same required mindset. If someone loves one, it is likely he/she will like another.
- e12e 13y agoI'm not sure (I'm actually not sure what I think of APL/Q/J yet) -- maybe someone that likes vim script would also like APL. Not sure about vi(m) the editor/modal editors.
- mathattack 13y agoThat's what I thought clicking through here.
- Kurtz79 13y agoAlso, naming a programming language with a single letter is not very search-friendly.
- baldfat 13y agoAs someone learning and using R I agree 100%
- itsnotvalid 13y agoWith q.js I could feel the same as well.
- jjgreen 13y agoDid you find Rseek? http://www.rseek.org/ http://www.rseek.org/
- deleted 13y ago[deleted]
- psychometry 13y agoNon-rhetorical question: Why do people continue to do this? The number of unique names still available for a programming language is basically infinite, yet we get stuck with Go and R and C#. Google is pretty smart about categorizing searches for languages like Ruby and Java (both common words), but with R especially it's often quite difficult to get relevant results.
- jghn 13y agoR predates Google, and derives its name from S
- squigs25 13y agoKx's Q is used widely in finance. Pretty funky, but I used it a bit in my last job.
- EGreg 13y agoAnd also we are releasing a platform soon called Q http://github.com/EGreg/Q http://github.com/EGreg/Q
- psychometry 13y agoThen it's not too late to change the name to something that people will actually be able to find information about. Be glad you read all this feedback today and not the day of your release.
- EGreg 13y agoI am pretty sure "Q platform" will be unique
- EGreg 13y agoWhy downvoted?
- TheZenPsycho 13y agoSTOP NAMING THINGS Q IS WHY.
- EGreg 13y agoNO!
- msutherl 13y agoQ has a successor called Pure, which is a very interesting language: http://purelang.bitbucket.org/ http://purelang.bitbucket.org/.