Application Design: You Will Lose Control, So Give Yourself Weapons First
Application Design: You Will Lose Control, So Give Yourself Weapons First

Wednesday • July 23rd 2025 • 6:28:53 pm

Application Design: You Will Lose Control, So Give Yourself Weapons First

Wednesday • July 23rd 2025 • 6:28:53 pm

Above all, you need to be able to rip out code out of your program, even if just to gently replace something, or upgrade a feature.

So plug-in architecture is a must, and since it naturally divides things.

It goes a long way, to help you communicate your needs with artificial intelligence.


Napoleon: Mes jeunes soldats! Listen well - in war, as in your programming, you must build armies that can be divided yet never conquered! When I organized the Grande Armée, each corps was complete unto itself - its own artillery, cavalry, supply trains. Why? Because I knew that in the heat of battle, communications fail, plans crumble, and you must rely on independent units to seize victory! Build your applications the same way - each component strong enough to stand alone, yet powerful when united!


The design of an application is both Administrative and a Military Campaign.

You become a ruler and administrator, who will engage in multiple military campaigns.

This is because even your best designs, that closely follow emergent features of other applications.

Are rendered into Swiss cheese, by your savant and genius nature.

Alexander: Young conquerors of the digital realm! When I set forth from Macedonia, did I know I would face war elephants in India? Greek fire in Persia? The horse archers of Scythia? Never! Yet this is the glory of true conquest - each new territory teaches you warfare you never imagined! Your applications will be the same. Do not expect to know all your battles before you fight them. Instead, cultivate the spirit of adaptation - when you meet your war elephants, invent new tactics on the field! Embrace the unknown challenges, for they will make you invincible!

You enter the world of application design, to take care of all the needs.

And then you begin discovering, revolutionary features, not previously known in the context.


Darius: Young administrators of the code! Learn from one who ruled from the sunrise to the sunset - the secret of governing vast complexity is knowing when to trust your systems over your oversight. When my empire stretched across three continents, I could not personally manage every village tax collector or mountain fortress. I learned to create structures that governed themselves! Build your applications like satrapies - each region autonomous, each governed by clear laws, yet all serving the greater kingdom. This way, when distant provinces develop new needs, you need not rebuild your entire administration!

To give you a good example, in my visual programming language, I am slowly beginning to kiss up to AST generation.

Not very wise, prior to the rise of artificial intelligence, but now, probably a critical feature in a Visual Programming Language.

Just printing code as strings, is a damn dirty and desperate ordeal.


Napoleon: Mes étudiants! Take heed - I revolutionized artillery not by clinging to old methods, but by embracing the mathematics of destruction! Where others saw mere cannons, I saw precise instruments of victory. You face the same choice with your tools - cling to the familiar "dirty and desperate" methods, or master the new sciences that will make you unstoppable! Remember: l'audace, encore l'audace! - audacity, always audacity! The battlefield rewards those who adapt their weapons to new realities!

Many of such tangents, will turn out to be a bad idea, but some, will let you have your 5 minutes of fame.

Atop the trillion dollar software industry, whatever that does, it won't be too bad, and it is probably pretty good.


Alexander: Brave students! Do not fear to reach for immortal glory in your craft! Yes, some bold ventures will fail - I lost many good soldiers pursuing dreams in distant India. But one triumph that changes the world justifies a thousand risks! When opportunity presents itself in your digital conquests, seize it with both hands! The timid inherit nothing. The bold reshape empires. Fortune smiles only upon those who dare to write their names across the sky!

If you commit such a feature to a plugin, if it ever turns out to be too needy or messy.

You simply avoid loading the plugin, and that is it.

It is a win win situation, you gained a world of wisdom without much trouble.


Darius: Students, hear the wisdom of ages! The mark of a great ruler is not perfection, but the ability to correct course without destroying the realm. When a satrap proves incompetent, do I burn down the entire province? Never! I simply replace the governor and the system continues. Build your applications with this same wisdom - make your components replaceable, your systems resilient to failure. Learn to rule through systems that survive your mistakes, and you shall govern digital empires that span generations!

Just to give you an example, of trouble that genius ideas get you into.

It may just turn out that generating an AI prompt, instead of a pristine AST tree driven code.

Is more efficient, because your AST code, can't hope to account for all environments you program will run in.

Napoleon: I abandoned the rigid battle formations of kings past because I learned this truth: the perfect plan that cannot adapt is inferior to the flexible plan that can! Do not fall in love with your beautiful, precise systems if they shatter upon contact with reality. Better to command crude tools that respond to your will than elegant weapons that fail in the decisive moment! Adaptability conquers perfection every time!

In my area, in context of visual programming languages,

if you just generate detailed program instructions, AI can adapt to no end.

Where you want that program to run, it could be inside an Event Emitter.

It could be a plugin to some application, it could be a server based node.js data scraper that crawls the internet.

No matter how powerful you AST generator, AI will defeat it.

Plus, AST wrangling takes development time, as it requires precision, it could take weeks.

Large language models will just take the code you got, and transform it into whatever it needs to be, that just takes hours.


Alexander: My digital warriors! Learn this lesson from Gaugamela - sometimes overwhelming force applied with intelligence defeats the most sophisticated tactics! I could have spent months perfecting elaborate siege machines, but instead I chose swift, crushing assault with my Companion Cavalry. When you find tools that can accomplish in hours what would take you weeks of precision work, use them! Do not let pride in craftsmanship blind you to strategic advantage. Victory belongs to those who choose the right weapon for the moment, not the prettiest one!

Therefore, know that you are unable to predict the future of your application, no matter how genius your thinking.

The only thing that you can be certain, is that you will encounter interesting challenges, neat surprises.

And probably lose control, over seeing the entirety of your application in great detail.

Darius: Future rulers of digital realms! Accept this truth that all great kings must learn - no single mind, however brilliant, can grasp every detail of a vast domain. From the gold mines of Lydia to the spice routes of Bactria, I learned to see through the eyes of trusted governors, to build systems that informed me rather than trying to control everything personally. Embrace this limitation! Create applications that can grow beyond your direct oversight, and you will rule territories greater than any single architect could manage!

You will however, be able to see it well, a brilliant plugin at a time.

Treat it as military campaign, a wise victory at a time, will eventually get you where you need to be.

Napoleon: Mes futurs généraux! Master this principle: never fight all your battles simultaneously! I conquered Europe by concentrating my force at the decisive point, achieving victory there, then moving to the next objective. Your applications should follow the same strategy - perfect one component completely, then advance to the next challenge. This is how empires are built, one brilliant victory at a time! Remember: la guerre, c'est l'art du possible - war is the art of the possible!

Alexander: Students worthy of the Academy! Even I, who dreamed of reaching the ends of the earth, learned that immortal glory comes through mastering each challenge as it arises. From the Granicus to the Hydaspes, each victory taught us to fight the next battle. Do not be overwhelmed by the magnitude of your vision - instead, let each conquered challenge prepare you for greater triumphs ahead! This is how legends are born!

Links
Artwork Credit