Divooka FAQ
In this section, we collect some questions related to Divooka in general and to specific functions of Divooka.
- What Can Divooka Do? Answer: Divooka is a groundbreaking general purpose visual programming system by Methodox. You can easily achieve those through provided toolboxes: File Processing, Text Processing, 2D Geometry Processing, Audio Processing, Image Processing, Procedural Terrain Generation, Procedural Planet Map Generation, Gen AI API Services, 2D Interactive Media, SVG Editing, Text-based Charting, Process Automation, Rigid Body Simulation, 3D Rendering, Desktop App Development, Web App Development and more! Please refer to Toolboxes for a more comprehensive overview.
- Is Methodox for commercial or nonprofit? Answer: Methodox is for commercial. We need money to implement our visions. However, it's our goal to make sure our technology is as accessible as possible to the general public.
- Is Divooka relevant in the AI era? Answer: Yes. Programming is a tool, a means to an end. LLM code generators generate such tools, much like Divooka provides an integrated environment for you to develop such tools in an intuitive manner. Divooka makes it easier to make use of AI systems. One can use AI code generators to generate Divooka graphs. It's more straightforward to read, debug, and maintain a Divooka graph than to maintain traditional text-based programs. Also, AI is helpful for traditional programming languages because they are low level, and there is issue with prompting, which is a non-trivial technical subject. With Divooka, there is no need for prompting. No prompting, just control.
- Is programming itself relevant in the AI era? Answer: Programming makes one smarter and AI makes people dumb - but more seriously, it all comes down to control and efficiency of execution.
- Do I still need to learn coding? Answer: Yes. Divooka is a hybrid visual + text programming language, and it's most efficient when combining certain traditional text elements with visual programming. On the other hand, practical programming involves understanding file formats, specifications, existing systems, among other things – most of them will involve some aspects of text-based encoding or even traditional (text-based) programming languages and syntax.
- How exactly does Divooka make learning and practical programming easier? Answer: The flow-chart-like interface makes program logic apparent, and one is minimally bothered by syntax issues due to easy search and configuration of available nodes and functions. Divooka offers very-high-level functions out of the box that require minimal steps to get everyday tasks done.
- How can I do version control with Divooka? Answer: By default, Divooka saves the document into a custom binary format, which provides built-in support for many of the data types commonly used. The binary format has limited built-in version history functionalities (not implemented as of v0.8.5). If you are looking for a more traditional text-based version control experience (while sacrificing the capabilities to save intermediate program results), you can save the program into YAML, JSON, or Divooka text. (None of those are available as of v0.8.5)
- How do I refactor/modularize/reuse my graphs?
Answer: You can save subgraphs into a separate document that can be reused later (as a typical node) by using the
Graph Referencenode. - Can you make websites/desktop applications/web services with Divooka? Answer: Yes. See the Frameworks page.
- Do I need to know C#/Python/Programming to learn Divooka? Answer: No. Although having existing programming experience can help you better navigate Divooka's features, better organize Divooka programs, and better approach solutions to problems, it's not necessary. Most features of Divooka don't depend on existing programming knowledge. On the other hand, C# and Python are required for certain functionalities that require those languages, e.g., plugin development.
- I already know Java/JavaScript/PHP/Haskell/C#/Python/Lua/Elixir/Prolog, should I still learn Divooka? Answer: Yes! It's always worthwhile to learn a new (especially a well-designed) programming language. It broadens our perspective and provides fresh ways of thinking. Besides, Divooka offers some very-high-level functionalities that make building certain applications very easy, especially for prototyping things. For instance, one can very easily build a cross-platform file synchronization application with a GUI that can run on Windows, Mac, Android, and other OS/mobile devices.
- What makes Divooka a well-designed programming system? Answer: Divooka is based on battle-tested C# and Python. It offers advanced integration with C# and Python. Divooka also takes care of full-stack development and the full range of programming activities. Unlike other visual programming platforms or low-code platforms, Divooka is designed to be a proper programming language and a general-purpose one.
- Why C# .Net 8/Python 3.12, WPF and Godot? Answer: C# offers superb performance, cross-platform support, scripting capabilities, and a streamlined workflow for native compilation. WPF is one of the best and most mature GUI frameworks on Windows. Python has a whole range of data analytics and practical libraries developed and loved by the community and is a commonly chosen embedded programming language known by many. Godot has a rich, well-designed, and versatile multimedia system and 2D GUI development framework.
- Why not JavaScript for SaaS, editor, online GUI and/or runtime? Answer: Electron is too big for most basic interfaces. JavaScript has a less straightforward integration with native dynamic link libraries and other programming languages. It is possible to optimize JavaScript for good performance, but it is generally more involved than using a natively compiled language like C#. The cross-platform Divooka Compute framework already handles mobile and web platforms, so there is no need for JavaScript. We do recognize that not going with JavaScript means forgoing a large part of a mature, vibrant community and easy GUI mockups with HTML/CSS. On the other hand, the JavaScript community and related technologies evolve too fast and may not be suitable for a long-term, robust local programming platform.
- Is Divooka suitable for game development? Answer: Depends. Depending on what kind of game you are building - you can use Glaze! for simple interactive games like Flappy Birds, or Novella for 2D visual novels. Divooka is not yet ready for high-performance highly customized 2D or 3D games due to performance concerns with graphics, and the overall language and IDE needs more work for better productivity.
- Is Divooka a "workflow" engine/"low-code" platform? Answer: Depends. Depending on what you mean. Divooka is not what you would typically encounter marketed as workflow engine or low-code platform, but its visually driven programming environment naturally lends it for such use cases. In general, Divooka is better, more flexible, and much more powerful.
- What is NVI (Node Visual Interface)? Answer: Node visual interface refers to an UI (user interface) focused on node-based graphical applications. It's introduced by Divook and in direct contract to CLI (Command Line Interface) and GUI (Graphical User Interface). NVI is especially handy in dataflow contexts.
- Do I still need to learn in order to use Divooka? Answer: Yes. Divooka tries its best to make it very easy to learn and make the user interface intuitive, but there are still techniques to learn that can boost your productivity even further when using Divooka. With learning, you gain more abilities, become better familiar with ecosystem, acquire usage design patterns (design patterns) to organize programs. Divooka saves the need for extensive syntax, but programming is more about syntax. See knowledge Base article: What is Programming Learning
- Why Another Programming Language? Anwser: Worlds need software diversity much like it needs fashion, fine food and good designs. In reality, the software world is dominanted by a few big players - and they tend to exclude each other. Think of Divooka as one of those new games, movies, or shows. It's a new experience, a new style, and new way of thinking and approaching programming problems.
- Why should I learn Divooka? Answer: This is not C++, Python, JavaScript or Rust. There is no historical legacy to maintain or big corporate push behind it. You have freedom and don't need to learn Divooka. We appreciate if you purchase it on Steam though.
- I can already do this and that in Python/JavaScript! Answer: You can also do all those things in C, C++, C#, Rust, Ruby, Java, Visual Basic, R, Perl, Go and even Scrath and x86 assembly language! Divooka (especially Divooka Explore) provides a self-contained distribution of a curated set of everyday functionalities in a clean and compact installation with high-level APIs so it's more efficient to get things done without worrying about installing dependencies.
- How does Divooka compare to Unreal Blueprint? Answer: Blueprint is the integrated programming environment for Unreal Engine. It's a compiled, fast visual scripting system that's integrated inside Unreal Engine and designed for video game development. Divooka, on the other hand, is a standalone software that is designed for everyday programming and application development.