Jump to content
hsvandrew

The future of Delphi

Recommended Posts

In my view, this is how the future Delphi products should be designed.

https://www.canva.com/design/DAEr0Sff_lA/42dTO0oDSOAcvWEN0oDA6g/view?utm_content=DAEr0Sff_lA&utm_campaign=designshare&utm_medium=link&utm_source=sharebutton&fbclid=IwAR0vPdkL1g_ckz9rwLzsLEM2Z-kJrB5WnS_lKHTL37F7QzL5QHAm1XxJqYo#8

 

I really hope that we could have a discussion about this as a community. Review the presentation. Compliment any good ideas. Ask questions. Question things constructively. Discuss different ways.

 

 

Share this post


Link to post

Before starting a new thread about the "future of Delphi", please give some more context what exactly you would change.

It would be helpful for a discussion to summarize the content of presentation and to adopt it to Delphi.

There have been several threads about the "future of Delphi" and actually I am not sure, why this thread should be different or bring in any new aspects.

Of course everyone of you is free to create a new thread - but you should take a moment to check, if it's really a value for the community of if it's just a recapitulation of existing threads.

  • Thanks 1

Share this post


Link to post

It's all find and dandy to come up with all sorts of ideas that we as developers would love to see. But I believe that the reality is that most of the revenues come from corporations who are mostly interested in risk-reduction, not more usable software.

 

I don't believe that EMBT is making most of their revenues from Delphi products because they're being actively used for new product development. Rather, I believe it's coming from corporations that built large apps between 2000 and 2010, and those apps are still producing strong revenues with modest investment in maintenance. These customers have been just running things as-is for the past 10-15 years, and they invest in minor updates to keep them operational. I believe the latest language enhancements are ignored, as are most of the new features. These customers simply keep renewing the maintenance agreements because it's the least-cost thing to do that minimizes their risks in case something unexpected happens.

 

As one of the devs at a place I worked in 2009 liked to say, "We're all here just keeping a comatose patient alive long enough for them to migrate this project over to .NET." During the short time I was there, they missed the first two major milestones for that migration, and the schedule got pushed out by an additional year. The company was REALLY upset when Microsoft announced they were end-of-lifing Windows XP. I mean, these guys were so paranoid of changes to Delphi's math libs that they spent months running a HUGE bunch of regression tests on every new Delphi release looking for deviations in calculations less than 10^-6. Newer releases past D6 failed, and with MS abandoning XP meant it could cost them billions of dollars due to even the tiniest deviations in math calculations. I tried to move them to D2010, but one of their devs built some components that would make most folks here faint due to their total non-conformance with component building guidelines, and they wouldn't build properly under D2010.

 

That's not to say there isn't new development and even innovation going on with Delphi in shops around the world. But it explains why the language itself is at least 10 years behind most contemporary languages; why the most urgent updates to the platform actually track updates that Microsoft, and now Apple, make in their latest hardware and/or software releases; why the run-time technology (like high-DPI stuff) hasn't gotten much attention (because most applications are running on machines barely capable of displaying full HD resolution); and why nothing reflects much concern for anything other than Microsoft, Windows, and making the run-time libs more similar to C# libraries than anything else (IMHO).

**********************

If you want to see REAL INNOVATION in this space, take a look at what TMS Software is doing.

 

They've created a more intentional and cohesive extension of the Delphi platform in the past 18 months than EMBT has done since they bought the company from CodeGear. I can't say for sure, but I suspect a larger percentage of their revenues come from developers who have a larger say in their future wants, needs, and desires than your average IT Manager or CIO. They're actually intersted in things that are not tied to Microsoft or Apple and extend into a more homogeneous cross-platform ecosystem that has web development in the center of everything. They are solving difficult multi-platform problems that EMBT should have been working on for 5+ years now if they really cared. And they are not waiting for EMBT to address any of the shortcomings they may encounter.

 

One of their key players, Dr. Holger Flick, has written and published three (3) new books in the past 18 months, with more coming!

 

With TMS tools, you don't even need Delphi to build Delphi apps that run in more platforms than EMBT supports TODAY! (See the screen-shot below) 

 

