TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Impending kOS

323 pointsby nightTrevorsover 10 years ago

30 comments

kiyotoover 10 years ago
&gt;Kdb+ has sharp elbows.<p>No shit. I used to work as a quant, and while I was an okay quant and mediocre trader at best, I survived for three years in the industry because of my kdb+ proficiency: the firm I was at spent a couple of million dollars on kdb+ only to find out that most people could not wrap their heads around kdb+ let alone debug it effectively.<p>My (former) colleagues were definitely smart people. In many ways, they were way smarter than myself. But I somehow could get a much better handle of kdb+&#x27;s idiosyncrasies, and my ability to stare at dense k&#x2F;q code (usually no more than a dozen lines) and figure out what&#x27;s wrong with it earned me the reputation as the &quot;q guy&quot; - and some level of job security.<p>The firm eventually phased out kdb+ completely after my boss and I left (the two proponents of kdb+).
评论 #8476353 未加载
评论 #8476195 未加载
viksitover 10 years ago
The last line of TFA reads like the beginning of some sort of movie in the drama&#x2F;thriller category. &quot;kOS is coming. Nothing will be the same afterwards.&quot;<p>That&#x27;s what irritated me most.<p>What I&#x27;d like to understand is - what led the author to this particular conclusion? Is it the fact that this language is super expressive and concise? Is it that it routinely [1] outperforms its C counterparts even if it ultimately translates to C? Is the Z graphical interface so superior that it&#x27;ll blow the pants off Cocoa and Quartz and X.org or Wayland or what have you? Why would one rewrite emacs or vim on it? I don&#x27;t want some basic 4 line text editor - I would like to be <i>productive</i>. Why would Mozilla spend energy porting firefox to it? Or Google, chrome? Or bash?<p>Simply talking about the history of K&#x2F;kdb+ and how brilliant its creator is <i>simply</i> doesn&#x27;t help the reader understand why they should be excited about it. If that was the intention of this article, then the real points to make should&#x27;ve started <i>after</i> that line.<p>That would&#x27;ve been much more interesting.<p>[1] - No pun intended, of course
评论 #8476363 未加载
sz4kertoover 10 years ago
The same story told again -- it&#x27;s aim is to generate this magical atmosphere around a fast db engine and language that&#x27;s deliberately obfuscated to make people who work in it feel smart, so they try to spread that it&#x27;s the best. KDB&#x2F;Q is a nice tool, not the holy grail how they put it. And it&#x27;s not fast because they know something better - it&#x27;s because it lacks almost any safety measure.
评论 #8476591 未加载
评论 #8476614 未加载
评论 #8476345 未加载
bshimminover 10 years ago
Here&#x27;s the text editor they&#x27;re talking about: <a href="http://www.kparc.com/edit.k" rel="nofollow">http:&#x2F;&#x2F;www.kparc.com&#x2F;edit.k</a><p>The code is, well, not the easiest to understand.
评论 #8476046 未加载
评论 #8476292 未加载
评论 #8476031 未加载
scottlocklinover 10 years ago
The APL family was developed to think about math and linear algebra in particular. Iverson&#x27;s &quot;Notation as a tool of thought&quot; f&#x27;rinstance: <a href="http://www.jsoftware.com/papers/tot.htm" rel="nofollow">http:&#x2F;&#x2F;www.jsoftware.com&#x2F;papers&#x2F;tot.htm</a><p>If you&#x27;ve worked with such things for your day job, exposure to an APL language is mind blowing in the same way as exposure to Lisp is. You&#x27;ll rapidly find out that an awful lot of the numerics world is an ad-hoc reinvention of an APL language. Leading thinkers in the numerics world have noticed. Have a look at the Tensor type inside Torch7, or -idx- class in Lush (the same thing): they are, in fact, a sort of APL with a more conventional, aka painfully wordy, notation.<p>Writing an editor in an array language seems crazy, but then, writing a parallel processing system in a language that was designed to run applications in your web browser also seems crazy. If people had stuck with APL style languages, well, databases, particularly distributed databases (Kx and 1010, both K based systems, scale to Pentascale, and have for a long time), would suck less, as would CUDA programming. Their revival could make life easier in these problem domains.
zokierover 10 years ago
Googled around, Kuro5hin (that&#x27;s a name I haven&#x27;t seen for some time) has a tutorial for K from 2002: <a href="http://www.kuro5hin.org/story/2002/11/14/22741/791" rel="nofollow">http:&#x2F;&#x2F;www.kuro5hin.org&#x2F;story&#x2F;2002&#x2F;11&#x2F;14&#x2F;22741&#x2F;791</a><p>The download link at <a href="http://www.kparc.com/" rel="nofollow">http:&#x2F;&#x2F;www.kparc.com&#x2F;</a> asks for password, so I&#x27;m not sure whats going on with that.
评论 #8476341 未加载
manish_gillover 10 years ago
The language looks fascinating. Check out Kona, an open source implementation: <a href="https://github.com/kevinlawler/kona" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;kevinlawler&#x2F;kona</a>
radicalbyteover 10 years ago
Interesting article. Found this (<a href="http://queue.acm.org/detail.cfm?id=1531242" rel="nofollow">http:&#x2F;&#x2F;queue.acm.org&#x2F;detail.cfm?id=1531242</a>, submitted here <a href="https://news.ycombinator.com/item?id=8476120" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=8476120</a>) interview with Arthur Whitney (from 2009) which is also really interesting.
TheOsirisover 10 years ago
&gt; “It is a lot easier to find your errors in four lines of code than in four hundred.”<p>Looking at his code on <a href="http://www.kparc.com/edit.k" rel="nofollow">http:&#x2F;&#x2F;www.kparc.com&#x2F;edit.k</a> I&#x27;d like to disagree with that statement
评论 #8476069 未加载
评论 #8476471 未加载
lmmover 10 years ago
There&#x27;s a contradiction I always see in these pieces: they talk a lot about the importance of using the right data structure. But these languages get their incredible conciseness by not giving you any choice about your data structures; their array type is hardcoded into the language, and if you want to use something else then your code balloons.
评论 #8476628 未加载
ah-over 10 years ago
k&#x2F;q really doesn&#x27;t have to be this unreadable, that&#x27;s just Arthurs style. Here&#x27;s some code in C by him for comparison: <a href="http://kx.com/q/cs107/a.c" rel="nofollow">http:&#x2F;&#x2F;kx.com&#x2F;q&#x2F;cs107&#x2F;a.c</a>
评论 #8476858 未加载
评论 #8485169 未加载
评论 #8476386 未加载
评论 #8476718 未加载
评论 #8476445 未加载
svan99over 10 years ago
I love K&#x2F;Q and is using it in my startup. Thanks a lot for Kx&#x27;s recent freeing up the 32bit version. To use APL-like languages I have to really shift the way of designing&#x2F;modeling things. Most importantly K may not be best for lots of developers working on the same thing. Object oriented languages will fit better in that case. K projects often only involve one or two developers who model things in vector thinking (column based thinking in data domain), know exactly what to do and how to do it. Vector thinking is not suitable for all problems, but works really well if it does. Btw, new 3.2 version of kdb appears to be even faster than before. It also improves websocket integration and JSON data conversion. Very nice to integrate with nodejs&#x2F;Qt.<p>We also use Forth which I think is a really another way of shifting mind.
评论 #8484862 未加载
ndesaulniersover 10 years ago
I seriously thought that the article, and some of the code examples people are posting [0] was a joke! I need to go rethink my career.<p>[0] <a href="http://www.kparc.com/$/edit.k" rel="nofollow">http:&#x2F;&#x2F;www.kparc.com&#x2F;$&#x2F;edit.k</a>
评论 #8477400 未加载
robfigover 10 years ago
So K is a general purpose programming language? If the claims are true, why don&#x27;t they submit some entries to the Computer Language Benchmarks Game?
评论 #8476822 未加载
评论 #8478558 未加载
jamesfisherover 10 years ago
Does a good formal introduction exist for K, or Q, or APL, or J, or any other languages in this family? Something with, you know, a syntax definition at least, and any kind of formal definition of the semantics.<p>The closest I could find is this [1] but &quot;The model is expressed in SHARP APL&quot;, so from the start, it&#x27;s circular.<p>[1] <a href="http://www.jsoftware.com/papers/APLSyntaxSemantics.htm" rel="nofollow">http:&#x2F;&#x2F;www.jsoftware.com&#x2F;papers&#x2F;APLSyntaxSemantics.htm</a>
评论 #8480640 未加载
评论 #8479989 未加载
zokierover 10 years ago
I wonder what K would look like with bit reader-friendly syntax. I tried running a program that supposedly &quot;will take a K expression and produce its English translation&quot; (<a href="http://kx.com/a/k/examples/read.k" rel="nofollow">http:&#x2F;&#x2F;kx.com&#x2F;a&#x2F;k&#x2F;examples&#x2F;read.k</a>), but either it doesn&#x27;t work with kdb+&#x2F;q or I can&#x27;t figure out how to use it. Does anyone have some example output, or advise?
anonbankerover 10 years ago
A language&#x2F;kernel&#x2F;db&#x2F;ui to watch. Reading the comments here, it seems the language separates the wheat from the chaff; the average brogrammer won&#x27;t he able to handle this, but many of us are very interested in exploring.<p>An OS this small is incredibly exciting to me.
sumanthvepaover 10 years ago
Worked at Morgan Stanley&#x27;s fixed income desk many years ago as my first job after grad school, programming A+. It was a decidedly acquired taste. The language and style were utterly alien to anyone coming from a background in C (and at that time an early version of Java.) While A+ was fast for manipulating arrays (much of what the trading floor needed), it seemed that doing GUI development with A+ was really pointless. The speed of the language didn&#x27;t matter in GUI interactions, and it was very hard do understand other people&#x27;s code.
tmikaeldover 10 years ago
Um, so what happened?
评论 #8476238 未加载
mamcxover 10 years ago
So, I read about the fast interpreter and small language. How do something like this?<p>&quot;Whitney’s strategy was to implement a core of the language – including the bits everyone thought most difficult, the operators and nested arrays – and use that to implement the rest of the language. The core was to be written in self-expanding C. As far as I know, the kdb+ interpreter is built the same way.<p>Unlike the tall skinny C programs in the textbooks, the code for this interpreter spills sideways across the page. It certainly doesn’t look like C.&quot;<p>This mean that the code is very unreadable C? Like a kind of code-golf?<p>How replicate it for built a speedy interpreter? And what if I use lua or python instead?
评论 #8477085 未加载
anonuover 10 years ago
I hate to love KDB because its a very expensive closed platform. But if you understand some of the concepts and how easy it is to achieve those concepts with a few lines of q code you can do some brilliant things. Yes, KDB is a great data store and provides very quick methods for crunching that data with its vector-based approach.<p>However, whats really impressed me with KDB is that you can do so much more with it. In some banks it has effectively become the messaging middleware for connecting hundreds of disparate data sources. In addition to passing messages you get the data storage and analytics tools for free...
评论 #8479593 未加载
duckingtestover 10 years ago
This seems to be a very fun language to write in, in the same way optimizing assembly code in the ancient times was fun; the age of skilled artisans. Unfortunately (for programmers - great for the rest) now is the time of a factory worker. Due to that, I don&#x27;t think this language and its platform has a long future.<p>Its continued survival is rather a testament to excellency of marketing (as evidenced by this article!) rather than actual merits.
评论 #8477396 未加载
rsyncover 10 years ago
I&#x27;m interested in a kOS with a &quot;god says ...&quot; program built in ...
评论 #8476443 未加载
jeffreyrogersover 10 years ago
&gt; kOS is coming. Nothing will be the same afterwards.<p>There seems to be this strange idea going around that if we just get the right tool, everything else is going to change forever. I see this a lot with people trying to create IDEs that let non-programmers create programs without really knowing how to code.<p>But the thing is, most people just don&#x27;t have anything worth coding. The problem isn&#x27;t that the tools don&#x27;t exist. They do, even if they aren&#x27;t perfect. It&#x27;s that making something that matters isn&#x27;t an easy thing to do. And no tool can change that.
评论 #8476294 未加载
评论 #8476236 未加载
评论 #8476219 未加载
tsmithover 10 years ago
Sounds great! Where&#x27;s the documentation on IPC &#x2F; mutexes &#x2F; threading?<p>&gt; todo<p>&gt; files, procs, tcp&#x2F;ip, usb, ..<p>Oh.
评论 #8484943 未加载
rgbrgbover 10 years ago
Kind of curious to play around with that text editor. Any chance of K running on OSX?
评论 #8476388 未加载
esyaover 10 years ago
Hey Geo, if you read this, congrats :)<p>Tristan
agartthaover 10 years ago
joke: search jqk on google images
lafar6502over 10 years ago
I don&#x27;t buy this story. Maybe kdb is fast and great, but the article attempts to describe it as a work of a genius, better than anything else because it&#x27;s 100 lines of code, doing its own memory management and running on bare metal. But in fact many other programs do their own memory management and can run on bare metal. JVM or .Net do their own mem management, all database servers too, and many, many others. So what&#x27;s left on the table? 500 lines of C code that&#x27;s meant to change the world? I really doubt it (or, these guys arent using line breaks). We&#x27;ve read so many similar stories about Lisp and how it&#x27;s one language that can do everything in 5 lines of code or how you can build an entire OS and all applications in Lisp, but where&#x27;s that OS now?
评论 #8485419 未加载
jwatteover 10 years ago
Every ten years, some company comes around and claims that their functional&#x2F;data flow&#x2F;columnar&#x2F;meta shortish is orders of magnitude better. Usually, the one thing they have going for them is that they focus on only a small subproblem. That lets them be small. Every demo is one of no edge cases, no exceptions, and no I&#x2F;O errors. (Or they cram all that into some &quot;standard&quot; library.)<p>The real challenge is that, 99% of the time, requirements and integration is what kills you, not raw performance. For the cases where performance (or formal correctness, or whatever) matters, the main challenge is usually to convince the market that it&#x27;s worth paying for, and then finding the right developer project match.
评论 #8477409 未加载