Actually - full of really useful functionality.
"Developing with Opa is as simple as it gets: first, write your code with the Opa programming language — and only the Opa programming language, no JavaScript, no SQL, or anything such. Then compile the code, and let Opa analyze security, generate the code for the browser, for the server, for the database, and combine it with the web server."
"Simple, Secure, Scalable Web Development with Opa"
The Python list was a good one. The things listed are the things you miss when you come back to PHP.
programming is fun
Eliom always seemed too complicated to me. It appears to do great things, and seems well engineered; but it felt too hard to use, and the documentation was organized in a challenging way for a newcomer. At least that was my impression a couple years ago, maybe I should give it another try.
I had high hopes for Opa once, as well... they just went in opinionated directions (NPM, MongoDB) that didn't resonate with me.
I don't know much about record types theory, but I recently tried the opa language and I must say that I really enjoyed very much their record system, to the point that i would encourage everyone to look at them. They are similar to algebraic datatypes, but open ended, and basically each line in a sum don't need a constructor labeling it because the record itself is the constructor. I'm not sure if i'm clear, but they are kind of cool to use…
Far into the future I think some sort of virtual machine will be baked into the browser so PHP, Python, Perl, C# etc will be supported. Then switching between server side/client side will become a lot more fluid.
Domain specific languages will become more important. At the moment I use Doctrine that has DQL in it, but I have to write it in a string. DQL or SQL could be a mini language inside PHP, as could XML, HTML etc.
http://opalang.org looks interesting. I sort of smears your app across many servers, it wouldn't take too much thought to include the client machine in that equation. Currently the coms channel between PHP and the browser is HTML and AJAX, I think this will become smarter.
PHP does seem to lag behind other languages/web frameworks, it never seems to push the boundaries. But it does get to cherry pick the ideas that work.
I honestly think a lot of PHP developers will simply move to using Ruby, Python or node.js. Those are more disruptive, so start ups will tend to use them, and start ups end up being big companies that require programmers.
I have one more language to add to the mix (newer and, at least until now, less popular than the one mentioned in the article -- does that make it even more hipster ;). I'm talking about Opa -- a new language for web apps (http://opalang.org). It also passes all the main bullets-checks (i.e. is functional etc.). Any kids here programming in Opa? :) [Disclaimer: I'm part of the team developing Opa]
All right, I'll try anything once.
Some tips for the opa developers, in case they're reading this:
That being said, I'm still interested and would like to learn more.
Ok, that's a long one :).
First of all, yes, we're very interested in seeing the code of the blog you wrote in Opa. On http://opalang.org we have a list of application developed with Opa and we would be happy to include yours (if you're ok with it, that is).
Also thanks a lot for "standing up" for Opa :)
Concerning some of the concerns you raise:
[](/4h) Yeah, seems like they've just been sticking things together with super glue or something, eheh. I'm a fan of languages like Opa that try to bring everything together, even if it's still using HTML/CSS/JS.
Funny how ppl seem to focus on the name :). It's just a name. Pick a short name and chances are it means something in a handful of languages -- by now we indeed know what does Opa mean in some: http://opalang.org/faq.xmlt . But it's more than just a name. And I'd rather hear criticism about the language than its name ;).
Ok, first of all, thanks for your interest and an extensive feedback. Now, on to the comments.
Long story short: thank you for criticism & feedback. Most of the things you mention are easily handled by Opa and I'll come to them in the series of tutorials (it's hard to cover everything in 3 short tutorials :). Some are lacking but we're working on it (most notably: Windows & 32-bit support, better IDE integration). Please keep in mind that Opa was released only two weeks ago. I agree that we have a long way to go but I believe in the end we will get there :)
> On http://opalang.org we have a list of application developed with Opa and we would be happy to include yours (if you're ok with it, that is).
It's already there! I meant provide a link if redditors care :) (it's the 'opaque' blog app on the 'see' page!)
> Documentation. Yup, we're aware it's not perfect and we're trying to improve it. With Opa being open-source all contributions are of course very welcome!
It's actually all quite good, it's just hard sometimes because some code samples are broken! It's my fault for not pointing some of these out when I encountered them though, since I'm on your IRC channel (I was trying to get my blog just working at the time. :P) I'll try and do this when I encounter problems.
> Templating. Opa has a templating mechanism. I'll soon try to post a tutorial about it on the blog at: http://hands-on-opa.blogspot.com. We're very interested in hearing any feedback (about templating, not the blog... well, both, actually :)
Yeah, I heard about this but just the template documentation made it hard to see exactly how to use it. Glad you guys are going to be writing cool tutorials!
> Agreed that C binding is not perfect. Improving it is on our TODO list (it's a long list, though, so please bear with us)
I think if you provide a link on a good OCaml FFI tutorial or just a quick primer it would be a bit easier - I thought this was a pretty good reference, when I was trying to write my upskirt bindings: http://www.linux-nantes.org/~fmonnier/ocaml/ocaml-wrapping-c.php
The main website (http://opalang.org) works fine for me here.
EDIT: also, yes, the single binary deployment is as nice as it sounds. And it really does distribute to multiple machines easily with the opa-cloud
utililty - I wrote a simple blog using Opa and distributing it across multiple machines was stupid simple.
I should add that this conversation is about the Opa platform. The feedback we are currently gathering from the community is going to play an extremely important role in shaping the future of Opa.
Thanks for your feedback.
I am the project creator. Regarding templates, this is still a preliminary implementation... As the designer of a programming language previously (Opa, http://opalang.org), I have a roadmap for templates that involves a formal definition for the semantics of awless templates and operations on templates. We want that part bug free!
> >0 community
There's an interesting language for combining front-end and back-end development, Opa. The developers used it to build their site, but the last language release was in April 2013 (granted, there have been a few commits this year, but nothing released). And worse, approximately 0 people use it.
edit: whoa, I checked now just to find this on Github:
> Since the documentation website is down, I wonder if I can generate it from source. It seems that opadoc is used for the documentation, but I cannot find it. How can I generate the Opa documentation from the source files ? Thanks.
I'd be very interested in seeing something like this. One of my biggest gripes with Javascript is the lack of type safety, while on the flip I love ML family languages due to the ridiculously powerful type inference. If you could combine the two then Javascript might start turning into a tempting language.
I'm not sure Javascript in its current form could implement proper type inference, but it wouldn't be hard to define a fairly decent subset that could.
At the moment there's Opa (http://opalang.org/) - I haven't used it personally, but it looks like a language very similar to Javascript with ML style type inference.
Most of the popular web programming languages doesn't require use to explicitly declare type when the variable is created. Unless it's type infer... it's going to have a bad time.
I don't see it taking over much. As for all web development, it seems like the rival language come to mind is Opa.
The sample apps list contains numerous duplicates (e.g. OPA Poker)... and what sort of editor/ide makes entering raw HTML easy?
I've been an emacs user for 20 years now.
> Halderman’s closing statements on e-voting are that a single flaw in the configuration of the system could be fatal, and secure Internet -based voting won’t be ready until there are significant fundamental advances in computer security.
I would like to see an attempt to implement e-voting in opa. I'm just curious to see how it would hold up in comparison.
I know you jest, but take a look at http://opalang.org, they have webserver and DB baked into the language.
After all, why not? If 50% of projects are using some sort of free SQL DB, why not bake SQLite into PHP? Or MySQL?
If you wanna know where PHP is heading, take a look at modern languages and ideas.
I'm pretty sure that the Opa language is built around the idea of writing web applications/services in some variant of Standard ML. The TypeSafe stack for Scala is also purportedly good for that sort of thing.
Well, Opa includes a compiler from Opa to JS, so everything you write in Opa can be put on the client as a client-side Javascript.
But indeed rewriting every existing library into Opa would be silly and Opa easily allows to bind to external JS libriaries
Turns out I can enter a rubbish address. I get a video (that I'm sure as hell not watching), and this:
> Want Priority Access? > > Be among the first to play with Opa by inviting at least 3 friends. The more friends you invite, the sooner you'll get access :) > > Share this through Facebook or Twitter > > I've just registered on Opa. It's a new platform that promises to change web development forever. You should register, too. > > I've just registered on @opalang. You should, too. > > Or copy this link in an e-mail
Fuck that shit.