Java-Gaming.org Hi !
Featured games (83)
games approved by the League of Dukes
Games in Showcase (526)
Games in Android Showcase (127)
games submitted by our members
Games in WIP (593)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: 1 ... 3 4 [5] 6 7 ... 9
  ignore  |  Print  
  Does really game development on Java suck? Why are we still here?  (Read 51273 times)
0 Members and 1 Guest are viewing this topic.
Offline gimbal

JGO Knight


Medals: 25



« Reply #120 - Posted 2012-04-06 12:03:16 »

There don't have to be extremes like "dying" or "superior". C++ isn't dying, its being used less. Just like Java is being used less since .NET appeared. It only makes sense that usage shifts, .NET is a better "fit" for certain breeds of developers or companies and so they should use it.

As long as you don't start building entire application frameworks in PL/SQL, its all good IMO! Smiley
Offline akarm

Junior Newbie





« Reply #121 - Posted 2012-04-06 17:11:46 »

Greetings - (nice anti spam verification BTW),

I'm a long-time simulation boffin in the aerospace industry. Unsurprisingly, we use a lot of gaming technology.
We tend to use the most expensive PCs, with the most cores. But here's the thing - whatever we use, three to five years later, everyone has them.

And there's the rub: the future is mulit-core. Start thinking now about immutability, concurrency and parallelism. Give it a couple more years; I reckon everyone will be rocking 8 cores in their phones.

And the JVM supports multi-threading like no other platform.

And that's why I'm still here. Now go get some clojure.
Offline gimbal

JGO Knight


Medals: 25



« Reply #122 - Posted 2012-04-06 18:01:27 »

What the heck?

And there's the rub: the future is mulit-core.

The future has already been here for quite some time then :/ Are you from the past?

Quote
And the JVM supports multi-threading like no other platform.

The JVM supports multi-threading like ANY OTHER platform since a very long time. Hardly a reason to stick with Java. The real reason is because Java gets you laid.
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline BoBear2681

JGO Coder


Medals: 19



« Reply #123 - Posted 2012-04-06 18:05:19 »

The real reason is because Java gets you laid.

Just don't tell my wife!
Offline akarm

Junior Newbie





« Reply #124 - Posted 2012-04-06 18:53:31 »

Hmm. I must watch my turn of phrase.
I was trying to suggest that IMHO that the internal memory and threading model of JVM is the lesser of all other evils.

BTW: Here's what you're missing from the past: closures, continuations, conditions, numeric stack.... ah, happy days...

For a glimpse of the future, try http://www.azulsystems.com/products/vega/overview

54 cores and hardware accelerated GC, anyone?
Offline sproingie

JGO Kernel


Medals: 202



« Reply #125 - Posted 2012-04-06 18:56:56 »

Having a well-specified memory model is a Very Good Thing Indeed.  You can have all the synchronization primitives you want, but when you can't guarantee any kind of "happens before" relationship for ordering operations, you either have to dispense with reordering entirely (thus de-optimizing your code) or rely on the behavior you get with your current compiler and arch and find out oops, your assumptions were invalid on this other arch.  I believe C++11 has a memory model now, doesn't it?

Also, it's ironic that you point out the Vega as a glimpse of the future, since Azul is discontinuing it.  Spiffy hardware, but it simply can't compete with cloud providers on commodity hardware.
Offline akarm

Junior Newbie





« Reply #126 - Posted 2012-04-06 19:11:03 »

Sigh - It's like Concorde all over again.

Until next time Internet! I'm off to shoot some OPFOR.
Offline OverKill

Junior Devvie




Java games rock!


« Reply #127 - Posted 2012-04-10 08:20:45 »

@sproingie: I think OverKill means the ranking position.
I actually rather meant the mess it has become. The first page usually is nothing but a collection of defs, ifdefs, ifndefs and whatnot. Then a file of all kinds of code that you have to figure out for yourself how it all fits together.
Mind you I would love to do more C if they managed to clean it up again and introduce some 'standards' like Java et al have.
And I think the ranking is simply a result of this. Besides that Java is simply a lot more flexible then C/C++.
Not to mention compiles a LOT faster! Cheesy

C# was interesting but had two problems M$ and feature creep. Latter meant that every crazy idea someone said it must have, was added just to keep it 'cool'.
While many think that Java is horribly slow with new features, I personally prefer it that way. Any new addition should be evaluated and 'Javaized' to fit into the specs.
It is kinda like how you write interfaces. You just do not change them constantly because of some new fad.

While I am usually not one of the kind to like to hear this, but I think that if you want new features that do not fit into Java, then it might not be the right language for you.
There are new langauges for the JVM popping up everywhere and perhaps one of those has the feature you are looking for.
But let's not stick some horns on a dog and call it a cow.
K?Thx!Bye.
Offline sproingie

