- Simple yet powerful code
- Variables and types
- Powerful programming
- Powerful structured programming
- FOR EACH
- Procedural programming
- Object-Oriented Programming
- Embedded database access
- Handling UI via programming
- And even more features...
- Dynamic compilation
- Defensive programming
- Multithreading and parallel tasks
- Execution security
- Secure memory area
- External languages
The integrated WINDEV language, WLanguage, is powerful, simple and intuitive.
it's a fifth generation language (5GL), which means that its commands are highly sophisticated.
A WLanguage command can replace dozens or even hundreds of 4GL commands, making programming easier and more reliable.
No more unnecessary complexity, no more incomprehensible APIs, no more useless programming!
WLanguage is a clear, easy-to-learn programming language, close to everyday language. The code is easy to write and proofread. Coding and maintenance are therefore optimized.
FOR EACH Customer
Message is Email
Message.Recipient = Customer.EmailAddress
The code above demonstrates the simplicity of WLanguage. WLanguage is available in English and French.
Variables and types
Declaring variables is easy and intuitive.
Message is Email
ArrayOfCustomers is array of Customers
Variables are declared easily and on the spot. WLanguage offers the standard simple types, including integer, boolean, currency, numeric with up tp 38 significant digits, real number or character string.
Over 20 simple types are available.
WLanguage comes with a large number of advanced types that let you easily manage complex notions: emails, RSS streams and signatures, XML documents, resources for schedulers and calendars...
Powerful structured programming
The essential standard iterative and conditional programming structures are available (FOR I, LOOP, WHILE, IF, SWITCH, etc.) but each one of them has been simplified for efficient and quick code writing.
For example, the variable declaration of the "FOR i" loops is implicit, the SWITCH statements can use the entire range of WLanguage comparisons, ...
CASE "A" <= * < "H": Floor = 1
CASE "H" <= * < "P": Floor = 2
CASE >= "P": Floor = 3
You can use complex intervals to define each CASE.
"FOR EACH" loops go through all the elements of a set, for example: records in a data file , elements in an array , selected fields in a list, substrings in a string, ...
FOR EACH email NOT READ OF MailServerConnection
FOR EACH SELECTED ROW OF OptionList
FOR EACH Customer where Country = "France"
WLanguage's procedural programming is extremely powerful. Procedures let you organize your code logically.
A WLanguage procedure can have several parameters and several return values.
The parameters can be optional and their number can vary.
Procedures are recursive.
Their type can be strict or flexible.
Main functionalities supported:
- Automation (repetition, timer, thread),
- Multiple syntaxes (dynamic dispatch),
- Internal procedures (closures),
- Named parameters,
- Weak or strong typing, ...
The procedures include integrated features. Runtime automation allows for scheduled execution: in 1 minute, in 1 hour, after the initializations, etc.
The execution of a procedure can also be repeated. A procedure can be located in a Timer or a Thread.
"Internal procedures" and lambdas allow writing a sub-procedure within a procedure, which allows you to see the code at a glance, without switching between several procedures.
The local variables of the procedure can be used directly in the sub-procedure ("closure").
The internal procedures can be used in all functions that require a "Callback", including asynchronous functions.
You can use object oriented programming with WINDEV. Base class methods can be redefined visually from the project explorer; virtual methods are managed automatically.
Management of the instances' memory is completely automated in most cases, when allocating as well as when freeing memory.
- Abstract classes,
- Interfaces (duck typing),
- Inheritance, multiple inheritance,
- Override (dynamic dispatch),
- Abstract and virtual methods (polymorphism),
- Properties (get and set),
- Data encapsulation: public, private, protected,
- Easy programming in 5GL,
- Automatic freeing,
- "is one" operator and downcast,
- Weak reference,
- Deep copy,
WLanguage includes all aspects of database management. The structure of the database is automatically recognized by the compiler, which allows you to easily handle the different items of the current record of a file (table row).
Programming is done in SQL or WLanguage.
Cursor programming is very powerful.
HReadSeek(Customer, Name, CustomerName)
Operations on data require that this data be copied from the database to some variables, modified, saved or reloaded into another format. All these common operations are very easily accomplished thanks to the WLanguage syntax.
The WHERE syntax, for example, allows quick access to the sub-elements of a base element.
The homonymic copy lets you copy in a single operation the sub-elements with the same name between two heterogeneous elements.
The serialization and deserialization functions let you save and reload the content of complex elements.
Handling UI via programming
UI controls are very powerful from the moment they are defined in the window editor. Their state and behavior can be modified by programming, via the Control type: 270 display properties (position, width, etc.), as well as the code to run based on the user's actions, can be modified according to your needs.ControlCreate
allow you to create a new control or duplicate an existing control, respectively.
And even more features...
WLanguage is not a static language, it is a dynamic language. The dynamic compilation lets you execute code built on the fly.
Defensive programming consists of testing the inputs and outputs of each procedure in the code itself; any errors detected will only be displayed in "debugging" mode.
Multithreading and parallel tasks
To take advantage of the power of modern multi-core processors and make your applications faster, WLanguage offers advanced thread management.
Parallel tasks are used to split a long process into several shorter processes that will be run in parallel, taking advantage of modern processors. Variables are automatically protected. Synchronization techniques are available:
- critical sections,
- signals, ...
Code written in WLanguage is multi-platform:
- 32 or 64-bit,
- PHP, ...
Components can be shared among several platforms.
The WLanguage security mechanism prevents any data corruption. WLanguage manages errors (non fatal) and exceptions (fatal). Errors and exceptions can be managed automatically or by programming.
Secure memory area
Access to memory areas is controlled, which limits the risks of buffer overflow.
You can call code written in an external language from WINDEV or vice versa: Java, C++, C#, Fortran, VB, ...
You have access to all the features and all the standards: API, DLL calls, COM, ActiveX, .NET, J2EE, events...
It is easy to call a C or C++ DLL from a WINDEV application, for example.
This page is also available for…