Search Unity

  1. We've closed the job boards. If you're looking for work, or looking to hire check out Unity Connect. You can see more information here.
    Dismiss Notice
  2. We're running great holiday deals on subscriptions, swag and Asset Store packages! Take a peek at this blog for more information!
    Dismiss Notice
  3. Check out our Unite Austin 2017 YouTube playlist to catch up on what you missed. More videos coming soon.
    Dismiss Notice
  4. Unity 2017.2 is now released.
    Dismiss Notice
  5. The Unity Gear Store is here to help you look great at your next meetup, user group or conference. With all new Unity apparel, stickers and more!
    Dismiss Notice
  6. Introducing the Unity Essentials Packs! Find out more.
    Dismiss Notice
  7. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice
  8. Unity 2017.3 beta is now available for download.
    Dismiss Notice

Unity-like dev environment for (non-game) desktop apps?

Discussion in 'General Discussion' started by JoeStrout, Nov 14, 2017.

  1. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    Some colleagues and I are kicking around the idea of creating a development environment to do for ordinary desktop apps what Unity has done for gaming. In other words, provide a place you can write your desktop app once (in C#) and then run it on Mac, Windows, and perhaps Linux, all with the native look & feel of each platform, but leveraging Mono under the hood.

    This would require making a platform abstraction library, and a decent IDE with a control layout editor. It's a tall order, but it can be done. By way of background, I was chief engineer at REAL Software for a decade, and we developed something called Real Studio that was very much like this; you could design and code your app on Windows, Mac, or Linux, and then build for any or all of those, and it ran as a native app on each platform.

    But Real Studio (now called Xojo) no longer meets my desktop needs as well as it once did, and I'm looking longingly at the productivity the .NET framework brings me in Unity. I even tried Xamarin for a while, but their focus is all about mobile. They do a reasonable job of that, but their desktop support is abysmal. So something new is needed.

    Anyhoo... if leveraging your mad C# skills to create desktop (business/scientific/personal) apps sounds interesting to you, please PM me your email address, and I'll add you to the email discussion we're having about it. It's a crazy idea that may never get off the ground, but it deserves some careful discussion before giving up on it.

    Best,
    - Joe
     
    KristianDoyle likes this.
  2. Dustin-Horne

    Dustin-Horne

    Joined:
    Apr 4, 2013
    Posts:
    4,352
    Is this intended to be a paid or free product?
     
  3. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    6,107
    ... Qt Creator. Part of Qt GUI toolkit.

    Now, this is "write code once, compile for multiple platforms", but it is highly similar. Also, it is for C++.

    I do not recommend pursuing this kind of project - the development costs are going to be astronomical. You're looking at timeframes of 15 years or more.
     
  4. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    757
    Please do it, just do it, please :D

    All your reasonings for it are similar feelings I've encountered..
    Xamarin mobile targeted eeugh, can also add that C++/QT route is also somewhat abysmal those guys still don't even know how to package an installer that actually works with visual studio and comes with setups for compiling to other platforms easily woudl think those goons would just look at unity and be ooh thats how you do it, can't believe that company, they also seem to want people to use there awful qt creator ide/gui.

    I would have been happy with Winforms, but seeing as MS have trashed windows desktop post win7, to the extent that macosx and linux can be somewhat appealing even though they've done piss all to improve there os in any area at all really.

    I just want to bail out of it and WPF sucks. I'd much rather develop any new program with something that can be designed and built easily for other platforms c#.core.2.0 type stuff now with rich ui components that are easily improved and changed.. right now unity ugui stuff is the best and that's for games and can't really be used efficiently for desktop like applications.. sad really. It almost seems like it would be easier to do it with Java and one of there crusty GUI frameworks.

    "all with the native look & feel of each platform"

    Personally the QT approach to UI frontends is better, screw OS based components you'll be stuck dealing with lower common denominator of whichever platforms has the most useless developers, developing the cruddest and buggy ui components with least amount of ux features. Bit like only windows lets you hover mouseover a dropdown and use the mousewheel to quickly cycle items and the lsit goes on.. let alone no real support for better gui styles and themes.
     
    JoeStrout likes this.
  5. EternalAmbiguity

    EternalAmbiguity

    Joined:
    Dec 27, 2014
    Posts:
    1,469
    What benefit would this provide me over WinForms?

    I haven't tried it yet, but I've been told that WinForms can be used for Mac and Linux.
     
  6. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    Qt doesn't produce native apps, nor anything even remotely resembling native apps (at least on the Mac).

    Nah... Mono does all the heavy lifting; the remaining bits are less than what I did before. It'd take probably 3 years to have something quite pleasant to use. (Of course, like Unity, it would never be "finished" — it would need constant updating to keep up with the times.)
     
  7. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    I appreciate the encouragement.

    Well, I can't agree with that. I suspect this approach appeals to Windows developers, for two reasons: (1) such non-native toolkits tend to do a better job of imitating Windows, and (2) Windows users tend not to care so much about such things, as their native UX isn't all that great anyway. ;) But Mac users do care, can spot a fake UI from a mile away, and won't accept it. My day job is writing cross-platform business software for mixed Mac/Windows shops, and I can tell you that my clients would not accept an app built with QT, Silverlight, Adobe AIR, etc., because they all suck.

    Xojo proves it's possible to make nice clean cross-platform apps that use the native UI of each platform, without being stuck with the lowest common denominator.

    Right, this just illustrates why using the native widgets is important. Fake widgets won't have all these little behaviors built into the various control types, which users of those platforms come to expect.
     
    Last edited: Nov 14, 2017
  8. Ostwind

    Ostwind

    Joined:
    Mar 22, 2011
    Posts:
    2,473
    I don't really see this that viable especially when Microsoft acquired Xamarin some time ago and is now pushing their tools on nearly every front for free
     
  9. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    Is that even still a thing? Some googling only turned up horrors like this.

    [​IMG]

    So, to answer your question: this would provide the benefit of not sucking. :)
     
    EternalAmbiguity likes this.
  10. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    Not on every front. They (just like Xamarin before them) are pushing iOS and Android. They also have a decent story for Windows, of course. But Mac is sadly neglected (and I have some doubts about their Linux desktop support, too). I don't expect that to change.
     
  11. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    Undefined. I do believe that something like this (or Unity) needs paid employees behind it, if it's to have any hope of being well maintained. But most dev tools (including Unity) have settled on a system where casual users can use it for free, and pros end up paying all the costs. It's a reasonable compromise, since those who make their living with the tool are most motivated and able to financially support it. So, I guess I'd suggest something like that.
     
  12. nat42

    nat42

    Joined:
    Jun 10, 2017
    Posts:
    247
    I don't exactly agree, but I thought I'd suggest a 3) anyway - Windows has 3-4 competing GUI flavours, there's Win32, WPF, Fluent/ribbon hacks for those, and WinRT...

    But I believe that cross platform and native feel are always going to be at odds.
     
    JoeStrout likes this.
  13. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    9,922
    Is this actually viable? I just can't think of why it wouldn't have already been done if it could be done.

    I mean, I can see it technically being possible. My main thought is that the differences between the native systems, and what users expect of apps made with them, would necessitate differences in design as well as in what widgets look and feel like, so even if you could "code once" it might not give you results you want to use if you care about that kind of fine-grained detail.

    That said, I haven't made a non-trivial desktop app in ages, so I could be way off here.

    WinForms is a legacy technology that its own developers have moved on from. So feature set aside, stuff like ongoing support is probably a big ticket item here.
     
    EternalAmbiguity likes this.
  14. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    6,107
    ???

    http://doc.qt.io/qt-5/osx.html

    The point of Qt is to produce native apps. I don't have a mac. I'd expect Qt to work on it.
     
  15. Marble

    Marble

    Joined:
    Aug 29, 2005
    Posts:
    1,164
    I won't cast presentiments on your ability to execute on the idea, but what you've described would certainly be a dream come true.
     
    JoeStrout likes this.
  16. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    That's always been the promise of Qt. It's never delivered. Qt apps look and feel like crap (again, on the Mac; I gather they're more acceptable on other platforms).
     
  17. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    844
    The reason projects like this have stalled is it's just a shrinking market. Browsers have taken over and for good reason. You get better tools, more choices, more standards. Webassembly is on the rise, which will enable C# and other languages in the browser. I think the future is decidedly moving away from native UI's.
     
  18. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    2,686
    i dont think its possible.

    there are too many nuances for native ui, and trying to abstract it won't work.
     
  19. JoeStrout

    JoeStrout

    Joined:
    Jan 14, 2011
    Posts:
    5,824
    OK, seriously folks, we know it's possible because Xojo has been doing it for 15 years. Most of my business is in writing and supporting these apps for clients who are very satisfied with the native cross-platform apps I build for them. So, let's not waste time saying it's impossible. You get all the nuances you speak of by actually using native controls on each platform, rather than trying to fake them (as most other frameworks do).

    It may be impractical due to time constraints; it may be the wrong market timing for it; but from a technical standpoint it's certainly doable. I've done it before (in C++), and I could do it again (in C#).

    The email conversation is going on now. If you want to be a part of it, PM me your email address; if not, that's fine too.
     
    neoshaman likes this.
  20. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    6,107
    Are you sure about that?
    https://en.wikipedia.org/wiki/Category:Software_that_uses_Qt

    In general, it is vastly superior to other GUI toolkits.
     
  21. Player7

    Player7

    Joined:
    Oct 21, 2015
    Posts:
    757
    Maybe not since the aborted cluster F*** that is Win8/10 got shat out of MS in its current form thanks to that retarded CEO Satyan. Now even more parts of Windows UI have this inconsistent messy user interface style and functionality. Where there is clear desire to dumbificate the whole thing. As far theming and customizing goes the desire by users is there.. but I do think the success of windows has led companies to doing there own interfaces like Adobe, and just not giving a F*** about allowing users to maintain a consistent interface styles for all desktop applications.


    We do many windows would love a consistent gui, you only have to look at the work of many gui designers who have gone to improve every area of windows theming, sadly it was pointless effort. The inconsistent mess is mainly MS's doing one way or another...Its not like many haven't tried to tame there desktop gui's and programs to be consistent in styling. It's at least been possible and made fairly easy to achieve over other operating systems though.

    Personally native looks are fine, whatever is easier to get working, but I do think doing it the QT way is better longterm and better for individuals and companies to fix and improve what natively isn't being improved by the OS..lets you design an interface once and know what it will look like regardless of the OS its run on. Having a market place for ui widgets and themes, and a baseline that is open to anyone to come in a do what they what. With the native look just being 'faked' per platform is fine personally.. its only windows that has really implemented all the finer ux features behind many traditional ui widgets.. other platforms seem to just implement the most basic of basic. Graphics styling just being the other area that is up for debate on which is better. OSX styling looks good on the surface, usability wise it hasn't really improved much since 90s. And same goes with Linux hell most Linux desktop variants barely meet WinXP functionality in window/ui handling/features.. while still having bugs.

    but whatever ...ultimately something that lets me use C#.Net Core 2.0 and do a GUI frontend that will work crossplatform is the goal. And something with a good editor for it.

    This is true.. but then those little behaviors are going to be lost.. and the only OS that has really pushed these minor productivity enhancers is Windows, and clearly its going to S***, I won't be surprised if Win10 future updates further degenerate. Which is why maybe going with fake widgets that aren't directly using native components.. but are just styled to look like them, that way all the richer functionality can be built into them, thus raising bar of whatever sub OS the program is being used on. Its not like these little behaviors are really the hardest thing to implement.. its just lazy developers at these giant companies who don't really care to do the implementation of further usability enhancements when the basic implementation of a ui component works, and teaching dumbshits about such finer methods is well.. I mean we are talking about it satisfying the 99% why bother doing anything more. It's Gooble mentality along with the crap S*** design of it all. Like that garbage play store or chrome etc

    Personally MacOSX might look good and be consistent across board. however Apple as a company are incredibly lazy who have never cared about doing a good job on providing good developer APIs and being supportive on adding much requested functionality improvements. Obviously Linux desktop is developed by people who are so far removed from productive and well designed interfaces and subtle aspect of good ui design... the ux is plagued by bugs and poor design.. bit like comparing gimp to photoshop.. the differences in all of it are just night and day whatever aspect of it you look at and compare. I can understand why given not much money in it, but also the mindset of do it differently even if it is S***, and don't do too much else we might be sued for copying established functionality from other companies etc. Adobe patented tab palette crap etc.