-
Content Count
105 -
Joined
-
Last visited
Posts posted by Juan C.Cilleruelo
-
-
Programming with AI Assistance
Introduction
I’ll take a few minutes to explore the current relationship between AI and programming, as of March 4, 2025. AI evolves so rapidly that claims need constant reassessment. A year ago, I argued AIs relied solely on their knowledge base, not internet searches—a point now outdated, as they do both. So, let’s dive into the key question: Can AI fully replace a programmer today or soon?
Can AI Replace Programmers?
The short answer is no, and here’s why. Claiming AI can replace a programmer assumes it can flawlessly interpret a designer’s or user’s instructions without ambiguity, generate error-free code, and fix mistakes after the fact. It also implies the AI can review and adapt existing code to meet new or corrected requirements as an application evolves.
Picture a dialogue with an AI to build a program. It could stretch over days or weeks, requiring constant backtracking to resolve misunderstandings. Each revision would alter the program, spawning fresh errors—something programmers know all too well. Iterations might edge us closer to the goal, but sifting through endless chat logs to spot where communication faltered would be exhausting.
Now, suppose we had a tool tailored for this AI interaction, resembling an IDE (Integrated Development Environment). It could let us search and document requirements, track how new ones affect old ones, and perhaps include a UML generator. Sounds helpful, right? Maybe not—it’d likely just pile another layer of complexity onto development, one still reliant on skilled programmers or analysts to feed it.
Even if we fed this knowledge into an AI, it’d need deep familiarity with IDEs or command-line tools to produce the final program. More critically, someone must verify the output meets requirements and works—not just compiles cleanly. Maintenance adds further hurdles: when users report issues in production, do we tweak the original requirements and regenerate the code, or prompt the AI to patch its own prior work? It’s a tangled mess, don’t you agree?
Those videos touting “code an app with AI, no skills needed” are like ads promising “speak English like a native.” It’s a hollow pitch—you won’t master it without the foundation, though exposure might sharpen your skills.
AI as a Programmer’s Ally
So, are those videos about coding with AI useful? No. Their makers aim to entertain you (and rake in ad revenue) while flexing their cleverness—not to teach you AI mastery. Their business would dry up if they did. But here’s a better question: Can AI boost a programmer’s performance? Absolutely, without a doubt.
Practical AI Techniques
AI won’t replace us—it empowers us. Here’s how I use it daily:
-
Setup: I keep profiles on key AIs—Grok, GPT, DeepSeek, Mistral—ready in browser tabs that auto-open. Even if I rarely touch the last two, they’re there when needed.
-
Function Generation: For standalone functions with clear inputs and outputs, I ask the AI to draft them. Early results may not compile, but they give me a head start. With practice, I’ve honed prompts to get working, compilable code on the first go.
-
Bug Hunting: When my code has a sneaky bug, I pass it to the AI with a description of the unwanted behavior. It often pinpoints the fix.
-
HTML Cleanup: Hand-edited HTML can turn into a cryptic mess. When it’s unreadable, I hand it to the AI to refine and flag errors—a real time-saver.
-
Instant Help: The F1 key once gave contextual IDE help; now I ask the AI for explanations on terms, classes, or functions. It delivers detailed answers and examples, often tailored to my project if we’ve been chatting.
-
Documentation: Most coders dread documenting modules, yet it’s vital for maintenance—the costliest phase of software life. I task the AI with it, specifying depth and skipping obvious lines or pseudocode comments.
-
Performance Tweaks: Facing a bottleneck? The AI can estimate runtimes from source code alone and suggest optimizations—no execution needed.
-
Unit Tests: Tedious, repetitive unit tests are perfect for AI. Give it a controller interface, and it churns out tests fast, ensuring reliability even after changes or integrations.
-
REST Integration: Beyond chat, I’ve built REST interfaces in my programs to query the AI directly with precise prompts, embedding its responses into the app. For example, I use a Stub program to generate varied test data (e.g., JSON arrays of names, split by nationality or location) instead of relying on monotonous random lists. It’s efficient and spares me manual coding.
Mastering these techniques—especially REST-driven data generation—lets you apply AI creatively in client projects. The possibilities far exceed this article’s scope, but paired with the next approach, they’ll transform you into a sharper developer.
Beyond the Technical: Prospective Thinking
AI shines beyond pure coding tasks in what I call "prospective interactions." Before starting a project, I weigh my options—techniques, code structure—and consult the AI. I list my alternatives, and it reasons through the best path, explaining why. I don’t always follow it, but it clarifies my choices. Better yet, I’ll ask it for fresh angles I hadn’t considered. That’s when coding becomes exhilarating—you shift from a technical grinder to a creative problem-solver. That’s the real power of AI as a programming partner.
-
3
-
Setup: I keep profiles on key AIs—Grok, GPT, DeepSeek, Mistral—ready in browser tabs that auto-open. Even if I rarely touch the last two, they’re there when needed.
-
-
Tired of creating the descendants of TActiveRecord by hand?
GitHub MVC_AR_EntityGenerator is an OpenSource project developed in Delphi XE 12 that takes the metadata of your Database and creates one class ActiveRecord of each Table in the Database.
You can generate the AR of one table or one AR class for each table in the Database. You can indicate in which folder the AR file should be deployed, and the program will remember it.
Each AR is generated in an independent .pas file.
And this is only the Beta version.
You save all the information used to generate the AR; when you need to develop it again, you only need to use it.
In the next version, we plan to implement more types of AR, like, for example, AR with a Master-Detail Relationship.
In the current version, you can change the name of the Class generated. This is useful when you want, for example, the AR class representing one member of the entity Customers, instead of being named TCustomers, to be named TCustomer; that is more accurate.
I want to implement, too, a connection with the AI (probably Chat-GPT) to ask directly for the translation of the plural table names to singular class names. In this target, I want the AI to modify the table name to respect the Camel Style of Pascal Class names. For example, a table named Items_Owned_by_user is currently created as TItemsownedbyuser. The AI can easily convert this to TItemsOwnedByUser, which is more accurate to the style of Pascal code.
And many more things can be made with an open-source project. Do you don't think it!!
Try it, and let us know what you think!
Thanks
PD: The project is also an excellent example of using SQLite as a memory store for the data and treating this data as a standalone project, in contrast to the concept of a Database on Disk, which is more current in Delphi.
-
1
-
-
7 hours ago, Lars Fosdal said:Ctrl+Shift+V = paste as plain text.
Thanks!
-
4 hours ago, Brian Evans said:Not sure ARM will avoid the fate of the Motorola 68000 and PowerPC when going against x86 head on. The size of the full x86 ecosystem means there is much more money for processor development so that even when a competitor gets in a few wins it often falls behind over time. ARM has racked up some solid wins due to circumstances that are changing - x86 is no longer stalled by AMD (Bulldozer) or Intel (14nm) with both now making solid progress.
Apple added support for the x86 memory access model to the M1/M2/M3 processors which makes running multi-core x86 emulation much easier and higher performing. This means during Apple's transition to ARM the latest x86 based Mac software runs well on the new M1/M2/M3 hardware. Since no other ARM systems currently have anything equivalent it means the latest Windows x86 software will run comparatively poorly on an ARM based system. That makes any transition or even just fielding Windows ARM systems harder as some programs will fare poorly. Apple has really aced the transition to ARM.
I think x86 will remain strong due to the large legacy and current software libraries. Same for Windows itself. I do not think Windows for ARM will succeed - it can't run modern x86 software well making any transition off x86 very rough.
"640 Kb of RAM is sufficient for many years of PC evolution. Don't worry".
I think that in the last quarter of 2024, there will be a lot of PCs with ARM. Probably running poorly programs compiled natively for the Win64 platform.
I think that the concern of Embarcader must be to develop a WinArm compiler for Windows as soon as possible. -
1 hour ago, Lars Fosdal said:11.3 works well on WfW for ARM under Parallells on my MBP M1 Pro.
The problem, at least for me, is not about running Delphi on Windows ARM. Instead, is about when is Embarcadero going to include Windows for Arm native compilation for Windows.
-
4 hours ago, Der schöne Günther said:I have not been keeping up with the news. Are there really lots of incompatibilities on Windows on ARM left?
I thought some DirectX and OpenGL stuff (games, mostly) will not work, but apart from that 99,9% of all "regular" software should?
Microsoft is an enterprise, not an NGO. Because of this, you cant think about this: Why Windows for Arm is not still a commercial product?
99.9%??? jajaja. Try to do something serious with it and you are going to see the problems.
-
18 minutes ago, Cristian Peța said:Apple is giving you no choice. With Windows people can choose and there are not so many eager to embrace this change.
Sure? Intel apps for Mac OS work well in Arm Macs, thanks to Rosetta 2.
Probably, the problem is that Microsoft does not have this technology.Arm technology allows, with the same batteries, more than 20 hours between charges, for example.
Arm technology allows a much more power computation, without consuming more energy.
Really do you think that the future is Intel architecture?
Or do you think that Intel is ready to create processors without these limitations?
-
1
-
-
1 hour ago, Der schöne Günther said:I struggle to understand what message this article is really trying to bring across.
I think it's speaking about the gap that is currently becoming between Apple and Windows technologies.
Since Apple is embracing ARM architecture, Microsoft is still waiting to no one know what, while in the field of hardware, the technology was ready a time ago.
Even Chrome OS was adopted ARM quickly. It was very easy in this case, of course.
-
47 minutes ago, David Heffernan said:Really not enticing me to click on this link by posting in a huge font with no summary or commentary.
It was because of copy&paste in these forums. It's not intentional.
-
-
https://www.neowin.net/news/microsoft-launches-arm-advisory-service-to-help-developers-make-windows-arm-based-apps/
Microsoft has just launched a new and free program for Windows developers who need assistance in adapting their Windows apps to run on Arm processor-based PCs. The program is called the Arm Advisory Service. -
1 minute ago, David Heffernan said:What do Macs come with that equates to Office?
I think you need to work with Mac for a year before making opinions of it.
-
2 hours ago, Lars Fosdal said:I've run
- RAD Studio (32-bit) and Windows apps (32 and 64-bit) made with it
- Visual Studio 17.4 (64-bit) and .NET apps made with it.
- GitKraken (Electron)
- VS Code (Electron)
under Windows 11 for ARM in Parallells on my MacBook Pro M1.
Windows 11 for ARM emulates x86 and x64 apps pretty darn good - there is no need to have a native ARM app.
Considering my projects compiles faster in RAD Studio under Windows 11 for ARM in Parallells under MacOS, than on my one year old Lenovo P16 i7. I am not sure what went wrong for you.
Try this: Matlab.
-
2 hours ago, David Heffernan said:Price of Apple more like
I don't want to enter in this stupid way. A computer of others, MSI, Asus, Dell, Lenovo or HP, with the same characteristics can double the price of the Apple.
And it doesn't have an Office suite. You need to pay it apart every year!
You save money if you steal the Operating System and the Office Licence. Or if you install Ubuntu or similar and take a for-life war with drivers, programs and configurations.
In my career, I'm in the next stage: I want things to work and dedicate my time to doing things, not to solving the problems of others.
In Mac, you don't need to steal anything. It's all in one forever.
And always working.
The only brand that has a product similar to Apple, after a very, very, very conscious comparison, is Microsoft. The Surface Laptop 5 with 32Gb RAM and 1Tb SSD is very similar to the Mac Book Air I first bought. With the discount, even the price was very similar.
-
5 minutes ago, Der schöne Günther said:Yes, there is software that might not run out of the box (like apps based on OpenGL or DirectX), but for "regular users", most software runs without users even realizing it is being emulated.
This is a great lie by Microsoft. Not only this type of program doesn't work on Windows ARM. I've tried it and, for any type of program, if you don't find a version with the label ARM, it doesn't work on Windows ARM.
Sometimes, with the label ARM, it doesn't work either.You can read a lot of things about Windows ARM from Microsoft and from testers of computers, etc. But I tried it for days and I have the real experience. Nothing works well on Windows ARM. Currently.
-
9 hours ago, David Heffernan said:ARM has to win in the end at least for portable devices.
This seems logical, but it is not a reality at this moment, nearly two years after the launching of Macs with M1 and M2 chips.
I think that is a loss of sales among engineers on the side of Apple. Maybe Microsoft is thinking that this is a good opportunity and is delaying the development of the Windows ARM.
In my case, that works for Microsoft. I returned the MacBook and bought a Surface Laptop 5. Same price, same quality, same design, but without the magic of Apple. But, when is not possible, is not possible.
-
I've tried Windows ARM, and the applications Win32/Win64 don't work on it.
In Parallels, Matlab directly is not able to be installed.
Really, you don't install Windows ARM. You download a beta version available from the installer.
In VMWare, you can't install not even the VMWare Tools.
In this case, you download a Hard Disk with Windows ARM installed. You need to convert this disk to VMWare format, and you can then run it.
But it's worse than the parallels option. Nothing works well. You can find some software with ARM version that seems to work well.
But the software Win32/Win64 doesn't work on this Windows version, ARM.
My solution was to return my new MacBook Pro to the Apple store and recover my money.
-
I can't find any topic about this new version of Windows that is creating a gap in software development.
Many people have been developing software for Windows inside Windows virtual machines into a Mac OS X.
Since Apple launched the M1 and M2 processors, you need to install Windows ARM, which is still in a beta or less phase.
The significant problem is that the software you use inside Windows ARM needs to be compiled for this Windows version.
I have not heard about a Delphi ARM target platform in the projects.
In what am I wrong about this topic?
-
I'm taking an application of other programmer and I need to debug this application, in the Frontend (VCL) and in the Backend (DMVC), to understand all the techniques used in the source.
I'm thinking about to use Two Virtual Machines in the same host, to allow me to jump from the Frontend to the Backend at any moment.
Both running Delphi but with the correspondant part of the program.
Anyone does this currently? Any consell, tip, trick or advise?
Thank you very much in advance.
-
I think that MVCDelphi is getting many relevance in the world of Delphi Development.
Does anyone think, like me, that we need another forum in the third party group? -
On 1/22/2023 at 8:11 PM, shineworld said:That's what I do:
1) download python embd version.
2) added pip
3) make a backup of this point
4) used pio to install any package
5) used pip to create a requirement.txt of installed packages with version
6) used wheel to download whl of packages from requirements.txt
7) zipped python embd of point 3
😎 used innosetup to install my exe + python embed + whl packages
9) during install placed exe in programs,l paced and extracted python in USERAPPDATA and then with script installed offline pip and whl packages.
In this mode it's simple to upgrade packages with more fresh without touch python things and end user can install python and packages without a internet connection.
I thank your explanation, but I see that the purpose of this method is to allow the final user to update the packages when he wants.
I don't want this. If the final user wishes to have python installed on his machine, he must install it as established and independently from my embedded python.My embedded python shall be updated only when the user installs a new version of my program. This is the spirit of "embedded" in this context.
-
On 1/22/2023 at 1:02 PM, SwiftExpat said:... I then PIP installed the modules so the version of each module is known and can be tested to work.
I can't install the modules with pip. Seems it is not working well;
C:\Views\CuttingBoards\bin\Win64\Python\Scripts>pip install pyvista Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code File "C:\Views\CuttingBoards\bin\Win64\Python\Scripts\pip.exe\__main__.py", line 4, in <module> ModuleNotFoundError: No module named 'pip'
-
6 hours ago, SwiftExpat said:I will add a requirement that you want a stable deployment to test against, so that you can certify your software and have a basic support level matrix.
I think both requirements were implicit in the main ask. But thanks.
6 hours ago, SwiftExpat said:I selected python embedded, so I know my python version is 3.9.x. I then PIP installed the modules so the version of each module is known and can be tested to work.
I then zip all of that up and deploy it as a sub-directory to my executable.
That's the solution I imagined: the response I searched for.
I understand that this is the working method of doing the standalone (embedded) deployments of third-party python tools.
For me, this is the meaning of "correct."
6 hours ago, SwiftExpat said:Correct depends on what you believe you can support on the client system.
I want that, for the client system administrator, to be transparent the installed version of python or the tools added.
If he wants, he cant install his own Python without collision with the python my Delphi program uses.
Thank you @SwiftExpat
Programming with AI Assistance: A personal reflection.
in Tips / Blogs / Tutorials / Videos
Posted · Edited by Juan C.Cilleruelo
The AI that is giving me the most satisfying responses is, without a doubt, Grok. GPT is excellent, too. I use it through the REST service. It is the most simple to implement.
Of course, what I expressed in the post is my personal experience filtered through my capacity to prompt the AI.
That is an essential part of the method. If you ask your AI like you ask Google, you are definitively losing your time.
I read some books and other documents about AI prompting.
If you are looking for a magic collaboration with AI, you only need to wait one year or maybe two. But then you will be out of date.
The time to integrate AI within your toolbox is now. Really yesterday, but you can run.
Everyone has excuses. But what you need at this moment are reasons.
Don't waste your time explaining why not. Do it!