Is Cross Platform Sustainable?

[h]Please note this thread is for discussion not flame wars or Xojo slamming.[/h]

I just wonder how sustainable Xojo being a cross platform development tool is. Write your code in Xojo, build for OSX, Windows and Linux desktop. Soon, write your code in Xojo, build for iOS and…, hold on, there is no cross platform mobile os in the mix. I don’t know but I would be surprised if Android or Windows Phone is on the table, so here we see cross platform has been terminated, at least for the foreseeable future, for mobile platforms.

I have just been listening to the XojoTalk 001 podcast, where Geoff comments when WatchKit is available Xojo will take a serious look at supporting it (or words to that effect). That will take some of the valuable Xojo resource away from even the slight possibility of Android building, not to mention by then Xojo will probably be heavily into bug fixing the Xojo LLVM/64bit compiler combo and iOS development issues.

So, in summary, over the next 12 to 24 months, I would anticipate the Xojo team to be buried in launching LLVM, 64bit and iOS support not to mention bug fixes for OSX Yosemite. Then, keep up with the iOS release cycle and ensure Xojo is playing with iOS 9, iOS 10, iOS 11 and on. Not to mention the little stumbling blocks Apple throw in from time to time like deprecation at the drop of the hat. All this, I suspect, will take up a lot of time and resource in Xojo so what of the other platforms, and dare I say it, the non-Apple platforms?

Anyway, just food for thought and discussion, perhaps Xojo can pitch in. I would be interested in their roadmap for the next 24 month, although i’m sure given the iOS bashing they have/are receiving, they will keep any plans firmly under their hat.

I would love to see Geoff hiring extra developers to support more platforms like Android or Windows Phone.
Also a Linux guy would be nice to support all those Linux with ARM things.

But as you know, it takes years to build something new, so this could take a while.

I believe the iOS support has two types of meanings.

The first one is having an easier approach to iOS development, and this is what Xojo could achieve. There is the Swift language now, that in someway makes the standard way a little bit easier, but still not affordable from all developers.

The second one is cross-platform, where a developer can build a single application for iOS, Android and Windows Phone.
This is more critical in my opinion and it’s the most important reason for pro developers to adopt a cross-platform tool. On this I agree the importance of iOS target for Xojo is diminished by the fact it doesn’t support other mobile platforms.
I really hope there are plans to add at least Android in short time, but I think this is not realistic.

And by then, they’ll be a day late and a dollar short. Like I’ve said many times before, everything is starting to go cross-platform now. That is the future. What is now is x64 support, multithreading support, and LLVM. Xojo doesn’t even have those things currently in place. I hate to say it, as I want Xojo to be just as kick-ass as anybody else… but at the rate things are going now, they’ll always be the stragglers at the end of the marathon who walks to the finish line. There’s no prize for that, except self-achievement in that you steadied the pace and kept going. If that’s what Xojo wants, it’s fine where they’re at. If not, there’s no other alternative than to get a bigger crew knocking down the things holding them back.

I, for one, would like to see the bugs and inconsistent behaviors knocked out and addressed first; however, with their history it likely won’t happen that way. Just today I had a weird issue w/ the tcpsocket dataavailable event not firing. At the time, my brother who is a software developer (.NET) professionally was looking over my back trying to see if he could help me out. He’s already given me hell about ‘wasting my time’ with this platform. When we fixed the issue simply by copying the code that was in the non-working event, removing the event within the IDE, creating it again, and pasting the code back… he shook his head and gave me shit, again. He doesn’t understand how anybody could use Xojo. I keep trying to root for the team here, but I’m getting rocks thrown at me from friends and family in the field, the team itself (Xojo) w/ all the bugs (some I know are caused by myself… but the one like today, was definitely nothing I did, and that bug would be difficult to replicate and fix). Eventually, I’m going to walk off the field and go to another team. I’m not there yet, but I’m close. So, to answer your question… nope, I don’t think multi-platform in the long-run is currently sustainable with Xojo… at least as they currently sit.

I am firmly convinced Xojo, Inc. is doing all it can to support the best way as possible all three current platforms, while completing an all too long iOS ordeal.

The issue is know I am sure to a lot of developers here : how do you maintain in fact 4 major projects (Mac, PC, Linux, Web) and complete a 5th one with a limited pair of hands and humanly possible time ? Let us face it : like a lot of us, Xojo is not a big company like Microsoft with man-decades or even man-centuries to drop in.

Proof is in the pudding, though. The rapid reaction Xojo demonstrated with the Quicktime issue is remarkable and not enough saluted, I feel. So when pressed by urgency, this team reacts fast and well. Even if I consider the Windows platform largely suffered from a constant lack of attention conducing to a somewhat outdated Win32 implementation when since 2002 VB was enjoying .NET, we had proof with 2014R2.1 that it got some love, with the long awaited fix of the copy/cut/paste keyboard command fix.

