5 ms·
I'm seeing a lot of comments here along the lines of "this is just a problem Java newbies would have and this Tim Bray guy, whoever he is, doesn't want to take
by chipotle_coyote 12y ago
I'm seeing a lot of comments here along the lines of "this is just a problem Java newbies would have and this Tim Bray guy, whoever he is, doesn't want to take the time to learn the tools."
Well. True, to a degree, I suppose, but whoever this Tim Bray guy is adds some pretty important context. He co-authored the XML spec and was director of web technologies at Sun. You know, the people who made Java and promoted it as a web technology. Going out on a limb here, but it doesn't seem to me that the man is a Java newbie.
The point of Bray's rant, I'd suggest, is that these tools largely haven't gotten any easier since 2004. It frequently seems to be controversial in these parts to assert that it's worthwhile to make developer tools easy to use ("what you're complaining about is obviously easily addressed by whipping together something with bash, awk and sed and therefore isn't a pain point at all, you whiner"), which has always vaguely irritated me. A toolchain which requires you to wrangle it into place for every project is a toolchain which could benefit from usability improvements.
- smrtinsert 12y agoI'm surprised he thinks the core platform should offer that, the JDK is large enough as it is thank you. Any number of countless application generators and libs make it easy. Even a quick glance at maven central would've answered his question. In other words, Java wont search the internet for you.
- fidotron 12y agoI'd argue Maven is a giant kludge in the very spirit being argued about. If the underlying platform was better Maven would go away, but the existence of it prevents useful discussions about how to improve the underlying platform with "why aren't you using maven?" "because it sucks the life out of my soul" etc. The other classic example is the increasingly popular multi-cursor editing editors, which should be a giant red flag over the lack of expression in the programming language. What happens is they make it almost tolerable, and the incentives to improve are thus diminished greatly, to the point the problem will be ignored by most.
- acdha 12y agoAgreed - and both Sun and Oracle have no cultural tradition of taking toolchain usability seriously. Installing updates is a complete trainwreck for almost every product they've ever released and that's one of the most basic tasks for a software vendor. Fundamentally, I think the problem is arrogance – companies like Oracle or Sun historically assumed that their products are so important that it's someone's full-time job to deal with the rough edges, they've invested in training or reading massive doc dumps, etc. – familiar to anyone who's heard tales of mainframe operators with run books of canned solutions for each problem. Those HN commentators have the same blindspot. In addition to usually being flat-out wrong, as the more common user is someone who just needs to do what should be a simple task which is blocking their actual real job, this ignores how profligately that mindset wastes other peoples' time and how it sets a dangerous long-term precedent where alternatives look attractive because everyone simply assumes e.g. Java, Solaris, Oracle's database etc. is hard to use and expensive.
- binarycrusader 12y agoInstalling updates is a complete trainwreck for almost every product they've ever released and that's one of the most basic tasks for a software vendor." Then you haven't used Solaris 11, because in general, installing updates for the OS (and Java and many other things) is as simple as: pkg update Also, your generalisations about 'no cultural tradition of taking toolchain usability seriously' are simply not true, I can show you plenty of tools where clearly whoever was working on them did care about usability. With that said, I'm sure you're just venting and didn't mean what you said "literally"...
- mateuszf 12y agoAre you saying that every JDK install should come with Solaris? Or that operating systems should be built specifically to suppport java installation?
- yellowapple 12y ago> Or that operating systems should be built specifically to suppport java installation? Not even "specifically"; these updating woes rarely exist on platforms where you have a proper package manager (be it APT or YUM or Zypper or Pacman or Homebrew or whatever). Software devs shouldn't have to worry about writing updaters, since updating should be handled by the OS.
- lmm 12y agoBut Maven is that toolchain. Invoking "java -cp ..." directly and complaining that it's complex is like turning off X11 and then complaining that it's harder to know which programs are available. A modern Java developer doesn't even need to know that the underlying interpreter happens to be called "java"; you can just work in Maven all the time and the conventions are sensible, the project infrastructure gets out of your way and you can get on with writing your code.
- jamesmiller5 12y ago> Maven is that toolchain. The idea that I need to use an external build tool because my language provided build tools are inadequate is the argument. It should not be as hard to use Java as it was 10 years ago by virtue of it's own improvement. It was a sharp edge then, and remains unnecessarily sharp today.
- tormeh 12y agoLet me quote from a C++ post: "We already "fixed" C++ largely by writing sane libraries, by having great compilers and IDEs, detecting issues with linters and so on." This is how old languages work. You want a nice language? Switch! People get Scala working on Android, I hear.
- lmm 12y agoI'd fear any language provided build tool would risk becoming, like the python standard library, the place where modules go to die. I think what we've seen in recent years (particularly with the example of node.js) is that it's best for a language core to remain as small as possible, offloading most functionality into external libraries which can have their own release cycles and development philosophies, and even be replaced if need be. With maven we even have a nice layering of this: maven's core is small and most of the functionality is in modules, which can be updated or replaced without having to rewrite everything. If we bundled maven or maven-like functionality into the Java core it would slow down the release schedule and destroy the productively competitive build tool ecosystem we have at the moment. What is it you think we'd gain?
- abalone 12y ago> these tools largely haven't gotten any easier since 2004 That's not really true. I was doing professional Java development in 2004. Nowadays we have things like Dropwizard and Play. It sounds like Bray was intentionally trying to use just the Oracle-provided tools and libraries. If he wanted to do that he'd been better off with Play. That's a single distribution designed for exactly his use case: simple OOTB text editor scripting, no compilation, no deployment, lots of stuff built in, just go.
- chipotle_coyote 12y agoWhile I have to put up the big blinking disclaimer that I'm not a Java programmer so take this with a box of salt, I'm not sure that really invalidates his point -- out of the box it's (apparently) far harder to build at least certain kinds of applications in Java that seem pretty trivial in other languages. I don't doubt your word that if he'd started with Play it would have been much easier to write that command line app that fetches a document with HTTPS, but downloading a third-party, self-described "high-velocity web framework" probably shouldn't be a recommended way to solve this problem.
- abalone 12y agoIt's not harder in Java.. if you use Play, which offers everything OOTB. How is that not a recommendable solution? If you refuse to download Play out of some misguided principle that everything must be OOTB by the core language provider, then (a) that's arbitrary and (b) you're misunderstanding the design principle of low-level languages like Java and C++ that have enabled them to stick around for so long. They don't bake in (as many) opinions. Play does, which makes it easier OOTB. So does Dropwizard. Take your pick, they're all "Java". That's the beauty of it.. it can address a very wide range of needs from "I just want to get something done" to "I want to control every detail very close to the metal".
- coldtea 12y ago>True, to a degree, I suppose, but whoever this Tim Bray guy is adds some pretty important context. He co-authored the XML spec and was director of web technologies at Sun. You know, the people who made Java and promoted it as a web technology. I'm partly joking, but I'd be hiding in shame if I had inflicted either of those things upon the world (that is the XML spec, and Java's web technologies, especially JSF and J2EE). Now, it could just be me, I never found Tim Bray's posts interesting, and this is a case in point. The same blog post could have come from any random guy trying to run a Java app on the commandline. It might be a valid complaint for the status of java packages, but it's not insightful at all.
- peterashford 12y agoI have to agree: XML and J2EE are the fucking devil. I say this as someone who LIKES Java.