Jump to content
PeterPanettone

What new features would you like to see in Delphi 13?

Recommended Posts

1 hour ago, Lars Fosdal said:

the problem is that once you use the DPI aware IDE, the measurements and coordinates in forms are according to your current Windows DPI and scaling settings

Yep, I fought that headache even as a solo developer on a project. My dev machine is a laptop. The laptop's display has a different recommended scaling than the monitors attached to my docking station at the office. I would get so frustrated during commits because I only commit intentional or needed changes. I do not want commits littered with changes to Left/Top/etc due to the form designer running at a different scale/dpi.

 

All of that headache thankfully went away after I discovered DPI Unaware mode.

Share this post


Link to post
1 hour ago, PeterPanettone said:

Low-quality AI answers often are the result of poor prompts.

Example (Gemini) (asked in German, Translation see below):

Frage: "Welche Fahrradverleihe gibt es in Braunsbedra?"

Die Antwort enthielt unter anderem einen Fahrradverleih in Ostfriesland.

(Braunsbedra ist eine Stadt in Sachsen-Anhalt, am Geiseltalsee, > 400 km von Ostfriesland entfernt.)

 

If that's a poor prompt, I don't know what a good  one should be. And I have had similar experiences with ChatGPT.

 

Translation:

Question: "Which bicycle hire companies are there in Braunsbedra?"

The answer contained one from Ostfriesland.

(Braunsbedra is a town in eastern Germany, at the Geiseltalsee (lake), > 400 km from Ostfriesland (north sea shore))

 

 

  • Haha 2

Share this post


Link to post

 

8 minutes ago, dummzeuch said:
1 hour ago, PeterPanettone said:

Low-quality AI answers often are the result of poor prompts.

 

I recently came across a company online developing AI "clones", and decided to ask an "Abraham Lincoln clone" the question "Why do you believe you were assassinated?" After giving a three or four paragraph response that I would expect from documented history, the AI then asked me what circumstances led to my assassination.

 

That isn't artificial intelligence. That is a complete lack of intelligence. :classic_rolleyes: 

Share this post


Link to post
1 hour ago, dummzeuch said:

Question: "Which bicycle hire companies are there in Braunsbedra?"

Have you really asked an AI for a bike rental? Are you serious?

Share this post


Link to post
3 minutes ago, PeterPanettone said:

Have you really asked an AI for a bike rental? Are you serious?

Yes, why shouldn't I? I could have googled it myself, but since AIs are soooo great and Google had just sent me an email saying so, I tried it. And it failed as I expected. To be fair: The list contained other entries that seemed to be valid.

I told it that this one entry was wrong and it - with the usual "I'm sorry ..." bla bla - gave me a new list ... which contained the same wrong entry again.

Guess who was impressed? Me neither.

Share this post


Link to post
1 hour ago, JonRobertson said:

All of that headache thankfully went away after I discovered DPI Unaware mode.

How do you set DPI Unaware mode?

Share this post


Link to post
7 minutes ago, PeterPanettone said:

How do you set DPI Unaware mode?

You don't "set" it. You launch it. Click the Windows Start Button and either expand the Embarcadero Delphi group, or type "Delphi" or "DPI" or "Unaware". One of those should reveal an icon for Delphi (DPI Unaware).

 

If you launch BDS.exe by another method, add /highdpi:unaware as a command-line parameter.

Share this post


Link to post

my wish list for Delphi 13 (although probably too long!)

 

IDE

