Tag Info

Hot answers tagged

37

localization and internationalization, it allows the strings to change (read: translated) without needing to recompile (just a relink at most, and just dropping in a new folder at best)


28

Java is extremely suitable for writing cross-platform games. Main advantages: Portability - In general, you can write a Java game and expect it to run unchanged on most platforms. It's probably the most portable option of any language - C/C++ is the other highly portable option but needs to be recompiled for each platform and in many cases libraries have ...


24

I use Ubuntu on my laptop and have used Linux in some form as my primary operating system for over 10 years. This is in a very strong Windows enterprise environment. For those occasions when I need to run something in Windows I have a couple of different VirtualBox images setup and it works extremely well. I very seldom need to launch those. I have no ...


20

Yes, IMO Linux is the best development environment you can get. Is it "as easy as on Mac"? No, it's way more easy, see the latest update below. OSX is a niche system with very limited support from VirtualBox or VMWare. On the other hand Linux is main target for both of them, because of it's dominance on server market. Java - runs way faster on Linux, than ...


17

These are languages that have a very good deployment factors: Javascript. Why? It runs on browser, and most platforms you'd care about have a browser. Though, some lower end mobile phones may have severely stripped browser (or Opera Mini, which supports Javascript only on the proxy-side, and very limited client-side Javascript). JVM Java Virtual Machine ...


16

While Java may not be the or the only viable cross-platform tool, it has some strengths: It's extremely fast. It's extremely robust. It's extremely portable (e.g. bytecode compiled 10 years ago in Windows 95 runs fine in OS X today). and some weaknesses: Core GUI libraries (Swing...) are showing their age (3rd party additions help here). The language ...


14

Disclosure: I work for appMobi. There are many similarities between the two, in fact some of appMobi's functions are built on PhoneGap. Fundamentally, they both encapsulate HTML5/CSS3/JS into a webview that is exposed to the user from a native "Container". They both offer an API that lets you access the device's OS in a way that is impossible for a web ...


14

Every Valve product is developed using their own in-house game engine called Source. The Source Engine is written in C++. The source engine contains both an OpenGL and a DirectX renderer which helps it in being cross platform, but the key is SDL. The open source Simple Direct Media Library is used by a team inside Valve which is tasked almost exclusively ...


12

