Slashdot Mirror


MIT Unifies Web Development In Single, Speedy New Language

itwbennett writes: A new programming language out of MIT, called Ur/Web, provides a way for developers to write pages as self-contained programs. It incorporates many of the most widely-used web technologies, freeing developers from working with each language individually. Ur/Web's author, Adam Chlipala, an MIT computer science assistant professor, will present his work next month at the Association for Computing Machinery's Symposium on Principles of Programming Languages. He says, "In Ur/Web, everything is based on transactions, where a single client request is handled by what looks like an uninterrupted execution of a single function. The language implementation has optimizations in it to support running many requests in parallel, on real servers. But the programmer can pretend everything is a transaction and think in a simpler concurrency model."

11 of 194 comments (clear)

  1. Ooh, I Have An Idea! by Greyfox · · Score: 4, Insightful

    What if, instead of doing that, we came up with a language that you could use to build your program without a browser? Now stay with me here, I know this sounds crazy, but it could work! Since you're not working with a fundamentally stateless protocol, this language wouldn't need to maintain state externally to itself! All its variables and state would be self-contained! But since you might want to pull data in from the network or a database or something, you could add interfaces to that functionality to your language! Wouldn't that be something? I know, I know, this suggestion has been made, like 12648430 times before, but I think it's a really good idea that could work!

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

    1. Re:Ooh, I Have An Idea! by binarylarry · · Score: 2, Insightful

      HTML guis are complete shit.

      The architecture sucks, the design sucks, the developers suck.

      HTML is only widely used because it's widely used.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:Ooh, I Have An Idea! by Anonymous Coward · · Score: 2, Insightful

      Speak for yourself. Hating on HTML and web tech because you're bad at it is the lamest of the lame excuses. My users much prefer our HTML GUI over our shitty old desktop apps, especially the whiz-bang desktop widgets and godawfully inconsistent native apps we used to have across devices and ESPECIALLY our "cross platform" Java app.

      It turns out that just having a simple button-based touchscreen app is good enough, and being able to access it from their Windows work box, OSX at home, and their phones/tablets without having to install anything makes them much happier and more productive. That, and the devs are much happier and more productive because they don't have to maintain and deploy several shitty apps, just one shitty app with a few versions of the UI.

      The web app is a perfect fit for a lot of applications. Stop making excuses and learn how to do your job and you'll be happier too.

  2. Well thank goodness by DrXym · · Score: 5, Insightful

    I always thought that the one thing web programming needed was YET ANOTHER PROGRAMMING LANGUAGE. One that seems to reinvent cgi programming combining business logic and structure into a single file and tosses the lot into a functional programming blender so nobody has a fucking clue what's going on.

  3. Don't try to abstract a web page by Parker+Lewis · · Score: 3, Insightful

    This is fundamentally wrong: the're not only trying to abstract all technologies and flows involved in web page development. Most of these languages and frameworks want to provide the old desktop program flow. And the way web applications works is a way different than that. A good web programmer need to know all the flow and involved technologies.

  4. Death by Manual by fhage · · Score: 5, Insightful
    This language/framework has all the signs of an academic exercise.

    As someone who's been programming since the 1970's, I find it pretty hard to get past this statement in the Manual' "We give the Ur language definition in LATEX math mode, since that is prettier than monospaced ASCII".

    The author's choice precludes anyone cutting and pasting difficult syntax from the reference manual into their program. Look at page 26. Does any programmer find this useful? Scanning down to the more practical bits, I find;

    "The Ur/Web compiler is unconventional in that it relies on a kind of heuristic compilation. Not all valid programs will compile successfully. Informally, programs fail to compile when they are “too higher order.” Compiler phases do their best to eliminate different kinds of higher order-ness, but some programs just won’t compile."

    Really? Valid programs may not compile. I wouldn't spend a second learning any programming framework with this fatal flaw.

  5. Re:W3C, please. by WaffleMonster · · Score: 3, Insightful

    Why shouldn't a language solve the problem of concurrency and distributed applications?

    Because this can only be effectively answered by the application?

    Language does not enable non-trivial problems to scale out... application architecture enables this and concurrency is of the same coin.

  6. Re:Cures whatever ails ya by Unknown+Lamer · · Score: 4, Insightful

    The author has worked on SML/NJ internals, has a strong background in type theory, and has written similarish software in the past. I'd say he was able to solve those problems. Those problems are not even particularly complicated to solve once you have an expressive type system.

    --

    HAL 7000, fewer features than the HAL 9000, but just as homicidal!
  7. Re:Is it a Node.js replacement? by Deep+Esophagus · · Score: 3, Insightful

    Hearing a disturbance, the master programmer went into the novice's cubicle.

    "Curse these personal computers!" cried the novice in anger, "To make them do anything I must use three or even four editing programs. Sometimes I get so confused that I erase entire files. This is truly intolerable!"

    The master programmer stared at the novice. "And what would you do to remedy this state of affairs?" he asked.

    The novice thought for a moment. "I will design a new editing program," he said, "a program that will replace all these others."

    Suddenly the master struck the novice on the side of his head. It was not a heavy blow, but the novice was nonetheless surprised. "What did you do that for?" exclaimed the novice.

    "I have no wish to learn another editing program," said the master.

    And suddenly the novice was enlightened.

    This lesson from The Zen of Programming is as relevant today as it was 30 years ago.

  8. Re:Syntax looks gnarly by Anonymous Coward · · Score: 2, Insightful

    double 4 (* = 8 *);

    What the fuck is that? a japanese smiley??

    Somebody please take this researcher's grant money and give it to someone younger and without a giant pole in their arse.

  9. Re:Frameworks by Intrepid+imaginaut · · Score: 2, Insightful

    I really hate using frameworks. They're fine as long as you use them for their limited purpose-set, but step outside the walled garden and your delving into a wilderness of minified spaghetti coded black boxyness whipped together over a weekend by people who weren't really interested or most likely able to envision different requirements.

    And yes I include JQuery in this. Just learn friggin javascript already, it's not that hard.