Live data from Hacker News

Java at 30: Interview with James Gosling

thenewstack.io

331–340 of 437 posts

Re: Java at 30: Interview with James Gosling

#331

Earlier quoted context omitted.

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.

> 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. There was this guy Miguel de Icaza. From when I followed the open source ecosystem at the time, it seemed to be his personal mission to promote independent clones of a bunch of Microsoft technologies like C# on his own time even though they didn't ask him to do it. I don't…

The founding document of GNOME was written by de Icaza. It was called "Let's Make Unix Not Suck", and his proposal for not sucking was basically to import much of the design of Windows and specifically COM into Linux as open source.

https://web.archive.org/web/20000815075927/http://www.helixc...

Miguel de Icaza has been stanning for Microsoft technologies, literally since the nineties.

Re: Java at 30: Interview with James Gosling

#332

Earlier quoted context omitted.

Python 3 came out in 2008. If the 2 vs 3 differences are still biting you you probably have bigger problems to solve (deprecated, insecure, unmaintained dependencies for example).

And IPv6 came out in 1995

Your point?

Re: Java at 30: Interview with James Gosling

#333

I admire Java as a success story, but I still have a deeply ingrained aversion to it for many reasons. I will admit that many of the reasons are due to Java's legacy as the language of bloated corporations, and its creation of overly verbose, magic fueled frameworks and poorly written code. Java as a language goes hand in hand with the idea that code is coal to be shoveled into the furnace, and we should all throw ou…

IT factor! Am I on a fashion website now? What kind of argument is that? Also, why on earth would you use strace or gdb for Java? It has enormously performant debugging tools in the JDK. Also, IDE debugging integration is second to none.

"It" factor affects talent pool size. If you're planning a large project and want to hire talent to staff it, how popular a language and framework you choose to implement it in has a direct effect on the cost of implementation. Hint: popular languages and frameworks are far easier to hire for than obscure ones, so unless you have a VERY GOOD REASON not to, it's best to choose a popular language.

Re: Java at 30: Interview with James Gosling

#334

When Gosling was at Sun, he was one of two principal architects of the NeWS Window system. The X Window system was designed for "dumb" display devices and so the display elements were all static, not requiring much work from the server. NeWS was designed to run on a (Sun) workstation, where there was a lot of computational power available, so it was based on Postscript. A NeWS client would send a program to the serve…

Just as we have a modern successor to X in Wayland, we also have a modern successor to NeWS: the browser with JavaScript, with PWAs and Electron providing a smoother desktop integration.

I wonder what Gosling thinks of the fact that NeWS ultimately won in the end, even on Microsoft systems.

Re: Java at 30: Interview with James Gosling

#335
post #317

Earlier quoted context omitted.

> I'm not sure what you found in (checked) exceptions. I could copy/paste the entire article here... but it would be easier if you could take a gander: https://mckoder.medium.com/the-achilles-heel-of-c-why-its-ex... Summary: Crashy code: You have no compiler-enforced way to know what exceptions might be thrown from a method or library. More crashy code: If a method starts throwing a new exception, you might not reali…

> You have no compiler-enforced way to know what exceptions might be thrown from a method or library. Always assume exceptions will be thrown from a method or library.

Which ones? That's the issue.

Re: Java at 30: Interview with James Gosling

#336

Earlier quoted context omitted.

> I'm not sure what you found in (checked) exceptions. I could copy/paste the entire article here... but it would be easier if you could take a gander: https://mckoder.medium.com/the-achilles-heel-of-c-why-its-ex... Summary: Crashy code: You have no compiler-enforced way to know what exceptions might be thrown from a method or library. More crashy code: If a method starts throwing a new exception, you might not reali…

None of those arguments are convincing. In many cases, you can't handle errors more reasonably than just crashing or telling the user something went wrong. Java has RuntimeExceptions, which do not have to be declared in the function signature. Division by zero, or trying to index an array out of bounds, and the dreaded NullPointerException, are some examples of RuntimeExceptions.

What about the ones you can recover from? You don't want to crash the entire application every time there's an exception!

Re: Java at 30: Interview with James Gosling

#337
post #319

Earlier quoted context omitted.

Apparently many people need the stories, given how much they boost Go about things that are prior art. Emacs could be an IDE, if it came with the whole Lisp Machine for the ride, sadly it is only a subset of the whole experience. VSCode has zero lines of Atom code into it, it started from Azure as Monaco project. Does neovim distribution handle graphical development plugins, without spawing external windows? Yeah, ri…

> Apparently many people need the stories, given how much they boost Go about things that are prior art. No one but you here cares about prior art. And not even you, most likely, otherwise you would write your in some kind of lisp which was first on most of the things. > Emacs could be an IDE, if it came with the whole Lisp Machine for the ride, sadly it is only a subset of the whole experience. Lisp is just an imple…

Emacs has no "plugins", it's all just Lisp code, all the way down. Big Ball of Mud architecture refined to a state of sublime elegance.

Can I put my cursor on a defun in Visual Studio Code, Eclipse, or IntelliJ, mash C-M-x, and immediately have that functionality available in my running editor session with all my work? I can in Emacs, and that capability has allowed me to smooth out the rough spots in many a workflow.

Lisp is not just an "implementation detail", it's central to what makes Emacs great. GNU Emacs is a running Lisp image, which you can extend and shape at will as you work on something else. A phenomenal tool.

Re: Java at 30: Interview with James Gosling

#338

Earlier quoted context omitted.

>Satya Nadella fixed a lot of Microsoft's ills, which ones?

So many. Microsoft isn't thought of as evil anymore, but is open source and Linux friendly. GitHub, VScode, Typescript. Azure is booming, ... But the big one: stock price.

> Microsoft isn't thought of as evil anymore

Maybe you don't think of it like that, but please remember that, especially with some decisions made in the past months, more and more people are turning away from everything Microsoft.

Re: Java at 30: Interview with James Gosling

#339

Earlier quoted context omitted.

One area where C# really messed up is exception handling. See https://mckoder.medium.com/the-achilles-heel-of-c-why-its-ex...

I don't know that I'd say "messed up", but I do wish C# had checked exceptions. I strongly believe that they are superior to non-checked exceptions, basically static type signatures but for error handling. It's a real pity that everything after Java seems to have abandoned the idea.

Java itself has basically abandoned the idea, or at least the ecosystem at large has. Checked exceptions are a decent idea but Java's implementation sucks. It needs to be a lot more automatic or something

Re: Java at 30: Interview with James Gosling

#340
post #7

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. 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…

> And hey, if you're using an Idea or Eclipse (and not notepad, atom, etc), Java's tools are really top notch. Using IntelliJ for Java feels a whole new different world from using IDEs for other languages. Speaking of Go, does anyone know why Go community is not hot on developing containers for concurrent data structures? I see Mutex this and lock that scattering in Go code, while in Java community the #1 advice on w…

[deleted]
Post reply on HN