Hacker News new | ask | show | jobs
by HPsquared 284 days ago
For some reason Java always makes me feel ill. C# is okay though, weirdly.
3 comments

I had the identical reactions, and like you it doesn't make a lot of sense.

Java: "stiff", awkward, verbose. Gets the job done but ugh.

C#: "soft", flexible, has possibilities

Although to be fair I programming in Java a long time ago, and haven't done much with C#. C# I see as a "corporate Python", vs Java I see as a language designed by committee and not for use by humans.

I've heard Java is way, way better now.

Java gives me similar feelings to what people say about Go: it may be a little verbose, but you always know exactly what to write and how to write it, and looking at other people's code you get a very good sense of what it does because it follows very familiar patterns.

The "brotha, eugh!" feeling comes from the enterprise frameworks, which tangle all that up in a mess of factories, DI autowiring, and inversion of control. COBOL may have been a lot to type, but its execution model was straightforward, like a BASIC program. Java EE's execution model is NOT straightforward. And it's no wonder why so many attempts to "modernize" old COBOL code using Java EE fail.

In my case it helps that I've been poking at Java since the very beginning, having discovered a bug in the 1.0.1 runtime, and compared to contemporary C++, it was a delight except for the performance problems.

C# doesn't feel too different from Java to me, aside from being more "Microsofty".

"Proper" generics, value types, LINQ, operator overloading, excellent native interop etc make a big enough difference to me atleast to prefer c# over java. Is being "Microsofty" a bad thing and "Oracly" or "Googly" a good thing?
It's more of a "I recognize coding styles and conventions associated with this company" than a judgement of good or bad.
Java made me think in pure object-oriented, GoF Design Patterns systems; tight types, defensive programming, detailed documentation, the works.

But then I got bored with it. I like meticulousness sometimes, but it started to feel like Java was just excessive and impractical.

C# is an evolution of Java, and unlike Java didn't have a 8-year pause or however long it was before they finally started moving again (the period between Java 6 and 7 I think).

That is odd, cursory looks at C# sure the hell looks like Java, certainly largely a blatant rip-off. Methinks you have feeling for Microsoft.