5 ms·
Very nice work pulling this sort of thing up - but honestly? This looks terrible to actually use in code. Even if they do commit to working on this language -
by inglor 11y ago
Very nice work pulling this sort of thing up - but honestly? This looks terrible to actually use in code.
Even if they do commit to working on this language - and it offers advantages over Meteor (which it looks to be inspired a lot from) - they have a lot of design choices I don't understand:
- Inventing a new language over JS is problematic, a dependency, and you don't get goodies as they land in JS.
- The fact IO is implicit and not explicit means you don't know where you're paying - and is a very leaky abstraction.
- jQuery as a default part of the standard library? Really?
- Anything that "automates the database" terrifies me, anything that wraps PostgreSQL and MongoDB with the same wrapper means I'm paying for impedence mismatch _somewhere_ but they're not telling me where.
- Their "MVC support" section is really about scaffolding, and MVC on the server doesn't make sense anyway in this scenario.
I like the JSXish'ness of some of it but honestly not sure why anyone would use it - the fact there are no strong backing companies is also worrying.
That said - that's just my impression so as always I recommend you try it yourself rather than take my criticism :)
- xixixao 11y ago"Released in June 2011" they have been working on it for a long time, which might also explain some of the choices you pointed out.
- inglor 11y agoWow, that totally got me, thanks. 2011 definitely explains a lot of the choices like including jQuery and 'almost jsx' syntax. They have some interesting projects with it (the end to end encrypted chat) but I think they might have missed the train. This also explains not mentioning meteor.
- igravious 11y agoI want to counter your criticism with this: 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?
- klibertp 11y ago> 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 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.
- marcus_holmes 11y agoI 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.
- igravious 11y agothree? maybe four? C, Javascript, (Ruby/Python/Perl), (Haskell/Scheme/Common Lisp) :) EDIT: and some assembly variant (ARM,x86,...)? so five?