Unironically, for what real, good reasons do you dislike/hate on Java and bitch about it and bash it so much Jow Forums?

unironically, for what real, good reasons do you dislike/hate on Java and bitch about it and bash it so much Jow Forums?

Attached: x00Java.png (500x500, 19K)

Datatypes

Microsoft has to shill C# to stay relevant

JVM

verbose, used by morons even if it's not the best tool for the job, orac00l, that one pic where c++ and java is compared also

I do not dislike java. I do recognize that it is designed to fit a particular use case that does not appeal to me.

Java is specifically designed, before all else, as a language in which okay-to-good programmers can write mediocre software, which below-average programmers can then work with without messing it up too hard. In doing that, it deliberately sacrifices the ability of good programmers to make anything particularly good, to make sure they won't write anything that the below-average programmers don't understand.

This is an extremely useful and valuable property for a language to have, and there are many organizational contexts in which it is a great tool. It is not a useful tool for me, so I generally avoid it, but that's not because I dislike it.

Literally this.

Ok this is just false, there are tons of enterprise software and fantastic software programmed in Java. Only autistic people that want access to fucking hardcore C++ API shit harp on Java.

> You have to explicitly tell the compiler what exceptions may be thrown in every single fucking method
> You have to get() and set() every fucking property manually like a fucking child doing chores
> You have to name things in the format ORACLE wants if you dare to use any FXML where I would rather contract cancer than touch again.
> You have to deal with the shittest IDEs known to man
> You have to deal with JVM which is like babbys first VM for your system because its a hunk of shit and underperforms compared to any INTERPRETED language even when running COMPILED code.

Did I mention
> Good luck working out how the fuck property bindings work

I can bash on it all you want after you separate Jakarta from Java

I'd just like to interject for moment. What you're refering to as datatypes, is in fact, valuetypes, or as I've recently taken to calling it, types with value. types are not values unto themselves, but rather another component of a fully functioning type system made useful by the java development kit, shell utilities and vital runtime environment comprising a full object oriented ecosystem.

Many computer users run a modified version of the type system every day, without realizing it. Through a peculiar turn of events, the name "valuetypes" which is widely used today is often called "datatypes", and many of its users are not aware that it is basically the type system, developed by oracle.

There really is data, and these people are using it, but it is just a part of the system they use. data is the abstract unit: the section in the system that allocates the machine's resources into uniform sized allotments. The data is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. type is normally used in combination with the type system: the whole system is basically types with value added, or valuetype. All the so-called datatype distributions are really distributions of valuetypes!

Because Oracle is a patent trolling it

Because Oracle stopped development on it and a Ukrainian IDE company actually came out with a superior version of Java

Because Java is obsolete and he only people who program in it are people who dont care what language they use

In addition:

> If you want to depend on anything, you have to spend 4 hours reading about gradle. Then Maven. Then Ant. And then another 4 hours actually getting these pieces of shit to work properly

This, Java is a prison.

>there are tons of enterprise software and fantastic software programmed in Java
Yeah, and enterprise software is almost universally shit. That is fine -- it is not intended to be a jewel of software engineering, but to do something boring and technically straightforward.

It's software that needs above-average technical prowess for which java is a limiting factor. Enterprise software is very rarely in that category. Which is why java is a GOOD language for that use case.

>Only autistic people that want access to fucking hardcore C++ API shit harp on Java.
No -- people that work on the type of projects for which C++ is appropriate harp on java.

You're an average programmer

oracledb

Attached: puke.gif (200x150, 432K)

Verboseeeeeee.

ActionManager.getInstance().getAction(IdeActions.ACTION_CODE_COMPLETION).actionPerformed(new AnActionEvent(null, DataManager.getInstance().getDataContext(editor.getComponent()),ActionPlaces.UNKNOWN, new Presentation(),ActionManager.getInstance(), 0));

People don't like it because it is a 100% objectified language.

I hate Java because I come over from /b/ and want to talk about my new Python book. No, I have not started to read it yet, but I'm just lettin' people know what's up.

J2EE is a mess and completely changes the playing field with it's bullshit inversion of control and @annotation systems

It's not fun to use.

and segfaults and null pointer accesses is

Why would you read my post and assume I use C or C++?

Because there's no other alternative to Java?
(C# is just a Java reskin with a different ecosystem)

I use Lisp

Lisp isn't a language

Java
"One land, one king."

Attached: crusader6.png (891x640, 1.25M)

You have to type a lot, it feels like writing whole English sentences. A good IDE can autofill/generate a lot for you, but this is only compensating for the languages lack.

Also, though the jvm is pretty good at optimizing, nothing beats compiled code (This is of course a trade-off which has deliberately been chosen when designing the language to make it run on every platform.).

Nitpick from me: No unsigned integers.

Everything is an object. I certainly don't dislike object oriented programming, but in some cases it just isn't the best choice. But of course, there is always a correct tool for the job, and if oo programming doesn't fit your problem space, then you shouldn't be using java.

and that's a good thing

I always hated object-oriented programming, feels like writing an essay back in high school.

basically because c# exists and (in terms of language design) is superior in every way

My "why I hate Java" list:

1) It's verbosity. For example getters/setters are shit compared to C# or Ruby. The Java syntax is just bloated and outdated.

2) The lack of multiple inheritance was a design mistake, I think it's crucial for OOP to allow it. Most modern langauges today have stuff like Mixins and it works just fine. It's interesting to see how Java interfaces changed more and more to emulate multiple inheritance.

