12 ms·
Conception – An experimental modern IDE written in Go
- avinassh 12y agolink to Go repo: https://github.com/shurcooL/Conception-go https://github.com/shurcooL/Conception-go
- 20kleagues 12y agoSikuli is also based on a similar idea and is written in Python. I am guessing it boils down to preference, but writing code as it is written now involves a lot less 'mouse' and much more keyboard, which most developers, me included, take for granted. I do agree that currently code written has very high limitations on re-usability, primarily because code is written with a specific project in mind. I believe two things can be done to make it more re-usable: 1) either have all developers write code with the idea in mind that they are writing independent libraries and not code for part of a bigger project so the code becomes much much more modular and decoupled and can be used in other projects on the fly. 2) create an extension which creates a project specific visual map for the code, which would in turn allow other developers to pick and choose code to their liking while having a greater understanding of how the code actually works. This being said, the author's efforts are much commendable.
- erglkjahlkh 12y agoThis indeed is commendable. There are more possibilities than what he has touched so far. He could add automatically reloading live code, and link the testing suite... You see a bug, correct it, and the test suite runs continuously at the spots where the code is compilable, giving feedback per code fragment.
- edwinyzh 12y agoI think Sikuli is written in Java?
- shurcooL 12y agoAuthor 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.
- mostafah 12y agoWhy should being written in a particular language matter? We see a lot of these “written in Go”s these days for a lot of new softwares. I’m a big user of Go myself. Love the language and use it for almost everything. But I just don’t get why an editor or IDE or static site generator or any other piece of software brag about using a particular language or library.
- baumbart 12y agoFor me, the language of a project has a large impact on whether I would consider contributing to it or not. When I dislike the language, I'll usually not want to be involved with the project, but just watch it growing. Thus, it makes a project more interesting for me if the language is nice.
- mostafah 12y agoI know. That’s kind of true for all of us. But yet I believe this is not that important. Specially not important enough to put the language like a badge of honor beside the project’s name or description in the title, like how these “written in Go”s are. If a projects seems interesting enough for someone, it’s more than easy to see what language is it written in. BTW, that’s how things work: you don’t decide to contribute to a project because it’s written in your favorite language. You first have to like the project itself, and if it happens to be in a language you’re comfortable with, you may contribute to it.
- ecnahc515 12y agoYour last sentence while intuitively seems true, simply isn't. There are plenty reasons some one might contribute to a project, the language could be the only reason, and that would be completely reasonable. Example: You might not be interested in writing a text editor, but you've seen this and the lime project, both written in Go, you don't care for writing a text editor, but you might figure you could spend some time to this guy fix an issue in your free time. Is the above a little far-fetched? Maybe, is it unrealistic? Not really.
- 12y ago
- bojo 12y agoIs this similar to what Epic Games has been doing with their Unreal Engine, specifically the Blueprint system? The main difference appears to be that you can directly write code, which does seem more powerful. There's a lot of power in bridging the gap between developers and designers, would love to see where this goes.
- keyle 12y agoNot really. You're thinking of blueprints. They're quite different as there is no typing involved (beyond power user shortcuts) http://i.imgur.com/T2p18c5.png http://i.imgur.com/T2p18c5.png
- bojo 12y agoYes, I said Blueprints (and have had quite a lot of fun with them) - https://twitter.com/mojobojo/status/471669248910049281 https://twitter.com/mojobojo/status/471669248910049281 Was curious what the main difference was.
- Gurkenmaster 12y agoThat looks like flowbased programming in a nutshell. Except you can't create your own components.
- Moter8 12y agoWhich is wrong, you can program in C++ and make thhose functions available in Blueprints too.
- keyle 12y agoLovely. Here is some cheap feedback from a UX perspective. Give a bit of padding to your text blocks Identify clearly the input from output And adding syntax colouring will give it 300% sweetness.
- shurcooL 12y agoThe Go version has had syntax highlighting for a while now. :)
- joefreeman 12y agoThe images are broken for me (503s from Dropbox, and 404s from GitHub cache) - here's a direct link to the video: https://www.youtube.com/watch?v=DNJ7HqlV55k https://www.youtube.com/watch?v=DNJ7HqlV55k
- VMG 12y agoI love the instant update and the tight feedback loop. This is what I actually want when I hack together my inotifywatch command in the shell. But I can't do the clicking and dragging. If the layout was automatic and controllable via keyboard, I'd give this a serious look.
- fishnchips 12y agoThis looks insanely cool (congrats!) but from a purely practical perspective I'm not sure if I'd want to use it even if it was a perfect, finished product. After all, I'd have to forget everything I ever learned about text editors and IDEs.
- exit 12y ago"If a man cannot forget, he will never amount to much." - Kierkegaard
- fishnchips 12y ago"Good enough is the enemy of the great" - Grumpy Cat (attributed)
- V-2 12y ago...and source control
- mod 12y agoThere was a "commit and push" in the demo video somewhere, so I'm assuming this is source-control-compatible.
- V-2 12y agoHow do you visualize diffs and conflicts, though? I imagine it must be different from version control as we know it, effectively forcing you to relearn this part of our skillset...
- aikah 12y agoAll screenshots are gone in the README,please use github pages instead of hotlinking the repo directly.
- BrindsleyQuives 12y ago"...Conversely, code you write today is dead on arrival... Millions of ppl's efforts are wasted..." PPL? –What are you, fucking twelve or something?
- niutech 12y agoLooks similar to Code Bubbles.
- V-2 12y agoSweet lord, https://github.com/shurcooL/Conception-go/blob/master/main.go https://github.com/shurcooL/Conception-go/blob/master/main.g... is nearly 9k lines long! What a spaghetti. Is that the author or the language?
- tree_of_item 12y agoWho cares how long the file is? That's not what "spaghetti" means, what matters is the formal structure of the code.
- V-2 12y ago> Who cares how long the file is? Every software developer worth his (or her) salt. > what matters is the formal structure of the code Yes, and splitting code into well named files is a starting point for giving it proper structure. The same goes for the size of your functions. Here some (like "ProcessEvent") consist of nearly 500 lines... that's roughly 10 screens. Textbook spaghetti code. Overly long code files are difficult to maintain and introduce various practical problems, eg. greater likelihood of merge conflicts. That's why they're considered a red flag in software engineering. Professional literature on software development elaborates more on the subject if you don't want to take my word for it
- tree_of_item 12y agoThis is one of those "software engineering best practices" that sounds nice but has no basis in reality. What matters is the formal structure of your program: types, composition, state, capabilities. Where your code is located on the filesystem is incidental complexity. My thinking is more along the lines of http://erlang.org/pipermail/erlang-questions/2011-May/058768.html http://erlang.org/pipermail/erlang-questions/2011-May/058768... and http://tonymorris.github.io/blog/posts/identifier-names/ http://tonymorris.github.io/blog/posts/identifier-names/, but I bet your professional literature would be apopleptic at suggestions like these :]
- V-2 12y ago
- jaked89 12y agoThe images won't load.