- continued LSP enhancements (it is gradually getting better, but I'm still having issues...)

- support for auto completion of anonymous methods ....

                     e.g. var func : TFunc<integer> := { Ctrl+Space here and the rest expands } function : integer begin end;

- support that could 'suggest units to include' when you start using something that is not already referenced.

- support to handle multiple monitors... when I place it on one monitor, between startup, edit and debug, I'd like it to stay in the same place, without resizing, or jumping about.

- code formatter! please! 

 

object pascal:

- improved type inference on generics ... IMO there are scenarios where the compiler forces you to specify a type when I think it can be inferred from a parameter type, or even a return type. Delphi doesn't ever try to match return types generally at present. ;(

- traits - essentially compile time generics/interfaces .... so you program to a trait, and anything that matches (interface, record, class) that matches the methods, fields, properties etc could work with it. This could remove a lot of repetition in very similar code (which is what generics is all about)

- interface improvements (possibly an alternative away from COM compatibility which is what probably gives us the restrictions we currently have) ...

- improved generics - e.g.

                   1. generic functions (already mentioned by Lars)

                   2. allowing for constants to be passed as generic parameters could be useful. Could allow for meta programming like in C++

                   3. when using methods in an implementation of a unit,  from within a generic method, the compiler forces you to declare the method again in the interface section. I hate exposing things that shouldn't have to be public.

- compile time constants from expressions that may be the result of function calls.

                  e.g. const PI :double = calcPI();

- constraints on attributes

                  e.g. so we can localise their usage to methods, parameters, types, etc... 

- an improved case statement supporting match criteria

- a short inline lambda (syntactic sugar - shorter form of anonymous method).

                 e,g, var add1 := lambda (y:integer): y+1;   

                        var two := add1(1);

- improved helpers / partial classes - somehow supporting multiple with conflict resolution 

- magic functions to identify filename, function, line no.  This could be useful for use with loggers, but could bloat code if not used cautiously. Some things can be done with map files and 3rd parties, but would be nicer to have stack traces, etc accessible as part of the normal RTL.

 

my wishlist is possibly too big ;(

  • Like 1

Share this post


Link to post

This sort of topic comes up just often - and we always see a lot of great ideas - sadly the reality is we are unlikely to see many of those ideas actually implemented. Considering how much we pay for subscriptions etc - they should be making plenty of money - but that's not how it works with private equity owners - profit doesn't get re-invested.    

 

I'll trot these (now old) posts out just for fun

 

https://www.finalbuilder.com/resources/blogs/delphi-language-enhancements (2016)

 

https://www.finalbuilder.com/resources/blogs/delphi-103-rio-language-changes (2018)

 

I had planned to do follow up posts with more ideas (people have sent me plenty over the years) but given the how things have gone since 10.3 language wise, what's the point? 

 

So my hopes for 13 (or what ever it's called) is a stable IDE, compiler, RTL etc  - just like we all wish for every release - what's that definition of insanity - doing the same thing over and over expecting a different result 🙄

 

 

Edited by Vincent Parrett
typo
  • Sad 1

Share this post


Link to post
18 hours ago, Thijs van Dien said:

The one thing I'm still waiting for is per project packages/components that are automatically (un)loaded by the IDE, right from the code repository they're used in (i.e. machine independent). I can't believe we still don't have something like that after so many years.

But we have GetIt 🤦‍♂️

 

Package management it something I have been harping on about for years (as have others).

 

https://www.finalbuilder.com/resources/blogs/delphi-package-manager-rfc

 

I am working on a solution this is where it's at right now  - https://delphi.dev

 

Still a work in progress - contributions welcomed. 

  • Like 2

Share this post


Link to post
10 hours ago, Vincent Parrett said:

This sort of topic comes up just often

That is also why I called it my 'wish list'. 😉

 

I agree with stability. In my list, I'm not sure if 'improve' is actually a 'feature' or a 'fix'. Depends on interpretation, and I guess the underlying implementation complexity that we are not aware of.

 

However, I'd like a major version number to actually include features, with minor versions including minor feature/improvements, and patches.

 

Quote

profit doesn't get re-invested.    

It looks like they have started on the C++ side of things... that is promising.

 

It is hard evolving a product, especially a language, with the being any knocks. Sometimes you get close, but we've seen, it can be a challenge.  

 

How do we found out how to get the message about reinvestment to the powers that be? Unfortunately, there needs to be lobbying power, and that means numbers. strike strike strike 😉 

 

Jokes aside.. It is still an amazing product... we all wish it were better, faster... and hope that we can get new generations of developers to be as enthused about it as we are.

 

 

Edited by darnocian

Share this post


Link to post
10 hours ago, Vincent Parrett said:

we always see a lot of great ideas

Of which some should be registered as feature requests.

I agree, it is not that frequently we see them come to fruition - but - let's stay insane in this context.

 

And... await the return of the QP.

Share this post


Link to post

Bug fixes, bug fixes and after that: more bug fixes. Don't release until there are no more unresolved bug reports. Quit following hypes just for the hypes sake.

  • Like 9

Share this post


Link to post
On 2/19/2024 at 5:39 PM, dummzeuch said:

Example (Gemini) (asked in German, Translation see below):

Frage: "Welche Fahrradverleihe gibt es in Braunsbedra?"

BING:

 

Welche Fahrradverleihe gibt es in Braunsbedra?
Verkenne

In Braunsbedra, gibt es einige Fahrradverleihe, die Ihnen hochwertige Räder für die Erkundung der wunderschönen Seenlandschaft anbieten. Hier sind einige Optionen:

  1. Radmanufaktur: Die Radmanufaktur in Merseburg (Hölle 1, 06217 Merseburg) bietet E-Bikes und andere Fahrräder. Die Öffnungszeiten sind dienstags bis freitags von 12:00 bis 18:00 Uhr und samstags von 09:00 bis 13:00 Uhr1.

  2. Bike-dom: Bike-dom in Naumburg (Marienstr. 1, 06618 Naumburg) verleiht ebenfalls Fahrräder. Sie sind montags bis freitags von 10:00 bis 18:00 Uhr und samstags von 09:00 bis 12:00 Uhr geöffnet2.

  3. Walk & Bike UG: Die Walk & Bike UG in Naumburg (Georgenberg 5, 06618 Naumburg) bietet Fahrräder für Touren um den Geiseltalsee. Sie sind montags bis freitags von 09:00 bis 17:00 Uhr und samstags von 09:00 bis 12:00 Uhr geöffnet3.

Alle diese Verleihe ermöglichen es Ihnen, die malerische Umgebung zu erkunden und den Geiseltalsee auf dem ca. 25 km langen Rundweg zu genießen. Wählen Sie zwischen Kinderrädern, sportlichen MTBs, Trekking- und gemütlichen City-Bikes mit oder ohne E-Antrieb. Viel Spaß beim Radfahren! 🚴‍♀️🌞

Edited by Die Holländer

Share this post


Link to post

Please don't drift off to LLM troubleshooting or comparisons.

 

This is a thread for a Delphi 13 wishlist.

Share this post


Link to post
On 2/19/2024 at 9:54 PM, Oleksandr Skliar said:

My TOP list:

1. LSP improvements/quility. Now it doesn't work at all for big projects. (working on D11.3/D12). Refactoring doesn't work at all. 

By now do you mean Delphi 11 or 12? I'm using 11 and the LSP server is quite unstable and as a consequence code completion, code navigation, and everything that relies on the LSP server becomes unusable at all...

That being said, I don't want new features but stability enhancements to existing critical features.

Share this post


Link to post

Aside from wanting all the existing features/functions working 100% and bug free, I wouldn't mind a construct like this:

var a := b := c := d := 0;  or similar.

Share this post


Link to post
On 2/19/2024 at 2:30 PM, Lars Fosdal said:

2. Make HighDPI actually works as intended - it is useless in a team as is - unless everyone runs the same scaling

This would be good start.

People in any teams have different level of eyesight. Different scaling needs etc. 

This should have been implemented from the start the way that values in dfm would have been normalized to 96 as default dpi. Or something like that. Sure there could have been rounding errors, most likely. 

Edited by Tommi Prami

Share this post


Link to post
On 2/19/2024 at 6:30 AM, Lars Fosdal said:

2. Make HighDPI actually works as intended - it is useless in a team as is - unless everyone runs the same scaling

I am curious about this. I know that Delphi's DPI support is in a constant state of disrepair, but on this specific issue, doesn't this setting fix the problem?

 

image.thumb.png.1c90a53b29a854e61a70283d0cb99524.png

 

Obviously that has the downside of the form editor being stuck to 96 dpi, but for me at least, that would be acceptable for editing since the vast majority of my time in the IDE is spent elsewhere and the text I care about reading should scale properly in the editor/menus/etc.

Share this post


Link to post
11 hours ago, Tommi Prami said:

This should have been implemented from the start the way that values in dfm would have been normalized to 96 as default dpi. Or something like that. Sure there could have been rounding errors, most likely. 

I am inclined to give some latitude to the devs on dfm dpi issues because they are fighting a very legacy system that goes back to the 80s. Multi-dpi support in Windows is problematic because of the base Win32 api. It's not like Mac where they chucked everything and went to floating point values, which is the real solution, but has the downside of throwing out billions of dollars worth of working code. (On Windows I mean. On Mac, since hardly anybody used it to do real work, it was no big deal to do it in the 90s.)

 

Anyway, doesn't the "Low DPI" setting for the form designer solve the dfm issue? True, it means editing the form is scaled by the OS, but the rest of the IDE should be in the correct DPI. Am I wrong about this?

  • Like 4

Share this post


Link to post
12 hours ago, Ian Branch said:

var a := b := c := d := 0;

Personally, I see no reason to add more options to obfuscate my code. I can do well enough with goto and with when I need to scratch that itch. And when I really want to spice things up, there is always absolute.

Edited by Brandon Staggs
  • Like 4
  • Haha 7

Share this post


Link to post
13 hours ago, Edwin Yip said:

By now do you mean Delphi 11 or 12? I'm using 11 and the LSP server is quite unstable and as a consequence code completion, code navigation, and everything that relies on the LSP server becomes unusable at all...

That being said, I don't want new features but stability enhancements to existing critical features.

Both, the most time it's D11.3 and D12 for pet projects. I just can say D12 works worse than D11.3, sync methods literally doesn't work. In case you use generics a lot, LSP stops working. So my another wish - to support third-party LSP servers for Delphi code.

Share this post


Link to post
19 hours ago, Brandon Staggs said:

Anyway, doesn't the "Low DPI" setting for the form designer solve the dfm issue?

Yes, but imagine someone with 200% display scale with a magnifying glass trying to adjust something on a form because the form is half the size.

  • Like 2

Share this post


Link to post

Whishlist: :classic_blink:

At the moment and in the future, I would like nothing more than for the IDE to always run with all its functions, demos, features as agreed, on all platforms.
So that all breaking changes can be communicated and fixed in good time before important AppStore deadlines come into force and that the existing apps can be permanently well maintained.

 

I avoid touching new functions for quite a while now, to limit the pain caused by adding new, half-supported features.

Edited by Rollo62

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×