3) The Java syntax has no good functional features. I don't get how Java Guy Steele could design Scheme (arguably one of the slickest langauges ever made) and then design Java without even some basic functional features. Clojure (which is basically just a layer of syntactic sugar above Java) does so many things right, why couldn't Guy sneak in some goodies into Java to make it more bearable? Now they added some half arsed and clumsy streams in the last few Java versions because "we functional now!", but it's clumsy and verbose to be really interesting to use.

4) The type system is screwed. There are types which do the same but are not the same (i.e. Integer and int), autoboxing (a workaround for a flawed design), the way strings woork (i.e. the string pool and string comparison), the whole idea of nativ types and non-native types.. Quirky and not very sensible.

5) The language encourages to shatter things into a bloated mess. And if you look closely, many of the "Java design patterns" are workarrounds for shortcomings of the language design. There's a reason why there are so many AbstractBeanFactoryFactory jokes are made.

6) The Java that you learn in "my first programming language course" and how you use it in industry have not much in common. For example inversion of control and all those HUGE frameworks which take a long time to learn. The whole Java universe is just way to big and wicked, you have to learn differnt langauges like groovy to configure the setup for configuration for the initialization..
>pic related

Attached: java.jpg (739x710, 131K)

>can't program c without raping memory
>this is why java is good
ppfffftttt?

>You have to get() and set() every fucking property manually like a fucking child doing chores

Maybe learn how to do object oriented programming instead of having quasi-global variables in all your classes...

Because you're using Pajeet-grade frameworks

Lmao you reminded me that V8 is faster than Graaljs

Basically Java is:
1. The best VM ever implemented
2. One of the best languages ever designed
3. A pretty decent standard library
4. Horrible enterprise frameworks

People often judge Java based on point 4. But you don't have to use those horrible, XML/annotation/inversion of control/JavaBean abominations full of retarded patterns.
You can write Java almost like you would write C, just with memory safety, better data structures and library, etc.

Why would you lie online? People use java solely for good server frameworks

+1

Well point 2 is just wrong. Java is cancer doesn't make fun to program and you have to deal with a cancerous IDE to be able to even remotely make that language usable.

>good server frameworks

Name one (apart from bootstrap) that isn't a bloated shitfest of XML files.

>In doing that, it deliberately sacrifices the ability of good programmers to make anything particularly good, to make sure they won't write anything that the below-average programmers don't understand.

Give an example of this

>2. One of the best languages ever designed

Attached: 4e7.png (625x626, 76K)

I really dislike the formatting convention.
There, I said it.

It is. Look at the background of the people who designed Java.
It really is one of the best compromise between safety, performance, ease of maintenance, ease-of-use, etc. You won't find a language that comes close when you take all those things into consideration.

C# comes close, but it is too Microsoft-specific. Most other languages don't do that trade-off very well. Python and Ruby are expressive but orders of magnitude slower. C++ is a bit faster but way more complex and much less safe.

>enterprise
Sweaty, that's a buzzword for products made for idiots who need protecting from themselves.
It's not a good thing.

hahahahaha

i love java
it's nice to get stuff done

JVM has long startup time and uses a lot of memory. Also, GUI applications are not as fast as the ones written in C/C++.

> You have to explicitly tell the compiler what exceptions may be thrown in every single fucking method
Meh, works to discourage people from not properly processing their exceptions.
> You have to get() and set() every fucking property manually like a fucking child doing chores
In most IDEs you just need to press a button to do it automatically, also tough shit if you wanna do OOP - some patterns just pop up constantly.
> You have to name things in the format ORACLE wants if you dare to use any FXML where I would rather contract cancer than touch again.
?
> You have to deal with the shittest IDEs known to man
Netbeans is goat, Eclipse is decentish, nothing keeping you from using n++ or whatever.
> You have to deal with JVM which is like babbys first VM for your system because its a hunk of shit and underperforms compared to any INTERPRETED language even when running COMPILED code.
This is a flat out lie and has been for quite a while. It was true in 98 which was 20 years ago.

>gimped generics
>no unsigned types
uhh that's about it

>baby duck syndrome: the post

You know, the actual amount of people using a langauge has more to do with "politics" and "first come, first serve". It's not necessarily a good language, only because many people use it.

There were a million differnt languages that compile to JavaScript (ie. CoffeeSCript, TypeScript) that eventually led to modern ECMA script. All those variations were there because JS had so many quirks and short comings.


Same for PHP which started as a huge mess of a language. Today it's bearable, because it adopted syntax features from other languages and was cleaned up a little bit.


As for Java there are many JVM languages that were developed exactly beause Java has such a bad syntax.

And the speed of Java is not because it's such a good langauge, it's the other way around:
After the industry started using Java a lot of money was poured into the development of the main JVMs. It's crazy what the big JVMs imlementations are capable of, but make no mistake:
Put the same money into different langauges and they''ll get fast as well. A good example is Ruby, because JRuby is a thing, but unforntunately it doesn't really found adoption.

So after all it's a viscous circle:
Companies keep on building in Java because Java devs are a dime a dozen and it has enterprise level frameworks.
And Developers keep learning this ugly and badly designed languages because they are afraid to find no jobs.
Then peopel continue to make enterprize level software in Java and so on.


But you can see that Java is slowly but steadily declining, since most programmers today know more then one language and if you programm in any other language you''ll notice all the shortcoming of Java.


>tl; dr: Java is the long-term relationship fat chick which doesn't make you happy anymore, but you are are too afraid of being alone, so you leave the cool girls to others

Java devs are retards.

I hate Java's concept of classes and inheritance.

It makes no fucking sense.

why

>huge fucking memory usage
>No free functions
>Verbosity
>Doesn't run natively
>No pointers
>GUIs always look like shit
>Fucking factory pattern

I don't like coffee

>Simplest form of classes and inheritance
>I don't get it
Pajeets everyone

Please update Java