JGO Kernel


Medals: 202



« Reply #128 - Posted 2012-04-10 17:20:42 »

I'm not for treating an established language as a kitchen sink of random ideas, but a lot of the things being asked for are not radical and have been in regular productive use for decades.  As for "love it or leave it", then well, at some point, there does come a critical mass of people who do say "it's not the right language for me or my project", those people become PMs and CTOs, and then hopefully the next better thing comes along.  Evolution in action.  I'd rather not see that demise hastened unnecessarily, and right now the JVM is too nice to put a stake into it by killing its flagship language.

I've called Java the C of the JVM as a sort of backhanded praise, but I'm not sure that's fair: C at least gives me unsigned ints.  Anyway, I've more than said my piece, all I'm doing is repeating myself now.
Offline Danny02
« Reply #129 - Posted 2012-04-10 19:51:06 »

arg, unsigned nummbers are evil 111oneone111eleven!!!!  Cheesy
Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline Riven
« League of Dukes »

« JGO Overlord »


Medals: 833
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #130 - Posted 2012-04-10 19:52:03 »

arg, unsigned nummbers are evil 111oneone111eleven!!!!  Cheesy
You mean like char ? Smiley

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline princec

« JGO Spiffy Duke »


Medals: 423
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #131 - Posted 2012-04-10 21:34:04 »

You know it was only after a random tweet you made the other day Riven that I realised a char was basically an unsigned short. For some reason I'd never put 2+2 together there.

Cas Smiley

Offline sproingie

JGO Kernel


Medals: 202



« Reply #132 - Posted 2012-04-10 21:55:27 »

You know it was only after a random tweet you made the other day Riven that I realised a char was basically an unsigned short. For some reason I'd never put 2+2 together there.

And now you know you can put together '2' + '2'
 Tongue
Offline ra4king

JGO Kernel


Medals: 355
Projects: 3
Exp: 5 years


I'm the King!


« Reply #133 - Posted 2012-04-10 22:00:51 »

'2' + '2' = 'd'

Grin

Offline princec

« JGO Spiffy Duke »


Medals: 423
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #134 - Posted 2012-04-10 22:04:34 »

I deliberately left that comment wide open to that reply  Roll Eyes

Cas Smiley

Offline Riven
« League of Dukes »

« JGO Overlord »


Medals: 833
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #135 - Posted 2012-04-10 22:12:41 »

You know it was only after a random tweet you made the other day Riven that I realised a char was basically an unsigned short.
As a homeless software developer once said: 'The day you stop learning is the day you stop earning.'

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline ra4king

JGO Kernel


Medals: 355
Projects: 3
Exp: 5 years


I'm the King!


« Reply #136 - Posted 2012-04-10 22:16:07 »

You know it was only after a random tweet you made the other day Riven that I realised a char was basically an unsigned short.
As a homeless software developer once said: 'The day you stop learning is the day you stop earning.'
Shocked

*ends laziness and starts learning more stuffs*

Offline Roquen
« Reply #137 - Posted 2012-04-11 15:23:05 »

WRT: C++ streams.  Just another example of C++ being a crap language syntactically. "Hey! Streaming stuff in my shell scripts is great..let's toss something like that it!"   Yeah...great idea.  Mixing styles is always a bad idea.

WRT: C++ in general.  Forget about it's weakness, they're unimportant.  Because some language feature sucks to use in C++ doesn't mean that it's bad.  The only "bad" feature of C++ in my opinion is multiple inheritance...but maybe that just because all of us have a little bit of a language nanny inside of us.  Why not come the conclusion that class-based OO is unusable because of C++?

WRT: Overloading new.  I always do.  If I'm doing C++ that mean speed is a primary concern, so data flow is going to be important.  You can't just use a single custom allocator, because then you're stuck with a unified thread-safe heap manager.  I'll have some number of region based (stack like), heap (single & multi-threaded) and pool allocators in a given program.

WRT: Paren operator.  I've mostly seen that from hard science folks that are probably more use to some DSL (like scilab) and they are attempt to use a familiar syntax.  Paren operators should NEVER be overloadable as this leads to an ambiguous syntax.   Consider:
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
  public float m(float a, float b)
  {
     ...
  }
 
  public void foo(Mat3x3f m)
  {
    // value of foo depends on if Mat3x3f has overloaded a two parameter paren operator, which could change over the
    // lifetime of this code.  bad...very very bad.
    float   foo = m(0,0);
  }

Notice, however, that this is not a problem for an array accessor operator.  I think that in any language this should be the ultimate litmus test.  Never make an ambiguous syntax.