You can build them in Visual Studio Code, and using Lazarus you can even build executables that run natively on Linux machines without having to spend thousands of dollars on an "Enterprise Edition" Delphi license.

 

We don't need more threads trying to lay out a direction that EMBT can take to make Delphi nicer for Developers, because Developers are clearly not EMBT's target market. (I don't know about you, but in the past 15 years, I've been the only person every place I've worked who had my own personal Delphi license to ensure I could keep up with new developments. That's because the production code at most places was a few releases behind the latest Delphi release.)

 

Get invovled with TMS products and see if there's something there worth focusing on. Not their older VCL, FMX, and Intraweb (gawd, is that still around?) libs, but the newer WebCore, FNC, and Business Suite stuff.

 

Their next release of WebCore will let you create web apps that run natively in more platforms than Delphi supports, including Raspberry Pi -- without requiring you to have access to a compiler that generates ARM code. And you won't need to have your dev machine tethered to another dev environment to do cross-compiles.

 

(I know this is going to raise some hackles, so ... I say it's "native" because there's a wrapper that runs as a native app and it allows the code encapsulated inside of it to run within a web browser. There's no hardware that runs javascript in the same way there's nothing that runs java bytecode.)

 

The photo below is a snapshot from a video they posted recently illustrating support for the Raspberry Pi. that shows the platforms WebCore will support in its next release (which will probably be out before EMBT releases their first "bug-fix" update for D11) using either Delphi or VSC as your dev platform.

 

Their strategy does NOT depend on what Microsoft or Apple may or may not do, or what the next release of .NET or iOS might provide. WebCore targets javascript running in the web browser, which is becoming more universal than Windows.

 

I invite all Delphi developers to stop complaining about what EMBT is NOT doing and start cheering on and supporting these guys who are actually INNOVATING around the Delphi language and EXPANDING the Dephi ecosystem -- RAPIDLY!

 

