NeoBook: a programming environment for non-programmers



NeoBook: a programming environment for non-programmers


Who is this article for?


The article is written primarily 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 competency that will surely come in handy for a person in almost any professional field and, of course, for personal purposes. For teachers of computer science and programming, the article can also be useful, because 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 they need to quickly create something simple enough.

Why I decided to write about NeoBook


Over 10 years of programming in NeoBook and over 5 years of teaching students this program, I caught myself thinking many times - why so few people know that using NeoBook you can independently create functional and beautiful applications for 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 training for half an hour a day (and this is true for an ordinary user of a personal computer without any initial training in programming).

Programming in NeoBook gives a quick tangible result, which is extremely important when learning programming, especially for modern youth and busy people. The time has come to correct this injustice and tell NeoBook to everyone who is still choosing their first programming language - after all, this is not just an educational language, but also allowing you to write applications of a completely professional level for Windows computers.

Why 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 through it begin to describe the capabilities of NeoBook.

It so happened that I needed to computerize something, and specifically, my own methodology for diagnosing the power of motive (desire power, desire ...). Having learned about the various test constructors, I began to sort them out one by one and torment developers with letters, such as “it would be nice to add such and such an opportunity to your wonderful program”.

As always happens when using ready-made test constructors, one thing or another didn’t suit me ... And 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 completely yourself?

The technique chosen for computerization is very simple (presenting questions, multiplying the points obtained in the form of answers and giving an interpretation in accordance with the given range), and hiring a programmer is expensive and, in my case, inconvenient (significant program updates were supposed). Therefore, I decided to create the program myself and began to read books on Delphi, then Delphi for dummies, then for schoolchildren, then for children ... I would probably have reached the Delphi for Babies level if such a book existed.

Since I did not have basic programming knowledge, I could not separate the important information from the secondary and really could not begin to practice. Coding exercises like “draw a ladder” put me in a state of severe depression. I think that a decent number of neophytes have reached this threshold - this is the very moment when you want to give up.

Fortunately for me, I pecked at an advertisement of an Internet entrepreneur - he offered paid programming lessons in NeoBook and called it a "program for creating programs." So I found out about the NeoBook. In search of additional information about her, I came across a forum of neo-bookers , where they taught me how to work with the program.

What can be created in NeoBook?


At first, I had doubts - is it possible to do something worthwhile in NeoBook, am I wasting my time? But now I can say that for all the time I’ve been working with NeoBook, I’ve never encountered the problem I really needed that I couldn’t solve either myself or with the help of the neo-booker community (among which are the creators of numerous functions and plugins for NeoBook). For personal and professional life I did:

  • interactive subject and psychological tests, questionnaires and questionnaires;
  • stimulus material for various scientific studies;
  • multimedia training programs for the development of skills and abilities;
  • diagnostic complexes (for example, a battery of techniques 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 (while a student passes the online test, he cannot open anything else either in a web browser or on a computer in general);
  • a program for monitoring activity and remote (from the phone) computer control for a child (own parental control);
  • convenient database for storing passwords;
  • Screenshot for elderly parents (so that in one click from the tray they could send me a screen screen to the mail);
  • launchers, widgets, widgets, 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 want), a program for creating collages or business cards, your own organizer, a replenished catalog of recipes, a multimedia player or an audio converter as a gift, a simple web messenger or local network chat, programs for collecting and processing data for scientific research with saving results to a file (including PDF and RTF), programs for working with files on a web server, video surveillance programs, you can create your own browser plugin pa and much, much more.

For a non-programmer, this enumeration is useful in that it indicates the truly enormous capabilities of NeoBook and answers the question whether the NeoBook is worth the time spent on its development. For myself, I concluded that it’s still worth it! At the same time, the functionality of NeoBook is constantly expanding with the help of plugins and functions that professional programmers actively write for NeoBook. What a low bow to them!

Take a look at NeoBook


This is how the NeoBook window looks in editing mode (the project of the subject test for the video lecture “Development of the logic of thinking” is opened, the text object with the test question is highlighted with square dots):



The screenshot shows the main window of the Russified NeoBook (version 5.8.7). By the way, the help file is also translated into Russian, like most plugins.

NeoBook has all the features of a programming environment, it has:

  • visual designer of the interface (providing design on the principle of “what I see, I’ll get it” - the program is created by simply dragging and dropping objects and in this part it resembles a regular text or graphic editor; the necessary code is written in the project properties, in the properties of the created objects and pages for various available events );
  • a code editor (with syntax highlighting and a window for setting command options; a code editor is available in the windows for setting project properties, project pages, as well as used objects; the code is written in its own script language - you can say in a very simplified Delphi);
  • interpreter (works in test compilation mode, and is also embedded in the final application during the final compilation and makes the created program in the future completely independent from the NeoBook application);
  • a debugger (with the ability to see the current values ​​of variables and the commands that are executed, which allows you to control the speed of script execution and even with line-by-line code execution in pause mode, which makes catching errors a pretty simple task).