Linux is somewhat a spin off of Web Edition and the other platforms combined, and I have no recollection of recent major bug fix, but on the other hand, apart from suspect slowdowns maybe related to weird distributions, it seems reasonably stable.

Now how much cross-platformness do many of us need ? I will venture saying that most developers have a strong leaning towards one platform or another, and will eventually take advantage of the cross-platform to complement their offering. It seems a lot of members here lean towards Mac, and sometimes venture in the Windows world, with sometimes a measure of disgust, since they cannot enjoy the numerous declares they are accustomed to, and have to adapt to a new GUI. But to be fair, Xojo does get the job done most of the time, without having to recourse to VB or other more powerful products. Main advantage being that it requires very little rewrite.

People who are mainly Windows enjoy the same level of comfort when they want to go Mac.

Now, will the small Xojo team be able to follow Apple as required by their constant evolution, and all the while implement long awaited Windows framework line .NET, or, dream on, the new Windows Store and RT (Windows Phone) API ? Quite frankly, I am extremely skeptical, since as Norman pointed out in another thread, .NET now requires 64 bits. So it will have again to wait. The question becomes : “how much .NET do I need” ? To be fair, Win32 does the job fine for most business apps, where flickering remains measures, and graphics may not be that many. But whoever needs animations and high level GUI with double buffering among other things will have a strong look at VB. NET before starting any development of importance, and the comparison is objectively not favorable to Xojo. Using some measure of specialized DLL, as I am doing now, is a possibility I am using now. But the temptation is great to simply go VB all the way.

So, is Xojo preferring Apple ? Probably not. But contingencies are such that the end result is the same. Is that a sin ? No. Just culture…

Through all current and following discussions on this topic please keep in mind, that cross-platform is not only defined by the number of platforms. To me cross-platform means, that I will get the right controls and objects to work without the hassle and need to adjust them. Real Cross-Platform is a myth. Each of my apps needs special treatment of #compiler directives, different sets of Icons or Graphics and even different sets of plugins not to look kinda alien. The less adjustments needed the more productive I will become.

Indeed, “real” cross-platform is to be defined. Since GUI is inherently different,and each system has its own idiosyncrasies, it would be foolish to expect carbon copy apps at the flip of a switch. So anybody who goes “why this I do so easy on Mac does not exist on Windows” may be affected by a grave delusion or universality.

To be fair, Xojo does provide a very high level of cross platform possibilities, as long as one does not tap into the framework through declares. Pure Xojo code does execute identically on at least Mac and Windows, apart from some picture properties. It becomes more dicey with the GUI, between font behavior and label transparency. Hence the tuning needed to get the best result. But overall, it is thousand of light years better than trying to do the same, say, between, Objective-C on one hand, and VS on the other…

I would say that bug fixes and Android should be equal and highly urgent priorities. Compiling for Android appears to be non-trivial, although Basic4Android has managed it, albeit to a less sophisticated level than Xojo.

I guess it just depends on your definition of sustainable.

If you think the current state of Xojo is ok (with its bugs and lack of NET and 64 bit) then it would be sustainable. However, if you think the current bug count is too high and you can’t get any work done then supporting all these platforms is certainly not sustainable.

I mean, if you wanted Xojo to be 100% bug free and use current technologies faster (eg. NET, 64 bit) then they’d probably have to drop support for some things and focus on polishing what they have. If you want yet more support for platforms, you can expect yet more bugs and further delays.

To me, these are of different time scales. Bug fixes should be addressed as fast as possible on a continuous basis. And that is pretty much what is going on, except there are many many bugs (mostly small) and Xojo engineers are not legions.

Android is much more strategic. Given the time it took for iOS to arrive at Alpha, even if the decision was taken today to have Android, would it be realistic to expect it in two years time ?

In terms of devices market share, though, Android suffers no contest. It is expected to reach 70% of the portable devices this year, over twice the size of the iOS market. But, and that is a big but, we are software developers and not device vendors. It seems the average smartphone user in the US goes for 41 apps per year, but the iOS one gets 83 in the same time. So for all intents and purposes, the software market at this moment is about the same.

Today, Basic4Android is indeed an excellent solution to produce apps with a minimum of difficulties for a Xojo user. True, it is somewhat less elaborate, but it gets the job done. And is, as far as I know, the only basic available for portable devices beyond VB for Windows phones.

Keep in mind that adding iOS support is helping us get to LLVM and 64-bit. There was a lot of parallel infrastructure there.

Also, we are not all compiler engineers. Everyone has focus areas which allows us to continue development on other areas while iOS is underway. Heck, the IDE itself is getting a lot of love because of it.

