If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

No, just no. You are absolutely insane if you think that Java is anything anyone should actively target. Java is something that people use these days ONLY when thinking about Android apps. That and your usual enterprise and accounting programming stuff (but hey, Java is one hell of a stepup from COBOL I suppose - so they don't really have a frame of reference anyway). For anything else, Java has no shelf life anymore. It is a failed language and it never delivered.

Except for that whole cross-platform thing with what I understand to be a single compile. Mojang seems to think it delivered just fine. It was the tool they needed to do the job they wanted done. And they've made out quite well as a result.

The point I'm trying to make is that the end-user doesn't care what you coded your software in. You might as well be arguing over what style of wrench is best to remove bolts. If all you care about is getting the damned thing out, there is no functional difference between open-end, boxed-end, robo-grip, vise-grip, or a cutting torch. Elegance be damned. And so it goes with programming languages.

Let's say for a second that you're every bit as awesome and experienced in programming as you claim. Or one better, that you're being modest and you're selling your talent short. In fact, you're a god among men in programming circles and yours is a household name among the great unwashed masses...

You're not selling your product to other programmers.

The people who buy your software don't care who you are or how awesomely you can code in FORTRAN. They want something that does the job they need done. They want it to work, and work correctly, else they start demanding refunds. The programmer's job, as I understand it, is to use the tools he chooses in the most optimal manner he can manage. If that's Java, then he needs to do the work required to make it behave in a reliable manner. If it's C or C++, then ... well I suppose the same thing applies. Griping about the perceived shortfalls of languages you don't use because they don't meet your needs is precisely equivalent to complaining about the uselessness and failure of screwdrivers because you have to work too hard with them to remove a nail.

On a slightly more snarky note, I'm guessing you don't often program in binary. If you're wanting optimization and pure performance, you can't beat it. It gives you the ULTIMATE in power and flexibility at the cost of just a wee bit of time. No need to screw around with compilers that might not always choose the most optimal code path. So why don't you do all your stuff with just 1's and 0's from now on?

For two reasons: 1) Because that's completely fucking insane and 2) it's on the far side of an arbitrary line you've drawn in your head for a difficulty-to-performance tradeoff. There is no law in the Universe that guarantees your tool selection is the One True Way. If it were, nobody would be using anything but what you use.

So come on everybody, let's all get over ourselves and understand that people invented all these languages for a reason - what was already available didn't meet their needs.

Except for that whole cross-platform thing with what I understand to be a single compile. Mojang seems to think it delivered just fine. It was the tool they needed to do the job they wanted done. And they've made out quite well as a result.

You're going to cite Mojang as a 'posterboy' for Java game programming? Seriously?

Here they made a game engine (Minecraft) that manages to look crappier than a Quake 1/Quake 2 game while requiring a Core i7 for 'decent' runtime performance. Let's not even talk about the RAM hoging as well.

Seriously - that entire game underscores just how crappy Java is and why nobody in their right mind should be using it for games. People with over 8GB of RAM have to start dabbling around with changing their VM heapsizes just to get the game to run 'properly'.

I'm sure to you the end justifies the means though and all of this is 'just fine'. Everything must 'go Java' because... well, because some 'brogrammer' whose entire career depends on his 'job security' as a 'Java brogrammer' depends on it. No, your job security as a Java brogrammer is not sanctimonous - and people should call a spade a spade.

But then again it is a testament of the times that a game like 'Minecraft' is 'what is happening' today. Minecraft would have been laughed out of any serious game discussion even in the early 2000s - both in terms of performance and graphics. That you need a Core i7 with gigabytes of RAM for it would have been unthinkable back then and quite frankly they'd have found the whole thing to be goddamn ridiculous - which is what I still regard it as.

Except for that whole cross-platform thing with what I understand to be a single compile.

Funny that you should be talking to a guy who has delivered way more in terms of 'cross-platform portability' than any of you on this forum.

Seriously - come back to me when you can get modern codebases to compile correctly with a 2003-class MS compiler and when you are maintaining 10 to 12 different platforms with one codebase - and then multiply that by 20 projects.

