Slashdot Mirror


'Picat' Programming Language Creators Surprised With A $10,000 Prize (bcexcelsior.com)

An anonymous reader writes: "I didn't even know they gave out prizes," said a Brooklyn College CS professor, remembering how he'd learned that a demo of the Picat programming language won a $10,000 grand prize last month at the NYC Media Lab Summit. Professor Neng-Fa Zhou created Picat with programmer Jonathan Fruhman, and along with graduate student Jie Mei they'd created a demo titled "The Picat Language and its Application to Games and AI Problems" to showcase the language's ability to solve combinatorial search problems, "including a common interface with CP, SAT, and MIP solvers."

Mie tells the Brooklyn College newspaper that Picat "is a multi-paradigm programming language aimed for general-purpose applications, which means theoretically it can be used for everything in life," and Zhou says he wants to continue making the language more useful in a variety of settings. "I want this to be successful, but not only academically... When you build something, you want people to use it. And this language has become a sensation in our community; other people have started using it."

8 of 63 comments (clear)

  1. Picard language by Anonymous Coward · · Score: 5, Funny

    Computer, make it so!

  2. Using multiple languages by bigbang137 · · Score: 2

    In a proper microservices world, there is indeed room for unpopular languages. To be a citizen of this world, at minimum they merely need to have IPC message passing support. This means REST, WebSocket, RPC, pubsub, etc. Giving individual developers the freedom to work with their language of choice for each subproject is immensely rewarding and powerful.

  3. Comparison with Prolog by bigbang137 · · Score: 2

    > Compared with Prolog, Picat is arguably more expressive and scalable: it is not rare to find problems for which Picat requires an order of magnitude fewer lines of code to describe than Prolog and Picat can be significantly faster than Prolog because pattern-matching facilitates indexing of rules. Ref: http://picat-lang.org/

  4. exageration much? by JustNiz · · Score: 2

    > theoretically it can be used for everything in life,

    VM? garbage collector? no pointers? I'm not seeing anyone writing OS's, device drivers or any other low-level stuff in this anytime soon.

    1. Re: exageration much? by rubycodez · · Score: 2

      but this language can't even theoretically be used for everything; you can't write an OS kernel using it

    2. Re:exageration much? by Half-pint+HAL · · Score: 3, Interesting

      "... Picat "is a multi-paradigm programming language aimed for general-purpose applications, which means theoretically it can be used for everything in life," ..."

      They better hurry. Perl is way ahead on the multi-paradigm thing.

      Multi-paradigm will always kill readability until we accept that sequential plain-text files are unnecessarily limiting.

      In programming, we're taught to keep lines short for readability, as something like "[i]x = ((i+j/a)+(x+5)/4*sin(s^x/4)/3)*2/6)+34[/i]" is so difficult to read that I can't be sure I've matched my parentheses without counting, and I can't tell what the calculation does. But if those divisions were rendered on-screen in the international standard mathematical way of placing the dividend over the divisor with a line in between (like the way vulgar fractions are presented) and the exponentiation was rendered by formatting the exponent in superscript (as is also standard), the whole thing would be instantly visually understandable to anyone with a good level of high-school maths.

      You may not think that this has a lot to do with multi-paradigm, but maths itself is a paradigm (everything in computing could be achieved by direct manipulation of numbers -- it wouldn't be easy, but it would be possible) and it requires a rendering that is fundamentally different from flow control structures, for example.

      And flow control has specific rendering requirements too: cf. the argument between block delimiters and semantic whitespace. Semantic whitespace exists basically because if you have non-semantic whitespace, the language semantics may not match what the reader sees, if there is line indentation that doesn't match the blocks. So get rid of all the whitespace, and let the editor render the indentation on-screen in a way that makes the logical structure immediately apparent.

      Now imagine getting rid of "decorators" and just having a different font telling you clearly that you're looking at a different type of code. Suddenly we're free to start inlining SQL queries without a bunch of function call cruft and wrapping dynamically-created literal strings in procedures.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  5. gross. by Gravis+Zero · · Score: 2

    Picat looks like what you get after Python eats Javascript and then vomits. I give it s/[stars]/1 star.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:gross. by Capsaicin · · Score: 2

      Picat looks like what you get after Python eats Javascript and then vomits.

      Looks a lot more like Prolog which has swallowed an OO-flavour of Pascal actually.

      --
      Better to be despised for too anxious apprehensions, than ruined by too confident a security. --Edmund Burke