Monday, March 23, 2026

How AI is going to change the way we code and teach coding

Artificial Intelligence & AI & Machine Learning - 30212411048
AI is already changing the way developers are approaching the development of code.  I already spend a good bit of time directing AI in the features I'm building.  Many schools have already added classes to incorporate the use of AI into development, and there's also classes being provided by AI developers to train people how to use the tools. But here's the rub, how does one gain the expertise I have without having had to do the work that I've done that makes able to correctly guide the AI in the first place?

With training changing, and development approaches also changing, will we reach the stage of Roman Concrete, in which up until recently, we couldn't do that anymore because the knowledge was not passed on?

Think about your development infrastructure, Maven, MySql, DynamoDB, Node, NextJS, AWS S3, SQS, SNS, Azure Blob Storage, SQL, et cetera?  How will AI influence changes in that infrastructure and the APIs to manage it to make it easier to AI to develop applications for it.  Will there be a new "REST" approach that incorporates what we've learned about using AI in development that makes AI assisted development better?  Will we stop writing our APIs using Swagger or OpenDoc and start writing Markdown documents that help AI build an appropriate MCP or a skill instead?  With spring-boot go away or be replaced by an AI-oriented substitute?  Will our CLIs become AI advisors?  Will we have to tell it three time to "sudo rm -r *"?

Will we be stop being able to write code without our AI symbiotes?

These are NOT things that keep me awake at night, but they do deserve some consideration.

     Keith


Sunday, March 8, 2026

Some thoughts while working with HAPI FHIR

As far as I'm concerned, HAPI on FHIR is THE way to go when working with FHIR Resources in Java.  However, one of challenges I've had with HAPI is having to write conditional code based on the type of resource I'm working with when I'm handling similar fields, for example setPatient/getPatient/hasPatient or setSubject/getSubject/hasSubject.  A number of FHIR Resources have these common setter/getter patterns, and not just with references.  Another example is for primitive fields, such as dateTime.

This makes writing automation code somewhat difficult.

I'd love to see some interfaces defined for common 5W patterns that are commonly used on FHIR Resources be introduced that encapsulate the set/get/has methods.  These interfaces could be named using the pattern: HasX or HasXList, where X is the field name.  Some examples of these follow:

public interface HasSubject {
   HasSubject setSubject(Reference subject);
   Reference getSubject();
   boolean hasSubject();
}

public interface HasOrganizationList {
   HasOrganizationList addOrganization(Reference);
   Reference addOrganization();
   List<Reference> getOrganization();
   HasOrganizationList setOrganization(List<Reference> orgList);
   Reference getOrganizationFirstRep();
}

This would mean that I could use:

if (x instanceof HasSubject hs) {
   hs.setSubject(patient);
} else if (x instanceof HasPatient hp) {
   hp.setPatient(patient);
}

Which would make certain automation related code a lot easier.

You might need to make the interfaces use a template parameter for the type to address certain differences in name use, e.g., HasEffectiveTime<DateTimeType> or HasEffectiveTime<InstantType>.