Oh yeah - all of this while getting the best performance possible on all of those 12 host systems - which you can pretty much forget if you are going down this Java claptrap path. Not to mention that most of these platforms don't even have a Java VM available.

Seriously son - come back to me when you know what 'cross-platform' and 'portability' actually means. ProTip - it doesn't mean being locked into anyone's particular shitty VM nor does it mean targeting an awful language 'governed' by Oracle.

I am the fucking zealot you moron? I said I used Java because that is what Android had back then. There was no support for the whole C++. YES IT HAD TO BE JAVA BECAUSE THERE WAS NO OTHER LANGUAGE DO YOU UNDERSTAND YOU FUCKING MORON?

Not enough swearing - you need to use more - that will surely make you win this debate.

Oh trust me Junior - you don't have to tell me that the only reason Google put out an NDK is so that they could 'actually compete' with iOS because this Java garbage claptrap wasn't working out - I know that all too well, as evidenced by Google's reluctance to start improving the NDK so that it is something more than a 'bad hack'.

Actually you get to care a lot about new objects in Java. Which only goes to show you don't know shit about Java and just hate it because you are a moron. You preallocate and reuse objects. You use pools. No you don't use new while in a rendering loop exactly to avoid calling the GC. But when these things don't matter you can lossen up and not care so much and think about what you are actually doing not babysitting the memory. It's this flexibility that is what makes higher level languages better than lower level languages. Oh and by the way, they've added hooks in the new C++ standard for a GC. Wonder what do you say about that

'Not care so much about what you're doing' - with 'at max' a 32MB Dalvik JVM heap that you are continually running against on Android? Did you even read the linked article where this happens ALL THE TIME despite the thing having 1GB of RAM at its disposal? I can personally confirm these 'out of memory' errors are very easy to run into because of the whole RAM hogging nature of Android (which keeps hogging more RAM with every new release).

What I have to say? I'd say - what is there to say to you? It's pointless talking to somebody who says 'higher languages are better than lower level languages' - that is Jim Jones cultism to the nth degree. I don't have an answer to your psychological problems there.

In fact you could use a GC in C++ for a long time but I guess that is blasphemy in your books.

Anybody who knows what they are doing (ie. not you) would avoid a GC like the plague for any game.

This is Performance Programming 101. Now I know there are some agitators (ie. you) who are muddying the waters and creating this 'perception' that a garbage-collecting Java VM running on a 'games console' is just fine - but then again you have these 'agitators' who are spouting crackpot theories in every walk of life. The best thing to do is to engage you and destroy your idiotic arguments before you start gaining a foothold and ruining people's careers and professions in the process by ill-educated decisions like 'everything must be Java!'.

You are like the Ron Paultards and the Tea Party tards - your ideas are so mentally insane and destructive to our 'walk of life' that you need to be actively resisted before you and your crackpot ilk gains even more of a foothold.

Java is a toy programming language and anybody who sticks to it and claims it can compete with C/C++ either doesn't have what it takes to program in C/C++ or they are just an inferior programmer. Period.

As a programmer you are a bad joke if you 'prefer' your toy programming languages and the 'toy' managed environments they run in. Sorry but facts are facts.

that's it. I'm done. You have completely lept off the deep end in unreasonable fanboy ranting.

Let me guess: Scala and Clojure are also joke languages?

James Gosling, Martin Odersky, Doug Lea, all these master, renown programmers have been strong proponents of Java. Google has much of their server side code in Java. Yahoo search and later Bing was written in Hadoop + Java. You think all these guys are bad jokes? Are those toy projects?

BTW, I've been a C/C++ guru, a well respected expert, worked in purely C/C++ for over a decade, and worked on major C/C++ compilers. Languages are tools to do a job. C/C++ has it's use cases where it excels. Specifically, when you want a really low level tool, C/C++ is really the only major option. It also has design flaws and legacy baggage that other newer languages handle better. For games and general GUI apps it probably isn't the best fit.

that's it. I'm done. You have completely lept off the deep end in unreasonable fanboy ranting.

Let me guess: Scala and Clojure are also joke languages?

We don't need hobbyist and endless reinventions of the wheel, yes - because all it does in the end is get in the way of 'portability'.

