Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Delphi's Ruined Me!



Permlink Replies: 25 - Last Post: Mar 14, 2018 12:45 PM Last Post By: Markus Humm Threads: [ Previous | Next ]
Alan Colburn

Posts: 6
Registered: 8/23/04
Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 22, 2018 2:27 PM
Let me start with this: I love Delphi! And the thing I like the most is it's RAD features. They let me make something that looks impressive more easily that lots of other languages/IDE's. It's important you hear that before reading the rest of my message. That's because ...

... Delphi has turned me into a not-that-great developer. Everything I know I got from books & the hodge-podge of resources on the web. And the examples for newbies like me tend to use that same RAD-model: drop a button (or whatever) on a form, double click to create an event handler, and type in code like this ...

It's fast, it's easy, and it illustrates concepts clearly.

However, it's taught me to write code that's tightly coupled, GUI dependent, and, um, "brittle." I read about separating UI's from other "concerns," models and views, patterns, "SOLID" principles, etc. and try to keep code out of the UI. But I don't really have the background to know what to pay attention to first, and what should wait until later. Besides, once I get to something even slightly complicated, methods built into those shiny components lure me back to UI-coupled code. I end up with some code that's refactored to be more UI-independent but also lots of code that's still in form event handlers. It's really not good.

The features that make Delphi fun and fast are getting in the way as my knowledge increases and I start to think about slightly larger applications.

What resources are out there to help me--concretely, simply, step-by-step if possible--move from being a kid having fun with Delphi to someone who can code larger, more complex multi-platform applications?
Brian Hamilton ...

Posts: 556
Registered: 10/14/04
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 22, 2018 4:22 PM   in response to: Alan Colburn in response to: Alan Colburn
you can add a unit that has no form
and add functions/procedures (with no sender etc)
to do core stuff/routines etc

I started with Turbo Pascal which is a command line program only (green screen monitor) myself ;)
Clement Doss

Posts: 76
Registered: 3/26/00
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 23, 2018 11:18 AM   in response to: Alan Colburn in response to: Alan Colburn
Hi

The features that make Delphi fun and fast are getting in the way as my knowledge increases and I start to think about slightly larger applications.

What resources are out there to help me--concretely, simply, step-by-step if possible--move from being a kid having fun with Delphi to someone who can code larger, more complex multi-platform applications?

I have two simple rules.
1) How would you test your code (or class)?
In other words, how "simple" would be to build a second application to test your main one?
If the answer is : "It's impossible".. you're in deep, deep, deeeeeep trouble!
if the answer is: "I just have to add the unit set a few properties and call the method I want to test".. Good work!

That goes for Forms, Datamodules, classes, etc..

2) Always write code you can reuse! Ex: If you have to write a "very RADish datamodule for FTP" that will be ready in a few minutes, but you can't reuse it in other projects.. It's a no go. Write that datamodule so you can use it (and test it) in other projects!

You should consider your time to the minute. That's why it's very important to reuse already tested code. And of course, test the code in the new application should be very easy. That's why IMHO the more RAD you get, the fastest you go to the market but the harder it will be to maintain you project.

My $0.02
Clément

David Keith

Posts: 196
Registered: 12/10/99
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 23, 2018 12:11 PM   in response to: Alan Colburn in response to: Alan Colburn
On 2/22/2018 17:27, Alan Colburn wrote:
Let me start with this: I love Delphi! And the thing I like the most is it's RAD features. They let me make something that looks impressive more easily that lots of other languages/IDE's. It's important you hear that before reading the rest of my message. That's because ...

... Delphi has turned me into a not-that-great developer. Everything I know I got from books & the hodge-podge of resources on the web. And the examples for newbies like me tend to use that same RAD-model: drop a button (or whatever) on a form, double click to create an event handler, and type in code like this ...

It's fast, it's easy, and it illustrates concepts clearly.

However, it's taught me to write code that's tightly coupled, GUI dependent, and, um, "brittle." I read about separating UI's from other "concerns," models and views, patterns, "SOLID" principles, etc. and try to keep code out of the UI. But I don't really have the background to know what to pay attention to first, and what should wait until later. Besides, once I get to something even slightly complicated, methods built into those shiny components lure me back to UI-coupled code. I end up with some cod
e that's refactored to be more UI-independent but also lots of code that's still in form event handlers. It's really not good.

The features that make Delphi fun and fast are getting in the way as my knowledge increases and I start to think about slightly larger applications.

