What is Delphi’s DNA?

I was chatting with someone today who was less familiar with Delphi. He asked what is it about Delphi that makes so many people continue to love it. I thought I would share my answer and see what everyone else thinks.

  1. Developer productivity – When Delphi was first introduced it was going head to head with Visual Basic in getting things done fast, and most of the time Delphi was faster for getting things done, and the rest of the time it was still really fast. That continues today. I’ve done presentations for people and they are just blown away with how fast I can do things with Delphi.
  2. Fast native apps – When it comes to app performance Delphi was way faster than VB, and is competitive with Visual C++ and any other compiler out there. This is because it is builds native apps that run fast.
  3. Database access – One of the original goal of Delphi was first class database connectivity. That is something Delphi continues to deliver. BDE was ahead of its time, but FireDAC is a whole new breed. And the great thing is there are so many 3rd party data access libraries to choose from, to give you just the right set of features you need.
  4. Platform API access – I remember the first time I needed to access some Windows messages and a Windows API that wasn’t exposed through the RTL. I kind of expected it to be a lot of work. I was pleasantly surprised with how easy and natural it was to add that to my program. I love that Delphi let’s you work at the nice high productive level, and then reach down to “touch the metal” and access the APIs.
  5. Visual form designers – I’ll admit it, Delphi has spoiled me. I’ve checked out a number of other programming tools, and it is rare to find one that works as good. The ability to design your user interface and preview what it will look like so easily is so useful.
  6. Reliable applications – I’ve heard stories about when they demonstrated Delphi’s ability to handle exceptions and people were falling out of their chairs. I don’t know what it is about Delphi, it might just be that the developers who use it are amazing, but I am frequently impressed with how reliable programs are that are developed with Delphi.
  7. Good strong community – All the Tech Partners, MVPs, authors, trainers and developers make the Delphi community amazing. It is always great to see all the amazing projects everyone is working on. So many people willing to help and just be fantastic. It is a great community to be part of.

I made this graphic a while ago to explain why developing with Delphi was so awesome. I call it the three levels of development. The idea is each level builds on the one beneath it. The higher levels provide great productivity benefits.

3 Levels of Development

The great thing about Delphi is it lets you easily move between these levels. You can do so much in code, even at design time, but it doesn’t keep you at that high level. When you need it you can move down to a lower level, even to the point of writing in-line assembly code on Win32.

Most other development tools are stuck at just one level, or with just bits and pieces of the other levels. Delphi gives you all 3 working together. This is really amazing, especially for a cross platform development tool.

What did I miss? What else is in Delphi’s DNA? What is the one thing that makes Delphi the tool of choice for you?

Update: A few more characteristics of Delphi’s DNA from the comments

  1. Readability and Maintainability – This is really important since most programs spend way more time being maintained than in the initial writing. Code that is easier to read is easier to maintain. This is aided by the fact Delphi is easy to read and has a strong type system.
  2. Backwards Compatibility – This is something Delphi really spoils us with. Even when there are breaking changes they are typically minor and easy to work around when compared to other development technologies.
  3. Speed – Delphi has this in spades: Speed of development, speed of compilation, and speed of execution. Sure, you may be able to find some situations where something is faster in one area, but over all Delphi is very well rounded in the speed department.

Delphi DNA Wordcloud

Posted in Article | 9 Comments

MVP of the Week: Alister Christie

LearnDelphi.TVAlister Christie of New Zealand is our MVP of the Week. Alister is the master of Delphi video trainings with his site at LearnDelphi.tv. He has over 100 free videos, and then over 30 more hours of premium videos. A great resource for people new to Delphi development, or anyone who wants to take their skill to the next level.

When I was in New Zealand I got a chance to sit down with Alister and Damien Bootsma for a short interview.

Alister has a lot of great content on his YouTube channel, including more interviews and technical trainings. Here are a few of his recent CodeRage sessions for you to check out too.

Flexible and Supercharged Key Hashing with TDictionary
TDictionary in Delphi is an extremely useful container, however the default method by which your ‘keys’ get hashed might be undesirable. Being able to alter this can give you far greater flexibility when taking advantage of the Generic Dictionary collection.

Common Delphi Coding Anti-Patterns
During this session you’ll either be thinking “I do that” (and hopefully you’ll stop) or “I remember doing that” (while cringing at the memory). There are certain coding patterns that all Delphi programmers seem to use at some stage – some of them sub-optimal, some weird, and some just plain wrong. Collectively I’ve called them Anti-Patterns, and in this session you’ll get to see some of my favorites (or, anti-favorites).

