Sep Kamvar, with the help of a few students developed Dog – the new programming language through which applications for social sites can be written in natural language thereby allowing even new coders to come up with feature rich applications. Kamvar is expecting to release a private beta version within the next few months and a public release sometime in spring next year.
The professor was frustrated with existing programming languages like Java as he felt that such languages make the entire process of coding social application difficult and complex. Things typical of applications involving social interaction were made too technical as the developer had to think in terms of data storage and communication protocols instead of natural language.
"I had to write code at a lower level of abstraction than I had to think about the interactions," the professor said. "And so I thought it would be interesting to start writing a programming language that allowed me to write at the same level of abstraction that I think", he added.
Some of the challenges the professor faced while developing social application using traditional programming languages were identifying people; talking and listening to them. By making people as basic data type such that the language could recognize them, he was able to easily solve the above mentioned problems. He created simple syntax that uses natural language such as ask, listen, notify, and compute. Kamvar said that developers can also import functions from other programming languages for non-social purpose while social interactions and interaction design can be done through Dog.
Kamvar and the team of students, over the last year or so, have been busy developing the Dog compiler and writing demo programs in the language. Karma is one such teaching and learning platform which is expected to be publicly available by next summer. Dog, which is going to be open source, is a server side language as of now but, the team is also going working on a client-side version.
Kamvar believes that Dog will enable non-programmers such as interaction designers or product managers to easily understand what the website is doing and what all functions are being used internally.