What resources are out there to help me--concretely, simply, step-by-step if possible--move from being a kid having fun with Delphi to someone who can code larger, more complex multi-platform applications?
When I code anything new, unless I already have a complete grasp of the
task and all of it's unique details, I'll start out with a GUI VCL app.

I'll code to the (usually new, unknown interface) in whatever way I need
to in order to understand how it works with Delphi etc.

Once I have a solid grasp of how to implement the functionality of the
new interface, I then have acquired the knowledge necessary to begin
building a class-based interface. Whether I am writing this interface
for myself or for someone else, I always think, how would I want to
interact with the interface?

K.I.S.S. is an ancient but still very relevant principle. In other
words, if you like the simplicity of the VCL GUI model, you will
probably do well if you simplify your interface to require as little
coding as possible to interact with the class(es) and get the job done.

I use lots of properties, constructors, class inheritance, and
occasionally interfaces to reduce the quantity of coding from
potentially thousands of lines of code down to dozens of lines of code.

Once I've got an interface designed and coded, my initial GUI app gets
reworked to act as a test harness. No longer is the implementation code
in the initial GUI, it's now residing in a clean, well(and
self!)-documented class interface in a separate unit/set of units.

I add the unit(s) to my VCL test GUI, wipe out all of the implementation
code, and now with a tiny fraction of the initial effort re-implement
the functionality using the newly created class interface.

And test, test and retest!

As to your resource question, the best advice I can give is: study OOP.
Get some good books/online resources etc. Take some classes as you are
able; trail the OOP experts. Read everything that you can get your hands
on. Learn to think not in VCL GUI RAD programming concepts, but rather
in OOP concepts.

freecomputerbooks.com/compscObjectOrientedBooks.html

Lot of books referenced there, amazon has a ton of good OOP books too.

Also, although the Delphi book market has slowed down quite a bit, even
the older books have some great primers, examples etc. on how to program
OOP the Delphi way. A simple google search:
https://www.google.com/search?q=delphi+books&ie=utf-8&oe=utf-8&client=firefox-b-1

A lot of these books are available used for very few $$.

Also study methodologies, like Capability Maturity Model,
Model-View-Controller, Agile Software Development etc.

https://en.wikipedia.org/wiki/Capability_Maturity_Model
http://www.itinfo.am/eng/software-development-methodologies/

No matter how advanced your learning gets, always keep in mind that
Delphi has a unique capability in the marketplace that enables it to
produce code that is readable, well structured and easy to maintain.

Keep It Simple S.

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
Arnaud BOUCHEZ

Posts: 143
Registered: 2/17/02
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 23, 2018 1:36 PM   in response to: Alan Colburn in response to: Alan Colburn
You can wrote complex Domain-Driven-Design applications and services using Delphi, with a clean architecture.

The trick is to rely on the SOLID principles, and write clean/uncoupled code.
Then use RAD for developing the UI, always abstracting the business logic (especially the DB/store layer) without any VCL/FMX dependency.
For that, I most of the time use interfaces, and mORMot interface-based services for a clean SOA distributed architecture.

See http://blog.synopse.info/post/2017/10/24/EKON-21-Presentation - Practical Domain-Driven Design
and http://blog.synopse.info/post/2016/11/10/EKON20-mORMot-Conferences - mORMot Legacy Code Technical Debt Delphi Conference
Eli M

Posts: 1,346
Registered: 11/9/13
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 23, 2018 9:49 PM   in response to: Alan Colburn in response to: Alan Colburn
Just use TActionList and TFrame. Done.
Alexandre Machado

Posts: 1,754
Registered: 8/10/13
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 25, 2018 12:57 PM   in response to: Eli M in response to: Eli M
Eli M wrote:
Just use TActionList and TFrame. Done.

TActionList/TActions should be avoided like a plague IMO. TActionList are not deterministic. They rely on windows messages to update, for instance, and this limits even unit testing that can be performed with it.
I won't even mention the nightmare that it creates when you need to debug code that uses it.
Eli M

Posts: 1,346
Registered: 11/9/13
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 2, 2018 5:50 AM   in response to: Alexandre Machado in response to: Alexandre Machado
Under FireMonkey it doesn't rely on Windows Messages to update since I'm not running it on Windows. Though I will say I've seen threading problems with Actions on IOS in some cases.