Escaping the Try..Finally..Free Nest
We all want to do the right thing with memory management and make sure we tidy up after ourselves. However as our code gets buried in successive layers of object allocation, try, finally, free “nests” it all becomes a bit onerous and, well, resembling a pterodactyl nest. In this session, we look at a technique to flatten out your code so that it will look less attractive as habitation for a friendly pterosaur, and as a side benefit, improve readability. Along the way we use interfaces, generics and anonymous methods to build our over-engineered object de-allocation artifice.

Become Your Own Art Department
Finding suitable and consistent images for buttons, menus and splash screens can be a difficult task – why not make your own?

Alister is a brilliant developer and great instructor. He always does great work. We are very pleased to have him as our MVP of the week.

Posted in MVP, News | Leave a comment

1Password for Windows is Written in Delphi!

1Password just won the Embarcadero Cool App Contest. It is a really cool app, and written in Delphi. You can check out the press release or the article about it. I also have a little video I made with the Stefan van As (the Developer) and Mark Eaton (QA).

I’ve been using LassPass, EverNote, Google Authenticator, Authy and Chrome’s identity management previously, but wasn’t completely happy with that. After looking at 1Password I am switching. It is really fantastic, and includes all the features I need.

Who will win next month? Maybe your cool app. Enter today!

Embarcadero Cool App Contest

Posted in News | 2 Comments

More New MVPs

I’ve got another large group of MVPs that have just signed up. They will appear in the MVP directory soon, but until then you can discover more about them here:

For those of you keeping count, that puts the total number of MVPs over 100.

Posted in MVP | 1 Comment

MVP of the Week: Nirav Kaku

Nirav KakuThis week we are spotlighting our MVP Nirav Kaku from Mumbai, India. I had the opportunity to meet Nirav while I was visiting Mumbai and he showed me around India and took me to dinner.

One of the places we visited was Banganga Tank and one of the temples in the Walkeshwar Temple Complex. It was a great experience.

Banganga Tank

diyas at Banganga Tank Banganga Tank  Banganga Temple shikhara

Nirav runs a software development company in India where he employes 6 other Delphi developers. They provide a software as a service system to the high end corporate taxi service. It includes both mobile and web based aspects, all developed with Delphi (with a little HTML, JavaScript and PHP mixed in). It currently services a fleet of 1000 taxis and their drivers. For the back end they use both DataSnap and the Delphi MVC framework. Here are a couple of his developers I met while I was visiting.

Nirav's Developers

As an MVP and profession software developer he spends a lot of time researching technology and development topics, and then holds one day training sessions where he shares some of what he’s learned.

Nirav Kaku

[Download]

Posted in MVP, News | Leave a comment

MVP of the Week: Bertie Buitendag

Bertie BuitendagThis week we are spotlighting the work of Bertie Buitendag, our MVP from South Africa. He is a lecturer at Tshwane University of Technology. He was instrumental in the school system adopting Delphi for early education. He also worked to develop the curriculum for teaching computer programming in basic education.

If you check out his blog, he regularly blogs about educational events in South Africa where students and faculty learn more about Delphi. If you check out his YouTube Channel you can see some of the videos he’s put together covering different topics on Delphi.

You can also see Bertie and some of his students from South Africa in the recent Inspire, Develop, Excel video.

If you are interested you can check out the Implementation Plan for Standardising Programming Language for Information Technology for 2015 that provides the argument for using Delphi in schools. It provides a lot of great points.

It was unfortunate that a few schools insisted on staying on Java, but most of them are now standardized on Delphi thanks to Bertie!

Posted in MVP, News | 5 Comments

MVP of the Week: Nick Hodges

Nick HodgesI feel like I’ve known Nick Hodges as long as I’ve been using Delphi. He is as much a part of the Delphi community as anyone else, especially with the distinction of writing the first 3rd party component for Delphi: TSmiley. I believe Nick was also an original member of TeamB, moderating the forums, and wherever there is a conversation about Delphi, you will probably find him there.

AthenaIn 2004 Nick won the Spirit of Delphi Award, a very prestigious honor in the Delphi community. I was at BorCon that year, but I knew Nick previously from the TDAG mailing list I frequented. I even snagged a photo of Nick receiving the award, but the camera on my Sony PDA didn’t do it justice (I’ve since lost both).

In 2006 Nick joined DevCo (as it was then called) as the Delphi product manager. This was during that transition period between Borland and Embarcadero. The company was DevCo for a short period of time, then became CodeGear. Nick later went on to run R&D at Embarcadero.

While at Embarcadero Nick hosted his own podcast The Delphi Hour. You can still find an archive of the episodes on the Delphi Wiki. Nick is also a top contributor there, a great resource about the Delphi community.

