
NeoBook: non-programmer programming environment
Who is this article for?
The article is written, first of all, for those who are not a professional programmer, but want to be able to create their own computer programs for computers with Windows. Programming today is a universal competence that will definitely be useful to a person in almost any professional field and, of course, for personal purposes. For teachers of informatics and programming, the article can also be useful, since it deals with NeoBook, a visual programming environment in which you can successfully learn programming from scratch and create full-fledged applications. Experienced programmers also use NeoBook instead of a professional IDE, when you need to quickly create something fairly simple.
Why I decided to write about NeoBook
For 10 years of programming in NeoBook and for 5 years of studying students of this program, I caught myself thinking many times - why do so few people know that using the NeoBook you can independently create functional and beautiful applications of almost any purpose? Moreover, for an ordinary confident computer user, mastering NeoBook to the level of creating useful, beautiful and reliable programs is a matter of one month of lessons for half an hour (and this is true for an ordinary personal computer user without any initial programming training).
Programming in NeoBook gives a quick, tangible result, which is extremely important when teaching programming, especially for today's youth and for busy people. The time has come to correct this injustice and to tell about NeoBook to everyone who just chooses their first programming language - this is not just a learning language, but also allows you to write applications of quite professional level for computers with Windows.
')
Why should humanities programming
Since I myself am not a professional programmer (I am a psychologist), it would probably be most correct here to simply share my experience and begin to describe the capabilities of the NeoBook through him.
It so happened that I needed to computerize something, and specifically - my own method of diagnosing the power of motive (the power of desire, desire ...). Finding out about the various test designers, I began to sort through them one by one and torment the developers with letters, like "it would be nice to add another such opportunity to your wonderful program."
As always happens when using ready-made test designers, I didn’t have one thing or the other ... I didn’t want to put up with restrictions. Finally, a bright thought occurred to me to make the program myself. But how? Hire a specialist or try it yourself?
The technique chosen for computerization is very simple (to present questions, multiply the points obtained in the form of answers and give an interpretation in accordance with a given range), and it is expensive and, in my case, inconvenient to hire a programmer (substantial program updates were assumed). Therefore, I decided to create a program on my own and began reading books on Delphi, then Delphi for teapots, then for schoolchildren, then for children ... I would probably reach the level of “Delphi for babies” if such a book existed.
Since I did not have a basic knowledge of programming, I could not separate important information from the secondary and could not really begin to practice. Exercises on coding in the spirit of "draw a little ladder" introduced me to a state of severe depression. I think that a fair amount of neophytes has reached this threshold - this is the very moment when I want to give up.
Fortunately for me, I pecked at the advertisement of one Internet entrepreneur - he offered paid programming lessons in the NeoBook and called it “a program for creating programs”. So I found out about NeoBook. In search of additional information about her, I came across a
neobuker forum , where I was taught how to work with the program.
What can be created in the NeoBook?
At first I had doubts - is it possible to do something worthwhile in the NeoBook, is it not for nothing that I spend my time? But now I can say that for all the time I worked with the NeoBook, I have never encountered a task that I really needed that I could not solve myself or with the help of the neobukers community (among which are the creators of numerous functions and plugins for NeoBook). For my personal and professional life I did:
- interactive subject and psychological tests, questionnaires and questionnaires;
- stimulus material for various scientific studies;
- multimedia simulators for the development of skills and abilities;
- diagnostic systems (for example, a battery of methods with sending test results to me by e-mail);
- e-books with hyperlinks, bookmarks and page turning effect;
- interactive startup menu for DVD and CD;
- illustrated databases with formatted text, search filters and report printing;
- a secure web browser for testing students (as long as the student passes the online test, he cannot open anything else either in the web browser or on the computer at all);
- activity monitoring program and remote (from the phone) control of a computer for a child (parental control);
- convenient database for storing passwords;
- screenshoter for elderly parents (so that in one click from the tray they can send me a screen screen to the mail);
- launchers, widgets, informers, reminders, multimedia presentations and much more.
If you wish, you can create your own simple graphic or text editor (for example, a personal diary designed as you like), a program for creating collages or business cards, your own organizer, a replenished recipe catalog, a multimedia player or audio converter as a gift, a simple web messenger or local network chat, data collection and processing programs for scientific research with saving the results to a file (including PDF and RTF), a program for working with files on a web server, a video surveillance program, you can create your own browser plugin pa and much, much more.
For a non-programmer, this listing is useful because it indicates the really great capabilities of the NeoBook and answers the question of whether the NeoBook is worth the time spent on its development. For myself, I concluded that it was still worth it! At the same time, the NeoBook functionality is continuously expanded with the help of plug-ins and functions that professional programmers actively write for NeoBook. What a bow to them is for!
Take a look at the NeoBook
This is what the NeoBook window looks like in editing mode (the project of the subject test for the video lecture “The Development of Thinking Logic” is open, a text object is selected with square dots with a test question):