Some of you have heard us say this before, but hiring engineers is not an instant fix. It takes 6-12 months for a new hire to get released on his/her own and during that time is not really allowed to do anything New and certainly not without a watchful eye.

We are very blessed that our skills overlap in the way that they do, and adding someone to the mix would have to be just as complementary in the future to make it worthwhile.

[quote=131414:@Greg O’Lone]Keep in mind that adding iOS support is helping us get to LLVM and 64-bit. There was a lot of parallel infrastructure there.

Also, we are not all compiler engineers. Everyone has focus areas which allows us to continue development on other areas while iOS is underway. Heck, the IDE itself is getting a lot of love because of it.

Some of you have heard us say this before, but hiring engineers is not an instant fix. It takes 6-12 months for a new hire to get released on his/her own and during that time is not really allowed to do anything New and certainly not without a watchful eye.

We are very blessed that our skills overlap in the way that they do, and adding someone to the mix would have to be just as complementary in the future to make it worthwhile.[/quote]

I agree with most of this; however, you guys are already workin’ your asses off… and need help to keep up. The fact that it takes so long to get new people in makes it even more important to do so now, instead of later. Sooner or later you guys are going to have to admit that, as good as you are and as comfortable with the system you have in place for your development process, you’re going to need to expand to keep up with the support of the features you guys are adding.

I too have been frustrated with rate and quality of which Xojo has been progressing. My only hopes is that the community can continue to grow so we can get these things faster and better. But as Greg said there’s a long process for getting new developers up to par with the platform so they can do anything productive, let alone be able to provide any insight on the historic aspects of Xojo.

I’m optimistic that the new framework will start to head us in the right direction. I’m in the hopes that we’ll see something similar to Windows, Mac, Linux in the mobile iOS, Android, WP world. While I understand the mobile platforms tend to have starker differences it would be easy to wrap up Helper Control classes so that if iOS use this and Android use that and WP use something else. If AutoLayout can extend from iOS to all the other platforms in addition to some dynamically loadable container control then it would be possible to build a control/layout once and still have it run across all platforms. But even if this never happens, the ubiquity of having a single language and being able to share libraries across all platforms will continue to have value.

Personally I’m trying to move all my new projects to Web. The platform is becoming more and more solid every day and I cant do far more complicated embedding and layouts easier on the web. There are definitely a few core changes that need to occur on the web, that being something closer to AutoLayout (getting the resized event and re-organizing controls just doesn’t cut it for a responsive design) and WebStyles need to be completely rethought. Despite those two limitations anything needed CAN be achieved in the Web version, it sometimes just takes extra work and custom WebControlWrapper classes.

While there are tons of features I would love to see added to the language there’s almost always a workaround.
•NullableTypes can be added yourself or you can use variants
•Introspection can be used to serialize and clone objects (with the exception that multi-dimensional arrays are impossible to deserialize)
•While not have generic Delegates or inline Delegates (lamba expressions) is a nuisance you can always create a new delegate type and method
•Enums dont have built in methods to convert back and forth from their value and their name but you can add your own utility methods to do this

I’m also hoping the new framework might provide better solutions to some of these issues^
Last XOJO conference I was also under the impression that with the new compiler and code tokenizer etc… We’ll soon be able to add functions such as refactoring property names. This would save a ton of time and headache.

Maybe I’m too patient and it probably has something to do with the fact that I’m too busy to worry excessively about it. All in all I continue to support the community and hope for the best.

While I don’t want a price increase (It’s already a lot for me), It seem like you need at least 1 more excellent engineer in each major area (with the ability to do some overlap) to be able to put out a better quality product, introduce new features and keep up with the pace of technical change in the underlying technologies.

I know adding more engineers adds to the effort it takes to keeps every thing coordinated… It makes it harder to use use the resources effectively so the new people would not be strictly additive in productivity even after 6-12 months… (the 9 women 1 month thing … that that is only partially the case here). It would take more planning and more structure … but that is the only way to scale effectively.

The point about the 6-12 month thing, while true does mean the sooner the better… But of course if it does not make finance sense in terms of budget it can’t happen … but that would point out a bigger problem.

To be more correct, the new compiler will provide the foundation for functionality like refactoring. The new compiler’s arrival will not mean that refactoring support is going to be there at the same time.

But the ADDITION of iOS as a target doesnt mean that Xojo is FAILING to deliver cross platform. Theyre adding one. (eventually.)

OK, but do they have BasicForLInux, Basic4Mac, and BasicForWindows?

