5 ms·
Author here. I was just about to go sleep when I noticed a retweet and a lot of new stars on Conception; this explains it. The linked C++ project was the resul
by shurcooL 12y ago
Author here. I was just about to go sleep when I noticed a retweet and a lot of new stars on Conception; this explains it.
The linked C++ project was the result of an initial year of working on it, which culminated in a winning entry to LIVE 2013 contest [1] and me switching to working on a version of it written completely in Go [2]. I no longer work actively on the C++ version, but I do on the Go one [3].
Primarily, it has been an extremely insightful learning experience. I had a lot of ideas and I wanted to try them, and by building Conception I found out the reasons why certain things that are commonly desired do not actually work well in practice, and why our seemingly outdated practices of writing code no different than decades ago are still so predominant and effective.
It's really interesting to go back to my old notes and goals and, with hindsight, truly understand _why_ they didn't work out, and what it would take to make them work.
The Go version is go-gettable and working [4] despite having lots of dependences (as proven by the green Travis build). This is one of the benefits of using Go and not the case for C++ version. You can easily try it, but at this point the UI is so far from finished, it's not really fit for general use. If you're interested, I highly recommend watching the repo so you'll see further development. :)
[1] http://liveprogramming.github.io/liveblog/2013/04/live-programming-contest-winners/ http://liveprogramming.github.io/liveblog/2013/04/live-progr...
[2] https://github.com/shurcooL/Conception-go https://github.com/shurcooL/Conception-go
[3] https://github.com/shurcooL/Conception-go/graphs/contributors https://github.com/shurcooL/Conception-go/graphs/contributor...
[4] https://github.com/shurcooL/Conception-go#installation https://github.com/shurcooL/Conception-go#installation
- idlewan 12y agoIt's really interesting to go back to my old notes and goals and, with hindsight, truly understand _why_ they didn't work out, and what it would take to make them work. It would be awesome if you could blog about it or share your notes!
- shurcooL 12y agoI agree, that would be useful, if not the most useful thing I could do, so that my findings aren't in vain. Sadly, I don't do any blogging, but I'll see if I can do something about that.
- Flow 12y agoA md or org file in the project would be enough for me.
- buro9 12y agoI don't blog either... but then once every few years I do and it turns out that when blogging when you actually have something to say is valuable to people. Try medium, it works for such infrequent blog posts... and post the link back on here and we'll all get an insight into the learnings.
- bjt 12y agoI'm very interested in reading this too, but please don't let "set up a blog" be a blocker on "share what I learned". You could just add a findings.md to the repository
- pjmlp 12y agoVery interesting concept explorarion. Nice work.
- zefei 12y agoDevelopers who re-invent/re-imagine some wheels usually realize at the end why the original wheels are designed like those. We, understandably, don't quite appreciate the work other people have done, where we consider their tradeoffs as mistakes. But when we do them ourselves, we eventually see the huge amount of conflicting goals, as tradeoff is the essence of engineering, or anything. However, almost all the good new things came from some re-invention. Don't let the tradeoff scare you away from your original ideas. Maybe the whole interface doesn't beat what we have now, but there are quite a few very good stuff in your demo. And I believe some of them (zoomable overviews, widgets), can truly work better than what we have now. It somehow reminds me of Rob Pike's Acme editor, though they look very different.
- hueving 12y ago>We, understandably, don't quite appreciate the work other people have done, where we consider their tradeoffs as mistakes. Part of this is because it's hard to differentiate between crap and something that was well-designed without putting the time into researching it. This leads developers to just assume most things are crap unfortunately.
- seanmcdirmid 12y agoIt is important to distinguish between prototypes and demos vs. products meant for consumption; many people easily get confused that all released code should somehow be shippable. This is why I'm hesitant to release my own demos even though I get a lot of requests for them.
- laumars 12y ago> Developers who re-invent/re-imagine some wheels usually realize at the end why the original wheels are designed like those. While that is true, I do also think it's healthy to have some scepticism about the design of projects because some are just poorly executed (either because it's based on an outdated model that everyone has stuck to because it's the standard way of doing things, or because of time constraints, or sometimes just because of a lack of love for the project). Sometimes it's worth people re-inventing the while just to see for themselves as occasionally a new developer might just have a unique perspective that results in them solving a previously considered "unsolvable problem". Obviously this philosophy isn't without it's drawbacks. But sometimes it's worth testing the old standards.
- mietek 12y agoWhat happened to the screenshots?
- shurcooL 12y agoSee https://news.ycombinator.com/item?id=8907211 https://news.ycombinator.com/item?id=8907211. Sorry about that, I'll do something about it later on.
- 1wd 12y agoAfter watching the demo video I though it looks cool, but impractical and ineffective for non-demo usage. It looks heavily dependent on mouse centric Bluebottle-style zoom/scroll desktop and drag-and-drop windows/widgets. Do you have plans/ideas how to transfer some of the advantages to a more keyboard centric, tabbed/tiled window management UI, and if that would be more practical and effective in non-demo usage scenarios?
- KenoFischer 12y agoI like it! I've been thinking a lot about user interfaces for creating programs and gaining insight into execution lately, so I'm really glad to have seen this. From the demo video, it looked a little cumbersome to move everything around and it seems like your workbench can get disorganized quickly. Have you experimented with layouting at all? Also does it actually feel cumbersome in practice, or is that a misconception from just watching the video? Anyway, great effort. Looking forward to see this develop.
- chinpokomon 12y agoI just have to say, I've been following this project for awhile. I've been hoping that it progresses beyond experimental stages. The two concept videos on YouTube are great.
- gus_massa 12y ago> Feel free to steal any good ideas you see here. My goal is to benefit the world as much as possible; personal gains are a lesser priority. The project has no licensee, so it's effectively all-rights-reserved. To make the code usable by others, you should select a license, but be sure you understand that with many licenses anyone can copy/fork/rename/translate/extend/repack the project. Don't be creative and stick to a standard license like BSD/MIT/LGPL/GPL and a few more. They are not equivalent. Take your time to select the one you prefer for your intentions and your definition of open/free. https://www.google.com/?q=mit+bsd+lgpl+gpl https://www.google.com/?q=mit+bsd+lgpl+gpl
- dragonwriter 12y agoExplicit permission to take things from it is a license, even if potentially an undesirably ambiguous one.
- shurcooL 12y agoAlso, previous discussion: https://news.ycombinator.com/item?id=5578885 https://news.ycombinator.com/item?id=5578885
- beefman 12y ago> I had a lot of ideas and I wanted to try them, and by building Conception I found out the reasons why certain things that are commonly desired do not actually work well in practice Can you give some examples? It might be very valuable to share your conclusions.