Help Build an IDE for Corona

Hi,

I should have added this link as well, the packaged JS builds https://github.com/ajaxorg/ace-builds/

-dev

I will be going against the comments above… IMHO, if you have time to contribute to improve the Corona environment I think there are more useful tools that could be built instead of another IDE.

Right now, we have at least 4 IDEs that can be used for Corona development (Sublime, Atom, ZeroBrane, LuaGlider (not sure if this one is still active).  All of them have some negative sides, so why not use improve them?

For example, on Sublime (Corona Editor) the goto function shortcut is broken since one of the last updates, the color formatting does not work well,…

But my point is that the community could benefit much more from other tools than another IDE.

Some example of tools that would be nice to have:

Simple stuff:   more plugins (AWS SDK, Google Maps SDK,…),  more Corona widgets,…

More complex stuff:   a framework to decouple the visual/layout part from the code side, allowing us to have an easy way to develop custom layout for different device sizes (specially phones x tables)

And you could make those stuff available for free or even charge for it (I would easily pay a $100+ for such layout framework)

Of course, your time is yours and you should use it on whatever you want. I am just sharing my perspective as a long member of the community.

Every one of those IDEs you mentioned work the same way the code editors in the 80s worked – a big long scrolling field of code. It’s a sub-standard way to work, and every mainstream code editor follows the path of the one before instead of trying to break new ground.

(A person could say that if everybody does it that way, it must be what everybody wants.

I think a person saying that would be wrong.)

I know from personal experience I’m more productive when code is chunked down to the function level, and I don’t think I’m so special that it’s just me that is (would be) more productive. I use Desperado when I’m writing Corona stuff but it’s rough enough around the edges that I don’t want to make it available publicly.

Plus, I write Javascript with Visual Studio every day at work and have to deal with the same substandard type of editor – if I wouldn’t have hard-coded Lua stuff into Desperado I could use that for Javascript as well. With a new base to build on I can do Desperado right and end up with something *better* for Lua, Javascript, C#, etc. 

So while I agree with you that the community could use things other than another IDE, I also have to disagree because those existing IDEs are basically all the same. Plus, I see a new Desperado as a base that things like a layout framework could be built upon.

 Jay

PS - While I’m disagreeing with you, I appreciate your feedback. You didn’t change my mind (this time), but you did get me to pull out some of my older notes for “Corona enhancements” that I always wanted to make. Some of those were for Desperado’s successor, but could also be done as stand-alones.

Sure. The same here: far from me to criticize your choice and willing to do another IDE. I just wanted to share my point of view of what I would think would benefit most of the community.

I saw your video but I decided to not mention that feature of having “views” for each functions instead of seeing the whole file because I wanted to focus on the broader idea of collaboration instead of specific points that I like/dislike on your IDE.

But since you mention it, I would say that I don’t think that feature (separate function view) is something that would attract me to use your IDE and I explain you why:

  1. Having long files is far from my top issues of an IDE simply because I can simply jump to the function that I want usually if 1-3 clicks. (Android Studio, Xcode, VS all have functions list windows/dropdown that you can see all functions and double click to jump to it;  Sublime has the GoTo Definitions that I can just press CMD+R and I see all definitions and even type with autocomplete - Although that is not working with Corona Editor as I mentioned on my previous post).

  2. Due to Lua style (and JS would be the same), you can have variables that are being used by a function that were defined outside of that function, so you would not see that variables definitions in your one-function view). Yes, you can go to see the whole file or even search, but then you kind of lost the benefit of having one-function view since you now have to access 2 windows.

  3. One of the nice things of Sublime and Atom is that it is very minimalist, allowing you have as space as possible to what matters: code area. Your IDE follows the same layout of LuaGlider and ZeroBraine with a lot of menus, buttons,… I think almost 30% of your IDE screen is lost with non-code area.

As a developer, my main concern is always to improve my coding efficiency, which translates to more bug-free good-quality code in less time as possible.  For me, having that one-function view does not contribute significantly to that.  What I believe would be a good area of IDE improvement would be to add resources to allow me to identify issues/bug, specially on a dynamic language like Lua.  ZeroBrane tried to do that by adding luacheck and I installed on my Sublime a SublimeLinter-luacheck plugin as well.

That are my points. Again, not writing to criticize or discourage you. I just want to share my thoughts on it. Being a long-time member of the community I have seen several people that spend significant amount of time to develop tools that in the end less than 10 people are actually using it. 

Thanks, @RedBeach – I take your criticism as positive. Please take my “rebuttals” in the same vein. :wink:

1. Long Files - I see breaking the code into chunks as an intermediate step toward getting rid of more code in the future. I’ve been writing code since the mid-80s and it ticks me off that I have to keep writing the same things over and over. I’m not necessarily wanting a fill in the blanks environment, but I think there’s a middle ground between “writing every stinking line” and “drag-and-drop” that hasn’t been adequately explored, yet.

If I can figure out how to put a picture in here I’ll show you one option I’ve been playing with. If you drop an image in the Outlaw/Desperado editor it pops up a window with a bunch of defaults you can change and then it inserts the generated code where you dropped the image. Right now it’s a one-way trip, but I want to be able to either A) select the chunk of code and parse it back into the dialog, or B) turn it into a “component” that can be referenced in the code, but doesn’t actually exist in the code. (Think along the lines of a prefab in Unity.)

DespDropImage.png

While the details of that may not be your cup of tea, I hope I got the concept across – less code to type that has nothing to do with the program/game itself – let something else keep track of the minutiae so developers can focus on the creative parts of programming.

2. Variables Away from Code – True, but only the global vars are out of sight; all the local variables would be right there in the function view. And in the current version there’s a specific “place” for global vars, so viewing them is as easy as viewing any function. Also, I don’t know anyone who defines global variables in amongst their functions, so their global vars will be out of sight in any case.

3. Screen Space Used – While I tend to leave the function list open, everything else can be shown/hidden with a single click which gives you most of the screen for code. Yes, there’s room for improvement with the current UI, no doubt. I should have put keystrokes on the show/hide pane options, for example.

As a developer, my main concern is always to improve my coding efficiency, which translates to more bug-free good-quality code in less time as possible.

I hear you. Which is why I want to write less code and have the IDE write it when it makes sense. Desperado allows you to write shorthand and then it expands those when you run the project. 

Thanks for the conversation – pounding on ideas is the best way to see which ones crumble.

 Jay