Pascal, Delphi and Oberon today

Hello everybody.

To begin with, the other day there was a newsletter on Delphi and RAD Studio XE4, in which Delphi is declared as a multi-platform tool for rapid development for computers, laptops, tablets and mobile devices, including MAC, iPhone, iPAD, Embarcadero also has plans to make support Android mobile platform.

Delphi and FreePascal are Pascal today. One of my favorite programming languages. The language has come a long way from “toys for scientists” to a powerful universal development tool, on which great projects, for example, Total Commander, are made .

Built on sound solutions, the core of Pascal easily succumbed to improvement and refinement and is suitable for a wide class of practical tasks. In Russia, Delphi is especially popular and is still widely used. However, the development of the language is based on the principle of capacity building, and gradually Delphi becomes more cumbersome, catching up on the complexity of such monsters as PL / 1, C ++ and Ada. With high probability, we can assume that the language will not become easier, because we need to maintain compatibility with the accumulated source database, etc. In the end, such a development strategy will inevitably lead to difficulties when complexity can no longer be controlled.

At the same time, there is a programming language obtained over several decades of practical teaching and solving various problems through methodical and consistent refinement of Pascal. This is Oberon - the most beautiful of all minimalistic languages, which few have heard of. I can safely say: Pascal today is not only Delphi (obtained by the method of building), but also Oberon-2 / Component Pascal (obtained by the method of discarding, revising and clarifying the feasibility of certain means). Due to the fact that the author of the language was not dominated by the need for compatibility, he was not particularly worried about this topic. And the resulting language is solid, compact, powerful, cross-platform in the broad sense (including not only modern platforms, but alsoAmiga , and even Atari ). At Component Pascal, I have successfully developed a MIDlet for Java micro edition , I do not foresee difficulties in the development for Android. Except for one: few people know about the lack of infrastructure, and indeed about such use of the Oberons.

Oberon-2 and Component Pascal are multi-paradigm languages ​​for system and application programming, they are modular, component and object-oriented. Operating systems, compilers, and other programs developed in Oberon dialects are often works of art in and of themselves. They are beautiful, extraordinary, compact and worthy of all praise. Oberon is popular in the academic environment as a way of writing algorithms (replaced Fortran) and as a minimal language for research (see, for example, how many publications on Oberon on SpringerLink publisher’s website have come out ). It is ideal for teaching programming. In Russia there is a project Informatics-21, popularizing the use of Oberon for training future programmers, because, in addition to its technical advantages, Oberon gives a good understanding of programming technologies and does not depend on the commercial interests of large corporations. Look at what my young niece has learned after a week of talking with me about programming . Due to the simplicity of the language, enthusiasts have developed many Oberon dialect compilers for various platforms.

Wirth always considered it right to design processors for languages, and not vice versa . But, despite this, Oberon programs convert well to C, Java, work both natively and on .NET / JVM. GPCP compiler for LLVM is being developed . I own the idea of ZXDev- development environment on Oberon-2 for the eight-bit Z80 processor and ZX Spectrum computer. The newest revision of Wirth Oberon is called Oberon-07. It is even smaller in size than Oberon-2, and is adapted for ARM processors and high-resolution architectures. This is the direction of Pascal's development. Little known to the masses of programmers, but beautiful as a work of art. For more than seven years, I have been actively using Oberon technology for the benefit of my work, and I don’t want to program on anything else.

Therefore, I appeal to enthusiasts who like Pascal and Delphi, who like to code for retro platforms. XDev environment, which is conceived as a base for cross-platform development, can be a much more interesting tool than you thought. It implements various translation schemes (from different languages) into the target code of various platforms, utilities for the convenience of development, visualizers and a set of libraries, both oriented to a specific platform and cross-platform. XDev is a modular and component environment, and subsystems are used for development for various platforms. The richest (and the most ready) is the ZXDev subsystem (target platform: ZX Spectrum). ZXDev implements a translation scheme from the Oberon and Oberon-2 languages ​​in C, and by means of the SDCC compiler, C and compiler are already translated into the machine code of the Z80 processor. The kit contains the smartlib utility(for convenient work with libraries and inclusion in the target binary of only the machine code really used in the program) and converters to the target formats TAP and TRD. There are several libraries, for example, Console, Laser, Basic, Graph. Development on ZXDev can be carried out both on Oberon-2 or C with assembler inserts, and in all languages ​​at once, simultaneously.

At all levels of XDev, almost one language is used as a high-level tool - Oberon-2. Of course, the C language was used for the intermediate representation, and the command language of BAT files is needed for linking Oberon components and third-party tools, but, in general, it is aimed at monolingualism, especially since Component Pascal is the correct superset of Oberon and Oberon- 2. Therefore, one language is for developing XDev itself, and for programming target platforms. At our forum, we are trying to develop the Oberon language, increasing it with the means that we think is necessary for practical development (for example, Oberon-07 has lost various types of integers, therefore it is not suitable for development for 8-bit processors).

But in the XDev environment, of course, other translation schemes can be implemented, other programming languages ​​added (planned: Component Pascal, Modula-2 Revision 2010, Objective Modula-2 , and, possibly, some dialect of object or ordinary Pascal) and target platforms. The XDev component framework uses the BlackBox Component Builder (Oberon Microsystems) Oberon environment , which is extensible and open source.

In addition to ZXDev, subsystems WinDev, LinDev, DosDev and JmeDev are also being developed (into Java microedition bytecode), and, in principle, there are no obstacles to making the subsystem for targeted development for Android / iOS, MSX, ColecoVision, NES / SEGA, Atari, Amiga, Palm OS, and even under the UK-NTs with DVK / BK-0011 and under Mikrosh with Apogee / Krista / RK-86. And you have the opportunity to make support for any platform you are interested in, both modern and retro, for XDev. This is my hobby, which eventually led me to many years of passion for programming. It all started with Pascal / Fast on UK-NTs. :)

So I invite everyone to our forum, learn more about our activities and of course about Oberon technology. You can contribute to the development of XDev, help with new ideas, influence the decisions made, develop / adapt a new library or add a new platform. There are no restrictions on either the language (s) or anything, just the basis of XDev is the desire to develop in modular languages ​​a European programming school, which qualitatively differs from the American C-shaped paradigm that dominates the IT market today. However, I don’t want to enter into disputes, if you like C, then XDev is quite suitable for developing in C, however, then you probably prefer the traditional IDE rather than the XDev environment.

Thank you for understanding.

Topics that may interest you:

How I came to Oberon. Why use it. Does it have advantages
Oberon and cross-platform
About broadcasting Oberon in C (And why write in Oberon, if there is C?)
Development of games and programs for ZX Spectrum in Oberon-2
XDev environment: where to start?
Weekdays of XDev development The
powerful ZXDev development environment for four languages ​​for ZX Spectrum is ready for testing
How to create a new library for ZXDev
Port of the Graph library (from Turbo Pascal) under ZXDev
Advantages of ZXDev over Code :: Blocks / SDCC for beginners to learn C

Also popular now: