My main problem with delphi: it is "too proprietary". It was a very productive IDE in the 90's or early 2000's but lost their path and never recovered.

Some new versions broke compatibility with previous version's components. There was the case where you paid a good amount of money on some proprietary components and they simply wouldn't work in the next version: you were imprisoned in an obsolete IDE. By not being multi-platform (I heard it improved lately) you could only use it with/for win32 so it lost servers, embedded, cloud and mobile. By not being open-source nobody could improve it.

Then it had to compete with "native tools". Whoever develops for windows wouldn't quit ms' tools to use it, whoever develops for mac wouldn't quit apple's tools to use it, whoever develops for android wouldn't quit google's tools to use it, whoever develops for linux was mostly ignored after kylix.

Note that I didn't even mentioned price and license.

They improved it later, I heard. But seems more like the old case of too little too late. Most successful programming languages today are open source and multi-platform. Delphi was dependent on win32 for too long and it still is "too proprietary". You do the world a favor by porting your project to lazarus.

Delphi 7, that was a lovely vintage...
Delphi 7 was / is fantastic. Soon after that, they went .NET and the wheels came off.
  • msh
  • ·
  • 11 months ago
  • ·
  • [ - ]
I think it was C# with winforms that broke the last oppotunity delphi had.
Doesn't Lazarus address at least some of these concerns? (I don't think it's a drop in replacement though.)

https://www.lazarus-ide.org/

Mostly, although Lazarus has an incompatible ABI (LCLs vs VCLs). So legacy projects relient on third-party components don't benefit from it.
  • anta40
  • ·
  • 11 months ago
  • ·
  • [ - ]
I don't mind trying Delphi again since they support mobile targets (Android & iOS). Too bad the IDE itself only runs on Windows...
  • ·
  • 11 months ago
  • ·
  • [ - ]
Borland's C++ compiler was _fast_. And I mean eye wateringly fast on crappy pre-AMD64 hardware. I wonder if it supports modern C++ today and is still faster than other compilers. (If I am not mistaken this new edition is a offshoot of that?)

(Yeah I am not downloading the "Community" edition if I have to provide my name address and phone number. Really if your product needs mindshare and you offer community edition the least you can do is make it easily downloadable.)

  • ndiddy
  • ·
  • 11 months ago
  • ·
  • [ - ]
I've downloaded one of their past community editions, their sales team will call and email you. They back off when you tell them you're not evaluating the product for your work, but it's still kind of annoying.
Not only that. He knew the project name I created!
So you give them your real email, and not a for-all-the-registration-crap email? And you also give them your real phone number?
Yeah I figured as much
  • yazzku
  • ·
  • 11 months ago
  • ·
  • [ - ]
This kind of email+phone registration was common in the 90s and earlier. Oh, wait, it's 2023.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
It is perfectly common in 2023 for the kind of clients that usually pay for development software tools.
  • yazzku
  • ·
  • 11 months ago
  • ·
  • [ - ]
Except that this Community Edition does not require payment up to a certain revenue threshold.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
Neither does the one from Embarcadero.
  • rob74
  • ·
  • 11 months ago
  • ·
  • [ - ]
Fast for a C++ compiler... but still worlds away from the Delphi compiler!
It took Microsoft some generations to stoppe requiring you to sign-in to use community edition after the trial period ends. Perhaps Borland will fix this in some years as well.
Far as I can tell, it still does. Nothing more annoying when chasing a bug than being forced to look up a password I haven't used for several months in order to use the debugger.
Visual Studio 2022 Community Edition apparently doesn't stop working even as you keep abstaining from signing in. It still asks you to every now and then but you don't really have to agree anymore. You had to reset the trial period (this is easy, it's there on StackOverflow and GitHub) every month with previous versions but with 2022 you don't.
I've never used it, but if memory serves they are, like many other companies, using a fork clang. So I expect it will be about as fast if not slower then clang.
You don't have an email for spam? And put any phone number.
I keep forgetting my spam email address/passwords lol I have a Google voice number for when I need to use it on forms but I have seen some websites don't accept it - there's ways to determine that it's VOIP it seems.
  • ·
  • 11 months ago
  • ·
  • [ - ]
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
C++17, using their clang fork.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
The only VB like development experience for C++.

Microsoft completely messed up the XAML / C++/CX development experience with internal politics, only to have the team responsible for C++/WinRT going on to have fun in Rust/WinRT, leaving the former in maintenance state.

I can definitely understand them wanting to drop custom C++ extensions, but it's a shame they can't figure out how to provide a nice development experience for their newer UI platforms. If only .NET actually works reasonably well with it (and there's a huge managed<->native overhead) maybe it should have just been WPF 2.0?

Not that I would use WinUI anyway, microsoft cannot be trusted with UI frameworks anymore.

  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
The custom C++ extensions argument is a very bad lame excuse, it isn't as if WinRT was ever going to be cross platform, or not every single C and C++ compiler used in production (not toy compilers) doesn't have their own set of extensions anyway.

I also don't consider anything related to WinUI/UWP trustworthy for production development, and I used to advocate for it.

Stuff like how .NET Native, C++/CX => C++/WinRT transition, UWP => WinUI were managed, is how they lost most of us that really liked WinRT.

I really, really, am baffled at how difficult it seems to have a GUI builder tool that outputs a description of the UI that a program can just load (or a compiler transform into a structure inside the program) as objects the program can use, handling events and pushing presentation information into it.

That was pretty much what VB did, with immense success.

The problem is that you need some form of RTTI that allows object serialization. This is basically what Delphi does: the forms, controls, etc you are editing are not fake stand-ins, they are the class instances you are working with. The object inspector shows you the actual instance properties as defined in code and you are editing live objects - the only difference is that those objects have a "design mode" flag so they can ignore any user input. When you save a form, it serializes the objects on disk. That serialization data is stored on the executable and when you run the program, the form is deserialized and the object instances are what were stored.

There is almost no UI-specific functionality there, the same functionality can be used to serialize any type of object and you can even implement your own serialization logic for your objects. The language's RTII allows for declaring properties (think like C# properties, though really C# properties were inspired by Delphi properties as the latter had them since the original Delphi 1.0 for Windows 3.1) as part of a class and has support for metaclasses (classes are instances themselves of a metaclass that describes the class), including virtual constructors (since classes are instances they have their own VMT) which allows for constructing class instances on the fly by passing a class type in a function.

The thing is, C++ does not have this sort of functionality. You can implement your own RTTI, as several projects do (many game engines do that for example), but it is often clunky (e.g. relies on macros, duplicating info, manual registration and/or external tools that parse the code and generate the RTTI boilerplate).

C++ Builder did it because it extended C++ to add that functionality in a way that is ABI compatible with Delphi - and is how it can use VCL (which is written in Delphi).

It was easy to do in Win95 through to Win2k because the interface was consistent throughout. Then they started changing the interface guidelines, and toolkit, for every major release of windows; and sometimes several times during the life of a major release.
This is also baffling. A button, a text input, a checkbox, a drop list, a combo - they all have a "default" look in every Windows version since 2.0 (1 didn't have the drop list, IIRC). It shouldn't be difficult to make an abstract description of a dialog box look at home with a new version of the OS and, yet, digging through Windows 10's built-in apps you sometimes find things that you recognize as skinned versions of Windows NT 4 dialogs. That they look like NT 4 dialogs with the Windows 7 skin applied is disconcerting, at best.
The Office team used to pioneer (hard-code) the look and feel for the UI, and then the Windows team goes and implement the look and feel system wide in a generic way. Then somewhere along the way, the Windows team decided to hard-code the look and feel that you could now do an archeological dig through decades of UI.
I find it revolting that it is hardcoded this way. A button should look like a button.
All of that is fair, it's not like C++/CX was all that different from needing to use Obj-C on macOS. I'm just saying I can accept their reasoning. Using only standard C++ is better in a vacuum, but only if nothing is lost in the transition.

May I ask what your plan is regarding UI at this moment? I've given up and gone the web route (with Avalonia on my pocket in case my sanity gets dangerously low).

  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
Similar plan, in 2019 I went back going to distributed systems/Web, where Microsoft technologies are one among many others that get used on a polyglot agency, the usual "A jack of all trades is a master of none, but often times better than a master of one.".

For doing Windows stuff, I would rather advocate for Win32, Forms/WPF.

In regards to C++ stuff, either C++ Builder if it fits the budget, or Qt.

It is quite tragic that even MFC has a better development story than WinUI/C++.

How about .NET MAUI?
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
They decided to rewrite Xamarin.Forms, it uses WinUI on Windows, Catalyst on macOS, and VS4Mac is now officially dead and one has to use VSCode instead, and they are all into this Blazor Hybrid as well, with Web views.

Take your own conclusions on its future.

  • jahnu
  • ·
  • 11 months ago
  • ·
  • [ - ]
Same. The previous company I worked for we went all in on UWP for our Windows SDK.

An almost complete waste of time as Microsoft failed to deliver on their promises.

  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
It is baffling to watch community calls and have them talk about rewrites and dropped tooling features as if it wasn't a big deal, being asked for the n-th time since Windows 8.
Just use MFC 4.2 imho.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
As noted in some of my comments, the way C++/WinRT have messed up the development with total disrespect for paying customers is incredible.

To come back to your point, the aging MFC has better Visual Studio tooling than C++/WinRT will ever have, specially now after being deprecated.

I would have fired the whole team responsible for C++/WinRT.

honestly using plain win32api or mfc is the most stable bet on the planet
Thanks to Wine, it is probably the most stable way to make a Linux GUI program as well.
COBOL, CICS and 3270 interfaces. That's where the action isn't, which is great if you want APIs that remain stable for decades.
How good is C++ Builder? Ever tried? I Saw It a couple of years ago and it looked good actually but noone seems to use it.
Historically a great tool along with Delphi, with poor subsequent management/ownership since the very early 2000's.
Imagine classic Visual C++ with it's form builder (versus the modern WinRT stuff) and hooks...it's much like that. I would say the experience is a little smoother. I do remember the version I used to use had issues with the form builder to where getting exactly what you wanted was finicky (the rendered/preview version was never quite what the compiled version ended up as).
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
If only VC++ ever had a form builder for C++ like C++ Builder has been doing for 30 years.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
Resource editor for dialogs isn't the same as the C++ Builder experience.
Whatever you say.
...is correct. Visual C++ has a visual resource editor, but this isn't what C++ Builder does. C++ Builder edits live objects, you declare a class with its properties (this needs extensions to the C++ language) and during design time the object is instantiated and edited visually through the property editor ("object inspector"). This works for both visual (buttons, controls, etc) and non-visual objects.

The difference between what VC++ does and what C++ Builder (and Delphi) does is massive and at a very fundamental level.

Cool.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
Visual editors for Windows resources in MFC aren't the same as C++ Builder VB like capabilities.
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
Like I described, is like using VB for the GUI stuff, coupled with the C++ capabilities.

Additionally it has a symbiotic relationship with Delphi, similarly to how C# and C++/CLI are integrated, only much better.

Nowadays the compiler backend is based in clang.

> Come in thread

> Ctrl+F "pjmlp"

I was not disappointed.

  • cfn
  • ·
  • 11 months ago
  • ·
  • [ - ]
You can only use this edition if you make less than 5000 USD and/or have less than 5 devs. If you do, licenses start at 1000 USD per year. Assuming a commercial app, of course.
How does this compare to developing in Obj-C or Swift for iOS? Is this like a cross-platform thing?
Does this support macOS for apps? The website is a little unclear and “Windows and iOS” is a really odd combination of platform support.

Aside, I have used this in the past for GUI on windows and it was amazing. Like .NET but native and better.

The "community edition" version of delphi had no visual editor, no way to build a bpl and it was 32bit only. I don't know thos c++11 compiler's features, it isn't immediately apparent in the mobile site.
Why this instead of clion?
  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
VB like development experience for C++.
The main problem with Borland C++ is that it is still a 32bit compiler.
Borland C++ is a 32-bit compiler, I believe the latest version is 5.5 and it came out in about 2000.

There is a newer version from Embarcadero, 7.20 from 2016[1].

The compiler in C++Builder is more modern and it will target 64-bit for Windows at least.[0]

[0]: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/C%2B...

[1]: https://www.embarcadero.com/free-tools/ccompiler

"C++Builder includes compilers for Win32, Win64 and iOS"

https://www.embarcadero.com/free-tools/ccompiler

  • pjmlp
  • ·
  • 11 months ago
  • ·
  • [ - ]
Which is why there is a new clang based compiler now.
They say right on the release announcement that they have a clang-based compiler and that the system supports 64-bit binaries.
This is C++ Builder, not Borland C++.
I understand why there isn't a Mac version, but it's still a bit disappointing.
[dead]
[flagged]