_______ __ _______ | |
| | |.---.-..----.| |--..-----..----. | | |.-----..--.--.--..-----. | |
| || _ || __|| < | -__|| _| | || -__|| | | ||__ --| | |
|___|___||___._||____||__|__||_____||__| |__|____||_____||________||_____| | |
on Gopher (inofficial) | |
Visit Hacker News on the Web | |
COMMENT PAGE FOR: | |
Show HN: I Built a Java IDE for iPad | |
wanderbuilds wrote 1 day ago: | |
This is awesome! I definitely think it makes coding way more accessible | |
to beginners and would allow me to work on cool side projects, without | |
having to carry a laptop around. Can't wait to try it out. | |
pquki4 wrote 1 day ago: | |
The app store page doesn't mention debugging, so I assume it's not | |
there. | |
And probably not "go to definition". Completion quality is also | |
questionable. These are very hard problems, even for a language with | |
strict typing like Java. It's not easy to get these basic lookups | |
correct and smooth. | |
Personally I wouldn't call it an IDE (yet). | |
pandemic_region wrote 1 day ago: | |
>It's not easy to get these basic lookups correct and smooth. | |
Exactly, Intellij has been in the autocompletion industry for what, | |
almost 2 decades? And still they present me with types in the | |
autocomplete drop-down that I have never ever used in any of my | |
projects. Yes I know, but I got tired eventually from excluding them. | |
In my brain autocomplete is not hard, yet for an IDE guessing seems | |
really really hard. AI improved this, at the cost of a second | |
latency. No thankee sir. | |
wg0 wrote 23 hours 31 min ago: | |
Why auto complete for a static language would be hard? Everything | |
is known in advance. | |
Genuine question. | |
invalidname wrote 7 hours 1 min ago: | |
Because Java is static and relatively simple, the level of | |
autocompletion is absolutely fantastic. E.g. a simple case, | |
typing: | |
int a = obj. | |
Would show first only methods that return integers. But this gets | |
far more sophisticated with completion anticipating your | |
preference, naming variables for you, filling in the parameters | |
with sensible values etc. | |
Going back to the simple list of options is a bit of a pain. | |
Also, this needs to be written in Java since it needs to read the | |
API classes to make suggestions. But his editor code is probably | |
in Swift. | |
gbear605 wrote 1 day ago: | |
If youâre talking about the new autocompletion AI that they added | |
a few months ago, you should be able to turn that off in the | |
settings. | |
pandemic_region wrote 1 day ago: | |
And so I did after thirty seconds of using it. | |
MrBuddyCasino wrote 1 day ago: | |
> autocompletion industry | |
This is a great line. | |
qwerty456127 wrote 1 day ago: | |
Yet IntelliJ has always (figuratively, I dunno about its first | |
years) been famous for having by far the best auto-completion ever. | |
People used to become very upset when they were forced to use | |
Eclipse after experience with IntelliJ. | |
pjmlp wrote 6 hours 38 min ago: | |
My experience with InteliJ has made me stick to Eclipse and | |
Netbeans, unless external forces require me to use it. | |
pandemic_region wrote 1 day ago: | |
True, it was good and lightning fast back then. Granted, the | |
language (java) was arguably simpler then. Autocompleting a | |
lambda is nightmarish at the moment. Nowadays it gets in the way | |
more often than not. I feel it's starting to implode very slowly. | |
jorgeleo wrote 1 day ago: | |
So... Continuous for Java? Meaning it can compile and run in device? | |
[1]: https://apps.apple.com/us/app/continuous-net-c-and-f-ide/id109... | |
rcarmo wrote 1 day ago: | |
So far, sort of. Continuous does have the advantage of having both C# | |
and F# (although itâs a bit crashy these days on modern iOS). I can | |
take the code I test there and build it on a desktop system as well, | |
but havenât figured out how easy it is to round-trip stuff in this | |
yet (should be as easy, if not easier, but re-using libraries might | |
be trickier). | |
criddell wrote 1 day ago: | |
Can you use it to write iPadOS applications that you compile and run on | |
the device? | |
rock_artist wrote 1 day ago: | |
While not perfect. For Swift, Iâve actually doing iniÈial app | |
development using Swift Playgrounds. | |
Iâm even maintaining project that still keeps working as Swift | |
Playgrounds. | |
Here is an open source example of such: [1] But I also have | |
internally a bigger app that is doing similar approach (not open | |
source code though) - [2] Iâve yet tried and I guess itâs limited | |
for trying to do any ObjC++ / C++ / Metal. But I do believe Apple is | |
using playgrounds as a playground for Xcode successor. | |
The biggest issue though, is version control (gitâ¦) which requires | |
more work to get things properly. | |
[1]: https://github.com/talaviram/OpenSpoken/tree/main/OpenSpoken... | |
[2]: https://www.smartercurrency.app | |
Kon-Peki wrote 1 day ago: | |
> I guess itâs limited for trying to do any ObjC++ / C++ / Metal | |
The last time I tried, I couldn't get it to work, except... | |
One of the documented ways of creating compiled Metal kernels is to | |
provide the source code as a string in your Swift code. And that | |
works in Swift Playgrounds. It will compile and run your C++ Metal | |
kernels, but it either works or doesn't. You get no compiler | |
output. | |
alexpc201 wrote 1 day ago: | |
That's the main drawback I find with the iPad. So much memory, so | |
much processor, and not being able to use an app that allows me to | |
create iOS apps. It's the reason why I only have an old iPad Air, | |
it's enough for browsing, reading ebooks, and watching a movie on a | |
trip. Anything bigger would be too bulky with the MacBook. | |
sharkjacobs wrote 1 day ago: | |
> and not being able to use an app that allows me to create iOS | |
apps | |
Maybe you already know about this and you just mean there isn't an | |
app that provides the equivalent of your full MacOS dev | |
environment, but you can absolutely build and run iOS apps on your | |
iPad with Swift Playgrounds. | |
It has a lot of shortcomings, but I've used it to create a couple | |
little personal apps that I can run without distributing them | |
through the App Store. | |
2muchcoffeeman wrote 1 day ago: | |
They are basically running 1 platform now. They should merge the | |
iPad and MacBook lines already. | |
jayd16 wrote 1 day ago: | |
I fear this would only hamstring macos, not empower ios. | |
davely wrote 1 day ago: | |
This is my biggest hang up about the iPad. Hardware is great. The OS | |
is⦠passable. Sort of. | |
For me: I canât do computer things that I want to do (mainly code, | |
but sometimes game, etc). | |
I ended up buying a used Surface Pro X. A bit slow, but I like that I | |
can run something like VS Code and a Node server, or even a real web | |
browser with network debugging tools, all using a touchscreen while | |
on a bus or in an airplane. | |
(For my gaming fix, I find that GeForce Now or Moonlight work pretty | |
well for streaming my existing games â not as practical to do on a | |
bus though.) | |
twobitshifter wrote 16 hours 38 min ago: | |
One solution is to tape a pi to your iPad case. :) | |
No internet connection required. | |
This should work for node but not compiled languages. I think that | |
the compilation would happen on the slower Pi but maybe someone can | |
figure out a way to compile but not run on the iPad. | |
[1]: https://magpi.raspberrypi.com/articles/connect-raspberry-p... | |
criddell wrote 1 day ago: | |
I understand what you are saying. The iPad is the best choice for | |
some people and the worst choice for others. I have an older iPad | |
Pro and itâs by far my favorite computer mostly because it | |
doesnât really feel like a computer. | |
My favorite apps are Procreate and GoodNotes. For me, either one is | |
a killer app that justifies having an iPad. | |
I also have a ThinkPad for my personal projects and a desktop | |
workstation for my job. Each machine has its strengths and | |
weaknesses. Each was chosen because it was a great choice for what | |
I need to do with it. | |
Iâm one of the few people that hope the iPad doesnât get more | |
computer-like. I miss the days when you had an Atari or Amiga or PC | |
or Mac and they were all very different and exciting and in | |
competition with each other. Now we are approaching a very boring | |
endgame where cross platform apps look the same everywhere and | |
thereâs nothing fun about any of it. | |
talldayo wrote 1 day ago: | |
> Iâm one of the few people that hope the iPad doesnât get | |
more computer-like. | |
Genuine question; what loss of features or capabilities are you | |
expecting if the iPad does become more computer-like? I don't | |
understand how features like sideloading, compiling or emulating | |
limits your ability to use Procreate and GoodNotes. | |
fragmede wrote 1 day ago: | |
While Iâd love an iPad running macOS (You know thereâs a | |
lucky Apple engineer with one), The worry having the features | |
is that it will require futzing with to get it to work right. | |
Right now an iPad is like a Video game console. You just plug | |
it in and it works. There is an expectation of a very, very | |
smooth user experience. The fear is that in adding | |
computer-like features, it wonât be as smooth anymore. | |
Donât know if I agree with that, but thatâs the concern | |
anyway. | |
talldayo wrote 22 hours 47 min ago: | |
I guess I just don't agree with it either. None of the | |
features I mentioned should have any negative impact on the | |
end-user unless the OEM deliberately implements it wrong. | |
sdwr wrote 1 day ago: | |
In university, my friend used an iPad for all his notetaking. He had a | |
keyboard for it, and used it like a little laptop. Bet he would have | |
been all over this! | |
The UI is good, looks clean | |
mkl wrote 1 day ago: | |
This is very common. A majority of my engineering maths students are | |
writing lecture notes and exercises on a digital device, the | |
plurality on iPad (Surface next most common). Many of these iPad | |
users have a laptop as well as or instead of a keyboard for their | |
tablet though, as the extra screen and flexibility are worth it. | |
aduffy wrote 2 days ago: | |
Iâm very curious, are you running the JDK inside the app? What | |
difficulties did you run into trying to embed an external runtime? | |
coolius wrote 1 day ago: | |
I got OpenJDK 17 to compile for iOS, but I had to disable JIT | |
compilation as iOS doesn't allow running unsigned Code. | |
Running the JVM itself is possible as long as the binaries are | |
signed, and located at the correct paths. | |
The paths issue really made me jump through hoops because Apple | |
doesn't sign binaries unless they are bundled in Frameworks at the | |
root of the bundle. That forced me to create symlinks to replicate | |
the directory structure expected by the JVM while satisfying Apple's | |
stupid policy. | |
Of course this whole thing only occured when I tried to submit to the | |
App Store and the whole app was finished. I wasn't going to give up | |
at that point. | |
karussell wrote 1 day ago: | |
Impressive. Can you please work together with Oracle and make this | |
available to everyone :) ? | |
And did you also try to use GraalVM? | |
hnarn wrote 1 day ago: | |
OpenJDK isnât mentioned once in the apps description, and it is | |
GPL which means this entire application may have to be GPL (IANAL) | |
kryptiskt wrote 1 day ago: | |
OpenJDK has the classpath exception in its version of the GPL, | |
which allows non-GPL code to link to it without triggering GPL | |
requirements. | |
fweimer wrote 1 day ago: | |
This is a common misconception. The Classpath exception only | |
applies to the class library, not to Hotspot (the core of the | |
JVM implementation). The class library is also more tightly | |
integrated with Hotspot than it used to be. | |
And of course the Classpath exception does not waive the | |
notification and other requirements for the OpenJDK libraries | |
that are distributed under the Classpath exception. | |
jimbobthrowawy wrote 1 day ago: | |
Where did you get a non-GPL version of OpenJDK? | |
jevinskie wrote 1 day ago: | |
Alternatively, where can I get the source for the app? | |
Benjamin_Dobell wrote 1 day ago: | |
Fair question if you've bought the app. | |
echoangle wrote 1 day ago: | |
You can download it for free and you can then compile stuff | |
with it, so you don't need to buy anything for this | |
indigoabstract wrote 1 day ago: | |
I don't use Java much these days, but for some reason I find this | |
project inspiring. If only because of the level of commitment to | |
get it working. | |
I just wanted to say great job! | |
cyberpunk wrote 1 day ago: | |
Is there any technical reason why one couldnât run e.g clang or | |
go compilers in this way? I assume youâre running javac | |
on-device? | |
throwaway11460 wrote 1 day ago: | |
No technical reason, but you won't be able to run a compiled | |
binary due to policy. You need to use an interpreter. | |
cyberpunk wrote 1 day ago: | |
I wonder if qemu with cpu=host counts... | |
greenavocado wrote 1 day ago: | |
Maybe run a VM inside Safari via QEMU and WASM that boots a | |
Linux desktop environment | |
lxgr wrote 1 day ago: | |
WASM is indeed one possible workaround. That's how a-Shell | |
[1] manages to include a C compiler and run resulting | |
programs at (I believe) better-than-interpreted speeds. | |
[1]: https://holzschu.github.io/a-Shell_iOS/ | |
robrtsql wrote 1 day ago: | |
The app is monetized by limiting the number of ârunsâ you can do | |
per month. Based on iOS limitations I think we can assume this means | |
the compilation is done on a remote server. | |
EDIT: nevermind! I tried running a program with airplane mode on and | |
it still worked. Now Iâm really interested to hear how this was | |
accomplished. | |
Rohansi wrote 1 day ago: | |
I don't have a compatible device but I'm curious how the pricing | |
works. Does it work like a subscription where you pay monthly for | |
unlimited runs per month? Or do you just need to pay for enough | |
runs and buy more if you run out? | |
lewurm wrote 1 day ago: | |
Probably a OpenJDK Zero VM build. That's a configuration without | |
JIT or template interpreter, but a "plain" C++ switch dispatch | |
interpreter that requires no runtime code generation. | |
mdaniel wrote 1 day ago: | |
I felt out of the loop, thinking that Zero VM was some kind of | |
new distro for OpenJDK but chasing < [1] > to < [2] > lead me to | |
[3] It seems that it's a specific CPU target for the Hotspot JIT | |
for non-mainstream architectures (or for research purposes, as I | |
saw mentioned once) | |
[1]: https://packages.debian.org/sid/openjdk-22-jre-zero#:~:t... | |
[2]: https://sources.debian.org/src/openjdk-22/22.0.1%2B8-1/d... | |
[3]: https://github.com/openjdk/jdk/tree/jdk-22-ga/src/hotspo... | |
saagarjha wrote 1 day ago: | |
No, it's just a tier where it doesn't JIT. You can build it for | |
your computer, too. | |
lnxg33k1 wrote 1 day ago: | |
Didn't Apple recently allow to run "emulators"? So code that | |
generates code on the app store? | |
mrbungie wrote 1 day ago: | |
Emulators don't necessarily generate code (maybe if they use | |
JIT). They run arbitrary code, but that's other thing. | |
trollied wrote 1 day ago: | |
Emulators don't have to generate code. At the simplest level, a | |
CPU emulator is a switch statement. | |
glhaynes wrote 1 day ago: | |
More like code that runs code, not code that generates code. | |
Assuming the latter means that it's generating native code and | |
attempting to execute it natively, that's not allowed. | |
kmeisthax wrote 1 day ago: | |
Code that generates code - specifically user-specified code - | |
has been allowed on the App Store for years now. They have a | |
very patronizing term for it, too: "learn-to-code apps". | |
Granted, Apple's never going to give you the entitlements | |
necessary to make this performant or let you create separate | |
temporary containers for compiled apps like Swift Playgrounds | |
can. But you can absolutely ship a dev environment on iPadOS as | |
long as you're willing to deal with those limitations. | |
<- back to front page |