Alexandre Machado wrote:
TActionList/TActions should be avoided like a plague IMO. TActionList are not deterministic. They rely on windows messages to update, for instance, and this limits even unit testing that can be performed with it.
I won't even mention the nightmare that it creates when you need to debug code that uses it.
Mark Rose

Posts: 4
Registered: 5/9/00
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 24, 2018 10:39 AM   in response to: Alan Colburn in response to: Alan Colburn
However, it's taught me to write code that's tightly coupled, GUI dependent, and, um, "brittle." I read about separating UI's from other "concerns," models and views, patterns, "SOLID" principles, etc. and try to keep code out of the UI. But I don't really have the background to know what to pay attention to first, and what should wait until later. Besides, once I get to something even slightly complicated, methods built into those shiny components lure me back to UI-coupled code. I end up with some code that's refactored to be more UI-independent but also lots of code that's still in form event handlers. It's really not good.

This I think is one of the big problems with legacy Delphi codebases, the UI and business logic are so tightly coupled with components on forms that refactoring into more sensible abstractions is a massive undertaking, to the point where it might make sense to do a complete rewrite - this is what I've done and I've moved almost all my codebases over to .net and C# now.

If you haven't done much reading on it, .net has a couple of different technologies and approaches for Windows UI applications - Winforms which is pretty much the same approach as VCL and WPF which uses databinding and promotes the MVVM design pattern - sounds complicated, there is a bit of boiler plate code to write because of this, but you can easily (with a few lines build your own objects to get rid of most of this).

The upshot is that with WPF, you can update your UI without physically having manually do a "Label1.Caption = "whatever"; you simply define an object which has fields that you want to bind to the UI (the ViewModel), and the updating is done automatically (that is the fields of the viewmodel object are propagated to UI without you having to do anything or a manual update).

The same goes for commands which is the way to do ui interactions in a much more reusable and testable way. There is some code overhead to all of this, but I've built a library with a handful of abstract and base classes which mean I can do lots of the legwork with just single lines of code by just passing a delegate to a constructor of my command object etc.

I've got to the point that I couldn't ever go back to the way Delphi makes you program now. I'm not saying there isn't some advantages in the RAD approach, but if you spend a bit of time learning WPF, you'll find there is a much, much better way.

It's a matter of opinion whether you prefer the Pascal language, it's certainly more readable than C#, but less powerful, and I think quite messy, the syntax for anonymous methods, for instance is a bit of a pigs ear in Delphi, (in C# it's basically method(() => { your function });

Edited by: Mark Rose on Feb 24, 2018 10:41 AM
Michael Thuma

Posts: 104
Registered: 1/30/00
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 26, 2018 3:47 AM   in response to: Alan Colburn in response to: Alan Colburn
Your brain.

There has never been a good reason for feeling forced to go the 'RAD' way or better said the visual composition portion and develop in an Accessish way. DBASE as well as Access can do exactly that better.

No one ever said that it wouldn't be allowed to code in Delphi. Wondering where you do have taken these strange general misconceptions from. The way you design and implement a GUI is not dependent on the technology since GUI is a very broad term or better said GUI based applications. The widgets serving displaying data bound stuff do differ from anything else.

Think of databases ER is one subset but it's not relational database as a whole or the way to do so. It's one way to do so. It's more or a less a result form the early days of analysis and design to simply take a document and create a database schema from that. In a next step ER evolved from this.

If you like you should take a closer look at building you own components but I'd simply so it and don't get disturbed by other people's opinions presented in books or other kind of writings and presentations. I'd personally not waste too much time building the next one in a million widget sets all around the world. Use the Windows controls for example if you write applications for Windows and extend the common control library with the one or other you built on your own. Feel free to do so and you don't feel ashamed having to throw away the design more often than you might like or thought you would have to. That's just normal.

Alan Colburn wrote:
Let me start with this: I love Delphi! And the thing I like the most is it's RAD features. They let me make something that looks impressive more easily that lots of other languages/IDE's. It's important you hear that before reading the rest of my message. That's because ...

... Delphi has turned me into a not-that-great developer. Everything I know I got from books & the hodge-podge of resources on the web. And the examples for newbies like me tend to use that same RAD-model: drop a button (or whatever) on a form, double click to create an event handler, and type in code like this ...

It's fast, it's easy, and it illustrates concepts clearly.

