This really looks interesting, I'd love to _read_ more about it.
I have two major concerns after watching the video through.
First is the spreadsheet ui. Much of the drama and nonsense with bad spreadsheet programming is related to not having the _table_ as the primary data organizational tool. Data should be in labeled and typed columns not laid out in cells on the main sheet and then postfacto treated as coherent data.
I was more genuinely more confused by what you were trying to explain in the early part of the video because of the awkwardness of your spreadsheet ui metaphor. Ie as you were explaining the columns and rows, reordering etc around 4:30+ .
The spreadsheet should be just a layout medium for expression of A view of data tables.
Suggestion - experiment with using a graph (or just cards) with tables as nodes. Figure out how to use the edges to express the program coherently.
Your asteroids demo was nicely done but I would be very unhappy reading a medium size program with your current ui.
Suggestion - have tables only built as they are defined. Don't try to be too much like existing spreadsheets (though obviously some of your audience would like to see a very traditional spreadsheet ui).
My second major concern is that I think spreadsheets and spreadsheet programming would benefit from stronger typing. You seem to not be addressing that? As as an example from your video are people's children not people too?
How can we keep a money column from being used as someone's age etc (without a function in between)?
> My second major concern is that I think spreadsheets and spreadsheet programming would benefit from stronger typing. You seem to not be addressing that? As as an example from your video are people's children not people too?
I'd be really interested in knowing the story there as well. If there's any documentation on the whys or why nots, or any videos/presentations, I'd be interested in seeing them.
For the author: What do you think is the biggest flaw of spreadsheet programming? It seems like the biggest advances you are trying to make are "cells within cells", prototype oop, and immutability.
For me, it always seemed like the biggest problem was that once a spreadsheet grows past a certain size, it becomes unmaintainable due to the makeshift unspecified schema, layers upon layers of hacks, and the repetition due to the lack of good abstraction tools. While your demo was impressive, it seemed like it was going in the wrong direction when it comes to addressing these issues. Databases and data processing often seem to form a ugly mess when mixed too closely. I concede that might be a hasty judgment, since I haven't really had the chance to play around with it yet.
That's a really good question. You're not the first to suggest that it wouldn't scale in terms of complexity. But it was actually built to solve the problem of that type of scaling -- that was one its prime directives in being built -- but until it can really be tested, no one can know how it will truly hold up.
> Databases and data processing often seem to form a ugly mess when mixed too closely.
Yes, that's true, and I think that it's due to granularity you normally get when using declarative languages like SQL. It's quite difficult to do anything but make a basic selection. Declarative is a lonely paradigm for that reason. I think this is different because of how you structure and select, and would then avoid those traps, but again, time will tell.
Email me and I'll update you on how it progresses (including what its biggest flaws are turning out to be).
Sorry, no, there's no site for the project. It's not related to the other Kaya language and so I'll have to change the name at some point. Contact me if you want to follow the project, my email is in my profile.
After watching the video, I appreciate the potential of Kaya. I clearly see the benefits of the native many-to-many construct, and its unified data/instructions model.
I wonder if Kaya could store graphs efficiently, in addition to hierarchies. For example, can you have one table called Employees with a property Reports To, which references another Employee? In other words, can Kaya allow this: Employee.ReportsTo = @Employee?
I have a hunch that Lloyd's Algorithm[0] would make for a nice demo in this environment, automagically updating the voronoi cells every iteration until an equilibrium is reached. Although I don't know if there's an efficient way to implement voronoi cells in this paradigm.
Chris wrote me about six months ago asking about Kaya, so I sent him a similar presentation. It seems to me also that there might be overlap (from the little I know about Eve).
I think we have a safe lead, though, based on that we've already spent many years getting through a lot of the implementation issues, which are the real crux. I wish his team a lot of good luck, because the devil is really in the details.
I would like to point out that http://kayalang.org/ is already a programming language, and that the language author might want to consider a name change.
The HN title is total flame bait and does not match the actual post title on either LtU or Vimeo; a mod should really change it. It may also make sense to change the link to the Vimeo presentation as linking to the LtU discussion forces people to click through to see anything and is a little strange – are we supposed to watch the video or read the LtU thread?
For easy access: The link to the video is: http://vimeo.com/107069470 (Some HNers just look at the comments first, so this might be useful for someone.)
Yes, a moderator changed the url from that, and the title from "Kaya: The Future of Programming" in the hope that it would nudge the discussion back on-topic.
This is a presentation of Kaya at the Future of Programming Workshop. The title is accurate. Shortened in a clickbait fashion, perhaps, but not "total flame bait".
True. I read the "future of programming" part as someone being really excited rather than accurate though.
Although the future of programming is probably declarative once we stop doing it ourselves and leave the implementation details to the AI writing the program for us.
Crap like this makes me actively not want to listen to you and reflects badly on Kaya. If you want to effectively promote something, give an honest account of its advantages and drawbacks and let people judge for themselves whether it's going to be the future of programming or not. The presenter of this talk understands that and doesn't try to oversell it, simply describing Kaya as "declarative reactive"; you should respect this and not make their work look crankish because of the way you, not they, choose to present it.
You're going to want to work on your communication if you want to evangelize your new tool and not alienate people. For the rest of the world, the value of Kaya is not a given and you're going to get a lot of practice explaining it.
I'm 'people' as well and am not alienated. Nothing to stop you offering a mini-lecture on PR but for myself, rather you didn't. I can make up my own mind on Kaya as presented.
I have two major concerns after watching the video through.
First is the spreadsheet ui. Much of the drama and nonsense with bad spreadsheet programming is related to not having the _table_ as the primary data organizational tool. Data should be in labeled and typed columns not laid out in cells on the main sheet and then postfacto treated as coherent data.
I was more genuinely more confused by what you were trying to explain in the early part of the video because of the awkwardness of your spreadsheet ui metaphor. Ie as you were explaining the columns and rows, reordering etc around 4:30+ .
The spreadsheet should be just a layout medium for expression of A view of data tables.
Apple tried to fix this with https://en.wikipedia.org/wiki/Numbers_%28spreadsheet%29 but ymmv on how successfully.
Suggestion - experiment with using a graph (or just cards) with tables as nodes. Figure out how to use the edges to express the program coherently.
Your asteroids demo was nicely done but I would be very unhappy reading a medium size program with your current ui.
Suggestion - have tables only built as they are defined. Don't try to be too much like existing spreadsheets (though obviously some of your audience would like to see a very traditional spreadsheet ui).
My second major concern is that I think spreadsheets and spreadsheet programming would benefit from stronger typing. You seem to not be addressing that? As as an example from your video are people's children not people too?
How can we keep a money column from being used as someone's age etc (without a function in between)?