Hi!
There's another point where AI might shine: Given the complexity of today's libraries and classes, a beginner may frequently know what they need, but which class and which feature can provide what they are looking for?
Most of the time there's more than one way to do it (
https://wiki.c2.com/?ThereIsMoreThanOneWayToDoIt). But which one is the best for the current situation?
I think AI can do a better job than Eiffel studio can do today.
Ulrich
14.12.2025 13:27:22 Liberty Lover <
rix....@gmail.com>:
>> *RE: It's really impressive what's possible today ... *
>>
>> Indeed it is. The question beyond impression is usefulness and utility, right?
>>
>> *RE: Naming of features properly (and guidelines), features name changes, (because I found something better). Did Claude or you pay attention to the names used?
>> *
>> First, I apologize for the massive onslaught of text, messages, and code that I have thrown at you folks. No apologies from any of you are needed. It has been me who has overwhelmed all of you with a mountain of material.
>>
>> Second, the answer to your question is, yes. There was a really massive refactor that I worked with Claude to accomplish around semantic framing[
https://github.com/simple-eiffel/claude_eiffel_op_docs/blob/67ddc28e2b4fceb004dd83914d340d0373d5ae5f/SEMANTIC_FRAME_NAMING.md]. The idea to do this came from the intersection of my theological work and watching Claude sometimes "hallucinate" names. It isn't hallucinating in the classic sense of course. It's choosing what its training data says is right for the context. We do the same thing just like you wrote ("because I found something better"). But that is later in your own process. Initially, you choose a name that fits your semantic frame in whatever context you're in — you name as you know. Claude does the same thing. The purpose of our refactor was simple: Take the viewpoint of each client consumer library and determine the range of names that someone in that semantic frame might be most inclined to choose and give those names to the supplier's API features. The hope of doing this was to have those names waiting and available on the API for future programmers (or AI's) to "see" and "use" (call).
>>
>> RE: "Testing each class individually is good, but occasionally I find that the interface needs adjusting when actually using the classes. So: Did you or Claude try to build a "demo application" that uses preferably all classes and features in some realistic way?"
>>
>> There are several approaches to this, yes? The first tier of testing are the contracts in the code. They form the closest semantic framing of the Client-Supplier relation. Next up are the test classes that test not only the features of a single class, but also the interactions between them. Third up will be Client consumer libraries and mock applications (or even internal "real" applications). Early on, I worked with Claude to make a number of "MOCKS" to do precisely what you're asking about: Exercise the code from something that resembled a "real world" application. Now, admittedly, there is a bias here: Claude and myself. We are not you or a billion other human beings with their own minds, contexts, semantics, experience, range, domain, and biases. So, we're limited. That is true of everyone sitting in the developer seat with no regard to AI or human.
>>
>> Have I applied the "MOCKS" idea to everything? No, I have not. Should I apply them? Yes, I think so and for obvious reasons. However, so far, my time has been given to expanding the scope (range, domain) of the libraries as a set. I have been doing this in view of a single goal: Give "Simple Eiffel" as an Eiffel library ecosystem a competitive range of libraries to demonstrate a few key aspects — to demonstrate:
>>
>> 1. The speed at which they can be built by an AI+human pair.
>> 2. The level of completeness — each library has been built with 7 research steps (example for GRPC[
https://github.com/simple-eiffel/claude_eiffel_op_docs/blob/main/research/SIMPLE_GRPC_RESEARCH.md]).
>> 3. The level of quality — especially with the Eiffel compiler and DBC in full view.
>> 4. The adaptability — how do we "see" a need and then respond?
>> 5. The correctability — what happens when we get something horribly wrong (which happened with the recent testing refactor - now corrected)?
>>>>>>> | simple_gui_designer | GUI_DESIGNER_SCREEN.make("id"),
spec.name[
http://spec.name][
http://spec.name] | make(id, title) - 2 args, spec.app_name |
>>>>>>> | simple_setup | SST_INSTALLER.make("App", "1.0") | make(manifest) - takes SST_MANIFEST |
>>>>>>> | simple_ucf | UCF_LIBRARY.make("name"), ucf.has_errors | make (no args), ucf.last_errors |
>>>>>>>
>>>>>>> Missing Infrastructure
>>>>>>>
>>>>>>> - simple_eiffel_parser: ECF was missing simple_testing library in test target
>>>>>>> - simple_testing: ECF had cluster name conflict ("testing" vs ISE's testing library)
>>>>>>> - simple_ci: No test target existed in ECF
>>>>>>> - simple_mongo: Library is empty
>>>>>>>
>>>>>>> The Lesson
>>>>>>>
>>>>>>> I should have:
>>>>>>> 1. Read the actual class implementations before writing tests
>>>>>>> 2. Compiled incrementally as I created each test file
>>>>>>> 3. Not assumed API signatures based on typical patterns
>>>>>>>
>>>>>>> The ~3 hours of work today was largely spent fixing what should have been caught yesterday if I had compiled as I went.
>>>>>>>
>>>>>>> So, there you have it. The refactor is done. I have been spot-checking Claude while it was fixing its mistakes. So far, everything is looking pretty good. I even like how it set up the testing of simple_testing (testing the tester).
>>>>>>>
>>>>>>> Cheers,
>>>>>>>
>>>>>>> Larry
>>>>>>>
>>>>>>> [Bild][audit-summary-simple_libs-test-refactor-of-60-libs.png][cid:c6cdda30-5a56-4c8d-8f3c-fe7498a5f57d]
>>>>>>>
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, send an email to
eiffel-users...@googlegroups.com[
eiffel-users%2Bunsu...@googlegroups.com].
>>>>>>> To view this discussion visit
https://groups.google.com/d/msgid/eiffel-users/03c51c1d-3e99-475e-9709-3d3443afbc26n%40googlegroups.com[https://groups.google.com/d/msgid/eiffel-users/03c51c1d-3e99-475e-9709-3d3443afbc26n%40googlegroups.com?utm_medium=email&utm_source=footer][https://groups.google.com/d/msgid/eiffel-users/03c51c1d-3e99-475e-9709-3d3443afbc26n%40googlegroups.com%5Bhttps://groups.google.com/d/msgid/eiffel-users/03c51c1d-3e99-475e-9709-3d3443afbc26n%40googlegroups.com?utm_medium=email&utm_source=footer]].
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an email to
eiffel-users...@googlegroups.com[
eiffel-users%2Bunsu...@googlegroups.com].
>>>> To view this discussion visit
https://groups.google.com/d/msgid/eiffel-users/CA%2B3qnjek8D0Fj_rWx0va2hwmbe4DRVp7EgXoBRt1rG-Wrq87pg%40mail.gmail.com[https://groups.google.com/d/msgid/eiffel-users/CA%2B3qnjek8D0Fj_rWx0va2hwmbe4DRVp7EgXoBRt1rG-Wrq87pg%40mail.gmail.com?utm_medium=email&utm_source=footer][https://groups.google.com/d/msgid/eiffel-users/CA%2B3qnjek8D0Fj_rWx0va2hwmbe4DRVp7EgXoBRt1rG-Wrq87pg%40mail.gmail.com%5Bhttps://groups.google.com/d/msgid/eiffel-users/CA%2B3qnjek8D0Fj_rWx0va2hwmbe4DRVp7EgXoBRt1rG-Wrq87pg%40mail.gmail.com?utm_medium=email&utm_source=footer]].
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an email to
eiffel-users...@googlegroups.com[
eiffel-users%2Bunsu...@googlegroups.com].
> --
> You received this message because you are subscribed to the Google Groups "Eiffel Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
eiffel-users...@googlegroups.com.
> To view this discussion visit
https://groups.google.com/d/msgid/eiffel-users/CA%2B3qnjcGPQUVX7gGwaxX%2BYV5mXt2_diVgKS%2B7EFfod6y9Z3RDw%40mail.gmail.com[https://groups.google.com/d/msgid/eiffel-users/CA%2B3qnjcGPQUVX7gGwaxX%2BYV5mXt2_diVgKS%2B7EFfod6y9Z3RDw%40mail.gmail.com?utm_medium=email&utm_source=footer].