Hacker Newsnew | past | comments | ask | show | jobs | submit | jgon's commentslogin

I completely agree. I know that there has been some work on command line ergonomics for this stuff, but my hope is that after the bulk of the Leyden work is done, another project starts up aimed at unifying all of the various disparate tools that modern Java now has. You have training runs to generate bytecode/compiled code, you have jlink to create a distributable JRE for your app, leaning on jdeps and various other tools to correctly create it, you have the venerable jar file, but all in all the process of actually getting a java project ready to distribute in a way that doesn't presuppose a relevant pre-installed JRE on the user's side, and which takes advantage of the various facilities available to modern Java is still a pretty bespoke and painful process.

Compared to Go and Rust, and just throwing a static binary to someone or some server, Java kind of sucks. And that's unfortunate because the language, the runtime, and even the dependency situation all feels pretty competent, there's not some huge gulf that makes Java "old". Its really just the every about setting up a project and then distributing it, so the "start" and "end" of a project, that currently sucks, and I fear that so much of the great work the Java team is doing is going to go largely unused if they don't work to make it easier for the average developer to utilize it.


Are you describing jpackage? I'm not sure how you would make it less bespoke, given you are essentially creating a Java runtime for your program. Maybe the Java folks could tree-shake the runtime for you so you wouldn't have to care about their weird module system, but it's not the worst thing to learn.

jpackage is heavily oriented around installable artifacts, it creates a .deb or .rpm for Linux for example. So if I wanted to throw someone a cli utility I can literally just send them the binary if I’m working in Go, whereas Java they need to use dpkg to install the deb. This somewhat complicates building a docker image as well. It’s the same story for windows and Mac as well. If I’m creating a Swing app or something similar this is very convenient but anything else and jpackage isn’t ideal. Not to mention that I don’t know what the integration is currently with jpackage and the aot cache that Leyden produces but I’m guessing it isn’t super straight forward.

I’m sure that all of this stuff can be strung together after spending a suitable amount of time trolling through the documentation of the individual tools, but it’s far cry from go build and cargo build, and I think it would be great if Java could narrow the gap in this aspect.


One could also just use jlink and extract the zip file that it produces.

It would be nice if jpackage could bundle the generated AOT configuration data along with a custom action in the MSI package to run the machine-dependent AOT compilation step at install time.

Jpackage or jlink should be extended to support creating AppImages.

It already supports that, try running "jpackage --help".

Not really; `-type app-image` merely runs jlink and is intended to let you edit the bundle before calling jpackage again and create the installer. You need the tools from appimage.org for the final step.

Ugh, that's a pretty bad name collision.

What would be in your ideal tool?

I have a company that makes Conveyor, which is very good at distributing JVM apps. It's primarily meant for desktop apps and replaces jpackage with something that can cross-build, make apps self-updating, auto-minimize the bundled JDK and so on.

Adapting it for servers is something I think about sometimes, and in fact it does already support that to some extent, but it produces debs for that use case.

It's just sort of unclear what JVM developers lack here that isn't already solved by build tool plugins and Docker. Or are you thinking about CLI tooling? Because I have something cooking for that which might be pretty nice.


My ideal tool would be less tooling, which I know is not a great answer. But what I mean by this is that I can probably cobble together a build pipeline that handles most of this stuff if I spend enough time working with Gradle. And the reality of Java's popularity in the enterprise means that its build tools generally orient around builds that can be crazy and bespoke and so immense flexibility is usually needed. I totally get that need, and I'm not begrudging any of that work.

I'm speaking more from my view as just an individual Joe Sixpack developer. If I'm not developing an enterprise behemoth, and let's just say I want to whip up a command line utility to do some image processing, or network communication, etc, Java's fantastic standard lib and ecosystem means I can do all of that pretty easily. But when I want to distribute that, what does it look like? What comes out the other side of the CI build? I have to integrate jlink with gradle, which is kind of a pain, I have to somehow integrate a training run and then package up the aot cache output and make sure that the directories are handled properly, and what do I ship to the user? A tar/zip file that they have to somehow copy and decompress to the relevant directory, maybe with #! file in .local/bin to get it on the path? By contrast the situation with Go or Rust is immensely easier, even if that actual development process may almost be harder because I have to spend time faffing about deciding which image library to pull in for Go, or dealing with async for Rust. But once that is actually done, I just ship the binary and simply copy it somewhere to get it on the path, and I never have to worry about reading gradle/maven docs or anything like that.

So I'll finish by saying that my ideal build tool is probably not a great one. What it is crucially is a simple one. I think that's that gap right now, that Java has these huge, immensely powerful and general build tools, build tools that I am guessing eventually gain equivalents in the Rust and Go worlds when projects grow old and gnarly enough to require a bunch of custom build stuff, but it doesn't have baby's first build tool like go build and cargo, where you can just get an idea and start building and come out the other side with an artifact and 0 time spent on thinking about the build system, until you actually need the kind of complexity that maven and gradle provide. Give me a build tool that assumes the standard src/ and test/ directory layout, then builds everything into some sort of archive file, creates a minimized JRE to run it, accepts an argument for an aot.cache file location, or for the more difficult option runs the program to generate that file and then bundles it up with the archive, bundles all the libraries that I've pulled into the project up into the archive along with all the resources declared for the project as well, and then spits out a single file artifact that I can immediately use and run. Give me a build tool that I don't even realize is there until I actually need that complexity.