(Buffalo Springfield's song, "For What It's Worth" is echoing in my head...)

 

 

 

 

2021-09-30_21-45-02.png

Edited by David Schwartz
  • Like 2
  • Thanks 2

Share this post


Link to post
52 minutes ago, David Schwartz said:

take a look at what TMS Software is doing

Although the multi-platform approach never appealed to me, it still sounds terribly interesting. Do you have a reading recommendation (a presentation video is fine too) that explains their general approach?

  • Like 1

Share this post


Link to post
12 minutes ago, Der schöne Günther said:

Although the multi-platform approach never appealed to me, it still sounds terribly interesting. Do you have a reading recommendation (a presentation video is fine too) that explains their general approach?

Go to their website, they've got a ton of stuff available. (Unlike EMBT)

 

https://www.tmssoftware.com/site/default.asp

 

You could say they've taken the "javascript as machine code" paradigm to the next level, but they don't really spend much time geeking out on it. Rather, they're busy building stuff with it that's blurring the lines between different OS and CPU boundaries, and making that technology available to Delphi developers. It's sort of like Java's imperative: "build once, run anywhere". Only it's Delphi / ObjectPascal, and the run-time system is built-in to most web browsers today, so you don't need to really even worry about it.

Edited by David Schwartz

Share this post


Link to post
2 hours ago, David Schwartz said:

It's all find and dandy to come up with all sorts of ideas that we as developers would love to see. But I believe that the reality is that most of the revenues come from corporations who are mostly interested in risk-reduction, not more usable software.

Instead of hijacking this thread with yet another off-topic wall of text about why Embarcadero sucks and Delphi is doomed, maybe you could start your own thread?

Share this post


Link to post

Did you visit David I. 😉 Connect all the 6 boxes, since everything is connected with everything else and all problems are gone. I doubt that will work.

 

pgAdmin works great in virtual-boxes, especially because of the dashboard and debugging against a run-time environment on the server works great but only if just the screen is sent to the client.

 

Forget it. I tend to agree that in both cases Delphi and Python a solid well maintained base for C-Bindings attracted people. Think of project Jedi but a Windows origin and the integrate everything into the desktop and the Explorer strategy put another level of complexity on top, which lead to anything but simplicity in the end.

 

Apart from that, you talk about something totally different than Delphi. Not sure if a Delphi like way is an answer to the underlying questions accepted by a broader audience.

 

Elevate Web Builder would be a first step into such a direction once debugging on the client side is possible, but even that is not really required at the moment. Without proprietary add-ons in general integrated functionality is hard to achieve. 

 

It's 25 years too late for 4GL love. There is no such thing as an open let's say ABAP-stack just for the Web. Sounds like that. You want something pretty similar like the SAP-GUI called Delphi-GUI. I worked on/with something that was called XSTP-GUI which integrated Java widgets in the mid/late 1990s and an approach that work like a charm on Smalltalk-System put to the next level on Java busted with flying colors.

 

Javascript is about portability and from this perspective an integrated IDE like Delphi is a meta tool allowing to build the environment you suggest.

 

The more features you add to the very definition of an IDE, an advanced editor with a menu entry called tools supporting invoking them in the context of the IDE adds interfaces (common sense) to other disciplines of software engineering who do not even care a tiny rabbit shit about you and your IDE. The last revival into such a direction, which inevitably comes with your suggestions outside the scope of what an IDE is meant to be, I have seen in the fashion of add-ons to the Eclipse IDE which again failed to succeed even on a mid term, because of breaking changes in the Eclipse IDE itself.

 

Do you really that all the others have to put things in the right place at the right time just because you want to press a button and everything works as intended by you 😉. Maybe it's the biggest tragedy for the Delphi super-hero that the world never worked this way and rest assured it never will. The Delphi world is about succeeding in a dynamic environment where anarchy still matters and rulez from time to time or all the time and not about a consensus on praising others for leaving things unchanged.

 

I tend to agree that developing in another environment but the target environment makes development pretty complicated. Going beyond an IDE based approach leads to to something beyond pretty quickly a workbench for example or many of the 1990s approaches that worked pretty great generating C Code and indeed they were abandoned for the wrong reason 'C', which was heavily bashed these days. All that came later used a virtual machine especially because of being in the position to utilize dictionaries in case of the CRM-systems (integrated development and execution environments) or RTTI exposed (JVM, .net runtime, ....). It's not surprise that those who never worked with e.g. Smalltalk before tried a revival but on another technology called Java oder .net and spent their time wasting to again rebuild all the crap people threw out of the windows when XP-programming was introduced including their managers and the bureaucrats. Kidding.

 

Even if the IDEs dominated the scenes for along time theirs has come when it comes to software-development. I see no way why an integrated tool should give the answer.

 

You should not assume that an application is what people want. People got used to it. 

 

9 hours ago, David Schwartz said:

Rather, I believe it's coming from corporations that built large apps between 2000 and 2010, and those apps are still producing strong revenues with modest investment in maintenance.

Except from the very early versions Borland turned Delphi, said more precisely  Turbo Pascal, into a Y2K child. I didn't have the impression that Y2K was a challenge for small shops in a first place. Everyone asked for Business-software on Windows. So it's no surprise that Delphi turned into what it is today. It's just not that bad.

 

EMBT successfully had enough to do with putting the Wild West style mess we left from 1997 to 2005 into a somehow consistent no one knows how what it's good for today. The 1990s were about making money and not software-engineering since it turned out soon that the whole bunch of software methodologies and other failed approaches allowed to kill budgets. After the these days were finally gone with the disappearance of Windows XP the honst soles were left back what without them could be called a ghost-town. But what those who disappeared behind the horizon after a tough ride were the requirements for what is called FMX today and EMB had to live with that situation.

 

In both cases the question of in how far an IDE based approach is the answer to both love in the very detail and a total open approach attracting developers beyond what's already available. If you remember what was the answer to performance, a) buy a new Windows and a new computer b) let the database do the calculation jobs or use extensive profiling and c) use assembler.

 

 

Share this post


Link to post
19 hours ago, Anders Melander said:
21 hours ago, David Schwartz said:

It's all find and dandy to come up with all sorts of ideas that we as developers would love to see. But I believe that the reality is that most of the revenues come from corporations who are mostly interested in risk-reduction, not more usable software.

Instead of hijacking this thread with yet another off-topic wall of text about why Embarcadero sucks and Delphi is doomed, maybe you could start your own thread?

This was in reponse to the OP who posted a bunch of suggestions for delphi from a Developer's perspective.

 

There have been tons of such posts here and elsewhere over the past decade, some quite eloquent and some more debatable.

 

This discussion forum is dominated by DEVELOPERS, like you and I. We have our perspectives, we love Delphi and we all pretty much would LOVE to see it continue to grow and expand and get better.

 

But after all of the proposals, submissions through official channels, and every conceivable attempt at begging, prodding, and encouraging Embt to do different things, it has become painfully obivous that ... they just are not interested.

 

They don't "suck". They are operating in the best interests of their SHAREHOLDERS. We are DEVELOPERS -- NOT SHAREHOLDERS!

 

SHAREHOLDERS want PROFITS while we DEVELOPERS want MORE FEATURES! Any overlap is mostly coincidence, driven primarily by Microsoft and Apple. Not us Developers.

 

The CUSTOMERS paying the bills want LOW-RISK INVESTMENTS.

 

Everywhere I've worked in the past 10+ years has had one thing in common: they only want me to touch code that HAS TO BE CHANGED. They don't want me to use NEW FEATURES. They don't want REFACTORING. They don't want the code "cleaned-up". A couple changed their policies that require every line that shows up as changed in the change logs must relate back to a specific trouble ticket. "Refactoring" for its own sake was not allowed.

 

They DO want: simple, straightforward changes that use existing coding patterns and language features found in D7-era code (around when the apps were built) so it looks and behaves the same as all the rest of their code.

 

The last place I worked, most of the core code they used in production had not been touched since 2007. I was told on my first day, "DO NOT TOUCH ANY OF THE CODE WITHOUT MY APPROVAL!" I found and documented several bugs, and was told point-blank, "you must be wrong, this code has not changed in over a decade; there are no bugs in it." Except it went from running in Win XP to Win 7 to Win 10, and now it does weird and unexpected stuff sometimes that I captured on camera. They didn't want to hear about it.

 

I asked one Dept head (at a State Agency) why they don't rebuild their code in the latest version of Delphi using more contemporary stuff. His answer: Because their State's CTO basically said, "All new software development will be done in C#/.NET." Period. End of story. Seems their Legislature authorized a 10-year agreeement with Microsoft to provide them with everything they'd need, and that was that.

 

I've heard similar things from multiple places I've worked, both public and private.

 

This is NOT MY OPINION! 

 

I personally don't think Embt "sucks". I personally don't think Delphi is "doomed".

 

I think Delphi's evolution is being dictated by two things: (1) SHAREHOLDERS who are only interested in profits; and (2) CUSTOMERS who are interested in REDUCING RISKS IN EXISTING PRODUCTION CODE.

 

I love Delphi. I love the Developer community. And I don't see Embt's focus on Delphi changing any time soon to make it more aligned with that of Developers other than coincidentally.

 

For example, I've seen dozens of proposals for language extensions, many of which would be useful to most Delphi Deverlopers on an almost daily basis.

 

But the only two that were added to D11 ... I've never ever seen discussed.

 

I was honestly totally surprized when inline 'var' declarations appeared in the language. That's a marginally useful feature to me, and not one I would have ever expected to see added. But its introduction broke a bunch of far more useful things in the IDE. They would have been better off not introducing it until everything in the IDE worked properly with it. D11 reportedly hasn't fixed anything that was in D10.4.2.

 

The last place I worked, we were asked after D10.3 came out if there was anything added to the language that might justify the risk of upgrading everything. Inline vars were all there was, and the consensus was that they did not justify anything, especially because they broke a lot of stuff in the IDE. Unfortunately, the company went ahead and paid the maintenance fee anyway. Why? Because the cost of NOT paying was more risky and costly.


Yet we're still waiting for MANY VERY USEFUL ADDITIONS to the language!

 

This is how the game has been rigged: customers (companies) will continue to pay their maintenance fees whether they use what's been added or not. And SHAREHOLDERS LOVE THAT!

 

Developers ... not so much.

 

  • Like 3

Share this post


Link to post
5 hours ago, David Schwartz said:

This was in reponse to the OP who posted a bunch of suggestions for delphi from a Developer's perspective.

TL;DR

Your discontent IMO has nothing to do with the topic and only sabotages the OPs attempt at a discussion.

  • Like 2
  • Confused 1

Share this post


Link to post
8 hours ago, David Schwartz said:

Everywhere I've worked in the past 10+ years has had one thing in common: they only want me to touch code that HAS TO BE CHANGED. They don't want me to use NEW FEATURES. They don't want REFACTORING. They don't want the code "cleaned-up". A couple changed their policies that require every line that shows up as changed in the change logs must relate back to a specific trouble ticket. "Refactoring" for its own sake was not allowed.

 

Thats sounds miserable and demoralising. I have seen some of that, but not much.

 

  • Like 1

Share this post


Link to post

What’s been suggested in the first post can already be done to some extent with tms web. 

  • Like 1

Share this post


Link to post

If one is an expert in a certain area, go help FreePascal/Lazarus because you know for years now you don't see and as such can't expect much new from Delphi anymore. Heck, TMS web uses their pas2js translator... you can go and help get the Lazarus IDE finally a stable docked view and low level experts can improve their debugger 😉

Edited by Rinzwind
  • Like 1

Share this post


Link to post
7 hours ago, Rinzwind said:

for years now you don't see and as such can't expect much new from Delphi anymore.

There are several people complaining about too many new things added to Delphi in the last years instead of old bugs being fixed. Now I am confused...

Share this post


Link to post

I am not confused. I am frustrated. I want both. 

 

Most of all, I want 64-bit debuggers that understand threads and make it easy and robust to focus debugging on specific threads, and that doesn't suddenly stop breaking on breakpoints or break on "invisible" breakpoints in Indy, or just purely stop responding completely. I'd love to be able to "disable" exception breaks for specific threads and only for those threads.

 

I want the broken HighDPI properly and finally fixed.

I want the code generation significantly improved for 64-bit. 

I want RTL, VCL and FireMonkey to be rock solid and efficient.

 

 

But - also ...

I want Generics constraints for enumerated types so that I can use enumerated type and set type operators.

I want proper nullable type support, including the relevant operators. 

I want ARM support for Windows.

I want ARM/Linux support for Raspberry PI.

I want the static code analysis capabilities of FixInsight and similar, to be built into the DSP.

I want a package manager that really works, unlike GetIt which is just a glorified downloader and installer.

I want Swagger support for APIs.

 

  • Like 10

Share this post


Link to post
31 minutes ago, Uwe Raabe said:

There are several people complaining about too many new things added to Delphi in the last years instead of old bugs being fixed. Now I am confused...

I don't think it should be either or, why can't we have both? Instead if often seems that we have neither.

  • Like 6

Share this post


Link to post
21 hours ago, David Champion said:

 

Thats sounds miserable and demoralising. I have seen some of that, but not much.

 

I started working with Delphi when it was first released in 1995. Prior to that I did embedded real-time work in C and was learning OOP with C++ when Delphi came out. For me, the 1990's were the most fun I've had in my entire career. I worked for a series of startups as their Chief Architect and Developer. They all died for various (non-technical) reasons, although one came very close to breaking out and becoming something significant. (Most of the people I worked with at Intel from 79 thru the mid-80's all went on to work with one or more startups and they all became multi-bazillionaires, a few even became billionaires.)

 

By 2000 I was working entirely with Delphi. I really loved it. There was a lot of new work going on with it and it was a lot of fun.

 

But by 2010, Delphi had been around for 15 years. Code had started to accumulate where the original dev teams had moved on ... to the point where there were well-paying contract gigs for people who had 5+ years of experience with Delphi, and I chased after them, but they got harder and harder to find. The next 10 years was a mix of contracts and regular jobs where the companies said they were looking for "experienced Delphi developers to lead projects". But they pretty much all turned into glorified maintenance roles. Over time, each new company / project got stricter and stricter in terms of what they would allow, and virtually none of it involved new product development. That was all being done in C#/.NET and the existing devs got to move to that stuff while contractors were hired to back-fill and keep the Delphi code running. 

 

It seems like the longer you work in a specific technology, the more expertise you're going to accumulate, and the more likely you are to be hired to maintain critical systems that use that technology. Companies like to invest in risk-reduction, so they seem to like hiring experts who are over-qualified for maintenance work. (Except recruiters from places like India who always say "I'm sorry Mr. David, but the client can't pay more than $21, maybe $22 per hour for someone with 10+ years of experience". They're trying to document that they cannot find Americans to hire in order to justify H1-B workers.)

 

The Good News is that I just turned 65 and got on Social Security. I no longer have to deal with this crap just to survive, and I can start looking around for things that I *WANT* to do and I don't have to worry about the pay. I feel like I did when graduated from college! Except I'm now free of the "rat race" so I can really have some FUN with this technology. I've got some things I'm working on for myself, and was invited to be on the advisory board of a startup already. Things are really looking up. 

 

  • Like 2

Share this post


Link to post
1 hour ago, David Schwartz said:

so I can really have some FUN with this technology. I've got some things I'm working on for myself, and was invited to be on the advisory board of a startup already. Things are really looking up. 

 

good to hear!

  • Like 2

Share this post


Link to post
On 10/6/2021 at 1:26 PM, David Schwartz said:

Things are really looking up

Over 10 months later, did you manage to spend time on your own projects and have some fun?

Share this post


Link to post
On 10/6/2021 at 10:04 AM, Lars Fosdal said:

I want ARM/Linux support for Raspberry PI.

I would like to have a Delphi version to work with ARM/Linux overall on Raspberry PI and clones.

In industry, a lot of embedded ARM-based SOMs are developed with C++ or Python (QT on under the hood), overall for UI parts, but Delphi power could change the trends. 
I've tried FreePascal + Lazarus but is very messy...

Edited by shineworld
  • Like 3

Share this post


Link to post
On 8/23/2022 at 1:35 AM, David Champion said:

Over 10 months later, did you manage to spend time on your own projects and have some fun?

Jeez ... has it been 10 months already? OMG!

 

There's an idea that came to me in 1995 that was not technically feasible until 2015, but it was missing a couple of key pieces. The last piece was out of reach until this past February.

 

My challenge for the past 18 months or so has been getting the needed funding and pulling together a team to build it. I have not succeeded yet.

 

A lot of startups are created by a bunch of friends who either live at home or work together and spend their free time on it, so they don't need much capital. Once they have an MVP, they can get funding.

 

Steve Jobs famously said about the iPad (that was almost universally panned by every corner of the tech world): "Sometimes people don't know what they want until you show it to them." The iPad created an entirely new hardware segment: the "tablet computer". What all the pundits seem to have missed was that it was hardly a "new concept". Every Star Trek fan has been seeing them in the hands of every version of that show since it launched. We've simply been waiting for one to appear in real life, and Jobs finally did that.

 

That's what I've got: something nobody understands and doesn't know they want. So my plan is to build it, then put it into the hands of ~40 people who all have at least 1000 raving fans they can encourage to try it out.

 

The capital raising hasn't been fun. I'm mostly looking forward to building a team and then getting this idea out of my head and into the world. THAT WILL BE A LOT OF FUN!

 

In case anybody is curious, I plan to use Delphi with TMS WebCore to buidl a web app, and then maybe create native apps using their Miletus technology.

 

Edited by David Schwartz
  • Thanks 1

Share this post


Link to post
On 10/6/2021 at 10:04 AM, Lars Fosdal said:

I am not confused. I am frustrated. I want both. 

 

Most of all, I want 64-bit debuggers that understand threads and make it easy and robust to focus debugging on specific threads, and that doesn't suddenly stop breaking on breakpoints or break on "invisible" breakpoints in Indy, or just purely stop responding completely. I'd love to be able to "disable" exception breaks for specific threads and only for those threads.

 

I want the broken HighDPI properly and finally fixed.

I want the code generation significantly improved for 64-bit. 

I want RTL, VCL and FireMonkey to be rock solid and efficient.

 

 

But - also ...

I want Generics constraints for enumerated types so that I can use enumerated type and set type operators.

I want proper nullable type support, including the relevant operators. 

I want ARM support for Windows.

I want ARM/Linux support for Raspberry PI.

I want the static code analysis capabilities of FixInsight and similar, to be built into the DSP.

I want a package manager that really works, unlike GetIt which is just a glorified downloader and installer.

I want Swagger support for APIs.

 

Two and a half year later... I still want the above.

  • Sad 1

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

×