Slashdot Mirror


Web Apps Language Opa Gets a Web-Based IDE

First time accepted submitter koper writes "The new programming language Opa makes web programming easier by providing a one-tier one-language-for-everything approach. Now it goes one step further by providing a (very-minimalistic for now) web-based IDE that allows users to compile & deploy Opa programs in one click in your web browser. Give it a spin!"

58 of 83 comments (clear)

  1. Nice writeup by msobkow · · Score: 1

    It's nice to see someone presenting an honest assessment of their technology's actual capabilities instead of trying to spin it into something more than it is with buzzwords like "artificial intelligence".

    "Opa is a concise and elegant language for writing distributed web applications."

    It looks tighter than something like Java or C#, but it's still tied to manipulation of the DOM structures through, so it does require a solid understanding of the underlying web technologies, XML, and HTML. I don't think there's any way of avoiding that, though, because unless you expose the low-level capabilities, you limit the expressiveness of the final system.

    There are no magic bullets. Tools may make it easier or do more work for you than others, but sooner or later you need human intelligence to tie it all together and make it useful.

    --
    I do not fail; I succeed at finding out what does not work.
    1. Re:Nice writeup by buchner.johannes · · Score: 2

      If 90% of all web apps are the same, a language (or in case of Opa, it should probably be called a web application build system) can be the magic bullet for 80%.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    2. Re:Nice writeup by datavirtue · · Score: 1

      Is it even possible to write a web app in ASM? I think so.

      --
      I object to power without constructive purpose. --Spock
    3. Re:Nice writeup by funfail · · Score: 1

      At the end, everything is written in ASM...

  2. Re:first turd! by ThurstonMoore · · Score: 1

    Bravo! This is why I browse with all comments on. +5

  3. Opa = Grandpa by Anonymous Coward · · Score: 1

    Makes it sound very outmoded in Dutch, German, and perhaps a few other languages around the world.

    1. Re:Opa = Grandpa by Anonymous Coward · · Score: 1

      You've seen nothing yet. Think Japanese, "Oppai"

    2. Re:Opa = Grandpa by Zumbs · · Score: 1

      In Greek Opa is similar to Spanish Olé.

      --
      The truth may be out there, but lies are inside your head
    3. Re:Opa = Grandpa by Anonymous Coward · · Score: 1

      In spanish (argentina) opa means stupid/dumb.

      Also, the licence is AGPL, for a programming language that kind of restrict almost all serious use.

      Good luck selling your language dude!

    4. Re:Opa = Grandpa by Zumbs · · Score: 1

      Not my language, dude ;-)

      --
      The truth may be out there, but lies are inside your head
  4. XSS scripting issues by networkz · · Score: 3, Insightful

    Neat, but that site wont work with NoScript installed unless you allow XSS.

    Not a huge problem for some, but is a deal breaker for me.

    unless there's a workaround?

    1. Re:XSS scripting issues by ThurstonMoore · · Score: 3, Funny

      Workaround, disable no-script.

    2. Re:XSS scripting issues by msobkow · · Score: 1

      Are you seriously complaining that Javascript enabled technology won't work with NoScript blocking Javascript from running?

      Man, I've had some good stuff in my day, but I want some of whatever you're smoking!

      --
      I do not fail; I succeed at finding out what does not work.
    3. Re:XSS scripting issues by networkz · · Score: 1

      You're confusing running Noscript, and it's per-site blocking - with XSS blocking which applies to all sites, not just one.

      Might want to read up on NoScript, babes!

    4. Re:XSS scripting issues by networkz · · Score: 1

      Anti-XSS protection exceptions however, are not a one-click solution. So hence it being a deal breaker.

    5. Re:XSS scripting issues by msobkow · · Score: 1

      Here's an idea: Explain what you mean instead of assuming your audience knows the details of the issue as well as you do.

      --
      I do not fail; I succeed at finding out what does not work.
    6. Re:XSS scripting issues by Anonymous Coward · · Score: 1

      Here's an idea: maybe if the OP says "unless you allow XSS", perhaps what he really means is "unless you allow XSS".

    7. Re:XSS scripting issues by donscarletti · · Score: 1

      XSS or Cross Site Scripting is a nasty method that bad people use to spy on sites you are logged in to. NoScript is a Firefox extension to limit javascript access privileges to prevent such attacks in addition to providing per-site script blocking.

      In other words, he was complaining that he had to disable his XSS protection, not javascript in its entirety.

      Those are the details, you could have looked them up yourself on google and been the one to clarify that post, but instead you wrote something based on incorrect assumptions and you were rebuked for it by a guy called "Anonymous Coward". If you care about an issue enough to comment, at least do 2 minutes of research, you really cease to be "audience" once you start heckling.

      --
      When Argumentum ad Hominem falls short, try Argumentum ad Matrem
    8. Re:XSS scripting issues by dkf · · Score: 2

      Fix NoScript then... since its obviously broken.

      Or add proxying to your local server for the JS content that would otherwise come from another server. Or use something else that doesn't insist on using unsafe security practices. How hard could it be?

      --
      "Little does he know, but there is no 'I' in 'Idiot'!"
    9. Re:XSS scripting issues by Anonymous Coward · · Score: 1

      You're still assuming that I have any grasp of why a cross-site scripting issue would affect running Javascript.

      You don't need to know the details. You can infer from the OP that NoScript has protections against XSS, separate from blocking Javascript entirely, and that this new IDE somehow triggers those protections.

    10. Re:XSS scripting issues by mhelander · · Score: 1

      Thank you, +1 informative

  5. Not True with GWT by koestrizer · · Score: 2

    Google Web Toolkit allows you to create nice web client applications without any significant knowledge of HTML or CSS. Instead, you have to know the GWT Java classes (not JavaScript; it gets translated into that automagically). I used it in a real project and had to deal with CSS only to make it "nice to see".

    1. Re:Not True with GWT by msobkow · · Score: 1

      My point is that you are providing the human intelligence to work with that tool. You do the layouts, you tie it to data, even if it's at a higher level than raw HTML, CSS, and Javascript. Neuron Data's Open Interface used to be an abstract GUI toolkit that ran on Unix/X-11 systems, Windows, and Apple MacOS. You could stick with their abstract widgets and knock off an interface pretty quickly, but if you needed to do real customization, the hooks were still there to extend and customize how things looked, right down to creating custom widgets.

      Don't confuse the power of a 4GL to deal with a basic 80% line of business application with the ability to deal with the fundamental complexity of a real system. If line of business needs suited everyone, we'd have all been using something like MS Access for years.

      --
      I do not fail; I succeed at finding out what does not work.
    2. Re:Not True with GWT by koestrizer · · Score: 1

      Indeed GWT is not a panacea. But it can definitely be called a general-purpose programming environment for client/server applications, with the client running as a browser application on a broad base of browsers without any browser-specific coding required. It is also true that because it is general-purpose, the programmer must create "data-bindings" from widgets to database tables explicitly, if his application requires this. But how should it be done differently, if GWT is supposed to be the basis of Google Mail, Google Office applications and any other application one can think of running inside a browser ? GWT is not just a database-based framework, but a very generic widget-based programming infrastructure from which programmers can build whatever they can think of.

  6. Re:first turd! by ThurstonMoore · · Score: 1

    Thurston Moore is singer/guitarist for Sonic Youth, I like them.

  7. You only ever need to know assembly, C and Python. by Anonymous Coward · · Score: 1

    That's what happens when people don't know assembly, C and Python. Those are the only three languages you'll ever need to know for doing any type of programming.

    You use C and assembly when you need to interface with hardware, when you need to keep your software small, when you need speed, or when you need absolute control. You use Python for everything else, including web development, text processing, scientific computing, servers, and desktop applications.

    Given how easily Python interfaces with C, and how easily C interfaces with assembly, you have a perfect stack for every kind of programming problem imaginable. You can easily combine them as necessary to solve your problem quickly and properly.

    There are high quality free and open source implementations of each, and they are supported in some form or another on just about every worthwhile platform available. No other languages or platforms come close.

  8. Re:Ugh by Hazel+Bergeron · · Score: 1

    Modern technology is about dragging people along just quickly enough that they don't stop to look around and see how shit everything is.

  9. Re:You only ever need to know assembly, C and Pyth by FlyingGuy · · Score: 1, Interesting

    Python is just a superset of C that some ass wrote because he thought it would be cute to have an invisible block closure/. I am forking python and adding a customizable block closure so people have the choice to be handcuffed by indentation as block closure if they are really that stupid.

    If you know C and assembler you know ever stinking POS scripting language that has come down the pike, since every last one of them is nothing more then a C derivative.

    --
    Hey KID! Yeah you, get the fuck off my lawn!
  10. Re:first turd! by chill · · Score: 1

    Thurston Howell III was the rich, old guy on Gilligan's Island.

    --
    Learning HOW to think is more important than learning WHAT to think.
  11. Re:You only ever need to know assembly, C and Pyth by istartedi · · Score: 1

    Except of course when you need to pay the rent and the project is in Java, or C++, or PHP, or... (etc.).

    With those minor exceptions, you're right. :)

    --
    For all intensive purposes, "whom" is no longer a word. That begs the question, "who cares"?
  12. Re:first turd! by ThurstonMoore · · Score: 1

    I browse at -1. The + 5 was for the post.

  13. Re:You only ever need to know assembly, C and Pyth by Rockoon · · Score: 1

    You use C and assembly when you need to interface with hardware

    Which language feature is it that enables C to interface with hardware? Were you thinking of pointers? Seriously?

    I think you are under the growing misconception that C is "close to the hardware."

    --
    "His name was James Damore."
  14. Re:You only ever need to know assembly, C and Pyth by Thing+1 · · Score: 1

    Yeah, you're saying "get off my lawn" and you're not advocating toggling the switches manually to input your program? You fail old age. (That, and try doing regexes in C...)

    --
    I feel fantastic, and I'm still alive.
  15. Re:first turd! by Thing+1 · · Score: 1

    This has been circulating for at least a decade. I saw it first (which was the only other time I've seen it) over a decade ago, on alt.tasteless (Usenet).

    --
    I feel fantastic, and I'm still alive.
  16. Why not JavaScript? by SanityInAnarchy · · Score: 1

    I get the conceptual framework of deploying a single "binary" to everything.

    Here's what I don't get: Why invent a new language, bound to a framework and to a specific target application, rather than adapting an existing language to the task? What can I do with Opa that I can't with JavaScript?

    --
    Don't thank God, thank a doctor!
    1. Re:Why not JavaScript? by cshark · · Score: 1

      Yes, I understand this, but you're still writing Javascript if Javascript is being created (which it is with Opa), if you're thinking about it or not.

      You just add so many layers to it that figuring out what's actually going on at different layers inside the application becomes a hell of a lot more difficult.

      This is the same problem Rails has, and you see it with Javascript frameworks like Ext (or whatever they're calling it these days). I'm not saying Opa is bad, just that as a control freak programmer who likes to know at every step what his app is doing, that I would have trouble with giving that up. I don't think I'm the only one either.

      I understand the need to write things faster.
      I work in production, I have to understand this.
      What I can't comprehend is why you want to create problems for yourself that you can't easily solve.

      Maybe you could enlighten me there.

      Thanks.

      --

      This signature has Super Cow Powers

    2. Re:Why not JavaScript? by SanityInAnarchy · · Score: 1

      JavaScript can handle Erlang-esque messaging, it just gets ugly with having to use callbacks and closures for everything. There are projects which fix this without building a whole new language.

      What does static type analysis have to do with anything?

      --
      Don't thank God, thank a doctor!
  17. some substance to it besides all this fud? by Anonymous Coward · · Score: 1

    I've actually tried to follow through the site - installing the compiler, reading the manual and trying it out. First impressions:

    1. The language itself is just a bastard sorry child of ocaml and erlang.
    2. Both parents are specific languages with steep learning curve.
    3. Using powerful paradigms with necessary horrible syntax makes no sense here - especially when webapp developers are your target audience.
    4. Opa brings a lot of hidden "gay magic" (all-in-one binary, the whole client/server rpc thing, objectified xhtml), yet fails to deliver something meaningful.
    5.To clarify the above, it doesn't make database models, templating, forms or MVC in general any easier - there is NO sweet spot hit as seen in ruby on rails or web2py - in fact, it's very, very lowlevel with neat erlang-like client/server model behind the scenes.

    Database, or better said, the lack of thereof, is a topic in itself:

    1. in OPA, there's a persistent storage of key/value, with a single index over it.
    2. no SQL, not even noSQL, no nothing. if someone manages to actually query some fields past key/value storage, please enlighten me.
    3. I suppose this is for the better, since well, we don't need to use real database queries in webapps, right? uh...

    Note that these are first impressions, not necesarily correct. OPA is very interesting from academic standpoint - in fact its origins are in academia. Damn undergrads should know their place - ocaml, erlang even scheme never proven to be useful past np-hard problems. As far webdevs are concerned, we just want our import flying

  18. Not for commercial use - AGPL by Cato · · Score: 1

    Opa is a really interesting design but it's AGPL, so it can't be used for any closed-source apps, even if hosted on a server. Maybe they will dual-license it in future, but right now it's only for open source work.

    1. Re:Not for commercial use - AGPL by devent · · Score: 1

      Open Source can be commercial, you know? Ask Redhat with US$ 909.3 million (FY 2011) revenue.

      --
      http://www.mueller-public.de - My site http://www.anr-institute.com/ - Advanced Natural Research Institute
    2. Re:Not for commercial use - AGPL by koper · · Score: 1

      Actually it *was* dual-licence from the start. Moreover for some time MLstate offers proprietary licence for free.

  19. Why must every new platform have it's own server? by cshark · · Score: 2

    Okay, so this is the sixth new platform I've reviewed in the last year that has its own built in web server. Why? It's a complete pain in the ass to manage platforms that are built this way. Most of the time, the servers they come with are not as good for general purpose use as Apache, and well, because they require their own servers... you can't really run them on a traditional server if you wanted to. Now, I understand the need and desire to change the paradigm. I've been there. I've tried to do it. But the web server paradigm EVERYONE ELSE USES is not broken. Why the hell is everyone trying to replace it with something that is untested, that doesn't work as well? Why can't someone design a precise, straight forward language that plugs into my web server, which allows me to scale and thread properly to billions of connections? I'm not asking for a lot. Other than I'm asking for a lot. Apparently.

    --

    This signature has Super Cow Powers

  20. Re:You only ever need to know assembly, C and Pyth by cshark · · Score: 1

    Spoken like someone who didn't take Python seriously enough to even learn the basic syntax. Well done sir. This kind of ass hattery is epic. I aspire to it. Thank you.

    --

    This signature has Super Cow Powers

  21. Re:You only ever need to know assembly, C and Pyth by cshark · · Score: 1

    Some people can't think without brackets. These kinds of people don't understand anything but C, and never will. You should feel sorry for this clod. He's earned it.

    --

    This signature has Super Cow Powers

  22. Re:Might be mocked by some... but... by cshark · · Score: 1

    It's great for that. But you're not going to see a lot of expert programmers sign on to something that has no clear distinction between database, app server, client, and web server. And, since Opa has a totally unique way of doing things, it's not going to be easy to re-use most anything you pick up learning Opa. Sure, you could teach newbie programmers how to do it, but there's zero commercial demand for it, and you're teaching them a skill set that's not good for anything else (right now anyway). You're better off teaching new programmers Python. At least that way, they'll pick up habits that are re-usable elsewhere.

    --

    This signature has Super Cow Powers

  23. Re:You only ever need to know assembly, C and Pyth by cshark · · Score: 1

    When I think about paying rent, I ask myself what languages are in the highest demand, but the lowest supply. Usually some framework subset, or cms in php. Php is great. Easy, fast, flexible. And you won't have any problems with it if you think like a C++ programmer.

    --

    This signature has Super Cow Powers

  24. Re:Might be mocked by some... but... by justforgetme · · Score: 1
    --
    -- no sig today
  25. Re:You only ever need to know assembly, C and Pyth by justforgetme · · Score: 1

    He doesn't like excess whitespace because he is programming with it

    --
    -- no sig today
  26. Re:You only ever need to know assembly, C and Pyth by justforgetme · · Score: 1

    Everybody knows that real programmers program the logic gates directly, no sugar there!

    --
    -- no sig today
  27. Re:who gives a fuck about this useless platform? by koper · · Score: 1

    Well, you may not care, but obviously some people do. Also if you rant something at least you could get your facts straight; the platform is not closed (it's open source) and it's not pay-only (the AGPL licence is free and so is the proprietary one for small and medium companies, see here and here)

  28. Re:You only ever need to know assembly, C and Pyth by Crudely_Indecent · · Score: 1

    What, you normally don't indent your code?

    Sure, I do...but I don't necessarily indent my code YOUR WAY. I indent to my preference.

    Sometimes, I put entire if statements on a single line! Not to be contrary, but because they're just that damned simple. Of course, not in Python......

    --


    "Lame" - Galaxar
  29. Re:Why must every new platform have it's own serve by Riskable · · Score: 2

    We had what you prefer for like a decade now and you know what? It sucks. Like PHP is somehow the the pinnacle of how application development should be. Hah!

    Not to mention the fact that managing Apache httpd or Nginx with generic language "plugins" is about as intuitive as tying your shoes using a robotic atm controlled by a BlackBerry.

    Also, please tell me how this model of development "doesn't work well?" If it doesn't work well no one will use it. Problem solved!

    Why don't you take a break from this old school, all-problems-have-been-solved web of yours and go tell some kids to get off your lawn.

    --
    -Riskable
    "Those who choose proprietary software will pay for their decision!"
  30. Certainly by koestrizer · · Score: 1

    ..you can write a web app in assembly language. It will just be more time-consuming do develop than using perl, C#, Java, GWT or similar technologies. It will probably be much smaller in memory footprint and much faster in execution perfomance, though. I guess the number of security problems will also be higher with assembly language, similar to using C.

  31. Re:Why must every new platform have it's own serve by koestrizer · · Score: 1

    Take a look at Google Web Toolkit. The default model is to use Java (not JavaScript; Java is translated into JS for the client side) both one the client and the server side. But if you are not happy with this model, you can of course use a different language/runtime on the server (such as Perl, C# or C++). As I said before, it is not a panacea, but a nice model IMO.

  32. Re:You only ever need to know assembly, C and Pyth by mhelander · · Score: 1

    I don't know enough about C, so this may just be failed speculation, but...

    C allows you to break out into ASM code, fine. But unless what you break out into is in fact an extension of ASM that includes some understanding of the C domain for integration - that is, IF you only break out to standard ASM that has no clue that it is embedded in a C program (this is my unfounded assumption) - then I see no theoretical difference to a langauge that can just call out to a component written in ASM. In other words, if C is considered to be able to "access the hardware directly" only because it can call out to ASM code, then Python could be considered to be able to "access the hardware directly" because it can call out to C which can call out to ASM. Sure, two layers of indirection is more than one, but they are both in the same camp of being more than zero layers of indirection away from the hardware.

  33. Re:You only ever need to know assembly, C and Pyth by jeremyp · · Score: 1

    C uses braces to delimit blocks, not brackets.

    Having explicit block delimiters is quite useful actually. It makes it possible to copy and paste blocks of code around without changing its meaning. Modern IDE editors use the braces to magically work out how it should be indented without you having to insert spaces.

    Any syntax in which characters you can't see are syntactically significant is asking for trouble, in my opinion. Then again, lots of really good code has been written in Python, so I may just be a bit paranoid.

    --
    All I want is a secure system where it's easy to do anything I want. Is that too much to ask ~~ Randall Munroe
  34. Re:You only ever need to know assembly, C and Pyth by FlyingGuy · · Score: 1

    Spoken like someone who can't read.

    There is nothing particularly wrong with the syntax of python, it is a fine scripting language.

    What is wrong with it is that the author decided that his indentation style was better then anyone else and he coded his interpreter to enforce his stylistic view. Forgive me, but having an invisible block closure characters is stupid and wrong and that is why I am forking it and recoding it so that you can have your choice between something invisible and a curly brace ( which just happens to be the block opening ) as a block closure.

    --
    Hey KID! Yeah you, get the fuck off my lawn!
  35. Re:You only ever need to know assembly, C and Pyth by FlyingGuy · · Score: 1

    My Error, it does not use a curly brace to open a block.

    But it will!

    --
    Hey KID! Yeah you, get the fuck off my lawn!