Re: RedyCode 0.9.3
- Posted by ryanj Jul 13, 2016
- 2238 views
Bravo! Very well done, Ryan!
Thanks!
The speed is a little sluggish so I'm a little worried about what the eventual speed will be once you implement additional features, but not too worried.
I don't believe it will get slower, because i will continue to optimize it. I already made 0.9.3 graphics much more efficient than 0.9.2. Today, i improved project refresh behavior when the window gets focus, so that should be another noticeable improvement. The slowest thing i am aware of is wordwrapping and rebuilding "tokens" (syntax highlighting), which may take careful inspection of textdoc.e to find ways to speed it up. I have been quite happy with the speed of the euphoria interpreter, considering the entire GUI is purely interpreted code!
Just thought I'd let you know what features I feel are required before I could seriously jump on board.
In my world, a GUI is still a UI so it is imperative that the flagship IDE have UI features that invite efficiency, because if the flagship doesn't invite efficiency it is hard to imagine that the IDE will allow a user to create an app that does. For me, that means as much keyboard control as I can get. So, even though Hotkeys are listed in the 0.9.1 - 0.9.9 roadmap already (that is, the soonest stuff), I'd vote for them sooner rather than later. I'd like F5 to run the project's exw, but I can settle for an "Alt-A; R" keyboard shortcut to execute the Run command of the Application Menu. Similarly, FindNext has to have a hotkey (F3?)
I agree. I have made it a priority to make RedyCode as nice as possible, pushing the limits of the incomplete GUI API, forcing me to test my widget system in a real-world application and add features that are actually needed, rather than theoretically needed. There are always going to be planned features that i haven't had time to implement yet, and i'm willing to prioritize features that people really want.
I will try to implement Hotkeys as soon as i can. For now, a few are hard-coded in RedyCode:
- Ctrl+F : find
- Ctrl+H : find/replace
- Ctrl+G : goto line number
- F3 : find next
- Shift+F3 : find prev
- Ctrl+S : Save current file
- Ctrl+A : Select all
- Clipboard key combos, both DOS and Windows (Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+Ins, Shift+Ins, Shift+Del)
I didn't do a hotkey for Run because i didn't know which one to use. F5 is normally Refresh, in my mind. Once i get action hotkeys working, i'll research what defaults to go with, and they will be fully customizable.
The only feature of RedyPad that is absolutely needed is Undo/redo so I'd vote to move that up from Version 1.0 on the roadmap.
I agree. That is the next thing on my list, will be the main focus for v0.9.5.
I actually think with the above few features it is ready (yuck, yuck) for the real world.
I am actually using RedyCode in the real world already! For my day-job, i'm developing a program that communicates with a USB device and downloads event logs, and displays the data in graphs. It also monitors the device's operation in real-time. It gives me an opportunity to test how the redy GUI performs with running background tasks and lots of user interaction with 2D graphics.
There is also one feature I'd suggest you put into the roadmap somewhere and that is an additional command on the Application menu entitled "Backup and Run" which makes a textfile backup of the exw file which can function as a restore point. I would put a backup directory in the Source directory and create a new file called ProjectName.exw.YYMMDDHHMMSS.bkp# where YYMMDDHHMMSS obviously stands for Year Month Day Hour Minute Second and # is sequential (starts at 00001 and increments by 1 each time). I'd even settle for the poor man's version which would be a command on the Application menu named something like "Execute App and Run" and then put the appname somewhere where it would be remembered. Then it would be up to the user to write a small app that would do the backup before running the exw. Just a (long) thought!
I considered a backup feature, but didn't mention it because i felt like i needed to think about it more. I don't know when i will get to it, maybe v1.0.
I wish i could find more time to write docs for the redylib API. There are many things that it can do (as you can see by how RedyCode itself looks and behaves), even though it is incomplete. But it doesn't do much good when nobody has a clue what it can do. I suppose the best thing to do for now is ask me directly about specific things you want your GUI application to do, and i could try to write example code.
I think it will be much more clear once i get context-sensitive help working in RedyCode. It will give you lists of options to choose from while typing, as well as auto-complete, visual designer dialogs, etc. I have lots of plans, but the process is very slow. At this point, i feel like the foundation has been laid, at least. Development has been going much faster since i finally released v0.9.0 and actually started using RedyCode to develop RedyCode.
Maybe tomorrow, i'll release v0.9.4. It has important improvments, like being able to set app info and file header text for creating new projects, and lets you select from a list of project templates, including an empty project.