Switch to java 1.8?

Right now 90% of the people using my plugin are on 1.7
Would it be wise to update to java 1.8 for the added features?

I am told java 7 is no longer obtainable.

What?

2 Likes

False. Look here http://www.oracle.com/technetwork/java/javase/downloads/jre7-downloads-1880261.html
I would say, no. Not yet. A large part of the community is still using Java 7. Heck some are still using Java SE 6. I don’t even use 8 (It’s kinda buggy on older games/programs).

I’m currently using SE 7 and 8. But for Java projects, such as plugins, I only use 7. It’s more common to be used on computers these days. It will take time for 1.8 to spread, so keep using Java 1.7 until 1.8 has become the standard :smile:

I highly recommend that you stay on the Java 1.6 or Java 1.7 language levels, or use the JDK 6 or JDK 7 to develop your plugins. Java 8 is still relatively new and most of your potential users(meaning server owners and players, if you’re making a client-side mod) will not have it installed, and it is backwards-incompatible in some ways. I know that the features like streams, lambdas, defaults on interfaces and such are really cool, but unfortunately there is just not enough adoption of Java 8 yet to warrant its use in Minecraft plugin development.

Historically the java used in the server mods for MC have been using the same version that Minecraft uses, and when they switch Minecraft to java 1.7 or a higher version, then sponge may move to support that. Minecraft uses java 1.6 currently.

I wouldn’t switch to java 8 … I know people who don’t even know that java 8 is existing… :smiley:
And many old games aren’t really supported by java 8 … :frowning:
And you may know that java 8 is still buggy!

I use java 7 for all java stuff… :slight_smile:

I needed to update my Java to 1.8 due to an online programming course I took. Then I noticed my Minecraft client started crashing as soon as I hit the chat button in game and left the game by itself for 30 seconds.

Switched back to java 1.6: the problem went away. So no, do not upgrade to java 1.8 before the game itself has upgraded. It is still running on 1.6.

Are their any features java 8 has to offer to help with plugin development? Like for plugins if it is now 6, 7 or 8 my plugins compile just fine on these versions.

We wanted to use stuff like Optionnal<> but we won’t now. And I don’t want to add a 3rd party library as this was to be in the API.

I found this overview about java 8 features on reddit:
http://bentolor.github.io/java8-lightningtalk/#/

I love Java 8 and my plugins will be java 8 based (if this is possible and does not crash with the Sponge API or Minecraft itself). The reason is simple:
If nobody is using or enforcing a new version, the version will never get to the people. And Java 8 provides a simple features, very important for every mod dev:
No permgen. Only metaspace. No need for the flag “XX:-PermGenSize:256MB” or something like that.

But I can understand, when Spigot will be based on Java 6 providing a general and installed base for devs.

2 Likes

The default Java download has been Java 8 for a while now. Apple hasn’t bundled Java for 2 years now, and the default Oracle Java for Mac OS X is Java 8 as well. Ubuntu Utopic Unicorn has Java 8 in the repos (though 7 is still the default for some reason). It’s time to get with the times and make the switch.

2 Likes

You know you can have 2 versions of Java at the same time, just select an alternate location on the installer (never done this myself but I would expect it will work). That way those who need Java 8 can do so while also having Java 7 for Minecraft.

I don’t think it would be a good idea setting the minimum Java version to 8. Minecraft officially supports from 6 up, so does Forge and so should Sponge.
I wouldn’t want Sponge to be more limited than Vanilla in terms of hardware/software requirements.

I think it’s save to say to use java 7 when developing. Most servers SHOULD have updated to this version of java as Oracle no longer providing public updates for java 6.

source:
http://www.oracle.com/technetwork/java/eol-135779.html
(search for “Java 6 has reached its End of Public Updates”)

When developing with JDK 7 your code gets compiled for java 7, but you may still run it on a Java 8 environment. It won’t work the other way around.

I higly suggest keep using JDK 6 due to the fact it’s compatible with higher versions. The other way around not. Also if you make it JDK 8 some noobs will start thinking, ‘Why doesn’t my server work?’… I don’t want 300 threads about the same topic.

“Noobs” as you call them, would either not know how to set up the JRE at all, or watch videos where people would actually tell them (how) to install the JRE v1.8; So that argument is, well, invalid.
But overall; I agree that we should stick to 1.6, as it isn’t even ours, but Mojang’s decision.

2 Likes

only around 2% of servers still use 1.6, so in my opinion it’s not worth it to target 1.6, when there are a lot of very worthwhile features in 1.7.

I’ve been using java 8 on a personal project and it is very, very nice, however not many servers actually use 1.8 yet.

4 Likes

Agreed with both.
Upvote to switch to JDK 7

1 Like

Minecraft is targeted at Java 1.6. From my understanding, the reasoning behind this is because of old iOS devices that don’t support higher versions of Java. So for the small percentage of the small percent of desktops running iOS that also aren’t capable of upgrading to a higher language level, Mojang won’t upgrade. This is the kind of decision making process they have. Either way, because Minecraft targets Java 1.6, servers and API’s are typically written to target the same level. Plugins however can be written at a higher level if you want to. So go ahead and do whatever you want.

Also wat. Java 7 no longer available? I mean, a quick Google search would verify that you didn’t think that through heh.

Don’t worry, I’ve stabbed multiple times my source. It won’t happen again.

1 Like