Best Language for Cross-Platform Content Pipeline

Started by
18 comments, last by Mike.Popoloski 11 years, 3 months ago

Actually, and I'm sorry that this one will sound as if I am arguing my validity but I did need to point out that even those contradicting me about the dependency weight are linking and proving my comments. I probably should have been more clear and mentioned that POST install can be 1GB or more and even with that I was partially wrong. As pointed out by pinebanana after installing .net for x86 you will require 850mb of disk space. That's a whole hell of a lot of space just to get a tool to work especially if you need that just to launch the window.

64bit installs can take up to 2GB as pointed out, however it's unlikely you will use or need 64bit functionality in an editing tool. Long story short you have to have your user's have or install the .NET libraries which can vary depending on which install you use but in most cases range in the 850mb area. For anyone who remembers this install process it's quite time consuming even on a fast system. When all is said and done and your asking your users to install 850mb (or even upwards of 2gb!) just to use a map editor, which in actuality doesn't even use 20% of the stuff you installed... That's my point. When you get away from windows and you have the comparable sizes of Mono (post install) it's even less likely the end user already has it or that they would ever need it for anything besides your editor.

So java has similar sizes post install, true. Difference? Most if not all of your end users most likely already have it installed. Does your team use blender? They have java, do they use open office? They have java. Have they ever used anything from Oracle? They have java... There are some things to take into account such as which JRE is installed and what you are building against but in most cases it's safe to assume that your end user probably already has java. On non windows platforms it's even safer to bet they have it. This equates to less install time, less disk space getting used and overall just less garbage that your end user has to deal with just to use your one or two editors.

With that said I should note that I am a huge C# and .Net advocate, I am not attempting to talk anyone out of using C# (as long as it's for windows), however considering the question relates to cross platforming we're talking more about forcing non windows users to install things that emulate windows natural behavior in a foreign platform to use a tool. These extra mono libraries that you are asking your user to install have nothing to do with their day to day computing and until we start seeing more and more mono ports of C# programs in the main stream they aren't likely to ever see or use it again.

Dan Mayor

Professional Programmer & Hobbyist Game Developer

Seeking team for indie development opportunities, see my classifieds post

Advertisement

Your whole post is basically rubbish. Let's see why.

64bit installs can take up to 2GB as pointed out, however it's unlikely you will use or need 64bit functionality in an editing tool.


If you didn't need 64-bit functionality, why in the bloody blue blazes did you install the 64-bit runtime? And if you didn't install the 64-bit runtime, why are you complaining about how large it is? Also, to say it's unlikely that you'll need it is as hilarious as it is condescending. You can't conceive of a game editor tool needing to work on large assets and large quantities of content, such that larger address space would be useful?

Long story short you have to have your user's have or install the .NET libraries which can vary depending on which install you use but in most cases range in the 850mb area. For anyone who remembers this install process it's quite time consuming even on a fast system. When all is said and done and your asking your users to install 850mb (or even upwards of 2gb!) just to use a map editor, which in actuality doesn't even use 20% of the stuff you installed...


On Windows, the .NET framework is installed automatically as part of the core OS, and later versions come down as automatic updates. The operating system has many components that aren't used by every single program; that doesn't make them pointless or a waste of space. The space used by a shared library is amortized by having many programs sharing the library.

When you get away from windows and you have the comparable sizes of Mono (post install) ...

False. If you had done the most cursory of searches before posting, you would see that a usable Mono install can be much smaller than a .NET or Java install.

So java has similar sizes post install, true. Difference? Most if not all of your end users most likely already have it installed. Does your team use blender? They have java, do they use open office? They have java. Have they ever used anything from Oracle? They have java... There are some things to take into account such as which JRE is installed and what you are building against but in most cases it's safe to assume that your end user probably already has java.


Do your users use newer versions of Windows? They automatically have some version of .NET. Do they use Visual Studio, widely considered to be the industry standard in development tools? They have the absolute latest in .NET. Ever heard of Unity3D? Pretty popular among indies these days, and runs on an impressive array of platforms. They use Mono for all of their scripting needs.

Java, on the other hand? I know lots of people who don't have Java installed. But that's neither here nor there; we can point out useful applications that use either framework. If we're talking about on non-Windows platforms only, then I've already shown that Mono is a much smaller dependency than the JDK. Perhaps we should start advocating that nobody use Java if a few megabytes of disk space is suddenly the most important consideration in computing.

With that said I should note that I am a huge C# and .Net advocate, I am not attempting to talk anyone out of using C# (as long as it's for windows), however considering the question relates to cross platforming we're talking more about forcing non windows users to install things that emulate windows natural behavior in a foreign platform to use a tool.


Uh, no. Mono isn't forcing people to "emulate windows natural behavior" anymore than people using C++'s boost are being forced to emulate some specific bit of behavior on platforms that don't natively support it. The whole point of a cross platform library is that it abstracts the differences between platforms so that the programmer isn't writing separate code paths. Mono is as "natural" to its target platforms as Java is; which is to say, not at all.

These extra mono libraries that you are asking your user to install have nothing to do with their day to day computing and until we start seeing more and more mono ports of C# programs in the main stream they aren't likely to ever see or use it again.


If the user of your tool is a designer working with you to develop a game, then whatever libraries your tool needs to run are *EXACTLY* relevant to what they need to do with their day to day computing. Furthermore, you don't ask your users to install random components in order to make your tool work; you install them all automatically and no end user is even going to care as long as they can get their work done. At least, that is, until the runtime you've installed starts opening up security vulnerabilities left and right. wink.png

Mike Popoloski | Journal | SlimDX

This topic is closed to new replies.

Advertisement