WRT: Cas's word infix notation.  Add a colon and you have SmallTalk.  IMHO..bad idea.  Again due to mixing syntactic styles.

WRT: Java support muticore like no other?  I think Java is very very weak for concurrency.

I love operator overloading.  Looking at bad examples in C++ isn't a proper way to consider the issue.  Figuring out what is being executed would be identical to figure out for a named method (i.e. no 1990s grepping all the source files and praying to find it quickly).  And I'm sure that Eclipse/Netbeans would render overloaded operators differently from default ones.  The trick here is that people that have never needed to do any computational intensive programming with non-primitive types just won't "get" how awful not have operators is.  BUT: for me, operator overloading is a much lower priority that some other features (such as those listed above).  And again, I think the most important in terms of wide usage would be getters & setters, which I'm now too lazy to type up a description of why.
Offline longino

Junior Devvie


Medals: 1



« Reply #138 - Posted 2012-04-11 15:55:07 »

WRT: Java support muticore like no other?  I think Java is very very weak for concurrency.

 Roll Eyes

If you are going to bash Java, could you at least try to make sense?

Java has had concurrency primitives and multithreading from day one, and later got lots of useful utilities. That alone is superior to most languages out there without a standard concurrency model.

If by "weak" you mean: "not the latest fad", then yes, it doesn't. And no, Clojure isn't good because it places the burden on the developer. There's a reason why dynamic memory management is excellent, a similar reason sould apply to concurrency as well.

Implementing a completely different concurrency model is impractical at this point.
Offline sproingie

JGO Kernel


Medals: 202



« Reply #139 - Posted 2012-04-11 16:03:31 »

I love operator overloading. 

Can you give one example where you do like it?  Because you'd never know it given the heated impassioned ranting against all the various instances it that was just put on display here.  Is it just the subset of operators you personally use?
Offline sproingie

JGO Kernel


Medals: 202



« Reply #140 - Posted 2012-04-11 16:14:40 »

Java has had concurrency primitives and multithreading from day one, and later got lots of useful utilities. That alone is superior to most languages out there without a standard concurrency model.

Java's concurrency primitives are pretty decent, largely the same thing you get in POSIX, and otherwise lacking things like channels or logic variables.  What does make Java awesome is that it gives its primitives precise semantics (especially since the JMM in 1.5) that are guaranteed to work across platforms.  That's the sort of WORA I like in Java -- god knows it's not for the beauty of the cross-platform GUI toolkit :p
Offline longino

Junior Devvie


Medals: 1



« Reply #141 - Posted 2012-04-11 16:27:07 »

Java has had concurrency primitives and multithreading from day one, and later got lots of useful utilities. That alone is superior to most languages out there without a standard concurrency model.

Java's concurrency primitives are pretty decent, largely the same thing you get in POSIX, and otherwise lacking things like channels or logic variables.  What does make Java awesome is that it gives its primitives precise semantics (especially since the JMM in 1.5) that are guaranteed to work across platforms.  That's the sort of WORA I like in Java -- god knows it's not for the beauty of the cross-platform GUI toolkit :p


There are other ways of doing concurrency that offer advantages. But comparatively Java does pretty well in that regard, especially when compared to other mainstream languages.
Offline Riven
« League of Dukes »

« JGO Overlord »


Medals: 833
Projects: 4
Exp: 16 years


Hand over your head.


« Reply #142 - Posted 2012-04-11 16:29:57 »

I love operator overloading. 

Can you give one example where you do like it?  Because you'd never know it given the heated impassioned ranting against all the various instances it that was just put on display here.  Is it just the subset of operators you personally use?

I, for one, love operator overloading in the kind of calculations typically done in shaders. Not much else, oh, and in String concatenation.

Hi, appreciate more people! Σ ♥ = ¾
Learn how to award medals... and work your way up the social rankings
Offline Roquen
« Reply #143 - Posted 2012-04-11 19:39:45 »

Quote
Can you give one example where you do like it?  Because you'd never know it given the heated impassioned ranting against all the various instances it that was just put on display here.  Is it just the subset of operators you personally use?
I'm not sure what you mean, the only operator that I say is "bad" is paren since it can change the meaning of unrelated code. Any operator that doesn't fall into this kind of category is a good candidate as far as I'm concerned.  As an example, I sometime think that Mathematica doesn't support enough operators.  Oh and I say that the C++ stream thing is ugly.

Quote
I, for one, love operator overloading in the kind of calculations typically done in shaders. Not much else, oh, and in String concatenation.

What, you don't love:
1  
2  
3  
  HashMap<String, Double> foo;
  ...
  foo["Pi"] = Math.Pi;