If someone needs cross platform MOBILE builds now, then its tools like Corona (painful), Basic4nn and its variants, or the Embarcadero offerings. (Which I am told are powerful but they are massively expensive and not ‘BASIC’ if thats an important consideration.

Assuming iOS support ever arrives, then Apple’s musical chairs approach to deprecation and frameworks will cause headaches for Xojo. Only sales will reveal if it continues to be worth them chasing that market into the future.

I’ve heard this before and, though totally understandable, I find this depressing. A new engineer hired today isn’t going to be productive until either the tail end of March or even this time next year. Given everything on the plate at the moment & the small engineering team it implies the status quo is going to be maintained for some considerable time to come.

I’ve been investigating other technologies recently as I’m having to to take a long/hard/cold look at my direction. What’s striking me is the pace and drive that these other technologies work to. And what do we hear from Xojo - “We’re already flat out”, “Takes months to get a new guy up to speed” - great, I feel reassured!

Is Xojo walking in a sprint race?

[quote=131414:@Greg O’Lone]Keep in mind that adding iOS support is helping us get to LLVM and 64-bit. There was a lot of parallel infrastructure there.

Also, we are not all compiler engineers. Everyone has focus areas which allows us to continue development on other areas while iOS is underway. Heck, the IDE itself is getting a lot of love because of it.

Some of you have heard us say this before, but hiring engineers is not an instant fix. It takes 6-12 months for a new hire to get released on his/her own and during that time is not really allowed to do anything New and certainly not without a watchful eye.

We are very blessed that our skills overlap in the way that they do, and adding someone to the mix would have to be just as complementary in the future to make it worthwhile.[/quote]

Greg, I think your post is great and you’ve got a lot of fans of Xojo here who want nothing more than for Xojo to succeed, myself included.

I think one of the concerns of many is available resources related to upcoming tasks. Especially considering that Just supporting Windows and OSX is a significant job to keep them updated and current. Xojo has absolutely benefited from Windows continuing to support legacy applications and hasn’t required the resources from Xojo to keep it updated and working like OSX. However, that is changing and being a Windows application developer I wonder what is planned for Window’s Store applications and updates related to Windows 8+. To me it looks like that isn’t even on the roadmap or radar right now, which is concerning. I’ll hold out as long as I can but I am concerned. I feel like internally to Xojo there is an affinity to Apple products, which I have no problem with as long as you’re keeping the products you advertise and offer updated, current and as bug free as possible. You do offer Window’s development and to me this has been a bit neglected only because Xojo continues to “work” on Windows.

Personally, and this is an observation, Xojo should have chosen WEB or iOS but not both. There are literally tens of thousands of apps in the app store that have been developed. It’s difficult to see the need for another development platform for iOS given that these apps were developed in “something”. Especially since Xojo is so late to market with this. I know your user base is clamoring for this but that’s not always best metric to use to develop something, especially since they haven’t even seen the product yet. The net increase in user base may be negligible given you may lose users for existing products because resources were shifted from your core products to iOS.

Xojo Web is an interesting proposition. But hosting and scaling seems to be an issue, especially for the intended target. The idea is great but the implementation and usefulness right now seems like it needs some work which appears to be progressing. To me web apps are the future, but won’t replace native desktop apps either. Native mobile apps are great but let’s face it, it is a crowded space with existing tools in place that are well established and very inexpensive.

In the end I see a bunch of mediocre products where users are constantly complaining about stability, bug fixes, yada, yada, instead of a few feature rich, stable core products you might be able to command a higher price for.

Just some observations from a user. Keep up the good work!

[quote=131446:@Karen Atkocius]I know adding more engineers adds to the effort it takes to keeps every thing coordinated… It makes it harder to use use the resources effectively so the new people would not be strictly additive in productivity even after 6-12 months… (the 9 women 1 month thing … that that is only partially the case here). It would take more planning and more structure … but that is the only way to scale effectively.

[/quote]

Let me add… I have managed a scientific/technical department… I know adding people in the middle of a big project can actually slow things down for awhile because it takes resources for them to get up to speed. Heck in the past I argued with upper management NOT to add people because of that…

But REAL/Xojo inc always seems to be in that mode.

The OS worlds seems to be moving a lot faster than then they used to with a lot more moving parts… I don’t know when/if it will slow down… But all of that is making this a critical time for Xojo and a big challenge.

This is starting to seem like a chicken egg thing. One needs a bigger customer base to to support a larger organization but it’s hard to expand the customer base unless one keeps up and has a quality product.

I have been using the product for over 13 years… I would like it to be successful and be around for a lot longer.

  • Karen

I agree that if we want to develop for iOS or Android there are already plenty of other development platforms. There are also plenty of development platforms for Windows, Linux, etc, but Xojo lets us develop for three platforms using the same code (or nearly the same). I’d really like to see this ability extended to the mobile world. I have several applications (in REALStudio – I’m waiting for the Xojo bugs to be fixed before I upgrade) that would be great on iOS and Android but right now my only option would be to re-write them on some other platform(s).