

Drakon – A visual language for specifications from the Russian space program - throwaway344
http://drakon-editor.sourceforge.net/

======
edent
I've been using it for a while and documented my experiences at
[http://shkspr.mobi/blog/2013/04/use-drakon-to-generate-
code-...](http://shkspr.mobi/blog/2013/04/use-drakon-to-generate-code-from-
flowcharts/)

~~~
RamiK
I thought this is just a toy until I read your blog. Now I'm actually looking
into playing around with it a little... Thanks.

------
adamnemecek
[http://drakon-editor.sourceforge.net/inseption.png](http://drakon-
editor.sourceforge.net/inseption.png)

I like how it says "Your drawing looks good". Why doesn't gcc ever compliment
my code?

~~~
fspeech
Would it still be a compliment if it came from stderr?

~~~
felixgallo
clearly we need a stdaffirmation.

------
dchest
A year ago I wrote TEA cipher implementation with it for fun:

[https://github.com/dchest/drakon-tea](https://github.com/dchest/drakon-tea)

(Pictures: [https://github.com/dchest/drakon-
tea/tree/master/pics](https://github.com/dchest/drakon-tea/tree/master/pics))

It was painful.

~~~
jonahx
What was painful about it? Was the language itself cumbersome to use, or was
it the problem with the graphical editor software?

~~~
dchest
The language is actually C (you can also use Python, etc. I think the original
underlying language was a variant of Oberon). The painful part was the
graphical editor, or, I'd say, the idea of using graphics for programming
instead of text. Imagine aligning all these rectangles and then realizing that
you got a part of algorithm wrong: now you'll have to realign everything!

I think it would be much easier to edit some textual representation, and then
use a program to convert it to the graphical one, if you want to read it this
way.

~~~
donquichotte
This reminds me of a coworker who uses National Instruments' LabView's
graphical programming capabilities to parse text files. Graphical programming
is just not suitable for some tasks.

~~~
angdis
I see this a lot in LabVIEW projects (using it for things in which it is
cumbersome). I think it is a symptom of the "golden hammer syndrome". LabVIEW
is really, really efficient for some things and people become highly
proficient at it. Unfortunately, those same folks are apt to use it for things
in which it is ill-advised like text-parsing.

I like to think of graphical programming languages as DSL's: when they're
aimed at the right problem, they're like a hot knife through butter compared
to a general purpose tool. But when you start using DSL's for things in which
they are not intended you end up with nightmarishly obscure codebases.

------
al2o3cr
In Soviet Russia, charts flow YOU!

But seriously, these look just like the flowcharts that were all over CS in
the seventies. And the code that's generated (based on the examples from edent
and dchest) is basically unmaintainable GOTO-hell that looks like what you get
from decompiling code without symbols...

I'd be curious to see what gets generated for the parallelism stuff, tho.

------
techdragon
This has sat in my bookmarks far too long. Visual programming techniques are
very different and vastly under developed compared to the plethora of other
'toy languages' that get more development.

------
jonahx
Gotta love software docs that show getting drunk on various amounts of vodka
as an explanation of their select statement!

This actually looks useful -- the simple set of rules they suggest make a lot
of sense for general flowchart readability, and these could be easily shared
with business partners of only a half-technical mindset.

I was curious how you would handle event driven architectures with it, however
-- or is that outside the intended scope?

~~~
VladRussian2
if you like events driven and distributed - that evokes old memories of
SDL-88/92 - a product of sober European sleep of reason,a graphical Erlang.

------
worldsayshi
Upvoted because I'm a strong believer in visual programming languages. But
also a bit underwhelmed. Flowcharts are useful I guess.

~~~
mojuba
Strictly speaking all programming languages are visual. Except ones are much
easier to write because typing on a computer today is way faster than drawing.

Once drawing becomes more productive (which I don't see exactly how, to be
honest) then diagram-based languages will raise their heads. Until then, no,
thank you.

------
cateye
I hear already recruiters ask: "Do you know Drakon?". Just like when it was
the default to insert UML in every job listing.

------
dedosk
Out of curiosity -- are there any better open-source or commercial
alternatives to this type of software?

~~~
edtechdev
One recent one is NoFlo [http://noflojs.org/](http://noflojs.org/)

A well established one for kids & novices is Scratch:
[http://scratch.mit.edu/](http://scratch.mit.edu/)

And you can see some other javascript-based visual programming tools here:
[https://github.com/jashkenas/coffee-script/wiki/List-of-
lang...](https://github.com/jashkenas/coffee-script/wiki/List-of-languages-
that-compile-to-JS)

------
bcoates
Is there a textual input representation to go along with the visual analysis
one? I love using flowcharts to explain and comprehend complicated things, but
the UIs for actually drafting them haven't quite made it into the 1960s yet
and are painful as hell. Going from the video, this tool is better than most
but still lots of modal button-hunting and handle-dragging and manual
alignment.

The .drn file format is a SQLite database but it looks like it encodes the
coordinates of the elements directly rather than storing symbolic
relationships and doing a layout. If you could use a Graphviz-like language to
describe the diagrams but add the Drakon rules for structure and layout (and
presentation) I'd be a lot more enthusiastic.

------
raintrees
Hey, maybe we will get to ObjectVision all over again, only this time it can
work! Or continue to be developed, at least.

I remember putting in around 30 hours on a consulting project trying to use
ObjectVision 2.1 (I think that was the version - been a while) before finally
giving up and going to FoxPro in disgust... Had to keep project deadlines.

------
singold
I think this is great for getting non-technical stakeholders into the
development process.

Nearly anyone should be able to understand a flowchart and also make
improvements and understand _why_ that feature is more or less difficult to
implement.

I know this isnt new, but really liked it

------
telephonetemp
Sounds like a great tool for programming numerical algorithms. You get the
code and a flowchart for your paper all at once.

------
ternaryoperator
Very interesting, although I am somewhat surprised that given its knowledge of
the logic, it doesn't generate tests.

------
eonil
Reminds me the Macromedia Authorware.