However, it's taught me to write code that's tightly coupled, GUI dependent, and, um, "brittle." I read about separating UI's from other "concerns," models and views, patterns, "SOLID" principles, etc. and try to keep code out of the UI. But I don't really have the background to know what to pay attention to first, and what should wait until later. Besides, once I get to something even slightly complicated, methods built into those shiny components lure me back to UI-coupled code. I end up with some code that's refactored to be more UI-independent but also lots of code that's still in form event handlers. It's really not good.

The features that make Delphi fun and fast are getting in the way as my knowledge increases and I start to think about slightly larger applications.

What resources are out there to help me--concretely, simply, step-by-step if possible--move from being a kid having fun with Delphi to someone who can code larger, more complex multi-platform applications?

--
Delphi Programming is fun. Hilarious.
Robert Triest

Posts: 687
Registered: 3/24/05
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 26, 2018 4:28 AM   in response to: Michael Thuma in response to: Michael Thuma
No one ever said that it wouldn't be allowed to code in Delphi. Wondering where you do have taken these strange general misconceptions from.
Stronger, for 20-30 years developers learned to use Object Oriented techniques to do just this, split code into Objects and make the general
difference between Data Logic, Business Logic and GUI Logic.

Everything I know I got from books & the hodge-podge of resources on the web.
Maybe this is the problem. You just found these resources on the web that were showing how to glue an application together with components.
This doesn't mean there are many resources on the web that show you how to split your code from your GUI.

Apart from web development that forces you to do Client (Gui) - Server programming right from the start, all
other (desktop) development tools have then the same problem. If you use languages like Visual Basic or C#
you can easily drag and drop components on forms and click an application together.
John David

Posts: 86
Registered: 9/5/16
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 26, 2018 1:48 PM   in response to: Alan Colburn in response to: Alan Colburn
On 22/02/2018 22:27, Alan Colburn wrote:


What resources are out there to help me--concretely, simply, step-by-step if possible--move from being a kid having fun with Delphi to someone who can code larger, more complex multi-platform applications?

Have you downloaded Marco Cantus Free eBook about Delphi
<http://www.marcocantu.com/objectpascalhandbook/>? I suggest go and get
it and start reading page by page and doing all the examples from it.

There are no short cuts in learning Windows Programming using Forms.
You have to practice them so that you know how things are done.

Make small changes to the code given in the book and see what effect it
has in the overall result. That's the only way to get back into
programming.

Alternative is to use C# because Microsoft has one of the best doc
portal that gives examples about every class and method built into C#
compiler.
Alan Colburn