How do you seriously entertain this 'idea' that 'Java' is about 'cross platform' and 'portability'? It is NOT. How can it be since that would involve having to port a Java VM to every one of those devices?

The only thing that is portable is 'C' - hence why it once stood for 'Portable Assembler'. Even C++is not portable enough from that perspective.

Anybody saying that any higher-level language is about 'portability' frankly doesn't have a clue what they are actually talking about. I'll never be able to run a Java program on an Xbox1 or a Nintendo Gamecube (because those systems are 'deserted') - but I am able to do that just fine with a C program. There goes your 'portability' argument right out of the window without me even trying - because I actually practice what I preach.

Google has much of their server side code in Java.

Google is a shit company. I don't care what they do and I don't fall for their propaganda and marketing spiel. Them buying Android and sticking to its initial premise so heavily (a crappy OS meant initially for a 'digital camera' until they found out there was zero marketshare for that thing - then they went bankrupt and got bought out by Google) only solidifies my suspicions that this is the modernday Microsoft - and no, that is not a compliment. Buying other people's shit and making up crappy excuses as to why the shit they bought is well, 'shit', after tons of revisions.

I know a lot of FLOSStards love Google though - why I cannot profess to know - it beats the other people I talk to as well. But you will find out soon enough just how much of a 'friend' they are to your cause - don't worry. Mindless acolytes always get confronted with the 'truth' in the end, and that's when a lot of butthurt will be felt.

that's it. I'm done. You have completely lept off the deep end in unreasonable fanboy ranting.

Let me guess: Scala and Clojure are also joke languages?

BTW - I had to look these two up since I really don't know about the damn things (and why would you, frankly, waste even one minute of your life on this utopian 'let's reinvent the wheel dozens of times' claptrap?) -

It is intended to be compiled to Java bytecode (the executable JVM ) or .Net. Both platforms are officially supported by the EPFL.
Like Java, Scala is statically typed and object-oriented, uses a curly-brace syntax reminiscent of C, and compiles code into Java bytecode, allowing Scala code to be run on the JVM and permitting Java libraries to be freely called from Scala (and vice-versa) without the need for a glue layer in-between.

Clojure runs on the Java Virtual Machine, Common Language Runtime, and JavaScript engines.

Seriously, and you have to ask me if it is a 'toy language' when all you have to do is google it and read the first sentence on Wikipedia?

Are you people even for real or is this all a bad prank? Does your silly 'toy language' fetishization know no limits? Do you guys actually earn 'money' writing in 'new language flavor of the month' or is this all 'fun hobbyist projects' at the side?

You go ahead and make the argument to Torvalds that he should rewrite the Linux kernel in Java, or to the ffmpeg devs that 'hey, you should really rewrite all this shit in Go, man, because all this stuff about 'better runtime performance' in C vs. 'my favorite higher-level toy language' is just a big myth'. See what kind of a response you will get.

Trust me - my responses are very 'reasonable' compared to the responses you will get from them.

Funny that you should be talking to a guy who has delivered way more in terms of 'cross-platform portability' than any of you on this forum.

Seriously - come back to me when you can get modern codebases to compile correctly with a 2003-class MS compiler and when you are maintaining 10 to 12 different platforms with one codebase - and then multiply that by 20 projects.

Oh yeah - all of this while getting the best performance possible on all of those 12 host systems - which you can pretty much forget if you are going down this Java claptrap path. Not to mention that most of these platforms don't even have a Java VM available.

Seriously son - come back to me when you know what 'cross-platform' and 'portability' actually means. ProTip - it doesn't mean being locked into anyone's particular shitty VM nor does it mean targeting an awful language 'governed' by Oracle.

Firstly sir, we are not related. I take your use of the word "son" to be a term of opprobrium, and I would thank you to show me the same level of respect that I show you.

Secondly, you seem to have misunderstood my argument. I am not championing Java or any other language. It has its uses and I recognize that. I find it strange that you do not.

You're going to cite Mojang as a 'posterboy' for Java game programming? Seriously?

I'm citing Mojang as a counterfactual to your claim that game programmers universally turn their noses up at Java. Further, you completely missed the part where I said that end-users - the ones who pay for your software - don't care about your programming CV. But a posterboy for Java game programming? Sure. Why not? I know who Notch is and can recognize him on sight. I have no idea who you are or what you've actually done. I'd say that makes him a posterboy for what can be accomplished with Java.

