Slashdot Mirror


Opa 1.0 Released

phy_si_kal writes "The open source Opa project just released its 1.0 version. Opa appeared last year and was discussed a few times. Throughout the year, Opa adopted a JavaScript-like syntax, gained support for MongoDB and now Node.js. Opa positions itself as the enterprise JavaScript framework due to the safety and security provided by its strong static typing system. Indeed, Opa checks the type safety of the application over the whole application, from client, to server, to database. Opa also provides many automation algorithms, such as the automated use of Node.js fibers at runtime, automated client/server and server/database dialog. The site of the project also announces a developer challenge."

79 comments

  1. Dreadful summary by benjfowler · · Score: 5, Informative

    So what does Opa actually do?

    I'm an enterprise Java developer, and even I had to read that three times to work out what it's meant for.

    1. Re:Dreadful summary by djdanlib · · Score: 4, Funny

      Well, it celebrates new releases of Opa.

      That's about all I can figure out right now.

    2. Re:Dreadful summary by gagol · · Score: 1

      From the summary alone, I get it is a new language based on JavaScript syntax but adds string type definition. Now back to read the article...

      --
      Tomorrow is another day...
    3. Re:Dreadful summary by gagol · · Score: 1

      I meant strOng type defenition... sorry for the typo

      --
      Tomorrow is another day...
    4. Re:Dreadful summary by Anonymous Coward · · Score: 5, Funny

      Opa watches TV and grumbles a lot. (Opa is German for Grandpa.)

    5. Re:Dreadful summary by Anonymous Coward · · Score: 2, Informative

      Wikipedia is more helpful than TFA on this one. It's just a language designed for writing the 'AMP' part of a LAMP stack as a single program. It's what all the cool kids are doing now that Ruby on Rails is mainstream.

    6. Re:Dreadful summary by Anonymous Coward · · Score: 5, Funny

      It now uses MongoDB and node.js. You know what that means.

      Opa does web scale.

    7. Re:Dreadful summary by Anne_Nonymous · · Score: 5, Funny

      Opa is the moblie version of Opera.

    8. Re:Dreadful summary by Anonymous Coward · · Score: 0

      As long as it doesn't allow me to write the L part as well, it's not sufficient! :-)

    9. Re:Dreadful summary by Lunix+Nutcase · · Score: 5, Insightful

      It allows you to write the same bloated code but in a different langauge.

    10. Re:Dreadful summary by Eponymous+Hero · · Score: 1

      lmao what is this, the liar's club?

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    11. Re:Dreadful summary by Eponymous+Hero · · Score: 3, Funny

      it allows you to write the same bloated code of 3 languages in 1 language

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    12. Re:Dreadful summary by Eponymous+Hero · · Score: 1

      this is for web developers. you can go back to whatever you were doing.

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    13. Re:Dreadful summary by istartedi · · Score: 1

      Summary makes more sense if you read it as SNL's Stefon:

      New York's hottest club is.. Opa! It's got a JavaScript-like syntax, support for Mongo DB, Node.js, developer contests, and in the far left corner, an old German man covered with fibers.

      --
      For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
    14. Re:Dreadful summary by Anonymous Coward · · Score: 1

      So it's mostly for hipsters?

    15. Re:Dreadful summary by anubis2003 · · Score: 3, Interesting

      I'd like to add that for me, the biggest plus for the language is that it lets you avoid the details of hassling with ajax requests and trying to push notifications to clients by completely abstracting all that away. Compared to most other web development languages/frameworks you know that you can write your entire web app in one language and that if within 1 function you want to persist something to the database and update the webpage DOM you can do that and the opa compiler will handle splitting that out into the client-side and server-side code to accomplish that with the glue to hold them together. That is what makes the language beautiful to me.

    16. Re:Dreadful summary by Anonymous Coward · · Score: 0

      Maybe it's JavaScipt, keeping only The Good Parts(tm)?

      BTW check out the page count:
      JS The Good Parts (O'Reilly) = 176 pages
      JS The Definitive Guide (O'Reilly) = 1100 pages

    17. Re:Dreadful summary by Anonymous Coward · · Score: 1

      Actually, it's Yiddish for "he who has nose hair longer than head hair". Same for Oma, but "she".

    18. Re:Dreadful summary by GreatBunzinni · · Score: 1

      I also don't know, but if it supports mongodb then it must be webscale.

      --
      Slashdot, fix your code or at least hire someone who is competent at it to do it for you.
    19. Re:Dreadful summary by Anonymous Coward · · Score: 0

      I wonder how many Germans will (consciously or unconsciously) associate the product with slowness due to the name.

    20. Re:Dreadful summary by templar07 · · Score: 0

      In Dutch too. When I read the article I am roflmao...hahaha

      --
      h
    21. Re:Dreadful summary by j4w7 · · Score: 1

      Release announcement that don't at least summarize what the software does drives me bananas.

      Pages that don't actually say what the software/framework/etc. does just makes me plantains!

    22. Re:Dreadful summary by Anonymous Coward · · Score: 0

      "web developer" is an oxymoron. you're a script kiddie, barely one step above writing DOS batch files.

    23. Re:Dreadful summary by Razgorov+Prikazka · · Score: 4, Funny

      Like SAP, sanduhr anschau program (program that makes you watch an hour glass)

      --
      rm -rf --no-preserve-root / ...and let /dev/null sort them out...
    24. Re:Dreadful summary by Anonymous Coward · · Score: 0

      an old German man covered with fibers.

      I'm sure glad he's covered in fibers. The alternative would not be a pleasant sight.

      And with that, I'm off to bleach my eyes.

    25. Re:Dreadful summary by gagol · · Score: 1

      Google Docs is built and maintained by web developers... do you infer Google's staff is mostly composed of glorified script kiddies?

      --
      Tomorrow is another day...
    26. Re:Dreadful summary by citizenr · · Score: 1

      So what does Opa actually do?

      I bet its Web Scale!

      --
      Who logs in to gdm? Not I, said the duck.
    27. Re:Dreadful summary by hlavac · · Score: 1

      Wow, they invented Java?

    28. Re:Dreadful summary by Bengie · · Score: 1

      I've been looking for a language with near compile speed(1/2-1/4) with full async IO. I wonder if APO addresses any of that.

    29. Re:Dreadful summary by pahles · · Score: 2

      I thought it meant Software Against People. Or Submit And Pray.

      --
      Sig?
    30. Re:Dreadful summary by dmomo · · Score: 1

      Point understood, but... do you infer that Google's staff is mostly comprised of Google-Docs developers? Again, I agree with your sentiment, just not the delivery.

    31. Re:Dreadful summary by Eponymous+Hero · · Score: 0

      no, but as you can see from the coward below you, most java devs feel superior to web development, mostly because their tools are ill-suited for it and they need to compensate for that void in their ego. java is adequate for just about everything but web development, and that's gotta burn.

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    32. Re:Dreadful summary by Anonymous Coward · · Score: 1

      no, he's serious. the name appeared so much in the source that dropping those letters reduced filesize by 37%

    33. Re:Dreadful summary by Raenex · · Score: 1

      Compared to most other web development languages/frameworks you know that you can write your entire web app in one language and that if within 1 function you want to persist something to the database and update the webpage DOM you can do that and the opa compiler will handle splitting that out into the client-side and server-side code to accomplish that with the glue to hold them together.

      Holy run-on sentence, Batman!

    34. Re:Dreadful summary by Eponymous+Hero · · Score: 1

      no. you either don't know what a web developer is or you don't know what a script kiddie is. or you don't know what the web is. maybe all three, considering you mentioned DOS batch files.

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    35. Re:Dreadful summary by Qwertie · · Score: 1

      From the web site: "Opa is the most advanced application framework for JavaScript. All aspects are directly written in Opa: Frontend code, backend code, database queries and configuration. And everything is strongly statically typed."

      So you write code in one language, and your functions are automatically translated to Javascript as needed. The same exact code can run on client and server, but if it runs on the server then it can be optimized better because Opa (unlike Javascript) is statically typed.

      Opa appears to be a functional language like Haskell, OCaml, etc., which means that you can write most of the code without specifying data types, as types will be inferred automatically. It also means that data is immutable (write-once) by default. The syntax has a slightly more "conventional" appearance than some other functional languages, so it doesn't look quite as foreign to those who are new to functional programming. Opa is not object-oriented, but it does at least offer "modules" that support dot-notation.

      Personally, lack of OO features always makes me uncomfortable because I'm not sure how to use the design patterns I am used to using. IMO the Opa manual should really have a chapter like "Opa for OO dummies" where it explains what the functional equivalent of each of the myriad OO design patterns. And this should be preceded by a "Opa for procedural dummies" chapter, that explains how to replace your efficient procedural code based on hashtables or arrays with Opa code.

    36. Re:Dreadful summary by Anonymous Coward · · Score: 0

      Java is terrible for everything but bloat. The JVM is a marvel of an exploit vector only rivaled by Flash.

    37. Re:Dreadful summary by HarrySquatter · · Score: 1

      Yes. Google Docs is terrible at anything but basic tasks and laggy to boot.

    38. Re:Dreadful summary by styrotech · · Score: 4, Funny

      "web developer" is an oxymoron. you're a script kiddie, barely one step above writing DOS batch files.

      Not any more! Now with the new Dos on Dope framework you can be a web developer BY writing DOS batch files!

      http://secretgeek.net/dod_intro.asp

    39. Re:Dreadful summary by yefrederic · · Score: 1

      One of the part of Opa is it's type inference, so you still can write JavaScript like code, but with the type being infered without the need to precise it most of the time.

    40. Re:Dreadful summary by yefrederic · · Score: 1

      Very good idea for the chapter about Opa for OO dummies. You are absolutely right ;)

    41. Re:Dreadful summary by Razgorov+Prikazka · · Score: 1

      Good one. I heard Stops All Projects as well... :-D

      --
      rm -rf --no-preserve-root / ...and let /dev/null sort them out...
    42. Re:Dreadful summary by Mabhatter · · Score: 1

      Flying Bison with six legs?

    43. Re:Dreadful summary by Mabhatter · · Score: 1

      Solves All Problems

      IT management turns over or the company goes bankrupt.... No more problems!

    44. Re:Dreadful summary by Anonymous Coward · · Score: 0

      I just installed it and tested out the default "hello world" app. 7 lines of code turned into 27,000. THAT really hurt my brain, but I do realize it is a complete stack by itself.

    45. Re:Dreadful summary by rubycodez · · Score: 1

      It's also a Greek exclamation of job made by Grandpa when he blows his load.

    46. Re:Dreadful summary by Anonymous Coward · · Score: 0

      awesome!

    47. Re:Dreadful summary by koper · · Score: 1

      http://opalang.org/faq.xmlt -> "What does Opa mean"

  2. slashdotted by iplayfast · · Score: 4, Funny

    Does this meant that opa can't handle a simple slashdotting?!!

  3. Slashvertising... by Anonymous Coward · · Score: 0

    Don't overdo it with the marketing speak.

    1. Re:Slashvertising... by Anonymous Coward · · Score: 0

      Why? Our next-generation, buzzword compliant marketing speak solution leverages linguistic synergies using best practices of value-added sustainability to your mission critical core competency with seamless integration in the cloud-based scalable workflow logistics. :-)

    2. Re:Slashvertising... by tom17 · · Score: 1

      I like what you have to say. Where do I sign?

  4. All I do know... by ChickenNugget · · Score: 2

    ...is that I'm really hungry for gyros!

  5. Link soup by Anonymous Coward · · Score: 2, Insightful

    Typical Slashdot summary. A bunch of links that tell you a little bit, no clear "main link" and no one clear link that does a clear job explaining what "Opa" is.

    Why can't the articles start with a link to one major articles and (maybe) more links in the summary.

    1. Re:Link soup by Infiniti2000 · · Score: 0

      The very first link is the "main" link, referencing the main gist of the post, i.e., that Opa 1.0 has been released. Everything else is explanatory and support, which is fine. The point is not to explain what Opa is, but that it was released.

    2. Re:Link soup by gagol · · Score: 3, Insightful

      The problem is they are announcing something without telling what the heck it is. Nobody seems to know squat about it, this is very bad communication.

      --
      Tomorrow is another day...
    3. Re:Link soup by gv250 · · Score: 1

      If I tell you it's Katie's birthday today, it would be polite of me to tell you who Katie is. Similarly, a news report should provide, at least epithetically, a description of its subject.

    4. Re:Link soup by PCM2 · · Score: 2

      They seem to have changed their technology a little bit, but basically, Opa is a language for Web apps. Instead of writing your app in three (or more) languages like you do now, you write the whole app in Opa. Then you run your Opa code through the Opa compiler, and it generates all the appropriate JavaScript for the front end, the back end code, and the database queries necessary for the application.

      Opa ships with its own back-end runtime, which includes an execution engine and a data store, but it sounds like now the default mode is to forget about those and use Node.js and MongoDB instead.

      So it's kind of cool in the sense that it allows you to write Web applications like you do normal applications, i.e. you can use one language to do it. On the other hand, according to their info:

      On the same hardware, Apache makes 4200 requests per second, the core HTTP server of Opa 4000. PHP makes 1800 requests per second, Opa 1500.

      --
      Breakfast served all day!
    5. Re:Link soup by Anonymous Coward · · Score: 0

      This is true of many open source projects. The two things I always want to know are what does it do, and what license does it use. And many websites make it absurdly hard to discover these two simple facts.

    6. Re:Link soup by A+bsd+fool · · Score: 1

      All you need to know about it is right there in the blurb. "node.js", "mongoDB", and "enterprise JavaScript framework". That's enough for me to send it to the circular file with extreme prejudice, anyway.

    7. Re:Link soup by koper · · Score: 1

      Hopefully the first page of documentation should answer what Opa is. As for the licensing it's a bit more complicated as we're in the process of changing it, but this blog post should give you the answers, I hope.

  6. Dreadful summary? by G3ckoG33k · · Score: 2

    Opa Mongo Node Mongo!

  7. statically typed? by Anonymous Coward · · Score: 0

    I was reading through their tour, and got to here: http://doc.opalang.org/manual/The-type-system

    The language certainly seems *strongly* typed, but it seems like you can bind types to functions at runtime... which means its not *statically* typed...

    1. Re:statically typed? by anubis2003 · · Score: 2

      I'm assuming you're referring to the type inferencing? That is done at compile time, not at runtime. Opa is statically typed.

  8. StratifiedJS by Anonymous Coward · · Score: 0

    How does this compare to http://onilabs.com/stratifiedjs ?

  9. Another admission of JavaScript's failings by Anonymous Coward · · Score: 0

    Opa positions itself as the enterprise JavaScript framework due to the safety and security provided by its strong static typing system.

    In other words, it fixed a design flaw in the JavaScript language.

    We are people finally going to learn to stop designing languages that don't have strong type safety features?

    Now that HTML5/JavaScript looks like the new way forward, JavaScript's lack of type safety will set back web application development at least 20 years.

    1. Re:Another admission of JavaScript's failings by Anonymous Coward · · Score: 0

      > We are people finally going to learn to stop designing languages that don't have strong type safety features?

      As soon as someone proves to them that you can actually write better programs in strongly typed languages. All the evidence points against that.

    2. Re:Another admission of JavaScript's failings by Anonymous Coward · · Score: 0

      As soon as someone proves to them that you can actually write better programs in strongly typed languages. All the evidence points against that.

      Citation needed.

      If you said that in an interview with me, I wouldn't hire you.

      Every excellent software engineer I have worked with in my career has been an advocate of a strong type system and static type checking. Every weak software engineer I have known either thought that type safety is bothersome or else doesn't care. I recommend it as a good differentiator of talent during the interview process. It's worked out well for me.

    3. Re:Another admission of JavaScript's failings by Tenebrousedge · · Score: 1

      Please post your identity and company publicly so we can all be warned against applying.

      Start here.
      Further reading.
      There's a hell of a lot more to this issue than your prejudices. Anyone that claims either way is objectively better is a fool. The good programmer uses the tool that's suitable for the job.

      --
      Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
    4. Re:Another admission of JavaScript's failings by Anonymous Coward · · Score: 0

      Please post your identity and company publicly so we can all be warned against applying.

      Start here. [wikipedia.org]
      Further reading. [stackexchange.com]
      There's a hell of a lot more to this issue than your prejudices. Anyone that claims either way is objectively better is a fool. The good programmer uses the tool that's suitable for the job.

      I read your links. The wikipedia article says that programmers disagree about the merits. That tells me nothing.

      JavaScript could easily be extended with stronger type safety features. That would not take anything away from the language. Those features would simply help programmers catch their errors faster. Those features should have been put in the language from the beginning.

      PHP had a similar situation. They later added a feature that allows the programmer to declare the intended class of the object. It took nothing away from the language, and added safety.

      You probably misinterpreted my original point, which was that programming languages need these features in version 1.0 -- not bolted on years later after they finally understand how important type safety is.

    5. Re:Another admission of JavaScript's failings by Bengie · · Score: 1

      OO languages that don't have strong-typing incur large overhead from not being able to optimize. I remember reading an article about someone who re-wrote parts of javascript to be type-strong, and was able to gain several factors of performance because the optimizer could tell the difference between a string and an int or whatever.

      Strong typing is fine, just give flexible casting.

  10. OPA DENDI by Anonymous Coward · · Score: 0

    OPA DENDI

  11. or as3 strict mode by Anonymous Coward · · Score: 0

    or as3 strict mode

  12. so, more incompetent devs by Anonymous Coward · · Score: 0

    For idiots who find html and javascript too challenging this will finally allow them to enter the field. Bravo !

    1. Re:so, more incompetent devs by Anonymous Coward · · Score: 0

      VB developers? anyone?

  13. Affero GPL? by thebjorn · · Score: 1

    If I'm reading it correctly, your source needs to be distributed if it touches the opa compiler...?

    1. Re:Affero GPL? by yefrederic · · Score: 1
      If you modify the compiler, you have to redistrbute the source indeed. Notice the compiler does not include the standard library and the backends (native/node)

      The Opa compiler will remain an AGPL project. The standard library and the native backend will be licensed under the GPL license with the so-called ClassPath exception, like Java. The exception means you can link the GPL code with any code, opening the door to license your application under any license. The forthcoming Node.js backend will be licensed under the MIT license.