Posts: 6
Registered: 8/23/04
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 28, 2018 4:50 PM   in response to: Alan Colburn in response to: Alan Colburn
Thank you all for your responses. I appreciate you taking the time to respond to my original post. I clearly have my work cut out for me :-) Although I do have some knowledge, it seems like the best path is--in this order--make sure I'm knowledgeable about
-- basic OO ideas and design principles (I haven't looked at the book, but "The Object-Oriented Thought Process" at least sounds like the title of the sort of book I should start with),
-- then I might be more ready to appreciate the SOLID principles and
-- a few design patterns, before finally working to understand
-- MVVM.

I would love everything I read to be based around Delphi, but I recognize that probably won't happen, and isn't important. (And C# code often looks close to Delphi :-)

Feel free to correct me, or offer additional recommendations beyond those already offered.

Thank you again,
Al
John David

Posts: 86
Registered: 9/5/16
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Feb 28, 2018 6:34 PM   in response to: Alan Colburn in response to: Alan Colburn
On 01/03/2018 00:50, Alan Colburn wrote:


I would love everything I read to be based around Delphi, but I recognize that probably won't happen, and isn't important. (And C# code often looks close to Delphi :-)


Yes I wanted to suggest C# but I thought you might feel insulted if I
mentioned another product that you didn't want to hear about.

C# is the future; Delphi is almost dead because you are not likely to
get any new books about Delphi for beginners but in C# you always get
books for Beginners as well as Professionals.

Microsoft website is also another best place to get example codes about
C#. For Delphi you'll have to search the web and still the info is
likely to be dated and not useful at all.

This is my personal experience about Delphi. I started with
Turbo/Borland Pascal and moved to Delphi 1 and 2 but then I realised
that it is not going to help me in the long run. So I started learning
C# when 2002 and never looked back.

Lior Ilan

Posts: 35
Registered: 6/29/00
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 1, 2018 12:39 AM   in response to: John David in response to: John David
John David wrote
Delphi is almost dead because you are not likely to
get any new books about Delphi for beginners but in C# you always get
books for Beginners as well as Professionals.

Delphi books published in recent years:
More Coding in Delphi by Nick Hodges - Aug 17, 2015
Delphi in Depth: ClientDataSets 2nd Edition by Cary Jensen Ph.D. and Marco Cantù - Jan 7, 2015
Delphi Cookbook - Second Edition by Daniele Teti -June 2016
Dependency Injection in Delphi by Nick Hodges – April 18, 2017
Delphi in Depth: FireDAC by Cary Jensen – May 10, 2017
Expert Delphi - Pawel Glowacki - June 30 2017
Cross-Platform Development with Delphi 10.2 & FireMonkey for Windows, MAC OS X (macOS) & Linux by by Harry Stahl - Aug 20, 2017
Robert Triest

Posts: 687
Registered: 3/24/05
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 1, 2018 1:24 AM   in response to: Lior Ilan in response to: Lior Ilan
Yes, so much nonsense in such a small post. I almost wonder if it is meant to be serious.
Still hanging around in a Delphi peer support forum after 16 years "not looking back".
After using Delphi 1 and 2.. Hilarious. (like the fact that someone seems to be ruined by a computer language)
Life is too short to hate a computer language, especially if you have a lot of them to choose from.
David Keith

Posts: 196
Registered: 12/10/99
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 1, 2018 8:50 AM   in response to: Lior Ilan in response to: Lior Ilan
On 3/1/2018 03:39, lior ilan wrote:
John David wrote
Delphi is almost dead because you are not likely to
get any new books about Delphi for beginners but in C# you always get
books for Beginners as well as Professionals.

Delphi books published in recent years:
More Coding in Delphi by Nick Hodges - Aug 17, 2015
Delphi in Depth: ClientDataSets 2nd Edition by Cary Jensen Ph.D. and Marco Cantù - Jan 7, 2015
Delphi Cookbook - Second Edition by Daniele Teti -June 2016
Dependency Injection in Delphi by Nick Hodges – April 18, 2017
Delphi in Depth: FireDAC by Cary Jensen – May 10, 2017
Expert Delphi - Pawel Glowacki - June 30 2017
Cross-Platform Development with Delphi 10.2 & FireMonkey for Windows, MAC OS X (macOS) & Linux by by Harry Stahl - Aug 20, 2017

Delphi Memory Management For Classic And ARC Compilers by Dalija
Prasnikar - 2017 - https://dalija.prasnikar.info/delphimm/index.html

---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
Lior Ilan

Posts: 35
Registered: 6/29/00
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 5, 2018 6:16 AM   in response to: David Keith in response to: David Keith
John David wrote
Delphi is almost dead because you are not likely to
get any new books about Delphi for beginners but in C# you always get
books for Beginners as well as Professionals.

lior ilan wrote:
Delphi books published in recent years:
More Coding in Delphi by Nick Hodges - Aug 17, 2015
Delphi in Depth: ClientDataSets 2nd Edition by Cary Jensen Ph.D. and Marco Cantù - Jan 7, 2015
Delphi Cookbook - Second Edition by Daniele Teti -June 2016
Dependency Injection in Delphi by Nick Hodges – April 18, 2017
Delphi in Depth: FireDAC by Cary Jensen – May 10, 2017
Expert Delphi - Pawel Glowacki - June 30 2017
Cross-Platform Development with Delphi 10.2 & FireMonkey for Windows, MAC OS X (macOS) & Linux by by Harry Stahl - Aug 20, 2017

David Keith wrote:
Delphi Memory Management For Classic And ARC Compilers by Dalija
Prasnikar - 2017 - https://dalija.prasnikar.info/delphimm/index.html
Delphi High Performance by Primož Gabrijelčič February 2018 https://www.packtpub.com/application-development/delphi-high-performance
John David

Posts: 86
Registered: 9/5/16
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 5, 2018 6:26 AM   in response to: Lior Ilan in response to: Lior Ilan
On 05/03/2018 14:16, lior ilan wrote:

Delphi High Performance by Primož Gabrijelčič February 2018 https://www.packtpub.com/application-development/delphi-high-performance

If this gives you any hope then good luck but I tend to view everything
by looking at Surveys and as far as I can see Delphi does not feature
anywhere on these surveys.

<https://insights.stackoverflow.com/survey/2017#top-paying-technologies>

C# is above C and C++ so clearly there is something in C# that Delphi
hasn't got. Now your task should be to find out why Delphi does not
feature in any of the surveys.

However, as long as Delphi can do the job then continue using it but I
don't think new users are likely to be tempted to try Delphi. Delphi has
become what Cobol became years ago. Very old people continued using it
but young users moved on to C or Fortran for Science and Mathematics.

C is also considered dead because the world has moved on and everything
is looked at in terms of "Objects".
Markus Humm

Posts: 5,113
Registered: 11/9/03
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 14, 2018 12:45 PM   in response to: John David in response to: John David
John David wrote:
On 05/03/2018 14:16, lior ilan wrote:

Delphi High Performance by Primož Gabrijelčič February 2018 https://www.packtpub.com/application-development/delphi-high-performance

If this gives you any hope then good luck but I tend to view everything
by looking at Surveys and as far as I can see Delphi does not feature
anywhere on these surveys.

<https://insights.stackoverflow.com/survey/2017#top-paying-technologies>

C# is above C and C++ so clearly there is something in C# that Delphi
hasn't got. Now your task should be to find out why Delphi does not
feature in any of the surveys.

However, as long as Delphi can do the job then continue using it but I
don't think new users are likely to be tempted to try Delphi. Delphi has
become what Cobol became years ago. Very old people continued using it
but young users moved on to C or Fortran for Science and Mathematics.

C is also considered dead because the world has moved on and everything
is looked at in terms of "Objects".

Hm?
Here is a German source referring to StackOverflow:

https://www.heise.de/developer/meldung/Entwicklergehaelter-Wer-mit-Clojure-und-F-arbeitet-verdient-besser-3992817.html

In the chart in it Delphi is clearly listed. Yes, it's not the top performing language in terms of salary, but it is clearly listed there!

Means: your task should be to figure out why you haven't seen Delphi in the survey you mention.

Greetings and a nice evening

Markus
Rael Bauer

Posts: 228
Registered: 10/10/02
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 5, 2018 12:58 PM   in response to: John David in response to: John David
On 2018/03/01 04:34 AM, John David wrote:
So I started learning C# when 2002 and never looked back.

I'm curious, if you left Delphi 16 years ago, what are you still doing
on this forum? :)

Maybe you like the Delphi folks better?

-Rael
John David

Posts: 86
Registered: 9/5/16
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 5, 2018 6:08 PM   in response to: Rael Bauer in response to: Rael Bauer
On 05/03/2018 20:58, Rael Bauer wrote:
On 2018/03/01 04:34 AM, John David wrote:
So I started learning C# when 2002 and never looked back.

I'm curious, if you left Delphi 16 years ago, what are you still doing
on this forum? :)

I have got starter Editions of Berlin and Tokyo which was available free
of charge to anybody who wanted it. Apparently, the take-up of the free
editions was dismal and Embarcadero might be wondering if Delphi has a
future.


Maybe you like the Delphi folks better?

This is stretching a bit, don't you think so?
Rael Bauer

Posts: 228
Registered: 10/10/02
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 6, 2018 8:21 AM   in response to: John David in response to: John David
On 2018/03/06 04:08 AM, John David wrote:
So I started learning C# when 2002 and never looked back.
I'm curious, if you left Delphi 16 years ago, what are you still doing
on this forum? :)
I have got starter Editions of Berlin and Tokyo which was available free
of charge to anybody who wanted it.