It's not the language you choose or "how it would've been done in the old days" before the Internet was really a thing. It's what you do with the tools you've got. You can rip Minecraft if you really want, but it's pathetic zealotry ... and I wouldn't be surprised to find a little jealousy has crept in there somewhere too. Is the game inefficient? Probably. But if I can run it on my shitty Kindle Fire, it can't be too demanding. And on top of all that - trumping all that - the game is fun and playable. That's what matters.

But wait... are you claiming that we're just throwing power at the problem and hoping it goes away in a couple of hardware generations? I don't think you want to play that game either. Will RAGE run on a Windows 98 machine? Of course not. There's not even enough disk space available to install it. But if there were, would it run in a playable manner? Highly unlikely. So does that mean the code is inefficient and just icky, or that you tried to implement the code on woefully inept hardware and deserve what you get?

In closing, I've been reading back over your posts, and I'm going to have to formally call you on your BS. I have no doubt you're the greatest programmer that you've ever met. But I'm sure there's nothing you do that I can't. Bjarne Stroustrup didn't write C++ and give it to you for your birthday you know. This probably hits you right in the pride, but you might want to face the fact that nobody cares about sensational claims of vague awesomeness backed by (as far as I can tell) nothing. And before you start questioning my programming ability, I'm not making any claims other than my job is solving hard problems and I think you're full of it.

Firstly sir, we are not related. I take your use of the word "son" to be a term of opprobrium, and I would thank you to show me the same level of respect that I show you.

Secondly, you seem to have misunderstood my argument. I am not championing Java or any other language. It has its uses and I recognize that. I find it strange that you do not.

I'm citing Mojang as a counterfactual to your claim that game programmers universally turn their noses up at Java. Further, you completely missed the part where I said that end-users - the ones who pay for your software - don't care about your programming CV. But a posterboy for Java game programming? Sure. Why not? I know who Notch is and can recognize him on sight. I have no idea who you are or what you've actually done. I'd say that makes him a posterboy for what can be accomplished with Java.

It's not the language you choose or "how it would've been done in the old days" before the Internet was really a thing. It's what you do with the tools you've got. You can rip Minecraft if you really want, but it's pathetic zealotry ... and I wouldn't be surprised to find a little jealousy has crept in there somewhere too.

Jealous of what? Fame? Money? A shitty engine that looks worse than a 1996 software-rendered game - ie. Quake? A game engine that tells you with a straight face that 4GB of RAM is 'not enough' or that chugs like hell unless you're running it on a Core i7?

Is the game inefficient? Probably. But if I can run it on my shitty Kindle Fire, it can't be too demanding.

If your job is about 'solving hard problems', then surely you could have solved the little 'problem' in your 'argument' here -

the 'Minecraft' you're running on your Kindle Fire is NOT, I repeat, NOT, a Java-based app. None of the 'mobile' versions of Minecraft are. It's written in C++.

Now you go and guess why that is, son? They were probably 'really stupid' in doing so because 'Java is just as fast', right Junior?

And on top of all that - trumping all that - the game is fun and playable. That's what matters.

Your 'definition' of fun must be very different from mine. But then again, you are probably in your late teens/early twenties and are not of my generation.

The 'indie games' you think are so high and mighty frankly for the most part consist of SNES game rejects that would have been laughed at by any SNES/Genesis gamer back in the day. (newsflash - those games looked the way they did due to technical restrictions and no, not due to inadequacy - indie 'devs' might want to take note). Another case of degeneration right there - the shitty 'indie games' that are held up as 'innovative' and 'great'. Ie. Jonathan Blow's tired 'Mario Bros with rewind' clone gets held up as a 'masterpiece' and the same for his soon-to-be 'Myst clone'.

The real reason NDK even exists is because they wanted to get cavemen like you to use android. Most of the game companies have extensive code written in C++ that would have been hard to rewrite. That is the reason. Not performance. Not even close.

I'll happily be a caveman to your 'troglodyte'.

Note - you might have to look that word up - it's not part of the 'brogrammer's' language.