Live data from Hacker News

Java at 30: Interview with James Gosling

thenewstack.io

281–290 of 437 posts

Re: Java at 30: Interview with James Gosling

#281

Earlier quoted context omitted.

> Java performance isn't the fastest, that's ok, a close 3rd place behind C/CPP ain't bad. And you're still ahead of Go, and 10x or more ahead of Python and Ruby. Fastest at what, exactly?

Having a hard time finding it now, but someone put together a benchmark with two categories - naive and optimized - comparing implementations across languages with a workload vaguely resembling a real-world business application server with a mix of long and short lived objects. Java was at the top of the naive benchmark by a landslide and behind C and C++ (edit: and probably Rust) for the optimized ranking, but with…

I think it was this blog: https://renato.athaydes.com/all-posts They also tested common lisp!

Re: Java at 30: Interview with James Gosling

#282

I personally appreciate Java (and the JVM) much more after having tried other languages/ecosystems that people kept saying were so much better than Java. Instead, I just felt like it was a "the grass is greener" every time. The only other language that I felt was an actual massive improvement is Rust (which so far has been a joy to work with). It's a shame imo that it's not seen as a "cool" option for startups, becau…

Personally I think C# is miles ahead of Java and in meaningful ways (like a drastically better implementation of generics, not to mention value types have existed for eons at this point and an FFI system that doesn't hate you for using it) But nobody seems to talk about or care about C# except for Unity. Microsoft really missed the boat on getting mindshare for it back in the day.

Depends where you work. I've seen a lot of Java and .NET jobs around where I am. Having both jobs I find it easier to get performant code in .NET than Java (reified generics, value types, more primitives/less boxing in general, and other constructs not found in Java)

Re: Java at 30: Interview with James Gosling

#283

Ode to Java. Boy, I love Java. When I switched jobs way back, a condition was that the new project was going be using Java. GC. Single file modules. No "forward". The Collection suite. Fast compiles. The magic of the ClassLoader. The ClassLoader, that was insightful. I don't know how much thought went into that when they came up with it, but, wow. That ClassLoader is behind a large swath of Java magic. It really hasn…

Seconded. I'm still using the Servlet API without drama. I click away as soon as I see a package that requires containers to install.

Re: Java at 30: Interview with James Gosling

#284
post #136

Earlier quoted context omitted.

Let me extol the virtues of Java the language. You can take pretty much any code written for Java 1.0 and you can still build and run it on Java 24. There are exceptions (sun.misc.Unsafe usage, for example) but they are few and far between. Moreso than nearly any other language backwards compatibility has been key to java. Heck, there's a pretty good chance you can take a jar compiled for 1.0 and still use it to this…

I have been badly burned, twice, by Python's cavalier attitude to backwards compatibility

Python "the language" or Python "the ecosystem"?

Re: Java at 30: Interview with James Gosling

#285
post #272

Earlier quoted context omitted.

Well to be fair, if you wanted Performance, Linux support, and a framework which was built with dependency injection and async support in mind and not just have them as patched in footguns, you had to migrate to .NET Core. A Java 8 Spring app was just good enough.

If you want linux support, .net is not what you want. Linux support is an afterthought and it shows. And you never know if it might be dropped next year.

Wrong. Linux support is first class in .Net just like Windows. We are strictly running our .Net code on linux servers and have encountered 0 problems over the past 5 years.

Re: Java at 30: Interview with James Gosling

#286
post #278

> Gosling primarily uses the NetBeans IDE for development, praising its open source, Apache-licensed nature and dedicated community. He expresses frustration with developers who cling to outdated tools: “The thing that drives me nuts the most are people who are madly grasping the ’80s or the ’70s — people who still want to use Vi, which was high-tech in the ’70s.” From one of the key developers in the Emacs history,…

Modern stacks (as in go and rust) are largely editor agnostic - it is Gosling who lives in the past, thinking that an IDE is still required(and a very weak one, in case of abandoned Netbeans). One of the reasons, btw, why I would take Go over Java in a heartbeat.

Re: Java at 30: Interview with James Gosling

#287

Earlier quoted context omitted.

I've worked in 3 of the biggest rails codebases in the world (Shopify being the last) and I can say from experience that rails legacy monoliths are infinitely worse to work with than some awful, but harmless, sea of struts XML legacy.

I find this really interesting, and meets my (limited) Rails experience and (extensive) Java experience: I found it hard taking over an existing Rails project - it felt frail to me, that any small change might have unexpected consequences. Whereas when I've taken over Java projects - or come in late to an existing team - I felt quite confident getting started, even if it is a bit of a mess.

It's mostly because of the compiler, but ruby also makes it extremely easy to shoot oneself in the foot with magic.

Re: Java at 30: Interview with James Gosling

#288
post #271
post #120

Earlier quoted context omitted.

Funny. I've been trying rust for the past 2 months fulltime, and i'm really wondering how you can call it a "joy to work with" when compared to java, at least for server development. Rust feels like walking on a minefield, praying to never meet any lifetime problem that's going to ruin your afternoon productivity ( recently lost an afternoon on something that could very well be a known compiler bug, but on a method w…

You eventually learn you leverage lifetimes. You just need to get over that point in the learning curve. I very rarely run into those types of issues, and it's very freeing knowing that I can write libraries that are so hard to misuse because you can leverage the type system. And macros are a part of that!

Why do I need to? Why can't I let the garbage collector deal with it?

Rust's macros on the other hand are excellent, and more languages should have expressive macros like that.

Re: Java at 30: Interview with James Gosling

#289
post #278

> Gosling primarily uses the NetBeans IDE for development, praising its open source, Apache-licensed nature and dedicated community. He expresses frustration with developers who cling to outdated tools: “The thing that drives me nuts the most are people who are madly grasping the ’80s or the ’70s — people who still want to use Vi, which was high-tech in the ’70s.” From one of the key developers in the Emacs history,…

Modern stacks (as in go and rust) are largely editor agnostic - it is Gosling who lives in the past, thinking that an IDE is still required(and a very weak one, in case of abandoned Netbeans). One of the reasons, btw, why I would take Go over Java in a heartbeat.

There is hardly anything modern about Go, a rebranded Limbo with with anti-intelectuals mentality.

As for Rust, there is a reason the large majority is either on VSCode or RustRover.

Re: Java at 30: Interview with James Gosling

#290
post #271
post #120

Earlier quoted context omitted.

Funny. I've been trying rust for the past 2 months fulltime, and i'm really wondering how you can call it a "joy to work with" when compared to java, at least for server development. Rust feels like walking on a minefield, praying to never meet any lifetime problem that's going to ruin your afternoon productivity ( recently lost an afternoon on something that could very well be a known compiler bug, but on a method w…

You eventually learn you leverage lifetimes. You just need to get over that point in the learning curve. I very rarely run into those types of issues, and it's very freeing knowing that I can write libraries that are so hard to misuse because you can leverage the type system. And macros are a part of that!

i indeed got the feeling that rust style favors macros over complex function signatures.

I'm still unsure if it's a good thing in general, because as a general rule meta programming is always harder to debug. But for simple macros it seems like a nice trick.

Post reply on HN