I've long wanted to design a programming language which would be completely graphic. Not like Visual Basic, but the language itself would consist entirely of graphic symbols.
I know it's been done before, but I'm thinking more of something like assembling blocks, or a circuit board. The graphics would use SVG, so that it would be possible to both define custom graphics as functions and variables, and be able to program in text mode by typing the SVG graphics manually.
I have some sort of idea of how this would work, but unfortunately I don''t think I could ever write an implementation at this point, as I have little programming skill other than rudimentary concepts of functions and variables. I don't even know if it would be realistic or even practical.
I've had a similar idea Laukev7,
It would be like a flowchart language and intead of being a compiler or interpretor the code would be converted to assembly which could be optimized manually (if needed) then assembled.
I don't think I fully understand what could be achieved with such a language that couldn't be achieved through a powerful (or completely wierd) IDE using C, C++, or any other language. The images that solo posted
here, and a flow chart, could, I imagine, be achieved by interpreting a source file of any already-existing language. UPDATE: Hm, maybe you could get like an isometric view of a graphical window, and the button's etc. callbacks are hooked up to functions which you see under the window, but all the toolkits work differently, so that'd be hard to do. EDIT: Or do you mean something like
this (from
this PDF)?
I agree with solo that should anyone attempt something like what you describe, XML would probably be the best choice (and then you can convert to SVG, etc.). The XML file could also be generated by either an interpreter or that powerful IDE.
There's one pretty cool feature that would probably work with existing stuff but would totally rock with this graphical thing (either with a new language or an IDE): collaboration (Inkscape already has this, with Inkboard). If me and someone else is working on the same file, I could see where they are and what they're at. It could be a 3D world, like
croquet.
Holy cow... I can imagine a 3D view of a whole system. Different layers for different groups of software. Linux and ld on the bottom, bash and stuff up from that, then X11, then GNOME, then Firefox and other stuff... And thousands of geeks working away.
Oh, and bug tracking. Bugs appear, when found, where the bug is in the code (when possible).
PS: I honestly hope I didn't step on anybodies toes in reviving an old thread.