PHP IDEs A retrospective on project creation
I have been bit too focused on coding for a while now and need to step back a bit. The more time I have spent into Triumph, the harder it becomes for me to remember my initial goals and ambitions. This is bad because goals drive project vision and direction. This post is an attempt to refocus myself on the project's goals and ambitions.
Goal: GUI App instead of Terminal App
Today's developers expect certain universal text editing behaviors: cut, copy, paste using CTRL+X, CTRL+C, CTRL+V, scrolling via mouse wheel / trackpad. Developers also expect resizing of windows and panes with the mouse. Triumph being a GUI app puts developers in a familiar environment where they can maneuver through the app in familiar ways. Additionally, having a few well-placed icons can make an app easier to use. For example, a distinction between a directory and a file can be made more explicitly using an image.
Goal: A helpful single / dual language IDE instead of jack-of-all trades text editor
As I progressed throught my career and used the various popular editors, it has always stuck in mind the un-willingness of editors to introduce features that save time. Most editors delegate the usefulness to plugins, often developed by third parties. Want a source code linter? Find a plugin. Want a test runner? Find a pugin. Want a beautifier? Find a plugin. I understand the reluctance to add features and instead make it possible for users to customize their editor. But at some point, the editor must provide value. I feel that there has been more focus into making editors malleable instead of making them useful out-of-the box.
A well-worn phrase "Use the best tool for the job" is often mentioned in many developer discussions. The best tool, in terms of editors, is one that saves time, helps produce better code, or ideally both. It might seem inefficent to have multiple editors for separate languages, but even polyglot projects are separated as multiple apps that are developed independently. If a well-thought out IDE saves you time as you are developing, in theory it will more than offset the 10%-20% wasted when switching editors to work in a different language. By focusing on a single language, the IDE can have more helpful time-saving features.
The Ambition: A cross-platform GUI IDE that feels like a text editor
We want it all, and we want it now!
- an editor that suggests as we type
- an editor that points out errors in our code
- an editor that will allow us to debug our programs
- an editor that tells us how to fix problems in our code
- an editor that won't crash
- an editor that performs actions quickly without noticeable delays, whitescreens or un-reponsiveness.
All of this, wrapped up in an easy-to-install package.
Is this possible? Follow this blog to find out!