You said "and never looked back". It looks like you did in fact look back..
Rael Bauer

Posts: 228
Registered: 10/10/02
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 6, 2018 8:21 AM   in response to: John David in response to: John David
On 2018/03/06 04:08 AM, John David wrote:
So I started learning C# when 2002 and never looked back.
I'm curious, if you left Delphi 16 years ago, what are you still doing
on this forum? :)
I have got starter Editions of Berlin and Tokyo which was available free
of charge to anybody who wanted it.

You said "and never looked back". It looks like you did in fact look back..
Robert Triest

Posts: 687
Registered: 3/24/05
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 8, 2018 12:06 AM   in response to: Rael Bauer in response to: Rael Bauer
You said "and never looked back". It looks like you did in fact look back..

You have to, if you want to say something useful about Delphi when only
knowing something about Version 1 and 2..

In July 2008 Embarcadero acquired CodeGear from the Borland Software Corporation.
Will there be a EMB (2008-2018) celebration?

Lets look back for 10 Delphi years:

CodeGear Delphi 2009
completely reworking the VCL and RTL for full Unicode support, and added generics and
anonymous methods for Win32 native development.

Embarcadero Delphi 2010
It includes a new compiler run-time type information (RTTI) system, support for Windows 7 Direct2D,
touch screen and gestures, a source code formatter, debugger visualizers and the option to also have
the old style component palette in the IDE. The new RTTI system makes larger executables than previous versions.

