3 ms·
Can anyone share any practical experience using Drakon for a non-trivial project?
by kqr2 3y ago
Can anyone share any practical experience using Drakon for a non-trivial project?
- Onavo 3y ago[flagged]
- lugu 3y agoI used it to describe the behavior of an embedded device (like the boot sequence or the failure modes), it worked great since team mates would simply update the diagrams without wondering about the format. Also people non familiar with Drakon could make sense of it. My impression was: it is easy to model well designed systems and hard to draw convoluted interactions. It felt like a feature, a bit like LaTeX, where it is easy to produce a beautiful doc and possible (with some effort) to make an ugly one. That was just my impression: if the diagram is too complex, you probably should simplify the design.
- cyberax 3y agoThere are no real applications written in Drakon. That's because its authors spend most of the time pontificating about how it's superior to all other programming languages. Drakon editor is probably the most complicated piece of software written in it: https://github.com/stepan-mitkin/drakon.tech https://github.com/stepan-mitkin/drakon.tech
- orbital-decay 3y agoNo public applications. Drakon and the CASE software based on it have been used in certain Russian and Ukrainian aerospace and energy industry projects. NPTsAP continued to use it in all their projects after Buran (mostly control systems for upper stages).
- cyberax 3y agoI first encountered Drakon around 2008 or so, it was being pushed by complete ignoramuses, and they were trying to force it on school students. With grandiose claims that it's the most transformative approach to designing safe programs, blahblahblah. I got mad at them, so I started digging. I spoke with several people who worked on Buran (at that time, my parents were working at a factory that had designed Buran's instrument panel). Nobody there knew about Drakon. They apparently used a mix of Prolog (its Russian dialect, ПРОЛ), low-level assembly, some Modula-2, Fortran, etc. It's questionable that the Soviet engieers would have been comfortable working with a graphical language, back when many of them still used punch cards to enter programs. It could have been used in documentation or in specs, because Drakon indeed is a better graphical notation than the regular flow charts.
- orbital-decay 3y agoIndeed you're right, I know what you're talking about, and actually briefly worked in contact with the people you're talking about in early 2000s as an intern, until leaving that circus for good. However I also know for a fact that it's been used in at least one organization for a couple live projects as a visual language in a CASE tool (no idea to what extent though). That org had some of the best bullshitters and practitioners of siburda - imitation of intense work - I've ever encountered in a post-soviet world (which had no shortage of those), and the same kind of ignoramuses you allude to.
- MichaelMoser123 3y agoi found a detailed article on Drakon in Russian [1], they say that development of the Drakon language started in 1986 (that would have been two years before the launch) and that work on the ГРАФИТ-ФЛОКС dev environment was completed in... 1996. it was used with the Sea Launch program, Fregat - that's a space tug for Soyuz/Zenit, the modernized Proton-M, ДМ-SL-Б - that's a space tug used with the Zenit launcher. However the article is a bit old, from 2009. It could have been used for later systems. https://old.computerra.ru/readitorial/418507/ https://old.computerra.ru/readitorial/418507/ Wikipedia mentions hybrid variants of Drakon - like Drakon-C, here the they would put C code into each of the boxes of the flowchart (each square box would stand for a basic block, and each diamond box a boolean expression?). I think that would make more sense, this way you could actually write some more complex programs and the flowchart would not blow up in complexity. https://ru.wikipedia.org/wiki/%D0%94%D0%A0%D0%90%D0%9A%D0%9E%D0%9D#%D0%93%D0%B8%D0%B1%D1%80%D0%B8%D0%B4%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F_%D0%94%D0%A0%D0%90%D0%9A%D0%9E%D0%9D_%D1%81_%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D0%BC%D0%B8_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D0%BC%D0%B8_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F https://ru.wikipedia.org/wiki/%D0%94%D0%A0%D0%90%D0%9A%D0%9E... i guess that with Drakon-C a function call would be just a line in the basic block, would make more sense.
- cyberax 3y ago> However the article is a bit old, from 2009. It could have been used for later systems. That article is written by the main DRAKON pusher: Владимир Паронджанов (Vladimir Paronjanov), so I'd take it with a grain of sand the size of the Great Salt Lake. Somehow, all applications of DRAKON happened to be in areas like space and defense, that are heavily protected by the state secrecy laws. So nobody could really confirm it. And that was also an excuse for not having any public tools released. > Wikipedia mentions hybrid variants of Drakon The only real programs in DRAKON are written like this. The compiler simply generates the code from the graphical description by joining the sections together.
- jawns 3y agoI have used it to produce diagrams that represent various stages in the workflows of a content management system for video and mobile assets. Just because the underlying systems were complicated doesn't mean the diagrams needed to be, and I find its design decisions to be helpful. It hits the sweet spot between comprehensible to non-technical users and useful for technical users.