I understand if this is vague and not a great answer, and I also appreciate all the work you've done for the Java community, so thanks for replying.


Yeah, I agree the situation for CLI apps specifically could be a lot better, especially as the complexity keeps going up.

Native Image does produce single binaries in many cases, but what we need here is a much better tool in general. Actually I'm working on one right now, although it's not JVM specific. Want to take a look?


Its also described as a provincial problem but all of the provinces receive a substantial amount of funding, particularly for healthcare, via the federal government. People say "oh its the provinces fault, they just need to spend more", and then don't reflect on how much room there is for increased taxation, and particularly how much taxation the federal government currently applies. By far the most tax I pay as a Canadian is in the form of federal taxes. Of course, a bunch of this money does find its way back to the province, so the waters are a little muddy, but the federal government has been repeatedly downloading costs onto the provinces, while doing very little about its own spending. The Chretien government in particular did massive downloading of costs to the provincial governments, although their hand was forced by Canada's fiscal situation at the time. So simply saying, oh well the provinces need to step up, is an easy deflection from what is a pretty thorny problem. If the responsibility really is up to the provinces, then why does the federal government need all this money? If the feds are going to continue scooping up the lion's share of tax revenue then they need to continue helping to fund the various provincial responsibilities.


You've come into this thread, which is about an article where a doctor talks about insurance denying care for her husband, ultimately resulting in his death, to basically say "This doesn't prove anything, and also in systems with government provided healthcare the same thing happens, the AI said so, so what can you do!?"

I just can't even imagine what your response would be to writing about your own experience in the legal profession, about a deeply hurtful or traumatic issue that happened to you, and then having some joker come in and post an AI transcript to basically say "I have no actual experience or expertise in your field but the bot says you're wrong".

What are you even hoping to contribute to this thread? You've done no work of your own, you seem to have barely understood the events described in the article, and you've attempted to immediately make it a political issue by bringing in a foreign government's healthcare system and deflecting. This is geniunely one of the least helpful things I've ever seen written by an ostensible "long-time contributor" to this site.


The article doesn't just tell a story about one person, it makes a general point about the healthcare industry. The title is: "My husband’s suicide shows there’s something very wrong with the U.S. insurance industry."

How else are you supposed to evaluate the author's conclusion, other than to compare it to how other healthcare industries handle similar situations?


Why don't you ask it if there are similar personal stories to this happening in other countries?


You've dug through tens of thousands of code bases? 30 years would give you ~10,950 days, so you'd have to be digging into 2 code bases per day, every single day without any breaks for 30 years straight, to get to "tens of thousands".

When I read things like this it makes it very hard to give any credence to the rest of your pro-AI arguments, because it just seems incredibly likely that you're a bullshitter.


Yes, roughly. I try out open source projects as a hobby and a vocation. I've looked at dozens in a day sometimes. It doesn't take more than a few minutes to figure out if the code is slop.

BTW, I'm not alone in my opinion on AI:

https://www.reddit.com/r/LocalLLaMA/comments/1uxbrw4/linus_t...


That's actually a really great suggestion. It would be great if you could throw together a list of these many, many places and post it here, so we could think about what sort of moves we could make. Thanks in advance!


Large portions of the rust belt, midwest, and deep south for starters.

There are many, many lists of the most affordable cities in the US. I see Buffalo, Dayton, and Wichita on them regularly as specific examples.


Sweet thanks, I guess I never really thought about moving to the Rust Belt and then taking part in its thriving economy to get the sort of job that would allow me to support a family of 5 and own a house on a single income. I would guess at this point you'd probably try and say something about remote work and arbitraging high west coast tech salaries against low cost-of-living, but really that just gets us back to the other poster's point about this stuff not being obtainable anymore. Certainly, to take just a quick example, not in one of the cities you listed, Wichita, with a median individual income (as specified by the other poster) of between $49k and $35k for men and women, and a median house sale price of $243k (up 4.3% over the last year!), giving you an affordability ratio of roughly 5-7x. Chapman university labels that sort of ratio as "Severly Unaffordable".

Whoops! Guess it isn't quite as easy as your smug comment made it out to be...

https://datausa.io/profile/geo/wichita-ks -> link for median single income data in Wichita

https://www.redfin.com/city/19878/KS/Wichita/housing-market -> link for median house sale price

https://www.chapman.edu/communication/_files/Demographia-Int... -> Link to Chapman study, income affordability ratio labeling is on page 6 of the study.


Buy a house below the median cost if you want to live that specific lifestyle.

