9 ms·
I had thought of APL as something from computing pre-history, with its bizarro custom keyboard, but I learned that APL and other array languages are apparently
by an1sotropy 5y ago
I had thought of APL as something from computing pre-history, with its bizarro custom keyboard, but I learned that APL and other array languages are apparently alive and well. Will subscribe to the podcast.
Two quotes the hosts brought up stuck with me:
(at 15:05) "A language that doesn't change the way you think is not a language worth learning". From Alan Perlis [1], and his Epigrams in Programming (#19) [2]
(at 16:49) "it is a privilege to learn a language/ a journey into the immediate". From poet Marilyn Hacker [3]; totally captivating idea, even if not not about programming languages [4]
[1] https://en.wikipedia.org/wiki/Alan_Perlis https://en.wikipedia.org/wiki/Alan_Perlis
[2] https://cpsc.yale.edu/epigrams-programming https://cpsc.yale.edu/epigrams-programming
[3] https://poets.org/academy-american-poets/winner/prizes/james-laughlin-award/presentation-piece https://poets.org/academy-american-poets/winner/prizes/james...
[4] https://www.enotes.com/topics/marilyn-hacker/critical-essays https://www.enotes.com/topics/marilyn-hacker/critical-essays
- bidirectional 5y agok (and the closely related q) is the main language used in industry, particularly at investment banks and hedge funds. It can be a bit of a shock to realise there are people in London earning in excess of £1000/day (pretty good for London) working in a language where well-written code looks like this[1]: us:{$[#i:&{(y~*K)&"*"~\*x}':x;@[x;i;:[;,"_"]];x]} It's like discovering a whole different world of software development. Also I don't use that example to disparage k, I have come to appreciate the array language way-of-working. It just looks very alien. [1] Real example found in a random script on https://nsl.com/ https://nsl.com/: http://nsl.com/k9/sql.k http://nsl.com/k9/sql.k
- jiggawatts 5y agoWhat the actual f? It's like someone threw up the noise that modems make during initial connection onto an electric typewriter from the 1960s, and then explained their intention using quotes from a Lovecraft novel.
- rscho 5y agoit's extremely readable when used to it, though. I use J for exploratory data analysis. It's really, really good at that kind of thing.
- jiggawatts 5y agoI've lost count of the number of times I've heard some theoretical mathematician say that about impenetrable gibberish.
- rscho 5y agoThen you have a different use case. Doesn't mean theoretical mathematicians are wrong for their use case. I do epidemiology, not pure maths though.
- dang 5y ago"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something." Dismissing what you don't understand because it is unfamiliar is the essence of a shallow dismissal, no? And you did it twice in this thread. The first was a blessing in disguise because of geocar's excellent reply, but now you're just repeating it, with added name-calling. Please don't do that here. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html
- jiggawatts 5y agoIt's the essence of the thing in this case, and isn't a shallow criticism. Syntax can be good or bad. I don't believe that it's just a matter of "getting used to it", there are objective metrics of readability, developer error rates, and speed of training that some languages do poorly at. My point was that most array languages look like line noise. That's flippant, but true. Ask yourself this question: Is it possible to develop an array-based language and use more "normal" syntax? Of course it is! That was a rhetorical question. Similarly, there are other branches of science or mathematics that through an accident of history have developed impenetrable syntax. This is not dismissing something I don't understand. I understand several such branches of mathematics and still think the syntax is unnecessarily obtuse. Coughcategory theorycough. PS: Geocar wrote about two pages to explain what is a trivial piece of code, and I still have no idea what it even does or how! I can write code in 10 languages and read about 20-30 without too much difficulty. This includes obscure languages like Mathematica, Haskell, and several flavours of assembly language. Array based languages are the first time I've seen a high-level language that is less readable than the machine code that they are supposed to be abstracting away! It's also the second time that I've failed to understand a simple piece of code even with a detailed explanation. For reference, the only other case is quantum algorithms. Okay, I tell a lie. Thinking back on it, I've also seen Perl scripts that are unreadable line noise, but that's about it...
- secondcoming 5y agoWhat part of finance uses this language? Is it in widespread use, or is like Goldman Sachs' proprietary language (I forget the name)
- bidirectional 5y agoVarious parts, particularly in markets, from pricing quants to high-frequency traders. It is fairly widespread. Barclays, JPM, UBS, Morgan Stanley, HSBC are some of the big names, then you have loads of smaller firms.
- the_only_law 5y agoI recall a discussion on array programming languages on here a while back where someone claimed that an acquaintance of theirs was earning nearly 7 figures working on q/kdb+.
- mlang23 5y agoThe latest language which fits quote 1 for me was Haskell. Even though I already had some functional background (Lisp), it took me seemingly forever to actually grok purely functional programming. But once it clicked, it felt like stepping up on a ladder. My perspective on other languages changed as well.
- an1sotropy 5y agoFor me it was Prolog. I came to a class, which used Prolog, with a bad attitude of "whatever I can think of, I can program in C". Luckily for me I was schooled.
- geocar 5y agoI have a common-lisp background, and I learned Haskell at the insistence of a former colleague. I also know k, and have since learned some APL and j. I would like to try and suggest to you my perspective: The jump from Python to Haskell - or really anything along that way is like talking about a ladder of computing. You start at one end, and you are climbing upwards. And every step you take, you can look down and see all of the things you knew before, but with greater perspective. And Haskell? Well, it's definitely pretty far up the ladder. If you get Haskell, you feel like you really understand what's going on. I know pg was talking about lisp when he was thinking blub, but in some blubish respects, Haskell is a better lisp than lisp. But see, going from Haskell (or really anything) to Iverson is like, listen: Forget the ladder, because a ladder only goes up and down. Iverson is sideways. It is in this way, like adding depth to flatland, that Arrays are an even bigger deal than you can possibly imagine until you go there.
- mamcx 5y agoFor my was Rust. I done like 12(?) Langs before, including F# that also was a change of mind, but the first 2 or 3 months of Rust I fell like an idiot looking intensely to a wall. I start to think my 20 years programming were a big fat lie. I can't believe why it feels so hard? !I already know pascal and obj-c and F#!, kind of similar, no? Now I feel rust so easy (as python easy!) that is weeeeeeird. (btw: I think is months now where I never think I have meet an error or situation that truly confuse me).