Live data from Hacker News

Make Apps for Linux

makealinux.app

161–170 of 422 posts

Re: Make Apps for Linux

#161
post #34

I think the premise is wrong when there still doesn’t exist a core set of frameworks that are abi stable on Linux. On competing platforms there are way more frameworks out of the box (CoreImage, CoreAudio, CodeML, SceneKit, AppKit, etc) and they don’t break as often. I know in Linux they have fun things like snap and flatpak but it is really solving the problem using a bit of infrastructure and package management ins…

And on a lower level, `fgetwc()` gets crashed deliberately in `libc` when applied to a stream created with `fopencookie()`. It should be incredible, but Linux `libc` is not Unicode-capable in 2023.

Which libc?

There's glibc, musl libc, etc. Also consider you may be using the functions incorrectly.

Re: Make Apps for Linux

#162

Earlier quoted context omitted.

Java is objectively terrible for writing good apps on modern personal computers. The one platform that did adopt it (android) had to practically rework the entire byte code and VM as well as the set of APIs for writing apps to make it work.

Why is it terrible? Asking for real.

Well, so I can only tell you as much as I know and understand. Some of this pulls in some outdated information too.

So, JVMs and languages that abstract the underlying machine are always going to have overhead. The original interpreted stack-based JVM model is really bad for performance because you can't do great optimizations on the code because you can't have a great view of the operands that are being defined and then subsequently used, on top of that you have to either JIT or interpret code which also has overhead. This is why Android's original Dalvik VM originally started by converting the Sun byte code format to a register based format. So, now you have a format you can do some optimizations on: great. But you still depend on a VM to generate and optimize for native code: that means code-caches and that means using excess memory to store the fast optimized code you want to run (which could have been evicted, so more overhead when you have to regenerate). Next you have frameworks like the classic Swing in Java that were frankly implemented with priorities that did not include having a really great and responsive experience even though its platform agnostic as far as the way it draws widgets. These days we can take GPUs for granted to make this approach work, but a lot of the Java UI stuff came from another era.

I am not really sure if I am right here, but to me all this means that to have made the Java system work well for modern PCs and mobile it would have required a ton of investment. As it turns out, a lot of that investment went into the web and android instead of polishing Sun and Oracle's uh... product.

Java's also kinda been sidelined because for years Oracle threatened to sue anyone that dared fork it as Google had, and Microsoft kinda spent a decade making C# and .NET more confusing than it already was so theres that too.

Re: Make Apps for Linux

#163
post #34

I think the premise is wrong when there still doesn’t exist a core set of frameworks that are abi stable on Linux. On competing platforms there are way more frameworks out of the box (CoreImage, CoreAudio, CodeML, SceneKit, AppKit, etc) and they don’t break as often. I know in Linux they have fun things like snap and flatpak but it is really solving the problem using a bit of infrastructure and package management ins…

People like to shit on tools like Electron, but there's a reason they're popular. If you need to reach a broad audience with a native tool, using heavy-handed web-based plumbing is a bigger win for Linux users than supporting only windows and macos where like 97% of desktop users are.

As someone who uses Linux as a daily driver, I can recognize these gargantuan apps a mile away and stay away from them. They are absolute hogs of system resources, and for something simple like Etcher there's no excuse.

Things like Electron are good for devs but bad for users. We have more computation power than ever and yet programs still run slow.

Re: Make Apps for Linux

#164

The problem is OSS software not even trying to compete with the market. People using OSS software taking it for granted that the UX is going to be subpar, and it really is. Regular propriety software faces the risk of their users not paying, therefore adapting to make end user experience great. OSS usually doesn't have that risk. Open source needs to be exposed to risk from end users. I tried to change that with Note…

I really like the functionality of your notes app, but I don't think emulating Apple UI design is the solution to subpar UI on Linux. Linux users expect basic desktop conventions like toolbars, dropdown menus, and not mobile design concepts like cramming everything into a hamburger menu.

Have you even tried using my app? It doesn't have any of the "mobile design concepts" that you're talking about.

> cramming everything into a hamburger menu

- Import/Export

- Check for updates

- Start automatically

- Hide to tray

- Change database path

- About Notes

- Quit

Is that EVERYTHING?

No. It's not. I don't like using hamburger menus for everything myself. This is why the options are minimalistic. Look at other Gnome apps using hamburger menus, no need to go as far as "Apple UI" (which actually discourages hamburger menus for desktops apps).

Re: Make Apps for Linux

#165

Earlier quoted context omitted.

People like to shit on tools like Electron, but there's a reason they're popular. If you need to reach a broad audience with a native tool, using heavy-handed web-based plumbing is a bigger win for Linux users than supporting only windows and macos where like 97% of desktop users are.