And don't rely on trashy websites for your snarky, invalid arguments: https://www.bls.gov/regions/mountain-plains/summary/blssumma...


If you make 5 of a product and put a bunch of marketing behind it you can sell out too. People are going to use "selling out" as some sort of barometer of success but its like the lizard-man veto in politics. You'll always find some small percentage of people who will vote for the motion "the nation's leaders are a group of lizard people", but you can't use that as any sort of signal regarding the validity of the claim of the motion.

Valve could have priced this at 5k and probably found a couple thousand buyers, and if they only made a few thousand boxes they could claim it sold out then too. This thing is DOA in terms of having any major success or impact on the gaming market when I can walk down to my neighborhood PC store and either build a better PC myself for less money (at off the shelf markups no less!!!) or get a pre-built with better specs that costs less. I could buy a P5Pro and a Switch 2 combined for less money than the 2TB version, and the PS5Pro has 2tb as well!

Its actually mind boggling that Valve is coming in with a less economic product that a fucking hand-built premade at my local PC store.


This is a good general theory, but generic and sort of reasons backwards from "actually it's not popular"


Right, but also a big part of the "Theranos situation" was a tech company coming out and saying "We've got this revolutionary medical technology that the multi-hundred billion dollar medical industry has overlooked but which a non-domain expert undergrad has been able to innovate", and then a bunch of people, crucially many people with domain experience said stuff like "this is likely fraud, testing companies have all tried to make pin-prick blood sampling work but the volumes are just way too low to get anything reliable out of them, these companies employ PHDs who've all spent decades trying to make testing better and more affordable because there's a lot of money at stake".

Those people generally got shouted down when Theranos was still the hot story in SV, and of course after everything came out suddenly everyone knew it was fishy all along, which is just absolute bullshit. I remember reading comments here on HN suggesting that people saying Theranos was fraud were motivated by misogyny, just absolutely infuriating stuff.

So now we have an AI company coming out with promises of a revolutionary leap forward in medical imaging, in terms of cost and information gathered, and they're not using some sort of revolutionary sensor that they've invented, all the "hard" engineering has been done by other companies that have been in this game for decades at this point and how have R&D staffs with deep knowledge and expertise, but who somehow lack the ability to take the next step, they're coming in with the software and automated interpretation, which is basically the "?" step in the underpants gnome business plan.

The real truth about stuff in the biology and the medical world is that its all insanely hard due to the complexity of the systems involved, and there are tons of skilled and smart people who dedicate their careers to moving this stuff forward. There are really no low-hanging fruits being ignored by "the establishment" waiting for an outsider AI company to come in and overturn the table. Progress is basically won by sweating it out at the lab bench and accumulating a bunch of hard-fought incremental wins over a decade or so. Its frustrating that Elizabeth Holmes is still in jail and yet we're all here forgetting every lesson we should have learned from the previous go-round.


There are very clearly capabilities in medical tech that have not been fully explored due to compute/cost constraints and gaps in innovation. "Really smart PhDs have worked on this and come up with nothing" is a very unconvincing argument – you could say that about huge swathes of technological development.

Very smart people were trying and failing to effectively split the atom before some very well-funded and well-placed individuals made it happen. Loads of very smart people were working on AI before Transformers were developed and made LLMs viable / intelligent enough for real work. People trying and failing to do something hard doesn't mean it is impossible, it just means they've found 10,000 ways to not make a lightbulb.


Lol, why do you think the C series was divested to Airbus?

https://www.reuters.com/article/business/trump-administratio...


You literally compared them in your comment.


Yes, by pointing out that they are not similar conceptually.


"Wrongthink". Lol man, if you think that taking money from a country whose head of state has recently said that they may need to forcibly annex your own country, and then using that money to illegally obtain the personal information of citizens so you can attempt to break your country apart is merely "wrongthink" then you need to completely recalibrate yourself.

The really galling thing here is that as an American you would absolutely never tolerate a country like, say, China, supporting, both monetarily and otherwise, a group agitating for California to leave the union. You'd all call that treason loudly and proudly, but now that your country is doing it to someone else suddenly we have to slow-roll this.


> you would absolutely never tolerate a country like, say, China, supporting, both monetarily and otherwise, a group agitating for California to leave the union

No. But I don’t think we’d put people in jail for it unless they were ready to overthrow the government. (Hell, we didn’t even charge the actual people trying to violently overthrow the government with treason.)


creating the petition and getting it approved through the alberta government is actual action to overthrowing the government.

it left the thinking and talking side when it became actions.

"we" in this case is canada and the canadian government, and have had no such armed attempted to overthrow the government.

For a similar item you should instead compare to the truckers thing, where a group similarly collected agitation money from the US, then did the agitation. Their bank accounts are still frozen afaik, and some are finishing their prison sentences now


That's not true, a number of Jan 6 people were convicted of seditious conspiracy, it's just that those convictions have now been vacated because the coup plotters have now ended up in charge regardless through other means.


Those other means being winning a free and fair election?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: