Improving Usability?

Well, that is true for many software developers, not just firewalls. You give a few relevant pointers, if not most, but you do only somewhat address the usability.

Let’s face it. CLI is powerful. For anyone willing and able to get through it’s paces, you can run this firewall - and many other apps - with CLI and text based configurations only. I learned that the hard way with Mikrotik, everything was around code and conf. Yes, RouterOS has come a long way, I do not know it’s status today, I used it three years ago, but I would never call it userfriendly. I always had the impression they mapped the CLI in to an interface without any real pedagogical insights. OPNSense is not very different, but it looks “shinier”.

I took a swing with my buddy ChatGPT and assuming I asked the right question here is a candidate list of pros and cons.

ChatGPT

When comparing the Command Line Interface (CLI) and Graphical User Interface (GUI), there are various pros and cons associated with each. Here’s a list to provide a more detailed argument:

Command Line Interface (CLI):

Pros:

  1. Efficiency:
  • Pro: CLI is often faster for experienced users who are comfortable with commands. Keyboard input can be quicker than navigating through graphical menus.
  1. Resource Efficiency:
  • Pro: CLI typically consumes fewer system resources compared to GUI, making it suitable for resource-constrained environments.
  1. Scripting and Automation:
  • Pro: CLI allows for easy scripting and automation of repetitive tasks, enhancing productivity and consistency.
  1. Remote Management:
  • Pro: CLI is well-suited for remote server management, as it can be accessed through secure shell (SSH) without the need for a graphical interface.
  1. Scripted Reproducibility:
  • Pro: CLI commands can be easily documented and shared, ensuring reproducibility of actions across different systems.

Cons:

  1. Learning Curve:
  • Con: CLI has a steeper learning curve, especially for users who are not familiar with command-based interactions.
  1. Limited Discoverability:
  • Con: Commands and options are not always discoverable, requiring users to memorize or refer to documentation.
  1. Non-Intuitive for Novices:
  • Con: Novice users may find CLI less intuitive, as it relies on text-based commands rather than graphical representations.

Graphical User Interface (GUI):

Pros:

  1. User-Friendly:
  • Pro: GUIs are generally more user-friendly, making them accessible to a broader audience, including non-technical users.
  1. Visual Representation:
  • Pro: GUI provides a visual representation of actions, making it easier for users to understand and interact with software.
  1. WYSIWYG (What You See Is What You Get):
  • Pro: GUI often follows a WYSIWYG approach, allowing users to see the immediate impact of their actions.
  1. Reduced Learning Curve:
  • Pro: GUIs typically have a lower learning curve, as users can navigate through menus and options without memorizing commands.
  1. Rich Multimedia Support:
  • Pro: GUIs support rich multimedia elements, which is beneficial for applications where visual content is crucial.

Cons:

  1. Resource Intensive:
  • Con: GUIs can be more resource-intensive than CLIs, potentially slowing down performance, especially on older or less powerful hardware.
  1. Limited Automation:
  • Con: While GUIs have improved in automation features, they may not be as scriptable or automatable as CLIs for certain tasks.
  1. Not Ideal for Remote Systems:
  • Con: GUIs may not be suitable for remote system management, as they often require a direct graphical connection.
  1. Dependence on Mouse Input:
  • Con: GUIs heavily rely on mouse input, which might be less efficient than keyboard commands in some scenarios.

It takes time and effort to code an interface for what was originally a text based app. I know very little of the code behind IPFire, but I have dabbled enough in web interfaces and similar tech to understand that an UI is often a hindrance for a quick and efficient function. There are so many parameters to consider. So much testing and so many things that can go wrong.

So from an application that works out of the box using CLI - a simplified statement - one has to make it user friendly for the people who do not care to learn CLI - also a simplified statement - and why should we (the developer) since those guys won’t really know what to look for anyways to know that they are safe?

The latter is kinda true for me… sorry.. but I need to be honest, I ponder how safe I am and how I see that, yet find no simple answer. There are many web services that can do a port scan and similar tests of my network and I pass them all, an old favorite is https://www.grc.com/ and the services one can use there.

I hope I did not get too many wires crossed in above text.

EoL