Is the investment in GMS UWP development a white elephant ?

I know that for some time Yo-Yo Games offered a license of GMS for UWP. For a while I was interested in it because it seem like a replacement for Oracle's Java ( which is another white elephant in my opinion ). However, I recently googled UWP , and found numerous web pages that say either Microsoft UWP is dead, OR it isn't dead. Now I feel like I should stay away from UWP development until further notice, of what is going to happen to it. What I have read from the googled websites, sounds like two conflicting arguments that are confusing to me about how Microsoft wants UWP for bridging Win32 apps in Windows 10. If anyone can explain further what is going on that would be great.

But the bigger question is now, what is going to happen to Microsoft's UWP, and how it will impact the GMS game developers who have invested in the GMS UWP license ?

Thanks
 
S

Skeletor

Guest
How did you make the link between UWP being a replacement for Oracle Java? They are entirely unrelated and even owned by different companies.

I have read many articles saying that UWP is dead and an equal amount saying that it is well and truly alive. One thing is for certain, it is well and truly embedded into modern MS operating systems and isn't going away any time soon.
 
How did you make the link between UWP being a replacement for Oracle Java? They are entirely unrelated and even owned by different companies.

I have read many articles saying that UWP is dead and an equal amount saying that it is well and truly alive. One thing is for certain, it is well and truly embedded into modern MS operating systems and isn't going away any time soon.
First, I was under the impression that UWP could replace Oracle's Java, in the way Microsoft explained it in their documentation that I briefly read.
They didn't say it would replace Oracle's Java, I came to that conclusion. If I am wrong - then I am wrong in my train of thought. But
my hold up in trying learn more about UWP, are the numerous two groups of articles, one saying UWP its dead and other saying its alive, which has really confused me. Thats why I posted my message here, and wanted to have another opinion about whats going to happen with UWP, from the point of view of GMS developers who have the UWP license, if you follow me.
 
S

Skeletor

Guest
First, I was under the impression that UWP could replace Oracle's Java, in the way Microsoft explained it in their documentation that I briefly read.
They didn't say it would replace Oracle's Java, I came to that conclusion. If I am wrong - then I am wrong in my train of thought.
Well, yeah. This isn't correct. But that's ok.


But my hold up in trying learn more about UWP, are the numerous two groups of articles, one saying UWP its dead and other saying its alive, which has really confused me. Thats why I posted my message here, and wanted to have another opinion about whats going to happen with UWP, from the point of view of GMS developers who have the UWP license, if you follow me.
From the point of view of a GMS developer, the only way it would be dead, is dependent on whether YoyoGames decided to drop support for it.

From perspective of every other language, it's just getting started and has a huge future ahead of it. Remember UWP is very new in the scheme of things.


Do a search for C# and see how many people say that it is dead. Yet, you have one of the massive 3D players who's whole engine revolves around it. Some of the posts refer to how new C# is and the language is 20 years old now.
 

Yal

šŸ§ *penguin noises*
GMC Elder
Java is (and has always been) a huge security hole that is painful to work in and slow, most of these can be attributed to poorly implemented features. Knowing Microsoft's track record, I wouldn't be surprised if they fudge up UWP royally, but even Microsoft is gonna have a run for their money if they wanna mess something up with comparable magnitude to the mess Java is. So UWP has a chance of being victorious just by not being Java, which is one argument in its favor.

But, you know, you could just use C++ instead and get a much easier time finding example code on StackOverflow... :p
 
Wait, you guys are confusing platforms, with languages. Java is both a language, and a platform. Well, not quite a platform, but UWP isn't quite a platform either. (Pseudo Platforms? Java is a Virtual Machine, and UWP as an API?)