The screenshot shows the main window of the Russified NeoBook (version 5.8.7). By the way, the reference file is also translated into Russian, like most plugins.
NeoBook has all the features of a programming environment, it has:
- visual interface designer (providing the design according to the principle of “what I see, I get it” - the program is created by dragging and dropping objects and in this part resembles a regular text or graphics editor; the necessary code is written in the project properties, in the properties of the created objects and pages for various available events );
- code editor (with syntax highlighting and a command parameter setting assistant window; the code editor is available in the configuration windows of project properties, project pages, as well as objects used; the code is written in its own script language — one can say in very simplified Delphi);
- the interpreter (works in the test compilation mode, and is also embedded in the final application during the final compilation and makes the created program further completely independent of the NeoBook application);
- debugger (with the ability to see the current values ​​of variables and executable commands, allowing you to control the speed of script execution and even with line-by-line code execution in pause mode, which makes catching errors quite simple).
NeoBook main features and limitations
The NeoBook programming environment allows you to create simple utilities and programs with a multi-window stretchable interface with windows of any shape with all standard objects (button, list, drop-down list, checkbox, radio button, slider, image, timer, input box, caption, text, multi-page text, browser , container, etc.).
Various events are available for encoding (left-click, right-click, mouse-over, mouse-out, drag-and-drop, timer operation, change of object state, change of state or size of application window, etc.); allows you to use in projects the main, contextual and tray menu; you can make a changeable interface on the fly (language and skins); various audio, video, animation (GIF, Flash, NeoToon) tools are available, as well as a browser (based on IE or Chrome), which can be embedded directly into the NeoBook application and work with the Internet through it.
NeoBook allows you to interact with peripheral devices (for example, turn a regular webcam into a camera with a motion sensor), use various Internet and intranet protocols (HTTP, HTTPS, FTP, TCP, IP, UDP); able to work with Windows command line, with whole folders, archives (zip, zlib, rar, cab) and with separate text, graphic, multimedia, executable, as well as system and configuration files (including BAT, CMD, INI, INF, SCF, CFG, and Windows registry); can encrypt and hash, call other programs and manage them; create local and global keyboard shortcuts (and send them to other applications); can compile a standalone, not requiring installation (portable) exe-file of your program or supplement your program with an installer.
Of the limitations, it should be noted that NeoBook does not support multi-threading (which is largely compensated by plug-ins that can take on parallel work with the NeoBook script) and NeoBook does not support the dynamic creation of objects (although, as a rule, it is possible to prepare the necessary number of them in advance).
NeoBook language
The NeoBook language can be attributed to high-level scripted interpreted languages.
It consists of special words - commands. With the help of these commands you can give the computer "orders". For example, the AlertBox command is an “order” to display a window with a title, a picture, a text message and an OK button. The rules for writing commands are called syntax.
The sequence of commands (where each is always written from a new line) is the program code that will later be executed by the so-called NeoBook player. Being built into your program, this player will read the code and execute (play) it line by line - command by command (during test compilation this process can be seen in the debugger window).
For example, if we write the AlertBox command in the button properties (on the “left click” event), then when the user clicks this button in our program with the left mouse button, the NeoBook player will read and execute the command — that is, will show a message box.
Exactly how the player does what the neo-gunner does is not necessary to know, but the list of commands that the player understands is necessary to the neo-player. Of course, all commands are described in the Help to NeoBook and are always available through the menu “Commands” in the code editor, so you can not know the commands (or not remember), but simply choose from the list of available ones. Fortunately, for each team there is a hint.
Let's see how to choose commands in the following example.
Hello World!
I will give a classic example for the syntax example: “Hello, World!”. At the same time I will show you how to choose commands in the code editor through the “Commands” menu.
This link is available video (1 min, 2 seconds, without dubbing) showing the entire process of creating a program with a single button, clicking on which causes a message box with the specified text (
backup link ).
To display a simple message window on the monitor, one command is sufficient:
AlertBox " " ", !!! ))"
In the first program of a beginner, this code can be placed on a button, a click on which in the running program should open this welcome window.
The style of the window created by the AlertBox command is borrowed from Windows, the default image can be replaced with any of your own (including transparent and of any size), as I did in this case:

