I think having XHTML as a defined type is a stroke of genius, at the risk of hyperbole. No quoting html fragments?! Damn. Wish I'd thought of that.
I'd say it's because of this requirement that they couldn't use Javascript. And inventing a new language over JS is problematic. I won't even learn coffeescript and that's everywhere. You're not going to get me to learn Opa, sorry. Maybe they should have made it a very thin preprocessor where you get to inspect the JS...
Object Relational Mapping and Object Document/Graph Mapping is fine so long as they're not the same mapping :) and so long as you get to inspect the SQL or MongoDB QL...
Not sure what you mean by "and MVC on the server doesn't make sense anyway in this scenario" We're all familiar with MVC scaffolding from Rails by now, aren't we?
> I won't even learn CoffeeScript and that's everywhere.
Could you please explain why is that? I'm honestly asking - my hobby of learning languages (https://klibert.pl/articles/langs.html) makes me completely unable to understand opinions such as yours here.
Opa once implemented an ML-like language, which I liked better than the current JS-like thing. They moved to JS because of two reasons, IIRC: to get a runtime for free (Node) and to be "more familiar to more developers".
Besides syntax, Opa offers quite a lot of benefits on a language level. Static typing with inference and statically typed HTML - this means that code that isn't safe in terms of HTML injections does not compile at all! Executing the same code on both backend and frontend, built-in database layer and a whole lot of helpers and tools for creating SPAs.
At first I thought Opa is something like Seaside in Smalltalk or Nagare in Python, but it is unique in that it lets you write client-side code without much hassle, which is rather hard in other frameworks.
I can't answer for igravious, but I can answer for me.
I'm not interested in learning Coffeescript because it doesn't do anything that javascript can't do, by definition, and it seems to me that my time would be better spent practicing more javascript (10,000 hours and all that).
I get that there's some benefit to hopping around languages, learning from the different paradigms, but there's also benefit from going deep on a single language. Some of the stuff I've seen people do in js is amazing and I'd like to get that kind of mastery. I don't think learning Coffeescript will help with that.
I also find that whole "I can code in 12 different languages" a bit shallow. Yes, I can code in 12 different languages, but can I do it well? Have I mastered those languages, or am I just surfing the shallows of each, unable to really get the most out of them?
I'd prefer to pick, say, three languages, at most, and really learn them. JS is going to be one of those languages because browser, I'm still trying to work out the others but Coffeescript is definitely out.
> I also find that whole "I can code in 12 different languages" a bit shallow.
It's 83 in my case... (I'm joking: obviously I didn't write much code in most mentioned languages. But I wrote at least something in the 100-1000 loc range in most of them, I think).
> Have I mastered those languages, or am I just surfing the shallows of each, unable to get the most out of them?
That's only a question you ask yourself at the beginning. You stop doubting your skills and knowledge in different languages around a decade into learning about them. Well, that's how it worked for me.
> and it seems that my time would be better spent practicing more javascript (10,000 hours and all that).
Been there, done that (metaphorical 10000 hours). Four times over with C++, PHP, Python, JavaScript. Then Erlang, and after that, the time needed to learn most of almost any language was significantly reduced.
> I'd prefer to pick, say, three languages, at most, and really learn them.
Again, been there, years ago. Programming - for me - is a life-long career choice, which means I still have 3-4 decades of coding ahead of me. With a solid 10+ years of experience already I know that staying too long with one tech causes boredom; the issue is how to pick the next tech? I figured I'd need to learn quite a lot of them to make informed choices, and so I focused on this. I don't want to stay with a single tech for too long.
I think Erlang was a last drop in a bucket, so to say. Learning it made me finally realize two things: that there are many very different languages and that there is some common, underlying structure to even the most diverse languages.
What's funny is that when I first saw this project years ago, I was excited precisely because it wasn't JavaScript. Basically, I despise JavaScript (thousand burning suns, etc) so something that is definitely not that was exactly what appealed to me and made me want to learn it. (Webassembly is pretty exciting to me now, obviously.)
I think having XHTML as a defined type is a stroke of genius, at the risk of hyperbole. No quoting html fragments?! Damn. Wish I'd thought of that.
I'd say it's because of this requirement that they couldn't use Javascript. And inventing a new language over JS is problematic. I won't even learn coffeescript and that's everywhere. You're not going to get me to learn Opa, sorry. Maybe they should have made it a very thin preprocessor where you get to inspect the JS...
Object Relational Mapping and Object Document/Graph Mapping is fine so long as they're not the same mapping :) and so long as you get to inspect the SQL or MongoDB QL...
Not sure what you mean by "and MVC on the server doesn't make sense anyway in this scenario" We're all familiar with MVC scaffolding from Rails by now, aren't we?