UWP is similar to Java in that it tries to create a platform (via it's API): Where you write the app once, and it runs ANYWHERE.... (anywhere, being UWP compatible platforms, that is.)

Standards are generally good things: So if you're writing an app for windows, do it using the UWP API, and your app should live longer: In the Microsoft Eco-sphere, at least. And should run on any UWP compatible device. Which is basically just Win10 pc's, and Xbox's at this stage, because the Windows phone died.

But.. the windows phone basically died because there were no apps. So the more UWP apps, the more potential for the return of the Windows Phone, and another platform for your app to reach easily.

Well, that's the idea. But Windows Phones died, and the Java platform still does write once, run everywhere better: It dominates the server-side, and java monkeys can still hack out some kind of desktop app, or android app if they need to.

But, you know, you could just use C++ instead and get a much easier time finding example code on StackOverflow..
Not instead: You can develop your UWP apps *with* C++. Or C#. Or Javascript.
 
Sorry for the late reply.... but I have been working on a website of my own - to escape and take a break from the insanity of correcting students code.

( btw, this is O.T. from the topic posted )

Well long ago, when I was learning Java ( before Sun Microsystems was bought by Oracle ) at a community college, I got a really bad impression of Java. I will explain that later, about the community college.

When I first learned Java at this community college, I thought it would be like C++, but I learned it wasn't. In Java, you have no choice but to program code as object oriented. In C++ you can use object oriented methods AND procedural methods, along with using C code as well.

In Java when you compile your program, you dont produce a stand alone executable, what you produce is a .jar file which requires the Java Runtime Environment ( Now , I think its called something else under a different acronym ). I wanted find a Java compiler that would produce a stand alone executable, just like C++ or C compilers produce a stand alone executable from a compiler. I never found one. In the time of this age, Java was a portable language to any computer that had a Java compiler - and that is what I was first sold on to try and learn it. To be specific, in comparison to C++ and C, you could not port anything that was platform specific, because C and C++ are a standardized language by ANSI and ISO. I know that C current standard is C11 ( I dont know what the current standard for C++ is ). But I am mystified , still to this day, why didnt James Gosling ( the inventor of Java ) design a compiler to produce platform specific stand alone executables, tailored to the platform its compiled on, like C or C++? That's the main reason I dropped the ball on Java.

The second problem with Java, is that you could not use Assembler with the code ( I dont know if this has been fixed by Oracle ). You can use Assembly with C and C++, as long as you know what your doing. Java has automatic garbage handling. C and C++ do not have automatic garbage handling. C and C++ have pointers. Java has something like pointers but you have to use a blank instantiation of a object to do this.

The third problem with Java, is that any one can easily reverse engineer your bytecode, back into the original source code. So to prevent that problem, someone wrote a second program which obfuscates it.

There is also the historical fact that long ago, Microsoft took Sun Microsystems to court around the issue of Java. I forget who won the case. Since then
Microsoft has been against any kind of Java implentations on their OS. When Microsoft purchased Mojang, the creators of Minecraft, that game was rewritten in another langauge ( C++? ) which ended the ability for players to use MODs ( via forge I believe ).

So when I read a brief description of UWP, I thought - this sounds better than Oracale's Java, even as a replacement.

The head of the computer science department ( at the time ) while I was at the community college, implemented a course layout that everyone who is
going to learn C++, first had to take a beginning Java class, followed by intermediate Java class, followed by an advanced class of C++. He believed that there was no difference between learning Java and C++. Well I posted this long ago on the newsgroup alt.comp.lang.learn.c-c++ and it raised hell between two groups of programmers who thought it was a good idea and a bad idea. When I went to a 4 year college ( not the one now ), and told a student who was helping me learn C++, his opinion of the program at the community college , was that it was a bad pedagogical plan. His words to me were, " Start with one programming language and finish it before learning another programming language. ". Because of this and all of the other issues that I had discovered with learning Java, kept me away from it. I never learned it. I tossed the text books long ago. "

There was only one other game other than Minecraft that impressed me with Java, for a short while, and that was Runescape by Jagex. Jagex ruined that game, and I stopped playing it.

So the idea of learning UWP intrigues me, but if I am reading posts on that its dead , while other posts say its alive, I am going to have to wait and see what happens.

-----

On another note, I just thought of how I am going to deal with students that hand over hard copy printouts of their code with no comments. I am going to borrow a paper shredder and let them watch in horror as they see their printout become confetti. I will share this idea with the other tutors in the lab.
 
H

Homunculus

Guest
I donā€™t know much about UWP, but isnā€™t it supposed to run only on a windows ecosystem to begin with? You can compare it to java in scope only as long as you throw other operating systems like linux and mac out of the equation, which happens to be the ā€œselling pointā€ of java...

As a sidenote, minecraft for desktop platforms is still being run on java to this day, and mods, forge, etc.. are java based as well. Thereā€™s a version of minecraft thatā€™s called Bedrock edition with a totally different codebase that was used to develop the mobile versions and has now become an UWP app that runs on xbox and on other windows platforms where the java edition is not supported
 
Last edited by a moderator:
When I first learned Java at this community college, I thought it would be like C++, but I learned it wasn't. In Java, you have no choice but to program code as object oriented. In C++ you can use object oriented methods AND procedural methods, along with using C code as well.
Believe me. Whether they should or not, people still write procedural-style Java. :confused: Just because the language is OO, doesn't mean people won't program procedurally!

he second problem with Java, is that you could not use Assembler with the code ( I dont know if this has been fixed by Oracle ). You can use Assembly with C and C++, as long as you know what your doing. Java has automatic garbage handling. C and C++ do not have automatic garbage handling. C and C++ have pointers.
Yes. Or No. Assembler is something you write specifically for optimizing code for the CPU: So writing custom code for a specific CPU doesn't make sense for something that is meant to run everywhere.
..We're talking about a really specific use-cases. If you need Assembler, probably shouldn't use Java.

Java has something like pointers but you have to use a blank instantiation of a object to do this.
Err, not a blank instance's. I think you mean you can make a variable reference an object. Similar to a C++ reference var's.

But no pointers in Java: A bit similar with the assembler thing: That's because with C you've got direct reference to the memory itself. So you can do pointer manipulation and all that good stuff. Java abstracts away that into the JRE. The garage collector handles the memory management. This isn't a bad or good thing: Sometimes you want that direct memory management(especially for embedded projects). Most times you don't. (Which is why pretty much all modern languages have their own GC.)

...also, but just learn C/C++. Just use Java when you have to get a job. A good c++ programmer can code Java fairly easily (but not necessarily vice-versa)

Start with one programming language and finish it before learning another programming language. "
Eeeh. So-so advice, that probably only applies to a student who are still learning programming concepts.

But that's not how the industry works. So you study C++, then you graduate, and get a job. The server's done in C#, the front-end is some Javascript framework, the server also has a few Bash scripts that need maintaining, and someone's got some ancient Perl(or Python, or both) scripts that do some DB maintenance.Speaking of DB, someone needs to write some SQL functions. If there is any CI/CD implemented by the team, then there will be another 1 or 2 scripting languages you're going to have to touch. Some members of the team have made some utility tools to improve productivity, but these are done in entirely different languages completely. Say, some are Java, and another in GoLang. So every now and again these need to be updated. There will also be some old VB scripts somewhere that needs updating, because VB gets everywhere somehow.

You could be easily touching 5-6 languages. The idea of mastering one language is kinda academia only. You know how to solve problems/find solutions, the language doesn't matter.

s a sidenote, minecraft for desktop platforms is still being run on java to this day, and mods, forge, etc.. are java based as well. Thereā€™s a version of minecraft thatā€™s called Bedrock edition with a totally different codebase that was used to develop the mobile versions and has now become an UWP app that runs on xbox and on other windows platforms where the java edition is not supported
That's interesting, and probably the best answer for the topic at hand. If MS rewrote it into a UWP app, then at least they're backing their guns.
 
Top