Key features and limitations of NeoBook


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 field, inscription, text, multi-page text, browser , container, etc.).

Various events are available for encoding (left-click, right-click, mouse hover, mouse left, drag and drop, timer triggered, object state change, application window state or size change, etc.); allows you to use the main, context and tray menus in projects; You can make an interface that can be changed on the fly (language and skins); various means of audio, video, animation (GIF, Flash, NeoToon) are available, as well as a browser (based on IE or Chrome), which can be integrated 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); can work with the Windows command line, with entire 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 the 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 multithreading (which is largely compensated by plugins that can take on parallel work with the NeoBook script) and NeoBook does not support the dynamic creation of objects (although, as a rule, you can pre-provision the required number of them).

NeoBook Language


NeoBook language can be attributed to high-level interpreted scripting languages.
It consists of special words - commands. Using these commands, you can give the computer "orders." For example, the AlertBox command is an “order” to display on the screen a window with a title, picture, message text and OK button. Rules for writing commands are called syntax.

The sequence of commands (where each is always written on a new line) is the program code that will subsequently 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 observed in the debugger window).

For example, if we write the AlertBox command in the properties of the button (on the “left click” event), then when the user left-clicks on this on-screen button in our program, the NeoBook player will read and execute the command - i.e. will show a message box.

How exactly does the player do what the neobucker does is not necessary to know, but the neobuker needs a list of commands that the player understands. Of course, all the commands are described in the NeoBook Help and are always available through the "Commands" menu in the code editor, so you may not know the commands (or not remember), but simply select from the list of available ones. Fortunately, for each team there is a hint.
Let's see how to select commands in the following example.

Hello World!


Let me give a classic example for syntax: “Hello World!” At the same time, I will show how to select commands in the code editor through the "Commands" menu.

A video clip is available at this link (1 min, 2 sec, without dubbing) showing the entire process of creating a program with one single button, clicking on which brings up a message box with the given text ( backup link ).

To display a simple message window on the monitor screen, one command is enough:

AlertBox "Тут заголовок окна" "Привет, Мир!!! ))"

In the first program of a beginner, this code can be placed on a button, a click on which in a 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 any size), as I did in this case:



The AlertBox command also supports multi-line text (line breaks in the code editor indicate with a special character - a vertical bar). Special characters do not need to be memorized, since you can edit the text of a message in a more convenient way for a non-programmer - through the command settings assistant window. This window opens automatically when you select a command through the "Commands" menu (see number 3 in the screenshot below - the code editor for the "Left Click" event of the on-screen button is open).

It can be seen that the teams are grouped into sections (“Navigation”, “Messages / Dialogs”, “Multimedia”, etc.), clicking on a section (number 4 in the screenshot below) will 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 number 5 in the screenshot), then in the special yellow field at the bottom of the list of commands a hint will appear - the purpose of the command:



Click on this list with the AlertBox command, like with any other command with parameters(what can be configured or changed) will open the window for the settings assistant for this command. It is easier for non-programmers (at least at first) to enter parameter values ​​in such a helper window - it controls the correct spelling of the syntax (for example, does not forget to close the quotation marks), plus, in the helper window, new lines can be done simply with the Enter key, as in any regular text editor:



When you click on the “Test” button (indicated by the number 3 in the screenshot above), we can see how the window will look, even without starting a test compilation of the program:



The assistant window ensures the correctness of filling in the team parameters, and thereby greatly facilitates the life of both beginners and teachers. This helper window in the code editor can then be called up at any time for any command with parameters - just double-click on the line with the command.

In the code editor, the AlertBox command now looks like this (the arrow marks the line break character - a vertical bar):



Assigning a value to a variable


Another significant example of syntax: how to set a variable to some value (i.e. how to put some content into a memory cell).

A variable is a computer memory location with a name. The name plays the role of the address where you can find the desired cell. Just as we can put different things in a cell of a left-luggage office, different contents can be added to a computer’s memory cell, 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 be set in Russian, although programmers recommend using the Latin alphabet), and the "new value" (can be of any type - a number, a string etc.). The variable name in NeoBook is always written in square brackets.

With the SetVar command, we put such and such contents (a digit, text, a file or anything else) into a memory cell with such and such a name. This is how you can put the desired line of text into a variable:

SetVar "[ИмяПеременной]" "А тут новое значение (содержимое) переменной"

At the same time, NeoBook does not require that the variable already exists or has been declared in advance (if there is no variable, then it will be automatically created with the SetVar command), it is not necessary to allocate memory or set the type of the variable (data types may not be known at all, however, when if desired, the type of the variable can always be set with a special command). All this greatly simplifies programming in NeoBook.

It is also convenient that the SetVar team 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, there is a command for mathematical calculations.

To clear a variable, just leave the second parameter of the command empty (assign a void to the variable):

SetVar "[VsegoBallov]" ""

Code editor


