> 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,…
Java at 30: Interview with James Gosling
301–310 of 437 posts
Re: Java at 30: Interview with James Gosling
#302My only complaint is the flop with JavaFX. It should have remained as part of the JDK to replace Swing and continued development there.
Without that, Java is thrown as the forever backend platform.
Anyways: good interview.
Re: Java at 30: Interview with James Gosling
#303Earlier quoted context omitted.
Compared to Go where I always have to remember to print the stack trace in every goroutine’s panic handler or use a custom error type that includes the stack trace or I get nothing? And I have to do this very basic thing for every service I spin up? This might not matter for pet projects or CLI applications, but it matters a lot in large scale mission critical servers.
Tip of the Day: You can wrap errors using "fmt.Errorf" in Go - this gives you a nice chain of error messages which is a pseudo stack trace. Another tip is to define and leverage sentinel errors when wrapping errors so you can test using "errors.Is" higher up when doing error handling in the call-hierarchy - like when mapping to http errors or exit codes. Using "fmt.Errorf" is lean and painless compared to defining cu…
In practice you have to use a combination of error wrapping and custom stack trace errors for your production logs to be useful on failure. The stdlib errors really should have stack traces.
Re: Java at 30: Interview with James Gosling
#304> 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,…
He's living in the past, using an IDE that was high-tech in the 2000s.
Re: Java at 30: Interview with James Gosling
#305Earlier quoted context omitted.
I don't see Java being any better in this regard. Microsoft has been historically much less aggressive with lawyers compared to Oracle.
That might be true for other Oracle products like the DB, but has that been true for Java and openjdk?
https://www.theregister.com/2025/05/09/users_advised_to_revi...
You can easily just not use the Oracle JDK, though, unless you're running commercial software which requires running on the Oracle runtime to get technical support.
As others have said, the problem is not the runtime, but libraries: many major .NET libraries have been going fully commercial, you can't really trust the ecosystem anymore.
Re: Java at 30: Interview with James Gosling
#306Earlier quoted context omitted.
Actors are implemented using locks.
Is it really so? I haven't checked all the implementations, but my take here would be to use a channel with atomics instead of a lock...
Re: Java at 30: Interview with James Gosling
#307Earlier quoted context omitted.
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.
I don’t care about opinions on Go the language, but the tooling around is excellent without being bound to an IDE. And no matter what you use: Goland, VSCode or dape in Emacs, your debugger will plug in the same delve. > the large majority is on VSCode Here, fixed it for ya. But since when is VSCode an IDE? It is just an extensible editor, not very far from Emacs or neovim. We’ll see how it plays out, but I assume th…
When people discuss Go tooling feels like Renaissance folks resdicovering Roman city enginnering.
VSCode is certainly an Integrated Development Editor, and it is such a dead concept that one of the key Visual Age and Eclipse linage of IDEs is the one behind it, Erich Gamma.
Biggest difference is that one hardly needs to code extensions, or manually configure them most of the time, a simple install button press is only that is needed to get any extension going, many of which graphical, taking all advantage of the Web platform.
Re: Java at 30: Interview with James Gosling
#308Earlier quoted context omitted.
Compared to Go where I always have to remember to print the stack trace in every goroutine’s panic handler or use a custom error type that includes the stack trace or I get nothing? And I have to do this very basic thing for every service I spin up? This might not matter for pet projects or CLI applications, but it matters a lot in large scale mission critical servers.
Tip of the Day: You can wrap errors using "fmt.Errorf" in Go - this gives you a nice chain of error messages which is a pseudo stack trace. Another tip is to define and leverage sentinel errors when wrapping errors so you can test using "errors.Is" higher up when doing error handling in the call-hierarchy - like when mapping to http errors or exit codes. Using "fmt.Errorf" is lean and painless compared to defining cu…
This is the whole story of Go, they pick something established and reimplement a heavily cut down version of it for "reasons", then slowly catch up to competition over the next decade or so.
Re: Java at 30: Interview with James Gosling
#309Earlier quoted context omitted.
I can run basically any Perl code back to Perl 4 (March 1991) on Perl 5.40.2 which is current. I can run the same code on DOS, BeOS, Amiga, Atari ST, any of the BSDs, Linux distros, macOS, OS X, Windows, HP/UX, SunOS, Solaris, IRIX, OSF/1, Tru64, z/OS, Android, classic Mac, and more. This takes nothing away from Java and the Java ecosystem though. The JVM allows around the same number of target systems to run not one…
Interesting about that long list of languages. There's also Groovy. I wonder what other languages run on the JVM. What about Perl, Icon, SNOBOL, Prolog, Forth, Rexx, Nim, MUMPS, Haskell, OCaml, Ada, Rust, BASIC, Rebol, Haxe, Red, etc.? Partly facetious question, because I think there are some limitations in some cases that prevent it (not sure, but a language being too closely tied to Unix or hardware could be why),…
https://github.com/Frege/frege
https://github.com/typelead/eta
Of the others you mentioned, I bet there's a couple JVM Prologs out there, but haven't encountered any myself.
Re: Java at 30: Interview with James Gosling
#310Java 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. Java syntax isn't perfect, but it is consistent, and predictable. And hey, if you're using an Idea or Eclipse (and not notepad, atom, etc), it's just pressing control-space all day and you're fine. Java memory management seems weird from a Unix Philosophy POV…
> Java performance isn't the fastest, that's ok, a close 3rd place behind C/CPP ain't bad. When Java got popular, around 1999-2001, it was not a close third behind C (or C++). At that time, on those machines, the gap between programs written in C and programs written in Java was about the same as the gap right now between programs written in Java and programs written in pure Python.
A mix of K&R C, C89, C++ARM compilers catching up with WG21 work, POSIX flavours, and lovely autoconf scripts.