I don't recall Angular 1.x having a shared local/remote persistent storage API with built-in local and remote drivers and a storage driver SPI.
There's considera le feature differences in the simple templating functionality of this vs. AngularJS 1.x, as well (Angular seems a bit more powerful overall, but this seems to make some of the common things simpler), but I think it's the storage integration which is more of a fundamental difference.
I'm slightly confused... this seems like a cross between WebComponents and a very simple template language. With a bunch of pre-built components.
It's a neat idea but I feel like I'm missing something. Which part if the approach is "new" here? I'm not criticizing, I honestly feel like I must be missing something and would like to know what.
I see what you're saying, but that looks like a function call embedded in the HTML.
Embedding your programming into HTML doesn't make it any less programming. Otherwise, you could say web programming doesn't exist since it's all just HTML script tags.
Hmm, yes, the readable() value does look like a function call with the sort of unforgiving, indecipherable syntax that can give a non-programmer trouble when they have to do more than paste a sample (e.g. actually enter a filename, including the path). That blurs the "programming" line more.
Spreadsheets have function calls as well, and yet non-programmers can use them. We don't care about making a theoretically pure distinction, we care about making something that non-programmers can actually use.
...by abusing existing terminology in confusing ways, clouding the issue. Exactly like http://catb.org/jargon/html/E/English.html , named just so marketing team could claim "You can program our computers in English!"
I didn't intend to denigrate your work - I think it's really interesting.
However, to advertise it as not being programming seems bogus to me. In Excel, you click the "fx" button and choose "SUM" and then select some cells with your mouse and it pops in there =SUM(A1:A4) for you, which feels in practice quite far from what I would consider programming, and I think people who are non-programmers but have the right sort of mindset can usually fathom this stuff.
The example I quoted above, however, looks a lot more like programming to me, and the nested parentheses alone would be enough to scare off a lot of non-technical types. I have dealt with many people over the years who have to do a bit of programming in their roles but really aren't programmers in the conventional sense, and they find things like the difference between A(B(1,2,3)) and A(B(1,2),3) extremely hard to grasp.
I don't understand why there is such negativity about this. They state it is not perfect and it is work in progress near the bottom of intro.
What I like about this, is that it allows quickly to make simpler sites that can be edited. I don't want to program upload images ever again, or edit fields. Why do this?!
I think this is neat idea and we really need to innovate and move past coding crud apps all the time. Developer bootcamps are proof we are not doing anything new.
> I don't understand why there is such negativity about this.
I'm not sure I'm reading the same comments as you. None of the ones I read seem overtly negative. Mine is the closest to negative and I explicitly said that I'm just trying to understand not criticize.
You may be reading into them too much. For example, the person saying it is like Angular 1.0 could be negative or very positive depending on your view of Angular.
Edit: I take that back. The one about "not a single line of code" is actually more negative than mine. Although it also happens to be true. That is code.
It is neat for sure, so are using appventor (blocks to build android apps)[1] and other shortcuts to build websites and apps.
The problem is that it says simple, while talking about Git for goodness sakes; commit permissions and such. It says no code. I disagree... you need to know HTML basics to even comprehend the Mavo way.
Why not just make a vanilla HTML page if that is all you need? HTML is not hard... and how is this moving us past CRUD?
In the storage docs they mention that you do not need to know Git to use Mavo. They simply use Github as a backend for storage. So a beginner would merely have to setup a Github account to get persistence for their app.
Right... here is a bit of a sarcastic retort: "just use this thing called Github. Don't worry that you have no idea what Git actually is... log on to Github and start saving stuff there. Commit you ask? Don't worry, don't code anything!"
I think some comments reflects that very similar things has been done for 10 years or so. And this don't seem to solve all problems, only a few of the problems.
It looks like you would end up with one html page per page in the site. And when you have 50 pages or more and decides to change the structure you would have to change all the pages. I'm not even sure the tool supports that, you might have to start with git and a standard html editor and change all files. Then you are back to editing html and have not gained much. For _very_ simple sites this might help and it does look very nice.
It seems to be missing simple authentication. I really like how Azure Web Apps[0] do it for example. Then you could use that to authenticate with some external storage.
The idea of websites being just a way to access and modify data that you own entirely (private Git or else) is really neat.
EDIT: actually they do handle authentication but it's GitHub only. Also they seem to support REST APIs (from a custom backend) but no demos or example of that.
After working with React/Inferno and some of the other virtual dom frameworks, I simply can never go back to templating languages baked into HTML. While this seems like a nice idea, I don't think I could use it for that reason. It's incredibly limiting to try to write your code into HTML with a small programming language built in. You spend more time fighting the embedded language then making content.
I could see this being useful for individual or small businesses that don't have a tech savvy or IT staff. The business pays a web designer to set up the site. The content can then get updated over time. WordPress sometimes is overkill and something simpler is definitely a plus.
And your examples are somehow better readable to "non-tech...company"? How? Better, as compared to...oh wait, not compared to anything, tested on a sample of 20 people. Passing that off as "This is not wishful thinking; it’s published, peer-reviewed research" (your front page) is dishonest at best. And it gets better. Those people in the study were recruited at "local web design meetup groups". Non-technical? How's that for selection bias?
It seems just like Angular to me - and worse, buggy Angular: how does "Born on
time property="birthday" datetime="2014-06-01" 1 Jun 2014 /time" get transformed into "Adam Catlace Born on 1 May 2014"? ( http://mavo.io/docs/primer/ , current Google Chrome, version 58, no extensions, no weird timezone one month behind the rest of the world)
The language does seem nice for the tasks at hand, and the learning curve looks shallow, but you are overhyping it way too much ("no programming", "better readable").
Sometimes I think a static CMS like Lektor may be a better framework to set up. The static nature prevents any of the dynamic exploits but still maintain templating system without adding complexity after the initial setup.
I'm curious about if you've done any research with this experiment yet and if so where can I find it? I'm very curious on ways to make programming more friendly/approachable, but I have found very little research that even begins to examine what a friendly/approachable programming language would even look like.
Thanks so much. Yeah, I was specifically looking for research related to programming languages, but I'll give it a look. Good luck! Thanks for putting this out and helping slowly chip at the divide between consumers and creators in computing today.
Probably an odd question, but am I the only one who thinks this would have been a godsend about 10-20 years ago?
I mean, it's useful for some cases now (like as mentioned, non programmers wanting to make more dynamic sites), but back then a lot of cheap/free hosting services didn't support any server side scripting.
Something like this would have let you build an ad hoc CMS on a free hosting service like Geocities. Which would have been pretty useful for the utterly skint.
Now though? It's still useful for some people, and I do think it's something I'll test myself at one point, but I feel the easy access to free/cheap hosting for server side scripts has likely cut down on its usefulness a fair bit.
This is a very interesting project, and all attempts to simplify web development at this point are more than welcome. However I really wouldn't call it "a new way to create Web Applications". With such an ambitious title, no wonder folks here are thinking it's on the same category of libraries like Angular.
It looks like a great tool for non-programmers and power-users creating simple CMS kind of sites, which is already a great deal. However, typical Web applications are much more complex than what this tool could possibly do, so I would recommend to reconsider that message. Javascript, servers and databases are not the assembly of the web, there's good reason for their existence and in slightly more complex scenarios they simply can't be abstracted away.
It's not just about the message, it's about settling on a specific audience, and with that, focusing the efforts to provide as much value as possible for them. Trying to stay on the middle term for any generic "web applications" might mean the tool will never be flexible enough for professional web apps nor feature complete enough for non-programmers use cases.
This kind of work shows a great direction for the future of web development. It's true that the HN community might be more incline to programming than others, however this library makes building web pages user friendly while still keeping it close to the language.
Also, huge props to Lea Verou who's been notable at working on improving the web and CSS!
49 comments
[ 3.1 ms ] story [ 39.8 ms ] threadAnyway the idea is nice!
There's considera le feature differences in the simple templating functionality of this vs. AngularJS 1.x, as well (Angular seems a bit more powerful overall, but this seems to make some of the common things simpler), but I think it's the storage integration which is more of a fundamental difference.
It's a neat idea but I feel like I'm missing something. Which part if the approach is "new" here? I'm not criticizing, I honestly feel like I must be missing something and would like to know what.
Note: Not on the team, just searched the docs.
A bold statement that doesn't really seem to be supported by:
Embedding your programming into HTML doesn't make it any less programming. Otherwise, you could say web programming doesn't exist since it's all just HTML script tags.
However, to advertise it as not being programming seems bogus to me. In Excel, you click the "fx" button and choose "SUM" and then select some cells with your mouse and it pops in there =SUM(A1:A4) for you, which feels in practice quite far from what I would consider programming, and I think people who are non-programmers but have the right sort of mindset can usually fathom this stuff.
The example I quoted above, however, looks a lot more like programming to me, and the nested parentheses alone would be enough to scare off a lot of non-technical types. I have dealt with many people over the years who have to do a bit of programming in their roles but really aren't programmers in the conventional sense, and they find things like the difference between A(B(1,2,3)) and A(B(1,2),3) extremely hard to grasp.
What I like about this, is that it allows quickly to make simpler sites that can be edited. I don't want to program upload images ever again, or edit fields. Why do this?!
Anyhow, storage seems to be confusing some of you, they explain/document that here http://mavo.io/docs/storage/
I think this is neat idea and we really need to innovate and move past coding crud apps all the time. Developer bootcamps are proof we are not doing anything new.
I'm not sure I'm reading the same comments as you. None of the ones I read seem overtly negative. Mine is the closest to negative and I explicitly said that I'm just trying to understand not criticize.
You may be reading into them too much. For example, the person saying it is like Angular 1.0 could be negative or very positive depending on your view of Angular.
Edit: I take that back. The one about "not a single line of code" is actually more negative than mine. Although it also happens to be true. That is code.
The problem is that it says simple, while talking about Git for goodness sakes; commit permissions and such. It says no code. I disagree... you need to know HTML basics to even comprehend the Mavo way.
Why not just make a vanilla HTML page if that is all you need? HTML is not hard... and how is this moving us past CRUD?
It looks like you would end up with one html page per page in the site. And when you have 50 pages or more and decides to change the structure you would have to change all the pages. I'm not even sure the tool supports that, you might have to start with git and a standard html editor and change all files. Then you are back to editing html and have not gained much. For _very_ simple sites this might help and it does look very nice.
The idea of websites being just a way to access and modify data that you own entirely (private Git or else) is really neat.
EDIT: actually they do handle authentication but it's GitHub only. Also they seem to support REST APIs (from a custom backend) but no demos or example of that.
[0] https://azure.microsoft.com/en-us/blog/announcing-app-servic...
It seems just like Angular to me - and worse, buggy Angular: how does "Born on time property="birthday" datetime="2014-06-01" 1 Jun 2014 /time" get transformed into "Adam Catlace Born on 1 May 2014"? ( http://mavo.io/docs/primer/ , current Google Chrome, version 58, no extensions, no weird timezone one month behind the rest of the world)
The language does seem nice for the tasks at hand, and the learning curve looks shallow, but you are overhyping it way too much ("no programming", "better readable").
https://www.futurehosting.com/blog/lektor-is-a-static-site-g...
I'm curious about if you've done any research with this experiment yet and if so where can I find it? I'm very curious on ways to make programming more friendly/approachable, but I have found very little research that even begins to examine what a friendly/approachable programming language would even look like.
This has great potential to democratize the building of simple website applications for the masses. Great concept so far!
I mean, it's useful for some cases now (like as mentioned, non programmers wanting to make more dynamic sites), but back then a lot of cheap/free hosting services didn't support any server side scripting.
Something like this would have let you build an ad hoc CMS on a free hosting service like Geocities. Which would have been pretty useful for the utterly skint.
Now though? It's still useful for some people, and I do think it's something I'll test myself at one point, but I feel the easy access to free/cheap hosting for server side scripts has likely cut down on its usefulness a fair bit.
It looks like a great tool for non-programmers and power-users creating simple CMS kind of sites, which is already a great deal. However, typical Web applications are much more complex than what this tool could possibly do, so I would recommend to reconsider that message. Javascript, servers and databases are not the assembly of the web, there's good reason for their existence and in slightly more complex scenarios they simply can't be abstracted away.
It's not just about the message, it's about settling on a specific audience, and with that, focusing the efforts to provide as much value as possible for them. Trying to stay on the middle term for any generic "web applications" might mean the tool will never be flexible enough for professional web apps nor feature complete enough for non-programmers use cases.