Sunday 11 January 2015

MIT Unifies Web Development In A Single, Speedy New Language

Creating a moderately complex Web page requires understanding a whole stack of technologies, HTML JavaScript. Now a researcher at the Massachusetts Institute of Technology (MIT) has wrapped these technologies in a single language that could accelerate the development, accelerate performance and safer Web sites.

The language, called Ur / Web, provides a way for developers to write pages as separate programs. It incorporates many of the most widely used web technologies, freeing the programmer to work with each language separately.

"I think this is a language with broad potential to reduce the cost of Web development in many different environments applicability," said the author Ur / Web, Adam Chlipała a computer science assistant professor at MIT. "Bring some well-understood advantages ad software engineering aspects of the Web have been handled in more ways ad hoc".

Chlipała present their work next month at the Association for Computing Machinery Symposium on Principles of programming languages.

Developing a Web site requires the understanding of a range of different languages and how they interact.

Hypertext Markup Language (HTML) provides the basic format for the website, but there are a range of adjacent web technologies normally deployed with: Cascading Style Sheets (CSS) provides a way to change the appearance of a Web page, and Extensible Markup Language (XML) data structures for processing and further classification. JavaScript provides the basis for writing the business logic for user interactions. And if the data is stored in a database, a developer needs to know SQL (Structured Query Language) too.

Ur / Web encapsulates the full capabilities of this type of web development tools in one language, which is compiled into executable machine code.

Because the code is compiled Ur / Web, can be much more efficient to run the code of web development languages commonly used, said Chlipała.

"In Ur / Web, everything is based on transactions in which one client request is handled by what appears to be an uninterrupted execution of a single function," Chlipała said. "The implementation of language has optimizations in it to support running many requests in parallel, the real servers. But the programmer can pretend everything is a transaction and think of a simple competition model".

In addition to potentially reduce the cognitive burden on developers, the top-down approach Ur / Web offers some security mechanisms that could make safer Web sites.

The language prohibits unwanted between different elements of the page interactions. With this boundary in place, embedded for ads that supply could not interfere with a calendar widget in another part of the page, for example code.

Also, like traditional programming languages such as C and Java and web languages like JavaScript unlike-Ur / Web is strongly typed. This means that all variables and functions must be set to a default data type, limiting the ability of an attacker to send data maliciously formatted via a web form. Ur / Web also supports variable scope, or the ability to limit a variable can be called from a program.

The language has a potential disadvantage. For the average Web developer, Ur / Web may require a learning curve "steep" Chlipała admitted. It is what is known as a functional programming language, a style of programming that treats programs as a series of functions, which can be computationally more efficient, but harder to learn for a skilled programmer procedural object-oriented languages or most widely used.

Chlipała compared Ur / Web for Haskell functional programming language esoteric considered by many programmers still loved by a dedicated community that praises its computational functionality.

Chlipała is one of a number of researchers from MIT who have been pushing the frontiers of software programming languages afternoon. Another MIT researcher is designing a language called Sketch that can automatically complete sections of code for a program that is being written. Another effort MIT, called Pila, is designed to identify the parts of code that ignores compilers routine, but nevertheless might be helpful.