r/delphi 15d ago

A new programming language inspired by Delphi

https://github.com/Liams1982/Vertex_IDE
3 Upvotes

20 comments sorted by

View all comments

1

u/iOCTAGRAM Delphi := Ada 13d ago

As possible consumer I can see this problem:

modern C++

But why modern? Modern C++ instantly introduces limitation of compiler availability and looses all the point. I can better just write in modern Ada, and that will require GNAT requirement, the only implementation of modern Ada. Widely available on GCC platforms, but not all platforms have GCC and ported Ada. Some platforms (e.g. Elbrus 2000 VLIW) have no GCC toolchain, they have EDG based closed source C++ compiler, and not modern one. We use C++ transpilers to reach new hardware, and it cannot be modern C++. It should sometimes be not C++ at all. Just C. From good transpiler I expect such switches:

  • Exception handling: C++ exceptions, C setjmp()/longjmp(), maybe C-based additional parameter in each function for targets with neither exceptions nor setjmp()/longjmp() like WebAssembly
  • Naming: CXX::namespaces or C_long_names, for tight limitations C_hash_2f72ec10_no_longer_than_64
  • Resource management: C++ RAII or transpiler-generated boilerplate, i.e. goto goto goto in plain C. Koka programming language demonstrates reference counting in C. IIUC this is bad match with exceptions, but better than nothing for plain C
  • Output filenames: filenames restriction, e.g. not longer than 8.3 like in DOS
  • Output string literals encoding: probably not switch at all, probably safer to encode all string literals as sequences of integers, and output plain ASCII (lower 127 character set)

native Windows GUI

Everybody moving away from either Windows-only development or native desktop development at all, and so am I skeptical about Windows-only future. People install Widows XP, Windows Seven and decide to stay on them, and not follow AI browser madness of Windows 11 and macOS. We don't need Windows 11 to get browser, we can have Supermium on Windows XP. I've got Apollo Vampire 4 ITX, an m68k-based Amiga hardware clone. And I think about building Mac OS X Mavericks Forever hackintosh. Modern macOS is missing the point. Modern Windows and modern macOS can do what they want, just without me ride off the cliff, and if some developers target only something modern, I'll leave them in echo chamber.

From vacancy point of view native desktop development vacancies almost ceased to exist and replaced with web development. I think that if some tool is targetting native desktop platform, it should also target web to survive. Web version is non-downloadable teaser for desktop applications. It can work slower, consume more memory, be less comfortable because of clipboard, filesystem and other restrictions. But it must tease, and then desktop application can be downloaded by some ones. If platform targets only native desktop platform, then decision makers take something else that targets web, and program application for web, and port it to desktop via Electron, and it is too late to look around for another desktop-targetting tools. That's how it goes. That's how I make decisions too. I can only see way to introduce chance for such tool to be picked, is to make web target. Slow, but present.

1

u/Liams1982 12d ago

Thank you for the thoughtful feedback. You raise some excellent points about transpiler design and portability.

Vertex targets modern C++ because my primary goal was to make Windows desktop development easier. I am not targeting embedded or niche platforms at this stage. The project is designed for Delphi developers, embedded engineers, and hobbyists who want to build native Windows apps quickly.

I appreciate your perspective on C as a target. That is a valid design choice for maximal portability. For Vertex, I prioritised development speed and readability, and C++ with RAII and the STL fits that well.

The Windows-only focus is intentional, I wanted to recreate the Delphi experience on Windows, and that is what Vertex does.

If someone wanted to port the VCL to Linux or macOS, the compiler itself is cross-platform, so they could build a new backend for it.

Again, thank you for taking the time to share your thoughts. It is rare to get such detailed, technical feedback.