The NeoBook Code Editor supports auto-syntax highlighting. You can customize your colors, by default, code comments begin with a dot and are highlighted in gray, the variables in the code editor are highlighted in red, and commands are highlighted in blue. As an example, I’ll give a code snippet at the “Left Click” event on the “Result” button (from a subject test to a video lecture):



The screenshot shows the beginning of a script for processing test results. If the name of the team was spelled out somewhere in error, then such a command instead of blue would be painted black.
When 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 the special button on the toolbar (see number 2, in the screenshot above) - between the "Insert Variable" button (see number 1) and the “Commands” menu (see figure 3). It is convenient to work in the expanded editor window when the code is large.

Video example of creating an application in NeoBook


A video is available here (8 min, 46 sec, without dubbing), in which you can see the whole process of creating a simple subject test with software processing of test results and displaying a message to the user ( backup link ).

Interview with the creator


Especially for this article, I was able to take a short 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 “electronic books,” as they were called then (today we call them e-books). This was the original purpose of NeoBook, so 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 publication tool. So NeoBook gradually evolved from a means of publishing books to a development platform for non-programmers.

When I was younger, I was obsessed with programming, which is what I did most of my time. As I get older, I no longer get carried away with it so much. I rarely program, although sometimes I make small utilities for myself and my friends.


2. In what year was the first public version of the program released? What day can be considered the birthday of NeoBook? Did you save her screenshots?
David: The first version of NeoBook for DOS 1.0 was released in late 1993. I think that the birthday falls somewhere in late November or early December. There might 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 the old printed manual from 1994, so it is apparently from the first or second version of NeoBook. Here is a scan of a page that demonstrates the old DOS interface:


3. What inspired and supported you in the creation and development of 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 offers that I put together in a separate list. Some suggestions were terrible or unfeasible, but many were really good. I worked on a list of suggestions and implemented as many good ones as possible. Another thing that motivated me was the need to earn money in order to support myself and the employees that I had at that time.
4. Have you written the program completely on your own?
David: I actually did most of the NeoBook program myself. As with most large applications, I used many 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 the development of the program with Louis 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 could not continue in the same vein, but I think that Louis will breathe new life into the NeoBook.
David, thank you so much!

New life


Starting September 1, 2018, NeoBook was transferred for further development to Spanish programmer Luis Hernández Peña (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 this 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 you can consider these programs to be the same before a significant update.

Since 2014, I have been teaching NeoBook programming for undergraduate psychologists (as part of the course “Innovative and Communication Technologies in Psychology”, and since 2016 I have been conducting a semester elective “Fundamentals of Programming for Humanities”, entirely 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 self-study (for all users of personal computers from 14 years old, without initial training in programming) and allows you to learn NeoBook in just a month (if you study for 30-60 minutes a day) to the level of self-creation of useful ones, reliable and beautiful programs of initial and intermediate level of complexity. The theoretical part of the course is presented by lectures, and the practical part by step-by-step instructions (with screenshots and short videos) allowing you to create a simple and complete program.

The sequence of projects created according to the instructions is chosen so that immediately in practice the neo-booker will be introduced to all the main features of the NeoBook programming environment, while at the same time offering him options for answering the question “Why should I learn programming?”.

Информация для программистов


NeoBook allows you to use external DLLs, local and global variables; supports work with arrays developed by logical operators, regular expressions, recursion; allows you to format the code into routines and functions (including those created in other programming languages: VBScript and JScript, and with the help of special plug-ins also in PHP, PdScript, AutoIt, Ruby and newLISP); There are opportunities to call WinAPI functions. Programmers Delphi, Visual Basic, C ++, C #, VB.NET (and any other software environment with support for ActiveX controls) can embed NeoBook-compiled applications into their software products. Separately, it should be emphasized that the functionality of NeoBook is almost unlimitedly expandable with the help of plugins: programmers supporting the development of NeoBook create new plugins on a variety of topics (there are SDKs 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 features makes NeoBook (now VisualNEO Win) a very effective tool for both creating programs and teaching programming. First of all, for young people and humanities, during whose training many problems traditionally arise.

In NeoBook, you can create computer programs of a completely professional level, and you can make prototypes of programs or interfaces. NeoBook can be successfully used both as the first programming language for learning (starting from 11-14 years), and as a complete application development environment for people working in any professional field and wanting to automate the execution of any tasks.

If at some point the functionality of NeoBook becomes small (for example, if you need to make web applications running on the site), then after NeoBook it will already be a “technical matter” to learn any other programming language, since by this moment the most difficult skill will be mastered - "think like a programmer." That is why I believe that NeoBook does not lower the threshold for entering the programming world, but removes it almost completely.

References


  1. Free online course on programming in NeoBook / VisualNEO Win: https://distant.orgpsiholog.ru/course/view.php?id=20
  2. Official VisualNeo Win website: https://visualneo.com
  3. Forum "Russian Home for NeoBook": http://neobooker.ru
  4. Lyovkin V.E. NeoBook. Fast programming from scratch for 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/
  5. 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/

Also popular now: