Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

4 years after, I still don't understand!

Name: Anonymous 2011-09-03 14:22

Why does everyone hate Java so much?

To me it seems like it's got it's strengths and weakness like any other language.

I'm aware of it's weakness but I don't think that the amount of hatred upon the whole language is justified.

Name: Anonymous 2011-09-03 14:25

It's /prog/. Here everybody writes in languages you probably haven't heard of.

Name: Anonymous 2011-09-03 14:28

ive read sicp

Name: Anonymous 2011-09-03 14:38

>>1
Did you ever start a JVM and watch it consume all your available memory?

Other than that, you should know that humans are unreasonable creatures that do not always follow the path of logic.

Name: Anonymous 2011-09-03 14:40

everyone
Refrain from listening to non-programmers or unemployed people's opinion.

Name: Anonymous 2011-09-03 15:11

I especially like how script kiddies who use fucking python try to play the java-is-slow-card.

It's 2011. Java is amongst the fastest used languages.

Name: Anonymous 2011-09-03 15:20

>>4
My plugin-container is killed daily when a Java cron job starts up :)

Name: Anonymous 2011-09-03 15:26

You've obviously never used Java if you have to ask that question. The damn thing dig its own grave, and now it's only used by people who don't have a choice, for very good reasons.

That's hardly exclusive to Java though.

Name: Anonymous 2011-09-03 15:30

>>6
Execution speed is only a small part of the picture, specially for commodity software which generally isn't computation-heavy. The time the actual program takes to run is noise.

Hint: Gecko has always been quite a bit faster than WebKit, but see Firefox and Chrome. Who cares how fast it draws the page if you just had to wait 5 seconds until it started up.

Name: Anonymous 2011-09-03 15:46

>>8

What are you talking about? Java has grown in popularity these past years.

Everything is well documented and it has just enough abstraction to not be a complete hardware slave. That's a pretty good balance in my opinion.

Name: Anonymous 2011-09-03 15:48

>>9

Did you just prove yourself false? Boot up time is largely irrelevant. It's done once per session.

Name: Anonymous 2011-09-03 15:50

>>11
In theory, sure.

In practice, people won't put up with it.

Welcome to "dealing with humans".

Name: Anonymous 2011-09-03 15:52

>>10
ENTERPRISE popularity? Sure. (See "people who don't have a choice")

For platforms where it isn't the only option? Well, you tell me.

Name: Anonymous 2011-09-03 16:12

People who dislike Java have never tried to write cross-platform C++.

Name: Anonymous 2011-09-03 16:23

>>14

There are cross platform libraries that are pretty nice, like Qt, that support pretty much anything you would want to do, and they (usually) port perfectly fine.

Name: Anonymous 2011-09-03 16:23

>>14
Well, OTOH Java feels out of place in all platforms.

Name: Anonymous 2011-09-03 16:28

>>16
Even the [u][o][i]ENTERPRISE[/u][/o][/i] edition ?

Name: Anonymous 2011-09-03 16:29

[u][b][o][i]ENTERPRISE[u][b][o][i]

Name: Anonymous 2011-09-03 16:29

ENTERPRISE

Name: Anonymous 2011-09-03 17:42

Java doesnt have unsigned types/

FUCK JAVA. What fucking dickheads

Name: Anonymous 2011-09-03 19:25

>>20

This makes networking using java so annoying.

Name: Anonymous 2011-09-03 20:16

ENTERRISE

Name: n3n7i 2011-09-04 0:05

...I dont hate any language =)

I think the world would be a much better place if we could just tolerate each other's tastes... =)

...Some like Java, some prefer C... Others might love lisp... =D

Name: 0n3n7 2011-09-04 0:22

*Permutes name
...You can be anonymous and still be -identifiable- ??
...Imitation is the highest form of flattery ;)

*Agree's with #23 =D What?!

Name: Anonymous 2011-09-04 0:34

>>20
I'm a student studying programming, comments like this is why I don't participate in forums like this. Who gives a FUCK that java can't use unsigned types. What kind of program did you create that needed an unsigned type.

wanker

Name: Anonymous 2011-09-04 0:37

>>25
forums
What kind of program did you create that needed an unsigned type.
Get out please.

Name: Anonymous 2011-09-04 1:40

>>25
Any program that displays file sizes. Using signed integers for this shit is unforgivable.

Name: Anonymous 2011-09-04 2:08

>>27
Why is that?

Name: Anonymous 2011-09-04 2:40

>>25

There is a server written in Java, and a client in C sends over an array of 200032435 unsigned integers. The server receives 200032435 signed ints, and needs to assign each one into a different array, that is twice as large, using a conversion formula. You must use at least twice as much memory.

There is a server written in Java, and a client in C sends over an array of 200032435 unsigned long longs. Guess what, now you are fucked, and you have to make an array of BigInts, which need allocation, which uses dynamic memory, which causes the gc to run periodically, which causes you to get out of sync with the client, periodically, and now the application has a jump, periodically.

Not supporting unsigned types is ridiculous. I can't imagine there being an architecture with support for signed arithmetic and no support for unsigned arithmetic. It's madness.

Name: Anonymous 2011-09-04 4:45

>>29
Cool contrived example bro. Don't forget that it's trivial to covert from unsigned to signed and vice versa (one operation).

The only real difference is you don't have to put up with the
file.cpp:12: warning: comparison between signed and unsigned integer expressions
file.cpp:34: warning: comparison between signed and unsigned integer expressions
file.cpp:55: warning: comparison between signed and unsigned integer expressions
file.cpp:59: warning: comparison between signed and unsigned integer expressions
file.cpp:68: warning: comparison between signed and unsigned integer expressions
file.cpp:102: warning: comparison between signed and unsigned integer expressions
file.cpp:116: warning: comparison between signed and unsigned integer expressions
file.cpp:125: warning: comparison between signed and unsigned integer expressions
file.cpp:182: warning: comparison between signed and unsigned integer expressions
file.cpp:256: warning: comparison between signed and unsigned integer expressions
file.cpp:340: warning: comparison between signed and unsigned integer expressions
file.cpp:912: warning: comparison between signed and unsigned integer expressions

Bullshit.

Name: Anonymous 2011-09-04 5:26

>>30
You don't understand. It's not trivial to convert from signed to unsigned in Java. You have to use a larger signed-type, which involves sign/zero extension and eats up twice as much memory. To support 32-bit unsigned values in Java while retaining unsigned semantics during comparison, you have to use a 64-bit signed type.

>>29 was write. You are stupid, you don't even see the consequences.

Name: VIPPER 2011-09-04 5:40

Lisp is better.

Name: Clojurer 2011-09-04 5:43

>>32
Clojure

Name: Anonymous 2011-09-04 5:45

>>31
Moving the goal posts now to
retaining unsigned semantics
huh?

It's still easy to convert between unsigned and signed while preserving order. Are you going to require we meet all the obscure unsigned quirks of C now too?

No, you don't need to use a larger data type to read an unsigned integer. Not to mention this entire example is completely contrived, if you ever got into this situation you have bigger problems to worry about than allocating (and good heavens, having the gc collect) 4 extra bytes.

Name: Anonymous 2011-09-04 6:16

>>34
Wow you're stupid. You just don't get it. There's more to unsigned integers than just "reading" them as you put it. Just because they're two's complement notation doesn't mean that you can use signed comparisons on numbers where you expect unsigned semantics.


// C version, assuming int is a 32-bit integer on target platform
unsigned int a = 0xFFFFFFFF;
unsigned int b = 0x00000005;
if (b < a) {
    printf("fuck you >>34\n");
}

// Java version
int a = 0xFFFFFFFF;
int b = 5;
if (b < a) {
    System.out.println("fuck you >>34\n");
}


The C version will print the message, whereas the Java version will not. There are different semantics involved. In C compilers and the JVM, with signed integers, signed comparison machine instructions are emitted. For unsigned types in C, unsigned comparison instructions are used. There is a difference which affects order. In Java, the only way to get the same semantics is to use a larger signed integer type which can represent all of the unsigned values possible with the smaller unsigned type.

You're also stuck in OO-thought processes focused on tiny toy one-man projects. In large scale projects, if you have to support lots of unsigned integers has a big impact.

Name: Anonymous 2011-09-04 7:16

>>35
public class Main {
        public static void main(String[] args) {
                int a = convert(0xFFFFFFFF);
                int b = convert(5);
                if(b < a) {
                        System.out.println("magic!");
                }
        }
        private static int convert(int x) {
                if(x >= 0) return x - 0x80000000;
                else return (0x80000000 - (~x + 1));
        }
}

Name: Anonymous 2011-09-04 8:07

>>36
That's fucking bullshit. I thought Java was supposed to make things easier, not make you jump through hoops. Fuck Java.

Name: Anonymous 2011-09-04 8:37

>>36
You're saying that that is an improvement over just having support for the unsigned types built in? Now I have more reason to stay away from Java.

Name: Anonymous 2011-09-04 9:19

I never really believed it, but this thread convinced me: if it ain't Lisp, it's crap!

Name: Anonymous 2011-09-04 9:21

>>37,38
I never said it was easier, just that the example wasn't a valid one. I was correct.

Java makes things easier by decreasing cognitive load. The designer(s) had a well reasoned justification for removing unsigned types. You can disagree with the philosophy, and many people do.

Frankly, I think it takes one look at some boost source to understand Gosling was right. Adding features because someone, somewhere, might want to use your language to solve a problem it wasn't designed to solve is not a good strategy.

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List