News for hackers. Stuff that matters.
Re:PostgreSQL 9.4 Beta 1 Released by vfclists on Thursday May 15, 2014 @12:48PM (#7750619)
When is PostgreSQL going to get its own modern language which is functional/object-oriented/homoiconic/has-all-new-fangled-goodies built in, with a GUI language thrown in for good measure, so I can do everything in PostgreSQL without having to turn to another language?
Re:PostgreSQL 9.4 Beta 1 Released by audreyt on Thursday May 15, 2014 @01:14PM (#7750799)
Well, http://pgre.st/ was posted 167 days ago here — https://news.ycombinator.com/item?id=6818284 — that's how we do everything in PostgreSQL without having to turn to another language :-)

It's like Kanso/CouchApp for CouchDB, and has support for the functional/object-oriented/new-fangled LiveScript language on top of the v8 engine.

Still working on the homoiconicity part, though!

Re:PostgreSQL 9.4 Beta 1 Released by jeffdavis on Thursday May 15, 2014 @08:27PM (#7753124)
By "homoiconic" do you mean that the language would be expressed as a table (unordered multiset of tuples)?

Interesting thought experiment, but it sounds pretty radical.

Re:PostgreSQL 9.4 Beta 1 Released by vfclists on Friday May 16, 2014 @06:05AM (#7754687)
To be honest I have no idea what homoiconic means.

I think it means that everything is the same, ie whether a function in the case of functional languages like Haskell, or an object in languages like Smalltalk.

Re:PostgreSQL 9.4 Beta 1 Released by jeffdavis on Friday May 16, 2014 @11:53AM (#7756118)
http://en.m.wikipedia.org/wiki/Homoiconic

"In a homoiconic language the primary representation of programs is also a data structure in a primitive type of the language itself. This makes metaprogramming easier..."

For lisp, that means programs are are also lists, so can be manipulated with macros easily (because lisp macros are also lisp, which is good at working with lists).

For a relational language, that would mean the programs are also relations, which would be a little weird because relations are unordered.