The AlertBox command also supports multi-line text (a line break in the code editor is indicated by a special character - a vertical bar). Special characters do not have to be learned, because you can edit the text of a message in a more convenient way for non-programmers - through the window for setting command parameters. This window opens automatically when a command is selected via the “Commands” menu (see figure 3 in the screenshot below - the code editor is open at the “Left Click” event of the on-screen button).
You can see that the teams are grouped by sections (“Navigation”, “Messages / Dialogues”, “Multimedia”, etc.), click on the section (number 4 in the screenshot below) to open the list of commands available in this section. At the same time, if you hover the mouse over a command from the list (see figure 5 in the screenshot), then a hint appears in a special yellow field at the bottom of the command list - the purpose of the command:

Clicking this list on the AlertBox command, as on any other command having
parameters (what you can customize or change), will open the window for setting up parameters for this command. It is easier for non-programmers (at least initially) to enter the parameter values ​​in this helper window - it controls the spelling of the syntax (for example, he will not forget to close the quotes), plus, in the helper window, new lines can be made just with the Enter key, as in any ordinary text editor:

When you click on the "Test" button (marked 3 in the screenshot above), we will be able to see how the window will look, even without running the program's test compilation:

The assistant window ensures that the parameters of the team are filled out correctly, and thus makes life easier for both beginners and teachers. This helper window in the code editor can then be called up at any time for any command that has parameters — simply by double clicking on the line with the command.
In the code editor, the AlertBox command now looks like this (the arrow marks the newline - vertical line):

Variable assignment
Another illustrative example of syntax is: how to set a variable to some value (i.e., how to put some content in a memory cell).
A variable is a computer memory cell with a name. The name plays the role of an address where you can find the desired cell. Just as we can put different things in a cell of a storage chamber, so we can add different contents to a memory cell of a computer, while the name of the cell remains the same.
To create a variable or change its value in NeoBook, the SetVar command is enough.
This command has two parameters (what can change) - this is the “name of the variable” (it can also be set in Russian, although programmers recommend using the Latin alphabet), and “new value” (can be of any type - number, string etc.). The variable name in the NeoBook is always written in square brackets.
With the SetVar command, we put such-and-such contents (number, text, file, or whatever) into a memory cell with such a name. This is how you can put the necessary text string into a variable:
SetVar "[]" " () "
At the same time, the NeoBook does not require the variable to already exist or be pre-declared (if there is no variable, then the SetVar command will automatically create it), there is no need to allocate memory or set a variable type (you can not know about data types at all, however, If desired, the variable type can always be specified by a special command). All this greatly simplifies programming in the NeoBook.
Conveniently, the SetVar command supports simple mathematical operations, which makes it easy to create various kinds of counters (for example, the counter of correct answers in a test):
SetVar "[VsegoBallov]" "10" SetVar "[VsegoBallov]" "[VsegoBallov]+1"
After executing these two commands, the variable [VsegoBallov] will contain 11.
In general, for mathematical calculations have their own team.
To clear a variable, it is enough to leave the second command parameter empty (assign a vacuum to a variable):
SetVar "[VsegoBallov]" ""
Code editor
The NeoBook code editor supports auto syntax highlighting. You can customize your colors, by default, the same code comments begin with a dot and are highlighted in gray, the variables in the code editor are highlighted in red, and the commands are highlighted in blue. As an example, I will give a code fragment on the “Left Click” event on the “Result” button (from the subject test to a video lecture):