After leaving Embarcadero (around 2012) he was famously in a commercial for the Gateway Ticketing (where he was their product manager) that was a satire of the Intel commercial with Ajay Bhatt. Unfortunately I can’t find a copy of the commercial anywhere. It was amazing. Imagine it just like the original Ajay Bhatt commercial, but with Nick Hodges, and then at the end everyone is chasing him down the street.

Nick was my guest for the 2nd episode of my Podcast, back in 2008, and returned a few more times as a fairly regular guest. I just listened to that 2nd episode again, and I had a lot of fun with sound effects. Need to do some more of that in the future.

Recently Nick has released two fantastic books on Delphi development. One great thing about these books is they aren’t just about the fundamentals of Delphi development, like so many other books out there. Instead they are about how to take your development to the next level. Great books for all Delphi developers out there. I believe Nick might be working on a new book, but no word for sure.

Coding In Delphi  More Coding In Delphi

Nick is regularly presenting in person and online. He recently returned from presenting at the DAPUG meeting in Denmark.

Nick Hodges in Denmark

You can catch some of Nick’s online presentations too . . .

I’m sure even with all that I’ve covered in this blog post, I’ve just scratched the surface of Nick’s contributions to the Delphi community. Thanks Nick for all you do!

Stay tuned for another podcast with Nick in the near future.

Posted in MVP, News | Leave a comment

MVP of the Week: Yilmaz Yörü

Dr. Y?lmaz YörüThis week’s MVP spotlight is on Dr. Yilmaz Yörü from Eskisehir-Turkey. He graduated from the department of Mechanical Engineering of Eskisehir Osmangazi University in 1997. He received his M.Sc. and Ph.D. degrees from the same department/university. Some of his interests are Programming, Thermodynamics (Exergy), Fluid Mechanics and Artificial Intelligence. He also likes graphical design and high-end innovations.

Video slide show . . .

Screenshots

DISS_HeatPumpSystem AnaBilge_Oyun3 AnaBilge_Analiz AnaBilge_Oyun1 EYO1_Okullar PumpX DusX PhenofNS XMPro_Satislar

Posted in Audio podCast, MVP, News, podcast, Video podCast | Tagged | Leave a comment

Where is the ActiveX Project Type for Delphi 10.1 Berlin?

In 10.1 Berlin the ActiveX project types are missing from the New Items Window under Delphi. They are there for C++Builder, but not for Delphi.

Missing AcitveX

This only happens if you use the shiney new Feature Installer that was introduced with 10.1 Berlin. So if you use the old offline ISO installer then it shows up fine.

[Update: This was just fixed in the installer. So if you download and install after today everything will work great!]

Turns out though, it is only a simple registry issue. Instead of explaining the details behind why, here is the quick and easy work around.

  1. Close RAD Studio or Delphi 10.1 Berlin.
  2. Open RegEdit
  3. Browse to “HKEY_CURRENT_USER\SOFTWARE\Embarcadero\BDS\18.0\Known IDE Packages\Delphi”
  4. Find the entry named “$(BDS)\Bin\delphicompro240.bpl” and change the value from “__(Untitled)” to “(Untitled)”. Here is a before screenshot:
    RegEdit
  5. And here is an after screenshot (notice the missing double underscore)
  6. Then restart your RAD Studio or Delphi 10.1 IDE and bask in all the ActiveX glory that you have restored!
    ActiveX Success
  7. Now you can create a new ActiveX Library or Type Library with your favorite programming language.

Interesting story, long ago a friend of mine worked for a software development company that used Visual Basic. He was in the “skunkworks” division that used Delphi to create all the ActiveX components that the Visual Basic developers used. There were 2 Delphi developers and about 50 VB developers. Whenever there was something that couldn’t be done in VB (which happened a lot) then they would make a new ActiveX in Delphi for them.

My friend showed him that they could actually out produce the VB developers with Delphi, but his boss was convinced that they were a VB development firm, and didn’t want to switch to the superior development tool. Unfortunately VB has died off, and all of those developers lost their jobs. My friend is glad he stuck with Delphi.

Posted in News | Tagged , , , | Leave a comment

MVP of the Week: Danny Wind

DannyWindThis week we are highlighting Delphi and InterBase MVP Danny Wind. He is an experienced Delphi trainer, consultant and developer for the Delphi Company. He specializes in FireMonkey, User Interfaces and Threading. Danny is also a regular speaker at Developer Days, at SDN conferences, and Delphi launch events in the Netherlands or Belgium, as well as the Delphi training days in the Netherlands. Virtually he is a frequent presenter at our CodeRage online virtual conference, and is regularly blogging.The Delphi Company

You can follow Danny on Twitter, YouTube or LinkedIn. Look forward to a podcast episode with Danny soon as well.

Posted in MVP, News | Leave a comment