Embarcadero Delphi XE
Support for Amazon EC2, Microsoft Azure were bundled.

Embarcadero Delphi XE2

Delphi XE2 natively supports 64-bit Windows. Delphi XE2 is supplied with both the VCL,
and an alternative library called FireMonkey that supports Windows, Mac OS X and the Apple iPhone,
iPod Touch and iPad portable devices.

Embarcadero Delphi XE3

Delphi XE3 natively supports both 32-bit and 64-bit editions of Windows (including Windows 8),
and provides support for Mac OS X with the Firemonkey 2/FM² framework.

Embarcadero Delphi XE4

Delphi XE4 is the first release of the FireMonkey mobile platform, featuring cross-platform mobile application
development for the iOS Simulator and iOS Devices. In this version Embarcadero introduces two new compilers
for Delphi mobile applications, the Delphi Cross Compiler for the iOS Simulator and the Delphi Cross Compiler
for the iOS Devices. These compilers significantly differ from the Win64 desktop compiler as they do not support COM,
inline assembly of CPU instructions, and six older string types such as PChar.

Delphi XE4 Run-Time Library (RTL) is optimized for 0-based, read-only (immutable) Unicode strings,
that cannot be indexed for the purpose of changing their individual characters.
The RTL also adds status-bit based exception routines for ARM CPUs that do not generate exception interrupts.

Embarcadero Delphi XE5

Support for Android (specifically: ARM v7 devices running Gingerbread (2.3.3–2.3.7),
Ice Cream Sandwich (4.0.3–4.0.4) and Jelly Bean (4.1.x, 4.2.x, 4.3.x)) and iOS 7.

Embarcadero Delphi XE6

Create natively-compiled apps for all platforms for, desktop, mobile, and wearable devices like Google Glass,
with a single C++ or Object Pascal (Delphi) codebase. RAD Studio XE6 adds support for Android 4.4 KitKat.
It also became possible to create FireMonkey mobile apps for Android.

Embarcadero Delphi XE7

It enables Delphi/Object Pascal and C++ developers to extend existing Windows applications and build apps
that connect desktop and mobile devices with gadgets, cloud services, and enterprise data and APIs.
Also, it enables developers to extend Windows applications using WiFi and Bluetooth App Tethering,
and create shared user interface code across multiple device form factors, etc.

Embarcadero Delphi XE8
On April 7, 2015 Embarcadero released RAD Studio XE8, which included Delphi XE8 and C++Builder.

Embarcadero Delphi 10
Generating native code for the 32- and 64-bit Windows platforms, OSX,
iOS and Android (ARM, MIPS and X86 processors). Delphi 10.1 Berlin Update 2 introduced the ability to
create Windows 10 Store applications from the Delphi IDE using Desktop Bridge.

Embarcadero Delphi 10.2 Tokyo
Adding 64-bit Linux support, limited to console and non-visual applications.
In addition this release features RTL and IDE improvements, multi-tenancy support in RAD server
and improved database capabilities.
Nico Aragon

Posts: 4
Registered: 3/16/00
Re: Delphi's Ruined Me!
Click to report abuse...   Click to reply to this thread Reply
  Posted: Mar 1, 2018 2:12 AM   in response to: Alan Colburn in response to: Alan Colburn
Alan Colburn wrote:

However, it's taught me to write code that's tightly coupled, GUI dependent, and, um, "brittle." I read about separating UI's from other "concerns," models and views, patterns, "SOLID" principles, etc.

I use the TENNIS principle. Actually you can write "tennis" because it's all about the game, but you know, this kind of principles tend to be written all uppercase, maybe to show how important they are :-)

But I digress, the point is, as soon as the project is little more than a quick test, I work with two files (or sets of files), one for the top-level, user interfacing code, another one for the library, behind-the-scenes, potentially reusable code.

For a small project, it is main form vs datamodule or form-less unit. As a project grows, there's a set of forms vs a set of datamodules and form-less units, but the strategy is to do a little this side of the net, a little on he other one. It encourages a divide between high level and implementation details all along the project.

--
salu2,

Nico
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02