News for hackers. Stuff that matters.
Re:Is your programming language unreasonable? by jfoutz on Wednesday February 04, 2015 @02:23PM (#8999025)
Can't speak for tel, but i believe that. Types establish the rules of the game, and the compiler backs you up enforcing those rules.

On the other hand, i'm the kind of guy that has read 20 lines of code and missed possible null value bugs. Sucks when you have to tell customers to wait for the next point release before they can use this new feature.

Re:Is your programming language unreasonable? by geocar on Wednesday February 04, 2015 @02:28PM (#8999067)
Why would you make a customer wait for a "point release" for a program that is only twenty lines long?

I wonder if you thought I meant "a bug in 20 lines" when I meant a "20 line program".

EDIT: e.g. 20 lines is enough for SQL http://web.archive.org/web/20060505221834/http://kx.com/q/e/...

Re:Is your programming language unreasonable? by tormeh on Wednesday February 04, 2015 @03:22PM (#8999457)
Re:Is your programming language unreasonable? by geocar on Wednesday February 04, 2015 @03:32PM (#8999542)
It's part of kdb http://kx.com/ , a rather fast and powerful database, which is written in a language called k.

Here's an excellent introduction to K: http://archive.vector.org.uk/art10010830

Most kdb users use Q though, which is something else.

Re:Is your programming language unreasonable? by Dylan16807 on Wednesday February 04, 2015 @02:56PM (#8999273)
How many functions do I have to read simultaneously in those 20 lines? Good use of types can isolate functions from each other.

The typical '1000 line program' could be compacted like your program is and all fit onscreen at the same time, if you really wanted. It's not anywhere close to 50 times as much code.

Re:Is your programming language unreasonable? by geocar on Wednesday February 04, 2015 @03:47PM (#8999634)
None of the lines have more than 4 functions on them (that's the parse utilities which has a bunch of short helpers on it), and most have only one function.

Most of the functions are independent, with the exception of the parse utilities, so it's easier to list the exceptions: cre depends on col, w depends on w0 and w1; v and w are used in e (for tokenising); where (wh) is reused by select (sel) and update (upd). c and a are used for the pull parser.