Java does a very good job on isolating you from the underlying OS and gives you the same exact tools on most platforms it works on to talk to things in the underlying OS. Python on the other hand does not do as good of a job in isolating you from the underlying OS, It does not have a standard way of handling between process communications (look at the ...


12

There are two things to consider here I think: The first is that, in a way, they are right. Writing cross platform C++ isn't that hard if you planned for it from the beginning. This is almost certainly the problem you're seeing. Most open source applications (most of the applications a Linux user touches on an average day), are absurdly cross platform. ...


12

There is no effective offline software protection for Java code. jad and 30 minutes of a decent Java coder is all what's needed to rip the "is dongle present" part of your code. Which means if you spend more than a few seconds of development time implementing it, it's probably not worth it. There could exist hardware devices which can be used to run vital ...


12

If there's one thing I could recommend, it'd definitely be Boost C++ Libraries. In fact, Boost is not a single library. It's a collection of them, and they're high-quality, portable, open source and well praised by people ranging from students to the C++ standards committee. Since Boost does not include GUI or anything else which is platform-dependent, ...


12

It is disputed how religious you have to be about unit testing - surely there is some value to tests even if they violate some of the precepts of the Wise Elders of testing (certainly more value than not having them!). However, in this instance you need not break the rules if you don't want to. Note that your test is only testing one of the possible ...


12

Use UTF-8. string.size() won't equal the amount of code points, but that is mostly a useless metric anyway. In almost all cases, you should either worry about the number of user-perceived characters/glyphs (and for that, UTF-32 fails just as badly), or about the number of bytes of storage used (for this, UTF-32 is offers no advantage and uses more bytes to ...


11

Generally what you should be looking to do is abstract your database code into its own layer (assembly, dll or whatever). In your application code you then call the interface which "behind the scenes" works out which database code you need and calls that to do the work. Depending on how your application is configured this could be either something decided ...


11

According to http://slashdot.org/story/01/02/06/2030205/David-Korn-Tells-All (question 11), UWIN was not originally open source (though that appears to have changed in the 11 years since that interview was published). Not being open source would have been a significant barrier to widespread adoption, especially considering a functionally equivalent open ...


10

It's as true today as it was back then - that is to say not entirely. Java is write once, test and debug everywhere. Sure that's a lot less work than a completely fresh port but it's generally more work than the initial hype had us believe. Our product has a Java server which will run on either Windows or Linux but we have seen OS specific issues with it ...


10

Frankly as a database person, using the specific flavor of code for your database backend is the most efficient code you can write. In my 30 years of working with databases, we have never changed the database backend for an application and the only situations where it seems necessary are when you start with a poor choice to begin with (such as Access when ...


9

Adobe, is that you? Seriously though, put up some kind of a bounty so they can preorder Linux versions. If you get enough orders to make a port worth it put in the time, otherwise refund them and you now have proof not enough people care to make it worthwhile. If you get something ported though, just target the latest Ubuntu LTS release, RHEL, SLED, and ...


9

Making CSS specific for each platform is possible, but a lot of work. It also means maintaining multiple CSS files. Also, it is better to do feature-detection, instead of browser detection. I'm no expert on the matter, but you can just Google it, and you'll get enough results. But, you say, isn't it also a lot of work to build and maintain multiple apps for ...


9

If you have a file that contains only the string resources then you can give the resource file to a translation-agency or something like that and get a translation. I guess you can imagine how hard that could get if you would have to give a lot of codefiles to a layperson to do some translation (in addition to maybe not wanting to give out your code to ...


8

scripting style languages such as python also make cross platform development easier. Now, whether you like Python (or other such languages) depends on you, and we probably don't need to start that debate here. Java tries to force you to write code which will run portably, while python allows you to write portable code. The actual python language itself ...


8

I wouldn't go with .Net. Mono is not bad, but if you use some obscure corner of C# or the .Net library that Mono does not support, then you're screwed. This is way less likely to happen in Java because Sun stands behind full runtime implementations of Java for Windows, Mac and Linux.


8

A couple of advantages: Each process has a separate address space. If you run on a 32-bit OS, that can be an advantage because you can load up the server with lots of RAM and even though each process can only access 4GB each, if you've got multiple processes, then they can use up however much RAM you have available. If you're writing for 64-bit (and I ...


8

How about C#? It wouldn't be the cheapest approach due to some of the frameworks involved, but you could do C# on Windows, C# under Mono on Linux/Mac, C# on the Android through MonoDroid, C# on the iPhone through MonoTouch, and use one of the ASP.NET frameworks (MVC or webforms) for the web. MonoTouch would be the most expensive part here. It sits at $400 ...


8

Using the Java platform / JVM would be the obvious choice - it has the widest cross-platform coverage of any language, and if you have a C#/.Net background the concepts will be very familiar. Note that you don't have to use Java language to gain the benefits of the Java platform - in fact nowadays, if starting a project from scratch I'd probably recomemnd ...


8

I have never used Visual C or windows environment, so my answer will be biased. I feel if you want to learn c++, you should do it in on Linux. As Linux is open source platform, and used extensively on heterogeneous environments such as server, mobile, desktop, you will find lot more support when you run into problems as opposed to windows. Next, you would ...


7

C You can find a version of gcc for any platform you can dream of, from the tiniest microcontroller to the hugest supercomputer, and if you don't find one you can just build a toolchain of your own.


7

FireMonkey is a framework being the outcome of the hiring of the creator of VGScene and the KSDev company. Following that it is heavily based on OpenGL and as a such not hard to be source code portable between Windows and Mac. Edit: Some more info about FireMonkey just surfaced: ...



Only top voted, non community-wiki answers of a minimum length are eligible