How is this significantly different from something like Light Table? (edit: didn't realize it was build by the people who built Light Table). It feels like a rehash of that + Python notebooks, with a bit of Xcode's playground thrown in.
Problem is that despite those tools being available, I literally never use them. Ever. Nor do I have a need for them.
I kind of like the idea of being able to find bits of code in a larger codebase in a document-like format. That's actually a pretty neat innovation here.
But beyond that, I don't think I'd use this (edit: per comment thread conversation below, I'm upgrading this to not being sure if I'd used this, but it's a maybe). I need an IDE that will help me through the Battle of Stalingrad, not a basic case like a police offer pulling someone over for a speeding ticket, which is what many of these kinds of next-gen UIs always seem to show.
Basic stuff is easy enough to accomplish right now. I don't need a new IDE to help me add a button to each row in a list any quicker than I currently can with existing tools, and I feel like a core problem with these types of efforts are that they start with basic cases and never really progress from there - many engineering problems simply do not reduce down to adding a button to a screen.
That all said - I think if you pivoted and built a wiki-like overlay that could be dropped over an arbitrary codebase (e.g. extrapolate out the document-like overlay over code to document and organize a codebase), holy crap, I would instantly pay money for that, especially if it was distributed team-friendly.
That's fair. We don't talk about it in here because there was already way too much to discuss, but we've done a few non-trivial things in Eve. All of the inspector interactions are actually written in Eve [1], as is the program analyzer that provides the intelligence to make it work [2]. An important thing to keep in mind as well is that Eve does a lot with very little. 10kLoC of Eve would implement most systems twice over. So the programs will always be pretty short.
The intent is to handle anything you could imagine writing in python. As this is 0.2.0 of a language pretty unlike anything currently mainstream, we're nowhere near there, but with engineering there's no reason we can't be. The IDE is only one portion of the story here, the languge is another one. It's a variant of Datalog that has far reaching implications on how we can work in teams (global correctness), how software evolves (complete compositionality), and how we think about larger scale systems (orderless and distributed). The latter will be the highlight of our second milestone where we'll do another big release like this one, but for the rest we'll be doing deep dives over the next couple weeks about how we believe this language scales much better to the realities of software today.
And that's fair too. Honestly I'm happy to see where you guys go and reevaluate whether or not I'd used it as you guys make progress. There are definitely some very interesting innovations in what you're doing, and hopefully that point came across in my comments (despite some initial scoffing on my part).
Agree completely, although I’m a little less excited about documenting code structure than the use of real-time feedback for code.
I’m a firm believer that minimizing the feedback-loop is directly correlated with productivity and code quality. Just taking the time to set up robust debugging tools (breakpoints, data inspection/manipulation) in my projects has given me more than one “wow you work fast” in my short career,
I humbly disagree. My kid is going to get something totally straight forward imperative and easy to begin with, something in the realm of «one print "I am the best", two goto one». I strongly believe these are the basic building blocks which make everything else easy to understand, and they give you a good feeling about how the things work at the bare metal.
I think it's a shame that QBasic isn't bundled with Windows anymore. That was how I got started, on some old 486s in my chemistry/programming teacher's classroom, and it was really a fantastic integrated programming experience, very simple, but with room to do some really cool things. I remember that by the end of a year, a friend and I made a really terrible, but mostly working, version of Slime Volleyball, with graphics and even some basic MIDI sound effects.
I think "looks excellent for children" is a sign that it might be excellent for experts. We want something that can represent a system in the clearest simplest way possible. So simple a child could see how it works and so simple that mistakes are obvious. The question becomes "Will Eve scale to systems that solve real-world problems and not just toy examples for kids?" Will an Eve solution for a real-world problem look simpler and easier to understand than it does now in the languages we're using today? One data point in its favor is how much they've accomplished in so few lines of code if the IDE, the compiler, and a relational database are implemented in 6500 lines of code.
Eve's language runtime includes a parser, a compiler, an incremental fixpointer, database indexes, and a full relational query engine with joins, negation, ordered choices, and aggregates. You might expect such a thing would amount to 10s or maybe 100s of thousands of lines of code, but our entire runtime is currently ~6500 lines of code. That's about 10% the size of React's source folder. :)
I never said I've never used them. I've used them and decided they were not useful for me based on those experiences. So no, in this case, I do in fact know.
Except you describe the kinds of problems you typically solve (placing a button in a row) which are the smallest/simplest case of the problems that we're talking about, so it seems that you might not know about the problems that other devs face in composition of business logic, layering of complex build chains, etc or see a reason why solutions to these problems would ever be useful. Fair enough, but then you probably aren't the target market, so it doesn't make much sense to ask for a pivot to something else.
I really think you guys are misunderstanding my comment. Placing a button in a row is not a complex thing and frankly not something I spend a lot of time doing or worrying about. Look, it's just not. Does it require a new type of tool? IMO, no, it really doesn't.
I'm quite aware of the kinds of problems "other devs face", and they are far more complex than plopping a glorified view inside of another view and hooking up an action when someone taps it.
I simply do not see enough in Eve to convince me that it will significantly help with much more complicated things - things like what you describe - composition of complex business logic, layering complex build chains, etc - and here's a few other common things I don't see it providing significantly new and interesting support for:
- creation and management of complex data models and how they map down to SQL or NoSQL persistence
- orchestrating complex, multithreaded processes
- API design and management
- cloud infrastructure architecture, design and management
- container design and management
- transaction processing
- analytics
etc...
Could something like Eve progress to encompass those types of activities? Possibly (and frankly I'd love to see it - imagine something like Eve's UI for seamlessly managing infrastructure across Azure, AWS, Google Cloud and on-prem infrastructure - that would be amazing). But IMO, it's starting by solving the wrong kinds of problems by reinventing the wheel (new language).
Like I've said before, I don't need or want a new IDE or language to help me with trivial problems. I want tools that help with the harder stuff.
Actually it is the other way around. Apple Playgrounds in XCode and SWIFT were inspired by Light Table. Chris Lattner, the creator of SWIFT even publicly acklowledges Light Table as inspiration on his blog:
Problem is that despite those tools being available, I literally never use them. Ever. Nor do I have a need for them.
I kind of like the idea of being able to find bits of code in a larger codebase in a document-like format. That's actually a pretty neat innovation here.
But beyond that, I don't think I'd use this (edit: per comment thread conversation below, I'm upgrading this to not being sure if I'd used this, but it's a maybe). I need an IDE that will help me through the Battle of Stalingrad, not a basic case like a police offer pulling someone over for a speeding ticket, which is what many of these kinds of next-gen UIs always seem to show.
Basic stuff is easy enough to accomplish right now. I don't need a new IDE to help me add a button to each row in a list any quicker than I currently can with existing tools, and I feel like a core problem with these types of efforts are that they start with basic cases and never really progress from there - many engineering problems simply do not reduce down to adding a button to a screen.
That all said - I think if you pivoted and built a wiki-like overlay that could be dropped over an arbitrary codebase (e.g. extrapolate out the document-like overlay over code to document and organize a codebase), holy crap, I would instantly pay money for that, especially if it was distributed team-friendly.