The screenshot shows the beginning of the test results processing script. If the name of the team somewhere was written with an error, then such a command instead of blue would be painted black.
While writing code, the editor window does not have to be as compact as shown in the screenshot, you can expand it to full screen using a special button on the toolbar (see figure 2, in the screenshot above) - between the Insert Variable button (see figure 1) and the “Commands” menu (see number 3). It is convenient to work in the maximized editor window when the code is large.
Video example of creating an application in NeoBook
This link is available video (8 min, 46 seconds, without dubbing), where you can see the whole process of creating a simple subject test with software processing of test results and display a message to the user (
backup link ).
Interview with the creator
Especially for this article I was able to take a brief interview with the creator of NeoBook - David Riley (David Riley, NeoSoft Corporation, official website:
neosoftware.com ). Since the city of Bend (Oregon, USA) is far from Tyumen (the city in which I live), I asked my questions by mail, and David kindly agreed to answer.
1. How did you get the idea to create a NeoBook? When and why did you decide to do this? If possible, tell us a little about yourself.David: I don’t remember exactly where the NeoBook idea came from. At that time, people were interested in the new concept of “digital publications” or “e-books,” as they were then called. (Today we call them e-books). This was the original purpose of NeoBook, which is why it is called Neo-Book. After the first version was released, we found that most people use it as a programming tool, and not as a means of publishing. So NeoBook gradually evolved from a book publishing tool to a non-programmer development platform.
When I was younger, I was obsessed with programming, and that’s what I did most of my time. As I get older, I no longer enjoy it so much. I rarely program, although sometimes I do small utilities for myself and my friends.
2. In what year did the first public version of the program come out? What day can be considered the birthday of NeoBook? Have you saved her screenshots?David: The first version of NeoBook for DOS 1.0 was released in late 1993. I think that the birthday falls around the end of November or the beginning of December. There may be screenshots somewhere, but they are probably on my old computer with floppy drives, so there is no easy way to get them. I found an old printed manual from 1994, so it seems to be from the first or second version of the NeoBook. Here is a scan of the page that demonstrates the old DOS program interface:
3. What inspired and supported you in creating and developing the program?David: I think there were two things. The first was a sincere desire to do something that people would find useful. We received a lot of feedback from users and suggestions, which I collected in a separate list. Some sentences were terrible or impracticable, but many were really good. I worked on the list of proposals and implemented as many good ones as possible. Another thing that motivated me was the need to earn money to support myself and the staff that I had at the time.
4. Did you write the program completely yourself?David: I actually did most of the NeoBook program myself. As in most large applications, I used a lot of libraries, both commercial and public. I do not know how to separate the code that I wrote from scratch, and the code obtained from libraries and other sources.
5. Do you plan to take part in developing the program with Luis under the new brand of the program (VisualNEO Win)?David: I helped a little, but I do not plan to participate in any major development in the future.
6. What would you like to say to NeoBook fans?David: Thank you for your support. I’m sorry that I couldn’t continue in the same way, but I think that Louis will breathe new life into the NeoBook.
David, thank you so much!New life
Since September 1, 2018, NeoBook has been transferred to further development by Spanish programmer Luis Hernández Peña, SinLios Soluciones Digitales, Becerril De La Sierra, Spain and NeoBook is now called VisualNEO Win (the official website of the program:
visualneo.com ). At the time of publication of the article, the functionality of VisualNEO Win is no different from NeoBook 5.8.7 Professional (this is the latest version under the old name), so before a significant update you can consider these programs to be the same.
Since 2014, I teach programming in the NeoBook environment for psychology undergraduates (as part of the course “Innovative and Communication Technologies in Psychology”, and since 2016 I have been teaching the semester elective “Fundamentals of programming for the humanities”, built on NeoBook, for bachelors of all specialties Tyumen state University. In 2016, the year I managed to win
a grant Vladimir Potanin to create online course
"Quick programming from the ground up for the humanities" (made it an open platform
the Moodle ) and now program vaniyu in NeoBook / VisualNEO Win can be completely free of charge and at any time to learn all those who wish to. In this course, fully represented all content previously written tutorial by me, and a workshop on NeoBook.
The course is designed for 15-30 hours of independent study (for all users of personal computers from 14 years old, without initial training in programming) and allows you to master the NeoBook in just a month (if you study 30-60 minutes a day) to the level of self-creation of useful, reliable and beautiful programs of primary and secondary levels of complexity. The theoretical part of the course is represented by lectures, and the practical - by step-by-step instructions (with screenshots and short videos), which allow you to create a simple and complete program.
The sequence of projects created according to the instructions is chosen so that, in practice, the neobuker can immediately be introduced to all the main features of the NeoBook programming environment, while at the same time offering him answers to the question “Why should I learn programming?”.
Information for programmers
NeoBook allows you to use external DLL, local and global variables; supports work with arrays, developed logical operators, regular expressions, recursion; allows you to draw code into subroutines and functions (including those created in other programming languages: VBScript and JScript, and with the help of special plug-ins in PHP, PdScript, AutoIt, Ruby and newLISP); There is the possibility of calling functions WinAPI. Programmers Delphi, Visual Basic, C ++, C #, VB.NET (and any other software environment with support for ActiveX controls) can embed applications compiled in NeoBook into their software products. Separately, it should be emphasized that the NeoBook functionality is almost unlimitedly expandable with plug-ins: programmers who support the development of NeoBook create new plug-ins on a variety of topics (SDK is for Delphi, C ++ and PowerBasic). For example, using the NeoBookDBPro plug-in (which uses ODBC and ADO technology), the NeoBook project can work with many database formats: Microsoft Access, MySQL, SQLite, Microsoft SQL Server, Oracle, PostgreSQL, Paradox, dBase, etc.
Conclusion
In conclusion, I want to emphasize that the combination of ease of development and great opportunities makes NeoBook (now VisualNEO Win) a very effective tool for creating programs and learning programming. In the first place - for young people and humanitarians, the training of which traditionally raises many problems.
In NeoBook, you can create computer programs of quite professional level, and you can make prototypes of programs or interfaces. NeoBook can be successfully used as the first programming language for studying (from 11-14 years old), and as a full-fledged application development environment for people working in any professional field and willing to automate the execution of any tasks.
If, at some point, the NeoBook functional becomes scarce (for example, if you need to build web applications running on the site), then after the NeoBook it will be a “matter of technique” to learn any other programming language, since by that moment the most difficult skill will be mastered - “think like a programmer”. That is why I believe that NeoBook does not reduce the threshold for entering the world of programming, but removes it almost completely.
Links
- Free online course dedicated to programming in NeoBook / VisualNEO Win: https://distant.orgpsiholog.ru/course/view.php?id=20
- The official site of VisualNeo Win: https://visualneo.com
- Forum “Russian Home for NeoBook”: http://neobooker.ru
- Russian-language forum for all VisualNEO products: https://visualneo.info
- Lyovkin V.E. NeoBook. Fast programming from scratch for the humanities: a textbook / V.E. Lyovkin. - M .; Berlin: Direct Media, 2016. - 218 p. ISBN 978-5-4475-8750-5; The same [Electronic resource]. - URL: https://www.directmedia.ru/book_450198_NeoBook_byistroe_programmirovanie_s_nulya_dlya_gumanitariev/
- Lyovkin V.E. NeoBook. Workshop on fast programming from scratch: a tutorial / V.E. Lyovkin - Moscow; Berlin: Direct Media, 2018. - 190 p. ISBN 978-5-4475-9464-0; The same [Electronic resource]. - URL: https://www.directmedia.ru/book_486254_NeoBook_praktikum_po_byistromu_programmirovaniyu_s_nulya/