Menu

AI obsoleting OWLNext

2026-01-11
2026-02-26
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-01-11

    Over the last couple of years, AI-assisted software development has become practical.

    Rather than continue to promote OWLNext as a permanent solution for old OWL applications, is it time to recommend using AI to port to a better modern framework instead?

    At least, perhaps we should mention this new option in our wiki (porting guide, FAQ)?

    Anyone out there with experience using AI on OWL projects, esp. for rewriting or refactoring?

     

    Related

    Wiki: Main_Page


    Last edit: Vidar Hasfjord 2026-01-11
    • Ognyan Chernokozhev

      There was recent news about Microsoft converting their codebase from C++ to Rust using AI - but they needed to clarify that it is still only a research project on the viability of it.

      Rather than continue to promote OWLNext as a permanent solution for old OWL applications, is it time to recommend using AI to port to a better modern framework instead?

      Do you mean another similar C++ framework like WxWidgets, or different platform like WinUI3? Because the latter seems to be not so much as porting code, but as "find out all that the application does and then write a new application in this framework".

      Especially in the first case, it seems to me that in order to validate that the ported code does the same as the old one, there should be comprehensive automated tests which the new code should be able to pass. So, as a first step to porting, especially if the code does not have good test coverage already, AI should be used to write those tests (and even if not porting, having good sets of automated tests would be beneficial).

      I have recently attempted to use GitHub CoPilot to create unit tests for some legacy .NET code - and the results were ... mixed. Several times it produced not bad set of tests, sometimes it produced a too small set, and at least time it generated utter nonsense that could not even run correctly.

       
      👍
      1
  • Gianni Rossi

    Gianni Rossi - 2026-01-12

    Hi Vidar,
    Your observation is very interesting.
    As you know, I am still maintaining a very large BC++5.02 / OWL application. Do you think that by using AI, I could skip the transition to OWLNext and rewrite it from scratch for a modern framework?
    If so, could you give me some suggestions for undertaking this task?
    Thank you.

     
    👍
    1
    • Luigi Bianchi

      Luigi Bianchi - 2026-01-12

      Dear Vidar, you raised a very interesting point. Maybe we can arrange a web meeting in which we share ideas, comments, etc... However, I have one big question: which "modern" framework are you considering? wxWidgets? Qt?

       
      👍
      1
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-01-13

    @jogybl wrote:

    [Microsoft going] from C++ to Rust using AI

    Rust has quickly become very popular as a more secure alternative to C++, notably mentioned by governments as one of the safe languages that should be used instead of C and C++.

    Hopefully, C++ can get Bjarne Stroustrup's security profiles soon (or better yet, support for Herb Sutter's Cpp2).

    Do you mean another similar C++ framework like wxWidgets, or different platform like WinUI3?

    Any modern language and active framework may apply, I guess, depending on the project and development goals.

    as a first step to porting, especially if the code does not have good test coverage already, AI should be used to write those tests

    Good advice.

    @georox wrote:

    Do you think that by using AI, I could skip the transition to OWLNext and rewrite it from scratch for a modern framework?

    With the rapid progress in AI, it seems more plausible day by day, I would think. But OWLNext may still be a useful stepping stone.

    If so, could you give me some suggestions for undertaking this task?

    Except for chatbots, I don't have any experience with AI coding assistants and agents yet, so I'm not the best person to ask. But the first step is to learn about the alternatives available and what they can do. As far as I know, Google's Gemini Code Assist, OpenAI's Codex and Anthropic's Claude Code are the current state-of-the-art.

    @luigibianchi wrote:

    Qt?

    Yes, the Qt framework is another popular alternative for cross-platform C++ applications, so might be an attractive option.

     

    Last edit: Vidar Hasfjord 2026-01-13
  • Sebastian Ledesma

    For me, switching LARGE projects to another language, even with IA aid, it's technically and economically impractical.

    Even switching from 'classic C++' to 'modern c++' requires work.

    Moreover, after you move to another framework/language using IA you have to audit that conversion.

    I've have used VCL and FMX in small applications, they are technically very good, but you'll depend on Borland/Embarcadero compilers.

    QT and wxWidgets are more open.
    wxWidgets was also recommended by the same Borland as replacement of VCL.
    I think Qt has better support as it's a commercial license involved.

    My main target it's to move to OWLNext + UNICODE + 64 bits in 'Modern C++', so I will be working in this direction for a time, but looking/learning on Qt and wxWidgets for the upcoming years.

     
    👍
    1
    • Luigi Bianchi

      Luigi Bianchi - 2026-01-16

      I believe it would be beneficial to discuss a potential migration to a different framework and exchange tips or insights. Transitioning from OWLNext would require significant effort and might even be impractical. Based on my research, while Qt is more powerful, it may require a commercial license insome cases; wxWidgets, on the other hand, is free but less feature-rich. However, I have already identified equivalent classes in wxWidgets for my needs, so if I do migrate, that will be my choice.

       
      👍
      1
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-01-16

    @sebas_ledesma wrote:

    Even switching from 'classic C++' to 'modern c++' requires work.

    AI is rapidly becoming superhuman for such tasks.

    Take for example your still open feature tickets:

    With the latest modernisation of TCoolEdit, the code for these parsers are now outdated and need rewriting, as I noted in ticket comments (#9034, #5bd4).

    Presumably, the tickets are still open because you have limited capacity to do this work.

    So I did a quick experiment to see if AI can help.

    Certainly: The free Microsoft Copilot (in "think deeper" mode) is now able to rewrite your XML parser in less than a minute. The resulting code followed the new modern conventions and structure, built without errors or warnings, and ran out of the box pretty well.

     

    Related

    Feature Requests: #268
    Feature Requests: #269

  • Vidar Hasfjord

    Vidar Hasfjord - 2026-01-16

    @luigibianchi wrote:

    Maybe we can arrange a web meeting in which we share ideas, comments, etc [...] I believe it would be beneficial to discuss a potential migration to a different framework and exchange tips or insights.

    For future reference, and to allow everyone to participate, I propose we use this discussion thread to share and discuss anything related to using AI for porting OWL/OWLNext applications to another framework (and possibly programming language).

    Some wiki pages demonstrating how to do this would be nice.

    Also, a wiki page and an FAQ section with general advice on how to use AI assistance on OWL projects would be helpful, I would think.

    I invite everyone to contribute along these lines.

    Personally, I'm considering options for my Lima VVA application, now based on Owlet, my minimalistic experimental branch of OWLNext. It would be cool to rewrite it (and Owlet) in Cpp2, just to explore this direction for C++. Alternatively, rewriting it for a simpler, safer and more feature-rich platform may make the project more amenable to further development and uptake. That said, since I'm now semi-retired, such undertakings are only realistic if I can get AI assistance to work well.

     
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-02-20

    Here are some ideas for using AI to improve OWLNext:

    • Documentation: Make "window.h" and "dc.h" (our largest header files) link into Microsoft's documentation consistently, according to our new coding standard, thereby removing a lot of redundant (and sometimes outdated) documentation. Improve documentation of the code base throughout in a consistent manner. Update the original OWL user guide for OWLNext. Review, revise and update our wiki.
    • Error handling: Error return codes are notoriously ignored, so replace most of them by exception handling ("windows.h" and "dc.h" again come to mind), and mark the rest as [[nodiscard]]. Make exception handling consistent and robust throughout the code base, while rewriting the code to be exception safe. Add assertions in the code where assumptions are implicitly made, as well as preconditions and postconditions.
    • Internal code comments: Clean up comments, remove obsolete comments, and add explanatory comments where appropriate.
    • Coding Standard: Enforce our coding standard guidelines (naming, formatting, etc.).
    • Code review: Review code before commit. Improve commit messages (log), making sure they consistently follow our coding standards. Perform code analysis and repair on the whole code base.
    • Testing: Add test cases where appropriate, and implement an automatic test suite.
    • Complete tickets: Implement bug fixes and requested features.

    Feel free to add to the list.

     

    Last edit: Vidar Hasfjord 2026-02-20
  • Vidar Hasfjord

    Vidar Hasfjord - 2026-02-26

    @jogybl wrote:

    but [Microsoft] needed to clarify that [porting Windows to Rust using AI] is still only a research project on the viability of it.

    AI or not, it turns out the transition to Rust inside Microsoft is well beyond a research project — both Azure and Windows now ship production Rust code.

    Windows 11 24H2 includes a new kernel module, "system32\win32kbase_rs.sys", which is the GDI region subsystem rewritten in Rust. Microsoft has also rewritten DirectWrite (the font rendering stack) in Rust, after years of recurring security issues.

    Azure CTO Mark Russinovich has stated publicly that Azure now mandates Rust for components handling untrusted data, and projects like Caliptra are entirely written in Rust.

    With other industry giants also turning to Rust, it doesn't look good for C++. The ISO C++ standardisation process moves slowly, and the proposed safety features are still up in the air. With AI likely to become superhuman over the next few years (in programming, at least), the transition away from C/C++ to modern safe languages may be swifter than we can imagine.

    See:

     

    Last edit: Vidar Hasfjord 2026-02-26

Anonymous
Anonymous

Add attachments
Cancel





MongoDB Logo MongoDB