Hold on mate, isn't that what Java was supposed to solve. I remember before the days of electron when I was a wee lad in the 2000s, all cross platforms apps were Java. Look at Ghidra, it's a Java app for Windows, Linux and Mac. The "holy trinity" of operating systems, covered with one language and framework. So what happened? Did devs forgot Java exists and felt like reinventing the wheel but worse this time?

It's the JS kiddies. They got Node and then decided the whole world should be written in Javascript, lol.

Re: Make Apps for Linux

#166
post #115

Earlier quoted context omitted.

The Linux ecosystem isn't as splintered as people think it is. Yes, there are technically lot's of distros but most of them are really just derivatives that don't add much. The vast majority of Desktop users just use Debian or Debian-based distros like Ubuntu, Linux Mint and so on. So in the end, it is just a matter of whatever pre-installed software you get. It used to be that vanilla Debian was a bit hard to use bu…

This is true for the user, but not good enough for developers, who unfortunately need to stay on top of all of this to build functioning software. If users report bugs you can’t repro, you may have to dive into all of these. And that’s the point of the article really, to try and get more app developers onboard.

Developers don't need to test in every distro, or even all the most popular distros. All they need to do is test in one distro. It will probably work in most of the rest and linux users expect that if something breaks they'll be the one tweaking things to make it work. Sometimes you'll get bug reports from those users saying "I had to do X on distro Y for reason Z" and you can act on those reports, or not. It doesn't matter.

Honestly, linux users don't expect more. There's tons of proprietary software out there supporting linux in this manner and it works out fine. Linux users are easy to please. The hardest people to please are the developers with Windows/Mac backgrounds who mistakenly believe they're expected to test on every distro and rightly balk at that.

Re: Make Apps for Linux

#167

Earlier quoted context omitted.

Why is it terrible? Asking for real.

Well, so I can only tell you as much as I know and understand. Some of this pulls in some outdated information too. So, JVMs and languages that abstract the underlying machine are always going to have overhead. The original interpreted stack-based JVM model is really bad for performance because you can't do great optimizations on the code because you can't have a great view of the operands that are being defined and…

> The original interpreted stack-based JVM model is really bad for performance

And we addressed that today by launching a copy of Chrome with every app?

Re: Make Apps for Linux

#168
post #80
post #34

I think the premise is wrong when there still doesn’t exist a core set of frameworks that are abi stable on Linux. On competing platforms there are way more frameworks out of the box (CoreImage, CoreAudio, CodeML, SceneKit, AppKit, etc) and they don’t break as often. I know in Linux they have fun things like snap and flatpak but it is really solving the problem using a bit of infrastructure and package management ins…

Cuplrits are mostly glibc devs with their manic abuse of version names (and very recently, a GENIUS who added a new ELF relocation type): this is a pain for game developers to provide binaries which span a reasonable set of distros in time. Basic game devs install one of the latest mainstream and massive distros, build there, and throw the binaries on steam... but that recent distro had a glibc 2.36 and now their bin…

> If it is already that hard for game binaries, good luck with apps.

Video games are some of the most complex and most difficult pieces of software both to build and to get right. Modern games are coded so poorly that driver makers have to release patches for specific games.

It's the gamedev world that can't get its shit together. Valve settled on an Arch-based distro for the Deck. The specific distro doesn't matter since Steam already establishes its system requirements and comes with a runtime.

Beyond that, I really don't see the issues you're talking about. Generally, any issues you have are fixed by symlinking the correct .so files. This is a side effect of targeting a specific version of software instead of keeping to its more base features. That's on the dev, not the user or distro.

You act like Windows has never had ABI breakage or versioning problems. I'd like to see the specific issues you ran into; maybe there's an easy fix like a symlink.

Re: Make Apps for Linux

#169

The problem is OSS software not even trying to compete with the market. People using OSS software taking it for granted that the UX is going to be subpar, and it really is. Regular propriety software faces the risk of their users not paying, therefore adapting to make end user experience great. OSS usually doesn't have that risk. Open source needs to be exposed to risk from end users. I tried to change that with Note…

on your ‘com’ site mentioned in github page download button does not offer (near by) payed options. Why? Why it is only in the separated Pricing link? Why not to present the same choice in download ?

Thanks for your remark! I never thought about it. I suspect it will drive down the number of downloads? How do you think it will be beneficial?

Re: Make Apps for Linux

#170
post #52

> Target All The Linux Distributions If you are going through the trouble of targeting all Linux distributions , why not just target all platforms by using a framework like Flutter or React?

Then you are stuck using basically a browser wrapper for your UI, which frankly sucks for performance and native integration most of the time. The move to making everything a webapp is great for development velocity right until you smash into one of the many, many corner cases where it sucks.

> Then you are stuck using basically a browser wrapper for your UI,

AFAIK, Flutter compiles to native code, no browser needed.

Post reply on HN