The Future of Programming

A very interesting presentation: http://vimeo.com/71278954 by Bret Victor presented at Dropbox’s DBX conference on July 9, 2013.

My first feeling after I’ve seen it was really sad. Did we, programmers, really lost last 40 years ?

My second thought was slightly more optimistic. Maybe we didn’t lost those years at all ? Maybe we used it to learn limitation of “conservative” apprach. Maybe we used it to develop techniques and technologies to make all those “forgoten” principles economically cost effective ?

And most important conclusion – Never think that you really “know what you are doing” and never stop looking for other solutions.

You May Also Like

Grails render as JSON catch

One of a reasons your controller doesn't render a proper response in JSON format might be wrong package name that you use. It is easy to overlook. Import are on top of a file, you look at your code and everything seems to be fine. Except response is still not in JSON format.

Consider this simple controller:

class RestJsonCatchController {
def grailsJson() {
render([first: 'foo', second: 5] as grails.converters.JSON)
}

def netSfJson() {
render([first: 'foo', second: 5] as net.sf.json.JSON)
}
}

And now, with finger crossed... We have a winner!

$ curl localhost:8080/example/restJsonCatch/grailsJson
{"first":"foo","second":5}
$ curl localhost:8080/example/restJsonCatch/netSfJson
{first=foo, second=5}

As you can see only grails.converters.JSON converts your response to JSON format. There is no such converter for net.sf.json.JSON, so Grails has no converter to apply and it renders Map normally.

Conclusion: always carefully look at your imports if you're working with JSON in Grails!

Edit: Burt suggested that this is a bug. I've submitted JIRA issue here: GRAILS-9622 render as class that is not a codec should throw exception