Hi Alex, Om, Justin, and the rest of the FlexJS team and contributors. I am looking forward to seeing you on Monday at the FlexJS event. Dhwani will also be attending the meeting. Unfortunately, Santanu, Kinjal, Joel, Bing, and Atin will not be able to attend. However, they are hard at work testing FlexJS.
I have stayed behind the scenes mostly since we last met at the 360Flex event in San Jose. For the past several months, our team has been doing what we can to help promote the FlexJS ecosystem in the form of efforts on the Moonshine-IDE.com project. This is an IDE written in ActionScript that runs on Mac, Windows, and also in the browser (via the Flash plugin). Our vision is that Flex needs its own IDE so that the entire user experience of working with the tooling can be controlled and refined. There are too many steps right now to download FlexJS, figure out build scripts, understand how to properly sign and deploy applications for Windows, Mac, iOS, and Android, learn the language, etc.... I am not saying FlashDevelop, FDT, Flash Builder Professional, or IntelliJ are not still needed. They certainly have a place for multi-language development and we do not intend to try to replicate all or even most of their features. In fact, for a while we were supporting the FlashDevelop enhancements to bring it to Mac and Linux via CrossOver/WINE. However, we could not agree with the project lead on the direction of streamlining the IDE for use in Flex and making the user on-boarding experience easier. At that point, we started searching and stumbled upon Moonshine IDE. In my opinion, the major IDEs mentioned above are overwhelming. There are so many different things vying for the developer's attention in them that getting to the point of seeing Flex or FlexJS in action takes too much effort. I think it is a mistake right now to assume the people downloading the Flex / FlexJS SDKs are all going well. Having a focused IDE with some excellent getting started material could change that landscape. Showing people they can hit the ground running and make things happen that matter and are production grade (especially for traditional Flex) could help attract new users. Making these arguments before we had anything useful to show would have been a distraction. Alex and the rest of you have enough on your plate making the core system function. However, I also want to make it clear that while we are not necessarily in a position to impact the core compiler, I think we can add value with this IDE initiative. This will have the most impact if we had your blessing and direction. Therefore, I would like to explore whether you are interested in having the Moonshine IDE under the control of the Apache FlexJS project. Having said this, I am not sure it meets the code clearance requirements right now because it is NOT all our code. In fact, most of it is not our code. I want to be clear that we found Moonshine on the web a while ago. It was written mostly by Erik Pettersson of Stockholm, Sweden. We did not write it from scratch. Rather, we began refining what we found that Erik had published at the link below. At boot up, it currently lists: : Moonshine IDE 1.0.0 : Source is under Apache License, Version 2.0 : Originally found at http://code.google.com/p/moonshineproject/ : Uses as3abc (LGPL), as3swf (MIT), fzip (ZLIB), asblocks (Apache 2), NativeApplicationUpdater (LGPL) I did receive permission to use the photo by Cristian as the background image in the open source project. There are some things missing that I would have liked to be in place before the meeting: * Home screen is not polished to guide the user to the correct targets (iOS, Android, etc). The current rendering is pretty ugly. * Necessary resources for compilation are not being properly checked with an easy to use download link. * Tour de Flex integration is not as prevalent as I would like so far. * Example applications are too basic and should do more. * Integrated Flex API reference should be present. * The icon is not sleek enough in the Mac Dock -- it is still the original one. I'd prefer one that looks like a brightly lit moon (for any graphic artists on the list...) * Signed installers so that users on Mac in particular are not presented with warnings. If possible a release on the Mac App Store. I read today that Microsoft at their Build conference announced a tool which is making it easier to convert traditional Win32 apps into their Windows App Store equivalent so that might be another distribution option. The above are all solvable by us. We also have a number of other issues in our internal JIRA to polish that we will keep working on even if you decide to accept it into the core Apache FlexJS. Harder issues we likely need help from someone in the community familiar with Abstract Syntax Tree parsing to implement are: * Type-ahead support * Cross-reference of code definitions * In the future, maybe a profiler like what Flash Builder has There are several questions I have: 1) Alex, do you see a value in having Moonshine IDE be contributed officially to Apache FlexJS? 2) Who handles the code clearance for the source? Especially given that some of the licenses are non-Apache per my statement above. 3) Would we still have rights to contribute? I don't think any of us are code contributors right now. 4) Would we still have control or at least influence over the Moonshine-ide.com website, or whatever the corresponding Apache page(s) would be? There is a lot I would like to improve on it. We can continue to do the hosting. Currently it runs on Wordpress and Visual Builder. I think it would be great to add some FlexJS functioning applications to the site, for things that could be powered by JSON communication and data binding -- like an app to let people add bookmarks for good resources on learning Flex. 5) Right now we track the source code in SVN and JIRA internal ticketing systems. I assume we would need to move this to GitHub? Or could we just continue to publish the source like we are doing now? I also have some more general concerns and questions: We would very much like to start using FlexJS in production HTML/Javascript target applications such as a new customer signup process integrated into a Wordpress website. I understand we are probably jumping the gun on this, but it seems to me based upon the tests we have done so far there are just a couple of big issues not working that are holding us up: mainly Bootstrap and data binding. I'm told the data binding was fixed in 0.6.0 but Bootstrap continues to be an issue that sounds complex to handle. Is there anyone on the list who would be willing to take on the Bootstrap HTML/Javascript effort and could meet a 1 month implementation deadline under Alex's direction for how this could be implemented? If so, please send me privately your fixed price quote for this and I will review it to see if we can fund this effort. (You can Skype me at JustinProminic or reach me on LinkedIn to make sure I do not miss your message on this list.) I would also like to solicit FlexJS examples for inclusion into Moonshine IDE. I think we can find plenty of Flex examples, but not very many for FlexJS. I intend for us to contribute as examples all of the work we can as we try to make FlexJS do useful things for ourselves. The new customer signup process which requires Bootstrap to look decent and be responsive will be our focus on an example. There are some broader questions I have as well which maybe Alex can cover in person at the conference Monday rather than in this e-mail thread. Originally, my understanding was that FlexJS would target SWF as well as HTML/Javascript. However, I am having a hard time wrapping my head around this goal - it seems to me that Flex already properly targets SWF and has a robust UI framework for the platform. FlexJS has new MXML containers which don't seem to be backward compatible. Is that just something still on the to-do? Or is the SWF target for FlexJS more related to iOS and Android support so it can be used by ADT to turn into an AIR application? Or are we still relying upon Cordova/PhoneGap as a strategy? And if so - why? AIR and ADT does a good job for Flex and it seems to me we should take advantage of it. I want to be clear on this so we know how to properly explain the goals to new users in the IDE. The current Apache FlexJS page is a bit confusing on this topic: https://cwiki.apache.org/confluence/display/FLEX/FlexJS Om - I noticed you recently added npm support for FlexJS. Is your intention for Node.js to be a server example so that it can send/receive JSON from FlexJS clients? If so, I would like to potentially include this as part of the easy-to-use setup examples on Moonshine. There are some application package / signing issues for things like DMG files on Mac that it seems we need to get Adobe to address as part of ADT. Right now I think we can only properly sign PKG and APP files. To have a complete framework we need to be able to sign DMG and ideally the newest Windows Store applications natively. Who could we work with at Adobe to get ADT to support these things? Thank you, Justin Hill My Apache Flex community contribution is working on the open source Moonshine-IDE.com for FlexJS.