Thank you language nannys for giving me the most useless operators possible.
Offline princec

« JGO Spiffy Duke »


Medals: 423
Projects: 3
Exp: 16 years


Eh? Who? What? ... Me?


« Reply #144 - Posted 2012-04-11 19:46:38 »

Eeergh, is that going to make it in to Java?

The problem I see with operators is simply being able to read the code aloud in your head. As all of those co-opted ASCII symbols already have pretty much one and only one word to describe them when reading them in your head, trying to make them mean some other word is bound to end in confusion and tears with other developers.

Cas Smiley

Offline sproingie

JGO Kernel


Medals: 202



« Reply #145 - Posted 2012-04-11 19:59:31 »

Parentheses mean "apply".  It makes perfect sense to define application for more things than just functions that were defined with the built-in syntax.  A map is essentially a partial function from its keys to its values, for instance, so I actually find users("sproingie") a lot cleaner than users["sproingie"] for instance, because I don't have to care whether it's a function or "indexable object".  That's the essence of polymorphism right there, and if it's too "spooky" to make application dispatch on the thing to the left of the parens and not just the things on the right, I don't really have anything to say other than to demand a more rational basis for objections.
Offline Roquen
« Reply #146 - Posted 2012-04-11 20:01:52 »

Yes.  All Map interfaces auto-magically have overloaded array get & set.  In JDK 8, if I'm correct.

Like I said...most people don't get how evil the lack of operators is until their forced to do without.
Offline Roquen
« Reply #147 - Posted 2012-04-11 20:11:10 »

sproingie: You're missing my point.  Re-look at my example.  If that code segment is written before the matrix had two param paren operator defined, it returns the local function 'm'.  If at some point in the future the matrix class defines an operator that returns the value of the matrix at the position, then the meaning of the code in my example changes.  That is very bad design.
Offline sproingie

JGO Kernel


Medals: 202



« Reply #148 - Posted 2012-04-11 21:01:19 »

Actually, I suspect you'd need to recompile the code in the snippet to get the new behavior, which I suppose is better or worse depending on how you look at it.  That's just how it is when you have multiple namespaces in a language.  I would expect a compiler to scream about it, but that's obviously not going to happen with separate compilation.

::m(a,b) if you really care ...
Offline ShannonSmith
« Reply #149 - Posted 2012-04-11 21:39:05 »

I love operator overloading. 

Can you give one example where you do like it?  Because you'd never know it given the heated impassioned ranting against all the various instances it that was just put on display here.  Is it just the subset of operators you personally use?

I, for one, love operator overloading in the kind of calculations typically done in shaders. Not much else, oh, and in String concatenation.

Agreed which is why I wouldn't mind seeing a vector math library incorporated into the standard library with appropriately overloaded operators. Interestingly String concatenation is actually a pretty poor example of operator overloading because addition is commutable whereas string concatenation isn't. That said I have gotten so used to it I can live with it (VB uses an '&' operator for string concatenation which is probably a better idea).
Pages: 1 ... 3 4 [5] 6 7 ... 9
  ignore  |  Print  
 
 
You cannot reply to this message, because it is very, very old.

 

Add your game by posting it in the WIP section,
or publish it in Showcase.

The first screenshot will be displayed as a thumbnail.

toopeicgaming1999 (71 views)
2014-11-26 15:22:04

toopeicgaming1999 (60 views)
2014-11-26 15:20:36

toopeicgaming1999 (14 views)
2014-11-26 15:20:08

SHC (27 views)
2014-11-25 12:00:59

SHC (25 views)
2014-11-25 11:53:45

Norakomi (31 views)
2014-11-25 11:26:43

Gibbo3771 (25 views)
2014-11-24 19:59:16

trollwarrior1 (38 views)
2014-11-22 12:13:56

xFryIx (77 views)
2014-11-13 12:34:49

digdugdiggy (55 views)
2014-11-12 21:11:50
Understanding relations between setOrigin, setScale and setPosition in libGdx
by mbabuskov
2014-10-09 22:35:00

Definite guide to supporting multiple device resolutions on Android (2014)
by mbabuskov
2014-10-02 22:36:02

List of Learning Resources
by Longor1996
2014-08-16 10:40:00

List of Learning Resources
by SilverTiger
2014-08-05 19:33:27

Resources for WIP games
by CogWheelz
2014-08-01 16:20:17

Resources for WIP games
by CogWheelz
2014-08-01 16:19:50

List of Learning Resources
by SilverTiger
2014-07-31 16:29:50

List of Learning Resources
by SilverTiger
2014-07-31 16:26:06
java-gaming.org is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑gaming.org
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!