5 ms·
Unbreaking Web Development, One Loc at a Time
- Yoric 15y agoNote: This is a partial follow-up to http://news.ycombinator.com/item?id=2458556 http://news.ycombinator.com/item?id=2458556 .
- Yoric 15y agoOpa is a new programming language. If you have feedback or questions, we are definitely interested. You can reach us at feedback@opalang.org . Our teaser website, http://opalang.org http://opalang.org, also offers some documentation, or you can find a few dispersed examples on Github.
- skimbrel 15y agoThere are a lot of bold claims here, but "automated XSS protection" smells the fishiest to me. And since when did ostensibly open-source projects have closed betas? Release it now and get more eyes on your code.
- Yoric 15y ago> There are a lot of bold claims here, but "automated XSS protection" smells the fishiest to me. I'll detail the mechanism in some other blog post, but it's actually very simple. In the meantime, let me suggest something: go and connect to the chat and attempt to XSS us :) You have my word that the online chat is exactly the same one as the source code that we have made available. And you can check that there is not one single line of code for XSS.
- jerf 15y ago"There are a lot of bold claims here, but 'automated XSS protection' smells the fishiest to me." No, there's a variety of ways to accomplish this. You just have to give up the ability to smash strings together with no thought about what kinds of things they are. The fact that smashing strings blindly together, then desperately running along behind it and trying to clean up the resulting mess, is basically industry "best practice", is the biggest failure of the programming community since buffers that overflowed into executable space. It shouldn't "smell fishy"; a framework that makes it easier to write XSS than to write correct code ought to be what "smells fishy", but here we are.
- plinkplonk 15y agoSo is this language closed source? If so what is your strategy to make it succesful (given that you are not Sun or Microsoft). If not, what license will the source be released under?
- Yoric 15y agoThe language is not quite released yet. But it will be released as open-source as soon as we're ready. The license will be AGPL. Fully contagious.
- mbengue 15y agoThanks for tackling such big issues. Waiting for an access to opalang.org and for EasyOpa, something like EasyPHP but with OPA :) and running on WINDOWS ! When you guys say "a single programing language" do you consider CSS ? Or isn't CSS a programing language ?
- Yoric 15y agoWe offer some facilities for CSS, but no, you are right, in that sentence, we do not really consider CSS a programming language. Most of our applications use regular CSS stylesheets, embedded in Opa – in particular, that's the case of all the examples in the tutorial.
- p4bl0 15y agoYou should consider having something like Less[1] embedded into Opa :-). [1] http://lesscss.org/ http://lesscss.org/
- Yoric 15y agoActually, we can essentially do that in Opa already, for many (but not all) CSS properties. It's not officially on our feature list, though, because we have many ideas that we haven't had time to implement.
- gaius 15y agoOcsigen has been doing this for years, check it out.
- Yoric 15y agoIndeed, Ocsigen is a very nice project that offers some of the features of Opa. If you take a look at our documentation, you will realize that we go much further than Ocsigen in most directions (client-server transparency, distribution, etc.) You make me think that it would probably be interesting to compare feature-by-feature Ocsigen and Opa. I'll try and do that in another blog entry, possibly with the help of Vincent Balat.
- dfischer 15y agoInteresting concept but so far the syntax seems unappealing on first glance.
- Yoric 15y agoOk, I'm interested. Would you mind sending us more detailed feedback? feedback@opalang.org
- thejash 15y agoWhy not make the language at least very similar to an existing language? Sure, even if it isnt EXACTLY the same, it at least has a number of people that already write in it, editors that deal with it correctly, etc. Plus you can use general purpose code snippits from such a language, which will help greatly decrease the amount of libraries you will need to make directly before this becomes useful to people.
- Meai 15y agoI respect people that create toy languages. But you are obviously trying to market this language to people with real world projects. The only thing that I'm interested in when I read about a new language are these: 1. How fast is it? 2. How does it interoperate with C and Java? Any other advantages are worthless if those two things are not present. Provide some benchmarks against popular webframeworks like nodejs, and if you are faster, we may have a deal.
- Yoric 15y ago> 1. How fast is it? I'll post benchmarks in another blog entry. Quick answer: very fast. > 2. How does it interoperate with C and Java? With C, easily (you can find more info in the manual). With Java, later.
- jonmc12 15y agoAre there benchmarks of Opa vs Node or Erlang?
- Yoric 15y agoNot yet. We'll try and publish some.
- pierr 15y agogreat
- Animus7 15y agoWhat about rolling out updated code? No app, especially web app, is static, so this is a huge deal. I saw no mention of how this extremely common workflow is handled without taking the app offline, and how this deals with e.g. schema changes...
- ventu 15y agoIf your having several instances load-balanced, you can easily update your site, one instance after another. No server runs mono-process. What do you think?
- hbbio 15y agoIf it works like this, it's a great feature. But what's happening when in an update the database structures are changed?
- ventu 15y agoThere's no easy answer to your question. Although Opa raises warnings when it detects that the databases your accessing/trying to modify have changed, I guess you'd have to think of a migration process anyway. What is your best practice so far? (and your expectations :p)
- Yoric 15y agoWe handle schema changes very nicely. Our db tool can detect automatically whether a binary and a schema match each other. Most common changes (e.g. field renamings, singletons transformed to lists, etc.) can be handled automatically. Of course, complete refactorings of subsets of the database may require non-trivial transformation. Opa can't do everything automatically, but it will still check whether the database you obtain at the end of the transformation matches the requirements of your new binary.