[HN Gopher] Make Apps for Linux ___________________________________________________________________ Make Apps for Linux Author : jay-barronville Score : 181 points Date : 2023-12-09 16:50 UTC (6 hours ago) (HTM) web link (makealinux.app) (TXT) w3m dump (makealinux.app) | jstanley wrote: | The article could do with a few examples. | | I'm not aware of anyone who is making a distro who should instead | be making an application. Maybe LinuxCNC if you squint?? But that | has very specific kernel requirements which are arguably best | served by a custom distro. | Barrin92 wrote: | any desktop environment is effectively just an application | that's trivially to install via one or two clicks or commands. | Never made sense to me why there's derivatives of derivatives | that just ship a different DE. | colesantiago wrote: | This has always been an issue for Linux adoption. | | Somebody I know (not in tech) wanted to switch from Windows to | Linux and I said: | | "Which one?" | | It's the same as Mastodon. | | "Which instance?" | | The answer is usually the biggest / most popular instance or | distro, but not many applications the masses use are on Linux, | the same as there is not many interesting people on Mastodon for | people to switch over to it. | | Applications are the barrier to mass adoption here for Linux | unfortunately, and the paralysis of choice is the double edged | sword for the massive amount of Linux distros. | | Thousands of years of effort spread across many distributions | that not many people would use. | righthand wrote: | It's because the answer is "just pick one". Many people have | already made the decision before you and unless you have | special requirements. You'll probably be fine. | amne wrote: | Unfortunately it still takes a lot of effort to actually switch | and not just poke around to see what's what. Most things do | work these days but inevitably you will have to open the | dreaded terminal (or be forced into runlevel 3 because 4 now | fails as your new TV doesn't play well with your gpu) | dragontamer wrote: | Just say Download Ubuntu and sign up at Mastodon.world. | | If they push back that's not a problem. If they're actually | noob, they got the info they wanted out of you, which was where | to start. | berkes wrote: | Why would people push back at that? | | I'd personally say "use mastodon.social", but your advise is | just as good. Simply because it is a solid advise, offers a | single option and points people at where to _start_. | | Ubuntu is good to _start_ 1, and if people say "but it's bad | at thingy foo" or "it has default bazoombas! default! on!": | no-one said it's where you must now commit yourself to | forever. Distro's aren't religions (and even religions can be | switched), they are just stuff that sits on your computer. | Your next re-install or next machine might be anything else. | | 1edit: to be clear: it's also good for experienced people or | grumpy bearded linux-veterans like myself (24 years in and | counting). I use Ubuntu. It's hardly configured even, just | the defaults (well, my shell and vim have some 20+ years of | config tweaks). | dragontamer wrote: | > Why would people push back at that? | | Because they already have an opinion on which Linux or | Fediverse thing to use. | | Pay it no mind. People are allowed to be wishy-washy with | their opinions. Maybe its just a conversation starter, or | maybe they enjoy debate / feeling things out through words | and discussion. | cardanome wrote: | 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 but I don't think that is true anymore. (Though I | still recommend Linux Mint for the absolute "just works" | experience.) | | For 90% of users, they are not going wrong using Debian or one | of the popular Debian-based distros. After that is is basically | just a matter of specialized needs. | | Want to make administering your system a hobby and part of your | personality? Have some Arch. | | Need professional support? OpenSuse. | | Need reproducible builds? Nix/Guix. | | Need a minimalist distro that runts on potatoes? Puppy Linux | and whatever else. | | Wayland vs X11? Systemd? If you know these words, you are | already way too deep in the rabbit hole. | timfsu wrote: | 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. | mcpackieh wrote: | 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. | zlg_codes wrote: | What do you think we'll gain by putting every idea into the | same cookie jar? | | This drive to create One True Linux is commercial behavior. | People that want One True Linux want to put products on there | to sell. | | These people need to read the GNU Manifesto and realize they | are not in the correct social structures to push for | centralization. | zjp wrote: | Maybe I'm just too ignorant to know the pattern that determines | whether I need to specify 'dev' and 'version' on a package or | some random trailing '1' or '0', but the first linux distro with | a sensible and consistent naming scheme for packages is the one | that wins my heart. | | `libgnutls-dev` `libgtk-3-0` `libwayland-server0` `libxcb1` | `libx11-6` `libffi-dev` `libncurses5-dev` | juunpp wrote: | Separating binaries from sources is a Debian convention. If | you're just using a library, non-dev is sufficient. If you're | developing with that library, you'll also want -dev, which will | install the headers. | | Nothing special about the trailing 1 or 0; that's just part of | the package name/version. | tasn wrote: | Arch and its derivatives (mostly) don't have any of that. | | Though -dev means stuff only needed when developing against it. | | Number means major version number (so compatibility number). | This way you can easily install multiple major versions as | dependencies for different packages without clashing or | breaking. | o11c wrote: | If you are building a program, install the -dev package. | Numbered -dev packages are usually not relevant; there should | be an unnumbered one that forwards if needed. | | During the build of a program, you record which numbered suffix | (= ABI version, should be the same as the .so.N suffix but | that's not how you look it up; this allows you to install | multiple incompatible copies of the library and they will be | used by the appropriate, though distros usually prune these | after each major release) is used. This should be automatic. | (if there's more than one number, all but the last are part of | the library name itself. There might be exceptions for BSD- | style libraries?) | | When installing, you should be automatically using the | dependency you recorded during the build. | everforward wrote: | -dev contains the headers, that ones pretty easy. | | The number is a version for when they provide more than one | that can be installed at once (excepting where it's part of the | library name, presumably like xcb1). | | I.e. at some point you could probably install libgtk-3-0 and | libgtk-2-$something at the same time. They likely leave it that | way when they get rid of libgtk-2 so that existing tutorials | that reference libgtk-3-0 don't fail because the package is now | libgtk. | | The libwayland-server0 one does get me, I don't know why | there's a 0 at the end. I do know that in /var/lib there is | often the same library with various .$number endings, but I've | never looked into what that accomplishes. | seba_dos1 wrote: | > but I've never looked into what that accomplishes | | ABI versioning. | tesdinger wrote: | ABI stands for application breakage interface | deafpolygon wrote: | This is one of the biggest issues holding the Linux platform as a | whole. It's often cited as a strength, but I don't see it as | such. Many times, the plethora of choice is pushed forward by | devs as an advantage of Linux ("you have so many choices to pick | from!") but for many users this presents the paradox of choice - | and pushes many people back to the platform they came from. | | You get less choice on macOS and Windows, but the choices | available are much more polished and less fragmented. | | i.e. How many different tiling window managers do we need? Can't | we take the best tiling wm's and start developing better docks | and applets for them? How about apps and launchers that integrate | with the tiling WM paradigm? Instead we end up with 10 different | varieties of tiling wms and half-baked half-assed workarounds and | programs for them. | cycomanic wrote: | I would say there are even more launchers and docks then tiling | WMs. | | Also I don't know what would need to be better about them. | Something like ulaucher or Albert is much more powerful than | what is available in other platforms and I don't know how one | would improve their UI. | deafpolygon wrote: | Maybe the work needs to go into developing better UX, not so | much UI or what the various tools can do. Look at PySimpleGUI | (of which I was reminded of from a recent post here) for a | good example of a nice project for the masses - we need | better software for users. | | We need better applications that have better UX. | Muromec wrote: | But writing a tiling wm is fun. Writing software | collaboratively is the point in itself, not just the means of | getting some kind of artifact in the end. | | Being an open source developer means having agency over your | goals and means to get to them, which you often don't have when | doing commercial software development. | | You sure end up with roughly edges, but the. IKEA-effect kicks | in and you like it anyway. | deafpolygon wrote: | Right and this holds the platform back. I'm all for hobby | development- I've been an supporter of open source software | for over 2 decades. But nothing much has changed since that | time in terms of UX and user-friendliness. (Yes I am aware a | lot of things have changed, but as much as things have | changed - much of it is still the same.) | michaelmrose wrote: | It doesn't hold the platform back because if the hobbyist | didn't scratch his own itch he was never going to spend | 1000x as much development effort creating a Photoshop | competitor or even yet join the effort to triage gnome | bugs. We would almost certainly just be less their | contribution for no benefit. This whole faulty analysis | relies on treating open source developers as a fungible | resource like employees of a firm that ought to be tasked | with something different. It's not so. | zlg_codes wrote: | Agreed. If I couldn't write my own packages for my OS and | scratch my own itch, I'd never bother contributing to the | big stuff. | | The appeal behind libre software is the power to go your | own way. If the only way to access it was to interact | with groups and get your things added through a political | process, I'd have found some other thing. Too much of our | world is wrapped up in processes and busywork and other | empty interaction, it's a waste of time. | | Give me the code, the license, a text editor, and a nice | cup of coffee, and I'm good. Hold the interpersonal | drama. :P | michaelmrose wrote: | People don't make choices by exhaustive analysis they consider | a small quantity of options and by popularity or proximity | select one and run with it. Successful ecosystems make it | reasonably to pick a highly visible option and come out with | something good enough. The proliferation of Linux distros is | largely small difference that don't meaningfully decrease | fitness because only a tiny minority who themselves had little | problem finding a distro think its an issue. | | By contrast issues like Wayland wherein your plumbing and | hardware suddenly matter and you have to become at least | somewhat familiar with the plumbing in order to select a usable | set of options DO matter because they increase the chance of | crapping out when you stroll down the aisle metaphorically and | pick a box and end up somewhat satisfied. | | It honestly makes little sense to compare Mac or Windows to | Linux. In the eyes of 95% of consumers an OS either an | immutable characteristic of a computer or a feature thereof and | they aren't interested in it as a separate product. They might | well buy a computer with that OS if the overall package makes | sense but they sure as hell wont install it on their windows or | mac machine. Those who are technically literate enough to be | satisfied are unlikely to be confused if people add 3 more | Ubuntu derivatives and 2 more arch ones. | zlg_codes wrote: | This is a problem that is meant to be solved by distros. People | who don't want many choices should be using a distro that makes | a bunch of choices for them, instead of pushing to remove | choice from the ecosysytem altogether. | | Everybody using the same software creates a monoculture which | is more prone to attack than a diverse ecosystem. There's a | reason Windows was targeted so much by viruses: not only was | the target BIG, but it was also _consistent_. If you broke into | one normie 's Windows machine, you could probably break into | the rest. You're going to have a harder time of that if you | target Linux. | | Also, it's libre software. Unless you pay someone to do | something for you, most of it is volunteer activity. And who | are we to tell someone what they should do with their volunteer | time? | | It's also an indictment of the dominant social structures if | there are all these groups and nobody wants to join them. They | could start by getting rid of Codes of Conduct that give them | permission to punish you for out-of-project behavior. Try that. | deafpolygon wrote: | > People who don't want many choices should be using a distro | that makes a bunch of choices for them, instead of pushing to | remove choice from the ecosystem altogether. | | You don't need to remove choice to push better UX and | software. It's not a zero-sum game here; we can foster better | conversations with people in the Linux community and start | talking about what would make the experience better for the | average user, not just technically proficient power-users. | | > Everybody using the same software creates a monoculture | which is more prone to attack than a diverse ecosystem. | | That's wrong - you're using a sort of strawman argument. What | makes Windows a monoculture? There's a much larger, thriving | developer community on that platform with many more | developers making free and/or open-source software. | | > You're going to have a harder time of that if you target | Linux. | | "Achkshully..." Linux has had some serious bugs, but the | damage was relatively low to end users because of it's low | adoption rates. It has very little to do with "Linux is more | secure because we're diverse" and everything to do with "1% | of end users use Linux, so the target is less likely to be | worth my time." And furthermore, that 1% - the majority will | be more technically proficient and less likely to be tricked | into running arbitrary software. | | > one normie's Windows machine | | This. Is. The. Problem. Framing an end-user as a mentally | deficient 'normie'. Why? What's the point and what's to be | gained from this? | | > And who are we to tell someone what they should do with | their volunteer time? | | No one is suggesting we tell hobbyists / volunteers what to | do with their time. What people _are_ suggesting is that we | spend a little time talking about tackling common problems | together, rather than re-inventing the wheel every single | time. | zlg_codes wrote: | It's how the Bazaar model of development works. You're free | to join a Cathedral and follow their policies if you want. | zlg_codes wrote: | Missed a few things, my bad. | | > This. Is. The. Problem. Framing an end-user as a mentally | deficient 'normie'. Why? What's the point and what's to be | gained from this? | | Most end-users are, okay? If _anything_ unusual happens at | the computer they come running for the nearest nerd, poorly | explain the problem, waste the nerd 's time when it turns | out it was simple, and the most important part, _they don | 't learn from the experience_. | | It also serves as a useful distinction between types of | users. Normies browse the web, maybe use an e-mail client, | some office software, maybe Steam or Zoom, etc. | | Power users want to explore the fullest capabilities of | their computer. They're going to want different software | and different experiences from the normies. | | Developers will want to explore how much they can do and | control. That's _another_ type of user with different needs | and software preferences. | | Frankly, I'm not interested in talking about the needs of | average users, because more average users will cause | communities to believe their software doesn't need advanced | features because there are greater numbers of simple users. | Flooding Linux with normies won't make the software any | better. It will create an Eternal September problem where | you'll get loads of criticism and bug reports and problems, | but almost nobody from that crowd will have the insight | necessary to help devs decide on solutions. | | There really isn't any third option. Everyman software ends | up toddler-fied, and bespoke software overloads the | normies. Both groups cannot be served by the same software. | I challenge you to find any piece of software that | adequately serves both groups. | Kalanos wrote: | I recently switched from Mac to Linux so that I can use beefy | refurbished machines as my daily driver. I've installed Linux on | lots of different machines previously, but this time it's not | just a hobby. | | Ubuntu has great support for my hardware and peripherals, but the | app store feels unfinished and forced. Pretty much everything | works as expected. | | I'm interested in checking out Mint (also Debian) and Arch, but | it feels like there's a lot of software written with Ubuntu in | mind, so I'm wary. | garrisonhh wrote: | There is almost nothing written for ubuntu that won't work on | arch or really most current distros. When I ran arch I did have | to get familiar with assumptions people make due to ubuntu, but | this would never be more than patching a config file or | configuring some environment variable. And those are useful and | transferable skills. | Kalanos wrote: | hmm. thanks for sharing. that's the kind of stuff I don't | want to do though. i already have my own software to write | and use a wide array of tools. i can't afford to lose a | morning on that kind of stuff. plus i want to be able to tear | down and rebuild without a ton of custom config | cardanome wrote: | Linux Mint is based on Ubuntu. You can use all Ubuntu packages | just fine. It is really just a strictly better Ubuntu. | | There is a Debian-based Mint version as well but that is more | as a security so that they are not deadly dependent on the | Ubuntu people. | | Though these days, even using exotic distros isn't that | problematic, as you can always use appimage/flatpack/snap if | you native package manager doesn't have the specific app you | need. | znpy wrote: | Do yourself a favor and give Fedora a try. | | I wish I had done that earlier. | Kalanos wrote: | I used AWS Workspaces for a while and that ran Fedora. It was | nice, but I wasn't blown away. I seem to remember not being | able to find some yum packages where there were apt | counterparts. | seba_dos1 wrote: | > Stop making Linux distributions, make applications instead. | | Stop listening to people trying to tell you what you should do or | not. | whitepaint wrote: | Stop listening to people who say to stop listening to people | trying to tell you what you should do or not. It is not all | relative, there are good and bad choices. | seba_dos1 wrote: | Not hacking on a distro because someone thinks there are too | many is one of those bad choices. | | If you actually manage to get a distribution rolling with a | viable community around it, it means enough people have | decided that there _weren 't_ too many. | SantalBlush wrote: | "Gotcha" replies like this aren't helpful. The GP comment is | just a pithy retort to the title that uses the same language | for effect. | whitepaint wrote: | Agreed. | berkes wrote: | Yea, the tone was off-putting to me too. | | But the message and information is good though. | | I'd personally word it something like "Linux users don't want | more distributions. They want software". At least, this is the | case for me. | rubymamis wrote: | 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 Notes[1] but I find it hard to live | on solely on ads. I tried to incorporate paying for some premium | features (like Kanban) but the app is still fully FOSS therefore | everyone can compile it from source easily. | | I think I'll close-source my next app[2] before it launches. I | just can't risk not being paid for my hard work. I also believe | the Linux community will benefit from that, since getting paid | will allow me to invest more in making UX-focused apps on Linux. | I might open source some parts of it tho (or maybe all of it in | the far future). | | [1] https://github.com/nuttyartist/notes | | [2] https://www.get-plume.com | thebigspacefuck wrote: | What does this have that Joplin doesn't have? | 360MustangScope wrote: | For one thing, it's a lot prettier than Joplin | thebigspacefuck wrote: | Personally I think Joplin looks better and this looks like | a poor macOS clone that lacks many of the features like | markdown support or synchronizing across devices including | mobile. IMO if Joplin's problem is the UI, or even just | something OP is passionate about, why not contribute and | open a PR? Why is the pattern "I care about this one thing | so I reimplemented it in a new app from scratch"? | rubymamis wrote: | - Plume supports Markdown (plus additional plaintext | syntax). | | - Plume is a block editor, unlike Joplin. Therefore plume | can have advanced views inside the editor itself (like | Kanban, image handling, columns, etc) | | - Plume is faster than Joplin's non-native editor (the | one that renders your Markdown) | | - IMO Plume is way prettier with far more attention to | detail. | beebmam wrote: | The CLI is peak UX for anyone technically competent. | Gualdrapo wrote: | I agree but CLI just can't cover all use cases - just on top | of my head are graphics, animation software, video editing, | circuit making... | throw10920 wrote: | Well, they think it is. Most of the time, it's not. Command- | line tools have terrible ergonomics for many workflows and | use-cases. | nvy wrote: | For a subset of tasks, maybe. But I'd rather use Firefox than | lynx. And I'd rather use Thunderbird than mutt or pine. | worksonmine wrote: | I get Firefox (with keyboard navigation) over Lynx but Mutt | has been fantastic for my productivity. | IshKebab wrote: | Utter nonsense. The CLI lets you do complex custom things | that you _sometimes_ can 't do with a GUI. But it is pretty | awful from a UX point of view. Terrible discoverability, | terrible UI, very unfriendly, no contextual help, etc. etc. I | can't think of a worse interface from a UX perspective. | nilsherzig wrote: | Terrible discoverability? A shell with tab completion is | (in my opinion) a lot easier to navigate than for example | Photoshops menus. | olddustytrail wrote: | Really? Do you communicate with ChatGPT by pointing at | pictures? | pjmlp wrote: | That is a REPL, not a CLI. | yjftsjthsd-h wrote: | A shell _is_ a REPL. Though I do I agree there 's | something to using one with good features (ex. I would | completely understand someone using exclusively zsh just | for the better tab-completion). | pjmlp wrote: | A traditional UNIX shell is more of a poor man's REPL, | hence the difference in wording. | fragmede wrote: | Conversation mode, where you talk with it, is quite an | improvement over having to type at it, especially for | slow, hunt and peck typers. | IshKebab wrote: | What has ChatGPT got to do with it? We're talking about | Unix style CLIs. | worksonmine wrote: | The manual exists for a reason. I find it much easier to | type `man program` then `/whatever` until I find what I'm | looking for rather than scanning the screen for the correct | icon. There are also some conventions and after a while you | get to a point where it's intuitive to use any new program. | Just like with a GUI and icons, what does the wand do? | IshKebab wrote: | "You just have to read the manual" and "you get used to | it" are basically synonyms for "the UX is bad". | | 1 second of googling: https://fstoppers.com/opinion/stop- | telling-people-read-manua... | | I'm sure there are better articles if you search more. If | you have time for a book, I highly recommend "The design | of everyday things". If you don't agree with me that book | will change your mind. | worksonmine wrote: | You get used to it as in "used to how CLI programs are | usually designed". Just as you get used to what the | select icon in a GUI does. Without any prior experience | in any both seem like alien technology, but coming from | GUI to CLI you have the bias of already knowing one when | comparing. | | People claim macOS is intuitive and everything works the | same, but I'm handicapped in it. I just call it | inexperience not being bad UX. | | Regarding the manual, does GUI programs have a unified | way to access guides and documentation? Can I scroll to | the bottom with G and find the configuration files and | example uses? | curt15 wrote: | That assumes that you can already articulate the action | you are looking for in the program's vocabulary. For | people who think more pictorially, they may have a sense | of what they want but benefit from visual cues. | worksonmine wrote: | I don't target specific options, but different words of | what I'm trying to achieve, crop/cut/extract as a pretty | bad example. It takes me to the description of the option | I'm looking for where it will also have useful extra | options to combine. | | I can't say the same for GUI icons, many times hidden | behind dropdowns. If I hover it will say select, then I | have to find how to crop that selection, behind another | dropdown, probably a few levels deep. And none of them | searchable. If I need help there's no one place to find a | guide, my best bet is google or the website. | | For both an intuition has to be learned from use, but GUI | people act like they were born with computer literacy. I | used to think the CLI was stupid as well, but now that | I've seen the light I can't imagine going back. | lupusreal wrote: | In principle maybe, but all present implementations fall a | bit short. Why can't I use my mouse to position the cursor in | any shell? Placing the cursor with the mouse is something | people commonly do in terminal editors like vim or emacs; the | efficiency arguments against it fall flat because this is | entirely optional and besides, many people use laptops with | either a track-point directly in the middle of the home row | keys or with a touchpad directly below the keyboard. | | And there's no technical reason it couldn't be done; years | ago I once did it as a proof of concept. It just hasn't made | it into any major shell yet.. besides eshell anyway. It does | work on eshell. | | Anyway, it's not really a big deal, not important enough for | me to pursue, but I do think it counts as a counterexample to | disprove the "peak UX" claim. Command line interfaces in | principle are great but in practice we're doing it by | emulating hardware that went obsolete decades ago and piling | cludges and hacks on top of that to make it feel a bit more | modern. | | Another example; there are a few ways to inline images in a | terminal emulator but they're all kind of shit in their own | ways; graphical thumbnails have clear utility when listing | some directories; every serious file manager supports it but | to do this in a terminal emulator is cludgy hacks. | pjmlp wrote: | We should have kept using MS-DOS... | chefandy wrote: | That's what people who gained their technical competence in a | CL environment always think: we're always most productive in | the interfaces we are familiar with. I'll agree that most | technically competent people probably prefer using the | command line for many tasks, but _correlation != causation_. | It 's really easy to mistake our own preferences for being | objectively good, generally... which is why designers exist, | why most user-facing commercial software doesn't require | reading a single line of documentation, and why most FOSS | projects-- almost entirely indifferent to or hostile towards | deliberate design-- are only useful to people who have a | working mental model of what's happening under the hood. | | I was strictly a vim guy for a decade and a half... my | coworkers occasional snicker merely steeled my resolve, but I | _knew_ I was doing the _pure_ and _efficient_ and | _technically correct_ thing by sticking to barebones vim. | Lots of vim stuff and ex commands are beneficial to my | workflow, but after a coworker convinced me to try out some | more modern options with vim modes, I realized that my | attachment to vim as an editor was driven by my emotional | investment in how many times I struggled with vim 's | clunkiness. I wore it as a badge of honor. I thought it gave | me cred. In reality it just showed how utterly inflexible I | was. The Jetbrains editors, for example, offered more | functionality out of the box than I could practically cram | into my vim setup, yet was completely configurable, and the | features were generally intuitive and discoverable. I didn't | have to look up how to do some relatively obscure thing in | ex-- there was probably a menu option for it so I just didn't | have to keep it in my head. Sure, vim is and always will be | my default editor for light editing, and there are obviously | people whose use cases are perfectly satisfied by using it. | However, assuming for _years_ that I was more technically | competent for doing intensive professional work in complex | codebases using that clunky old editor was plain old self- | indulgent arrogance, like most other nerd badge-of-honor | things are. | | I've been using command line environments daily for decades, | and usually head there first to do many tasks, but many of | these archaic tools only persist because of a reverse | eternal-September problem. By the time someone gets | technically advanced enough to start influencing how our | technical environments work, the curse of expertise | obfuscates their downsides and they mistake their own comfort | with something for it being objectively good. | curt15 wrote: | The best CLI will never have the discoverability of any | competently designed GUI. | SushiHippie wrote: | What's the difference between "notes" and "plume"? | godelski wrote: | Hows it different from Obsidian or any other note taking app | that has a larger community. I'm sure OP put in lots of hard | work and it looks good, but it's not apparent to me why I | should abandon my existing platform (stickiness) for another | one. There are a lot of note apps out there already which | probably makes it hard to sell. | rubymamis wrote: | Plume's editor is a block-editor I wrote completely from | scratch using C++ (model) and QML (view). This allows me to | create an advance editor that can have complex elements (like | Kanban, Columns, advance image components, etc) within the | text. The performance using Qt C++ compared to Electron is a | mssive improvement over current web apps (like Notion and the | likes), and actually, i's even faster than native apps on | macOS (Craft, Bike) and apps made in Flutter (AppFlowy). | | Example: https://imgur.com/wajSjbn (I'll implement the Kanban | feature next week (:) | alwayslikethis wrote: | There is a large intersection of Linux users and people who | cherish their freedoms. For many people, using non-open source | note taking software is a non starter because of the vendor | lock-in and privacy concerns. Thus, you'll probably lose out | more by not open sourcing the program than by open sourcing it | and risk having some people not pay. I wager a lot more people | is willing to pay than use proprietary software. Also note that | open sourcing doesn't require you to distribute the code to | everyone, you can give source code only to paying users if you | are charging them money, though they will have the right to | modify and redistribute. If they don't care about open source, | they might as well just use Notion or Evernote. If someone is | looking for an open source state of the art note taking | program, I recommend Logseq. | lupusreal wrote: | There are some programs that sell binaries but also give away | the code. | | The premier pixel art editor Aseprite is free (source | available, not open source) if you're willing to build it | from source yourself, but most users buy the prebuilt | binaries. I think this way you satisfy both the privacy | conscious / cheapskates, and also the developer's economic | needs. RMS doesn't approve I'm sure, but you can't please | them all. | rubymamis wrote: | I'm a big believer in open source software. I've had | wonderful contributors and I'm using qutie a few open source | libraries/components in my own apps. That's why I open | sourced my own app. | | I've tried many different options so I could make a living | with it (ads, donations, premium features). There are | definitely more ways to explore. But for now, I need to | ensure that my financial situation is stable before anything | else. Then, maybe in the future I'll be able to afford | tinkering with a sustainable way of open sourcing. | | I've also started to notice many VCs starting to invest in | open source software (just today saw Godot featured on HN). | So that can also be a potential route. | throw10920 wrote: | I think you're making the right decision. Open-source is | extremely difficult to make even a living wage off of - the | number of people who do is orders of magnitude smaller than | those who make a living off of commercial software. | lovelyviking wrote: | >Open-source is extremely difficult to make even a living | wage off of... | | So are you saying it's even possible? I wish to learn at | least one option to do it. Few is even better. How at all you | can realistically make living this way? | | Ok, not living , just partial income. Ok not partial. Some | income? | | I am not making fun of I honestly look some way . | | I understand that if you maintain 10 years some essential | part of essential software project then people eventually | come to you for consulting or will pay you to shift this part | toward their requirements. | | But other then that? Like can you write useful free software | program and really have some money from it ? | throw10920 wrote: | The main options that I'm aware of are: selling support | (RedHat), donations (I can't recall examples but they do | exist), open-core (GitLab), and paid hosting (WordPress). | In the past, there was also the option of selling physical | media (which the FSF did for GNU projects, for instance) | but that's been killed by the Internet. | | All of these models are very hard to get working (e.g. the | donations model requires that you have a very large number | of people interested in your work who are generous with | their money, kind of like Twitch streaming), but they _can_ | work. They 're not an option for the majority of | programmers, though. | shwouchk wrote: | Joey Hess (https://joeyh.name/) did, at least partially. I | remember him raising money to develop git annex. | rubymamis wrote: | It's definitely possible to make a decent living with FOSS | software. One of the main contributors to my note-taking app | is @bjorn[1] who developed the awesome Tiled editor[2] and | managed to figure out a sustainable way to earn a living from | donations/sponsorships. There are probably more instances of | that. I tried to go the same route, but other than a $5 | monthly payment on Patreaon (thank you awesome contributor!) | I couldn't figure it out. | | I hate serving shitty Google ads. They are also not a stable | source of income and the revenue is low in my case. It's time | for me to move on. | | [1] https://github.com/bjorn | | [2] https://github.com/mapeditor/tiled | throw10920 wrote: | Oh, yeah, it's totally possible - just do a HN search and | you'll find people who are doing it (e.g. Andrew Kelley, | the Zig designer - and he's making a _programming language_ | , which nobody will pay for in this day and age!). | | However, like being a social media "influencer" (e.g. | Twitch streamer), it requires a lot of both hard work and | luck, has a limited amount of "capacity", and isn't a | viable source of income for most people. | tomcam wrote: | Thanks for sharing. Appreciate your fighting the good fight, | and sorry for the results so far. Maybe apply for a Futo | scholarship for one? But definitely close source for Plume. | rubymamis wrote: | No need to be sorry, really. I'm just learning how to | navigate this world. I've been pretty lucky so far. Notes is | one of the top results in Google (for the keyword "notes"). | So I get a lot of traffic and a nice passive income. But it's | not something I can fully live on (plus it's unstable and I | hate serving ads). | hnlmorg wrote: | Personally I think KDE is light years ahead of macOS and | Windows. | | In fact I find macOS to have been be of the worst window | managers of all the popular platforms (sure it's pretty and | easy to use, but trying to do anything beyond the basics | requires magical incantations that are impossible to discover | organically). | | Each to their own though. | rubymamis wrote: | Well, I'm a Qt programmer (and love it!), so I know a bit | about this ecosystem. Unfortunately in terms of UX and | aesthetics, KDE apps don't come even close to the macOS | ecosystem. | | But that's alright. I'm here to change that. | lovelyviking wrote: | Can you share some of this 'love' to me? Because my | experience with QT so far was : it does 'who knows what', | 'who knows when' and 'who knows why' And if you wish it to | work the best tactic is "do not change anything, it will | surprise you and there will be no way to go back" :) | | May be I am missing something important in understanding? I | was trying to tweak some projects for my needs. I | successfully did it but it was a nightmare. | rubymamis wrote: | If you learn how to separate your logic in C++ and your | views (GUI) in QML you can achieve the best of both | worlds. C++ is fast and I love programming with it. QML | is easy and powerful you can create slick looking apps | with it with beautiful (and easy!) animations. | | I bought the Udemy course of Bryan[1] and learned QML in | one day. The next day I already had a prototype for a | Kanban[2] that is based on Markdown. | | [1] https://www.udemy.com/course/qml-for-beginners/ | | [2] https://rubymamistvalove.com/notes/kanban.mp4 | lovelyviking wrote: | Can you elaborate more? What features you are talking about? | | I can criticise Mac OS endlessly and was even actively | downvoted here when reported facts of my personal experience | with bugs on newly purchased M1 (you can dig the history if | you wish). I was shocked how quality degraded in my opinion. | | People here were even claiming that it's my specific faulty | machine was to blame. This 'faulty' machine by the way works | to this very day without any hardware problems except | flickering of the monitor which is idiotic in my opinion | design decision (to use PWM). | | So as you can see I am very critical of macOS and consider | using Windows after macOS like completely unbearable. And yet | your comment have puzzled me. | | When I was learning macOS after years with Windows I remember | that certain things were like you say "impossible to | discover". Yet with all that being said I find other GUI | implementations in GNU/Linux not any better. | | Perhaps I've missed something in KDE? What did I miss? What | "doing anything beyond basic" means in your usage? What kind | of tasks/workflows are those ? How KDE better in those? | askonomm wrote: | KDE _functions_ well, but my god does it need someone with an | actual design education to help out. | lovelyviking wrote: | 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 ? | rubymamis wrote: | 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? | bachmeier wrote: | A few thoughts: | | 1. I've never heard of your app, and I follow this space | closely. It's _extremely_ competitive. | | 2. I clicked to check how much you're asking for premium. It's | reasonable on an annual basis, but I only saw an option for a | monthly subscription. That's not happening. | | 3. I'd be more likely to give you a donation than to pay for a | premium version for an app like this. That model has worked | well for Obsidian. I don't think getting early access to | features is worth much, but a lot of people have paid them to | support their work. | | 4. My observation is that a closed core product with a large | open source ecosystem around it gives folks a reason to pay. | rubymamis wrote: | Hi! Thanks for your comment. | | > but I only saw an option for a monthly subscription. | | What do you mean? The annual subscription doesn't work? Or | something else? | | > I'd be more likely to give you a donation than to pay for a | premium version for an app like this. | | Well, for my Notes app, I can understand. Hopefully you will | find my new app as a breath of fresh air in this space. Sign | up to get an update please! I would love to hear what you | think when the app is out. | | > My observation is that a closed core product with a large | open source ecosystem around it gives folks a reason to pay. | | Overall, I think people will pay if an app gives them enough | value. | freedomben wrote: | There are definitely some challenges with getting people to pay | for OSS, but I wouldn't be so quick to blame that all on what | happened in this situation. I think you'd be experiencing the | same (or worse) if your app was closed source for reasons I'll | mention in a minute. | | I'm the exact type of person who would be in your target market | and likely to pay, but aside from having never heard of your | app (which may be your biggest problem), these are the reasons | I'm not buying. I'm only sharing this in the hopes that it | helps you, not trying to make you feel bad or anything like | that. Overall I think you're _awesome_ for making your app open | source, and I have a mountain of respect for you for doing | that. | | 1. You're targeting a very crowded and competitive market where | top-quality options are 100% free. This would be a huge | challenge regardless of whether you're open source or not. | | 2. Your app is still very young/new. Winning in such a | saturated area is going to take some time to even build | awareness, let alone get mature/feature complete enough to get | people to change. | | 3. With something like notes, you're looking at people with | substantial pre-existing sources. Migration is not trivial | either, so there's a big barrier of entry there for people to | use your software. | | I wish you the best, but I think you'd only be harming yourself | by closing your next app. You definitely lose people like me | for whom my notes are incredibly important and I won't risk | losing them to a proprietary tool. Open is mandatory for me to | even consider it. | | I'm pretty happy (maybe even in love) with Logseq, but the | performance is definitely a downside and the idea of a C++ app | is highly appealing to me, so I'm going to give your app a try. | | Side note: If your GUI was compatible with logseq's on-disk | format, that would make your app quite compelling to me | rubymamis wrote: | I appreciate your opinion. | | Notes has been quite a success for me. With over 1,300,000 | downloads[1], and being featured in awesome tech websites[2]. | Just on Ubuntu alone there are 7000 weekly active users (that | have downloaded it from the Ubuntu Store). | | My new app Plume is going to be a big improvement over Notes. | First, your data is and will always be as simple as | Markdown/plaintext. My new block editor is based completely | on plain text while still offering advance views (with a | minimalistic syntax). It's also faster than any other in its | category, even faster than native apps on macOS! I'll soon | put benchmarks on the website. | | All I can say is, sign up to get an email update and check it | out when it's ready. Most of the features will be free with | only some advance features paid. | | BTW, what do you mean by "logseq's on-disk format"? That it's | local-first? If so, Plume is also. | | [1] https://tooomm.github.io/github-release- | stats/?username=nutt... | | [2] https://www.omgubuntu.co.uk/2022/09/open-source-qt-notes- | app... | kilolima wrote: | 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. | rubymamis wrote: | 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). | vcg3rd wrote: | I understand your frustration, but I have a couple of counter- | examples, and I don't offer them in any derogatory way. | | 1) Notes looks a lot like Standard Notes. If you built Notes | using copy-left, OSS it's hard to complain unless you pay | "royalties" to all the programmers whose work was incorporated | into yours. | | 2) I am probably atypical. I have used Linux for over 20 years, | but I can't write so much as a Bash script or a Perl one-liner. | Yet I have spent a whole lot more money on software than I | would have (or most individuals do) on other platforms. Because | I can't code and appreciate the work of others and the freedom | it gives me I support the following (not exclusive): | | * Kaisen (my distro) and Debian (the distro Kaisen is built on) | both | | * tFSF for both core utilities and Emacs | | * My DE (KDE), and even if I prefer the UI of other | applications I mostly try to use those provided by KDE,tFSF, | Debian, or Kaisen (e.g Akregator over RSSGuard) unless I | donate, like: | | * Mozilla (for Firefox), but | | * Betterbird for my email client | | * Syncthing | | * LaGrange (gopher/gemini) | | * Joplin | | * ClipTo | | * and more, including services (e.g. SoulSeek, envs.net) | | Some annually, some monthly, some one-time. | | In fact, when Standard Notes first came out I paid for a seven | year subscription, and then ended up using it for about 2 | months before becoming dissatisfied. There are some, like | Alacritty, that I use extensively but which I have found no way | to donate to, but I try to keep it to a minimum. | rubymamis wrote: | There are some amazing people that valued what I'm doing. One | person even donated $1000 years ago. But that doesn't make it | sustainable. | | I think it's time for me to compete on the market. I believe | Plume is going to be a good addition to the pool of | productivity apps today, but I'll let people judge that when | it's released. I hope you will sign up to get an update[2] | and let me know what you think of it when it is released. | | BTW, are you suggesting I copied Standard Notes? Not really, | I don't like their design. Notes is in active development | since 2014 (first commit on GitHub in 2015), back then I | didn't even know about Standard Notes and the core design | barely changed. | | [1] https://github.com/nuttyartist/notes/releases/tag/v0.8.0- | bet... | | [2] https://www.get-plume.com/ | blt wrote: | It's not an attractive scene for GUI developers on Linux. Gnome, | Qt, and Electron all have some unappealing aspects. Many people | who get the itch to make a Linux GUI app will immediately be | discouraged by having to choose between them. | 360MustangScope wrote: | Imo, I think that Flutter is one of the best ways to make | native Linux applications at the moment. It can look just like | a GTK, macOS and Windows app and you have a more enjoyable | experience. | blt wrote: | Don't know it, but from the website it looks mobile-first and | intended for simple apps like Spotify. Don't get the | impression that I could build something like Blender or | Kdenlive with it. Maybe my impression is wrong, but I would | hesitate to use a framework for a purpose that the developers | consider fringe. | alwayslikethis wrote: | What's wrong with Qt? It works well enough if you want to write | C++ or Python. Electron works on Linux the same way it does on | Windows. GTK has some more issues on other platforms, but | mostly works on Linux too. | blt wrote: | I should have said "Many people" instead of "Anyone" in my | original comment -- edited. | | I would use it myself, but a lot of developers don't want to | use C++ (too complicated) or Python (too slow, dynamicness | becomes unwieldy for large projects). Languages in between - | like Swift and C# - are the sweet spot for desktop GUI apps. | nektro wrote: | > What's wrong with Qt? It works well enough if you want to | write C++ or Python. | | answered your own question | sprash wrote: | Have you tried WebUI? It's like a ultra minimalist version of | electron. It uses available browsers instead of shipping its | own. You simply write your App in html/js and everything that | goes beyond (e.g. file access) is delegated to C with a simple | callback mechanism. | underseacables wrote: | Segmentation has been tough for a Linux newbie like myself. I | hope there can be greater unification some day so that | applications have one install type, and come with greater | predictability. | seabrookmx wrote: | It's still annoying even if you're experienced with Linux. | Especially if there's multiple install methods for the same app | with different levels of support. | | Flatpak is the closest thing thus far, but certainly hasn't | "won" yet. | michaelmrose wrote: | This is actually a solvable problem. You provide a single | store interface where you install flatpaks and traditional | packages. Linux Mint does a pretty good job of this. | | With Arch you can basically rely on system packages and the | AUR for 99.9% of everything. | | Either way wrapping an interface around 1 or more method is a | fairly trivial matter. | zer0zzz wrote: | 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 instead of doing it in the frameworks and | programming languages themselves (which are what you are asking | people to write apps in). | smoldesu wrote: | Stuff like Flatpak and Snap exists because the framework side | kinda _is_ built-out. Isolation technology had matured, newer | desktops emphasized per-window security and needed APIs to | portal in and out of each instance. The desktops needed a | packaging /infrastructure solution to tie that together and | make it presentable to the user. | zer0zzz wrote: | Yet I still can't compile an app on some arbitrary release of | some arbitrary distro and just run the darn exe on another | and be 100% sure it will work. | smoldesu wrote: | On a large enough timescale I don't think you can | reasonably expect this on _any_ of this big 3 OSes. From a | less macro perspective, I think tools like Appimage and | Flatpak will fill that role. | zer0zzz wrote: | On a long enough time scale we are all dead, and Linux | doesn't exist. That doesn't mean that in the decades that | computer software has to be useful to actual people that | things have to suck this badly right now. | smoldesu wrote: | The "actual people" using Linux on the desktop are not | running .so files off the internet. I get what you're | saying, but you know it's facetious to pretend that | packaging is simple on Mac and Windows too. | api wrote: | Packaging is fairly simple on Mac and Windows if you use | the dev tools for the platform and are not doing things | like installing services or drivers or changing OS | configuration. | | Your packaged app will almost always work too. There are | not 50 distributions of these OSes. | zer0zzz wrote: | exactly | zer0zzz wrote: | > The "actual people" using Linux on the desktop are not | running .so files off the internet. | | They do this all day every day when they use a little | something called Steam or when they install Google | Chrome. | | > I get what you're saying, but you know it's facetious | to pretend that packaging is simple on Mac and Windows | too. | | It is... | sylware wrote: | 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 binaries have | version names requiring at least a glibc 2.36 (often, rarely | not). They have to force the right version names with... the | binutils gas symver directive (see binutils manual) until all | their version names are compatible with a glibc reasonably | "old" (I would go for a reasonable 5 years... 7/8 years?): | | https://sourceware.org/glibc/wiki/Glibc%20Timeline | | Of course normal game devs have not the slightest idea of those | issues, and even so, they won't do it because it is a pain, | that for 1% of their market. Not to mention they better | statically link libgcc (and libstdc++ if they use c++) to avoid | the ABI issues of those abominations (the word is fair) which | have been plagging game binaries for TEN F.... YEARS ! (getting | better has more and more game binaries default to -static- | libgcc and -static-libstdc++, if c++, gcc/clang options). | | There is light at the end of the tunnel though as godot engine | is providing build containers which are very careful of all | that (unity seems clean there too, dunno for UT5.x though). | | But you have engines really not ready, for instance electron | based games: you don't have the right version of the GTK+ | toolkit installed on your enlightenment/Qt/raw X11/wayland/etc | distro? Nah, won't run. And packaging properly a full google | blink engine for binary distribution targetting a wide spectum | of elf/linux distros? Yeah... good luck with that. | | elf/linux is hostile to anything binary only, that due to manic | ABI breakage all over the board, all the time (accute in the | SDK and core libs). | | If it is already that hard for game binaries, good luck with | apps. I can hear already their devs saying: "we don't care, | just use and install microsoft suze gnu/linux, every else is | unsupported"... I think you get the picture where all that is | going. | zer0zzz wrote: | I agree. I recall a talk from Linux Torvalds on how bad the | glibc folks break things and why he won't ship a binary | version of his scuba tool. If the binary breakages start with | the darn C lib, you're gonna have recurring problems all the | way up the stack on a regular basis I feel. | sylware wrote: | This has the case for 10 years with games on steam. The | worst being libstdc++ ABI issues still around because many | devs forget to statically link their c++ libs with -static- | libstdc++. Because in windows, ABI stability is really good | and then devs are used to that. | zer0zzz wrote: | As far as I understand, Windows solves this libc++ | versioning issue using the side by side cache. I guess | this is a little bit like flatpack. | sylware wrote: | I think there are very few c++ ABI versions on windows | and it is easy to select the one you want until it is | installed, they can be there side by side. | p_l wrote: | Windows solves this issue by not making language runtime | part of the OS libraries in a way that pollutes other | libraries. | | That means that you can have your application linked with | library A version X, and load another library that is | linked with library A version Y, and so long as certain | practices are followed, everything works because you're | not getting cross-contamination of symbols. | | Meanwhile on Linux the defaults are quite different, and | I can't load OpenGL ICD driver that depends on GLIBC_2.38 | symbol on application that was loaded with glibc-2.37. | Moreso, a lot of APIs will use malloc() and free() | instead of language-independent allocator, unless the | allocation comes from kernel. And no, you can't mix and | match those. | zlg_codes wrote: | _What_ language independent allocator? I 'm unaware of | any memory interfaces in programming languages that | aren't specific to that language. | | What would you use instead of malloc and free? | sylware wrote: | This what the "pressure-vessel" container from collabora | (used by valve on dota2/cs2), is trying to solve... but | now the issue is the container itself as it does _NOT_ | follow fully the elf loading rules for all elf binaries | and does ignore many configuration parameters of many | software packages (data files location, pertinent | environment variables, etc), basically presuming "ubuntu" | to be there. | | Basically, I have my vulkan driver requiring fstat from | 2.33 but the "pressure-vessel" (sniper version), has a | glibc 2.31, then it does parse partially my global elf | loading configuration and the configuration of some | packages to import that driver and all its | dependencies... including my glibc elf loader... ooof! | That level of convolution will have a very high price all | over the board. | | I have arguments often with one of "pressure-vessel" devs | because of some shortcuts they took which do break my | distro (which is really basic and very vanilla, but not | "ubuntu"). It took weeks to get the fixes in (I guess all | of them are in... until the glibc devs manage to do | something which will wreak havock on "pressure-vessel"). | Oh... that makes me think I need to warn them about that | super new and recent ELF relocation type they will have | to parse and detect in host drivers... | | On my side, I am investigating some excrutiatingly simple | modern file format which should help a lot fighting those | issues, there will be technical trade-offs obviously (but | would run-ish on "old" kernels anyway with elf "capsules" | and an orthogonal runtime). Like json is for xml, but for | elf/pe. | | It seems only the linux ABI can be trusted... til Linus | T. is able to hold the line. | okanat wrote: | Windows standard C and C++ ABI is stable since 2017. So | the last 3 releases of the Visual C Compiler and C | runtime hasn't changed the ABI. | | However Windows also has a lower level system API / ABI | i.e. Win32 that's always stable all the way to Win 95. | WinSXS sometimes helps for certain legacy apps too. This | allows apps using different C libraries to work together. | Win32 contains everything about the OS interface. | Creating windows, drawing things, basic text, allocating | pages from the OS, querying users, getting info about | files is all stable. Win32 is the lower level of the C | library. There is also a better separation of the | functions in different DLLs. Win32 has multiple DLLs that | has different jobs and they are mostly orthogonal. | Kernel32 contains core almost system call stuff. Shell32 | contains interactions with the OS shell i.e. creating | windows, message boxes, triggering different UIs. | | The surrounding libraries like DirectX / DirectPlay / | DirectWrite that are also used by the games are also part | of the system libs starting from 7. They are also stable. | | On Linux world there is no separation of the system level | libraries and normal user libraries. Glibc is just | another library that one depends on. It contains the | entire lower level interface to kernel, all the network | stuff and POSIX user access stuff. It also contains a | component that has no job in a C library: the dynamic | executable loader. Unlike Windows on the Unix systems the | C library is at the lowest level and Glibc being the | default libc for Linux and making itself the default | provider of the dynamic executable loader makes writing | stable ABI almost impossible. Since other libraries | depend on Glibc and executables depend on Glibc's dynamic | loader everything is affected by the domino effect. | jancsika wrote: | > But you have engines really not ready, for instance | electron based games: you don't have the right version of the | GTK+ toolkit installed on your enlightenment/Qt/raw | X11/wayland/etc distro? Nah, won't run. | | Hm, not sure what you mean here. | | At least with the nw.js toolkit (from which Electron was | forked IIRC) I've never gotten a report of a distro where it | would refuse to run because of an incompatible GTK version. | zlg_codes wrote: | > 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. | pjmlp wrote: | That core would be GNOME or KDE frameworks, coupled with the | FreeDesktop standards, at least that was the plan about 20 | years ago. | | However as the site says doing distributions is what most folks | keep doing, and naturally there isn't a single stack that can | keep up with snowflake distributions. | | In the end, Google took the Linux kernel, placed two core set | of frameworks, one in Java, and the other in JavaScript, and | naturally those are the winning Linux distributions for regular | consumers. | zer0zzz wrote: | None of that core is standardized across even a hand full of | distros. | fragmede wrote: | Chrome/Chromium is quite standardized, across many distros. | zer0zzz wrote: | Name one distro that ships with chrome out of the box? I | dont even think ubuntu comes with a chromium browser. | That means devs cant write apps against it and just hand | out exes like they do on Mac and windows. | charcircuit wrote: | Play Protect Certified Android and ChromeOS are popular | ones among consumers | zer0zzz wrote: | Nice. Maybe more desktop distros should build on android | as a core. That could solve a lot of problems. | fragmede wrote: | Chromium is the default browser on Raspberry Pi OS. | pjmlp wrote: | Naturally, you missed the part I mentioned it was the plan | 20 years ago, not how it looks like today. | zer0zzz wrote: | tldr | znpy wrote: | > and they don't break as often. | | Meh, kinda. | | It's not a case that proprietary software vendors only target | RHEL, Suse and Ubuntu. | | RHEL is a perfect target for stable software and Ubuntu might | be as well if you decide to only support LTS releases. | zer0zzz wrote: | Targeting only a hand full of frozen releases is not abi | stability. Abi stability is when any app can be compiled off | any release and run on any future release (and ideally older | releases too). | yjftsjthsd-h wrote: | > Abi stability is when any app can be compiled off any | release and run on any future release (and ideally older | releases too). | | Hang on, if that's the standard why is MacOS getting a | pass? I'd believe that Windows meets that bar, but I see | posts on a routine enough basis about Apple forcing | rewrites, unless I really misunderstood something there. | zer0zzz wrote: | Apple's actually quite good at this, but they do break | things on purpose from time to time for reasons which | they announce pretty publicly at WWDC when they do | (32->64bit, deprecating GL, etc). | | So, for example a dev can target an app at iOS 8 and it | still works fine on iOS 17. Thats almost a decade of OS | updates that didn't affect an app. Here's an example: | | https://apps.apple.com/us/app/bebot-robot- | synth/id300309944 | zlg_codes wrote: | Such a platform is doomed to never take a step forward | because "oh no, something changed and now I have to | increment my dependencies". | abhinavk wrote: | I had read somewhere that Win32 (via Wine or Proton) is the | most stable target for Linux right now. | zer0zzz wrote: | Yeah exactly! | FirmwareBurner wrote: | _> Win32 (via Wine or Proton) is the most stable target for | Linux right now_ | | Tangential, Winamp 2.xx from the '90s runs and plays MP3s | just fine on Windows 11 today. There are better apps for that | today, but I still use it because nostalgia really whips the | llama's ass. | | Pretty wild that the same thing is not the norm in other OSs. | | Even wilder is that I still have my installed copy of Unreal | Tournament 99 from my childhood PC copied over to my current | Win 11 machine, and guess what, it just works out of the box, | 3D graphics, sound, everything. That's nearly 25 years of | backwards compatibility at this point. | | If that's not stable, I don't know what is. | zer0zzz wrote: | The most underrated feature of windows probably ever. | Dalewyn wrote: | It really is mindblowing that Windows 11 is still capable | of running 32-bit programs written for _Windows 95_ , | that's _28~29 years_ of backwards compatibility and | environmental stability. | | If we look back to programs written for Windows NT 3.1, | released in _1993_ , and assume they run on Windows 11 | (because why not?) then that's _30_ years of backwards | compatibility. | | Did I say mindblowing? It's downright mythological what | Microsoft achieves and continues to do. | EvanAnderson wrote: | NTVDM could have been ported to 64-bit Windows, but MSFT | declined to do so. Leaked Windows source code shows it | would have worked[0]. | | That would have given 16, 32, and 64 bit compatibility. | | [0] https://github.com/leecher1337/ntvdmx64 | FirmwareBurner wrote: | There's no guarantee that all the older apps from the | Windows 9x/XP days will work today, as some apps back | then, especially games, made use of non- | public/undocumented APIs or just straight up hacked the | OS with various hooks for the sake of performance | optimizations. Those are the apps guarantee not to work | today even if you turn on compatibility mode. | pizza234 wrote: | > If that's not stable, I don't know what is. | | What is? An immense amount of resources (developers) poured | into developing live patches to make applications work on | newer version of Windows (or anyway, helping the | application developers). | | It's an interesting conceptual grey area - it's not | backward compatibility in the common sense. | | This is documented in the book "The old new thing" by | Raymond Chen (it's possible also to read the blog, but the | book gives an organic view). | | It's fascinating to observe how far-sighted Microsoft was; | this approach, clearly very expensive, has been fundamental | in making Windows the dominant O/S (for desktop computers). | chefandy wrote: | 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. | FirmwareBurner wrote: | 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? | zer0zzz wrote: | 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. | FirmwareBurner wrote: | Why is it terrible? Asking for real. | LeoNatan25 wrote: | Because it's not "sexy" anymore. Now "sexiness" lies with | web crap, so Electron is a "great tool", while Java is | "terrible". | zer0zzz wrote: | 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. | FirmwareBurner wrote: | _> 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? | zer0zzz wrote: | yes | | I think it's hard to beat the tide that is the web as a | content and app delivery system. The web is also getting | all the billions in investment from every massive faang. | mikrotikker wrote: | It's got more security holes than Swiss cheese. | creesch wrote: | Java simply has a much higher barrier of entry. Not only in | regards to figuring out the language and resources | available but also the fact that creating a GUI still | requires external dependencies. | | Electron isn't just cross platform, it is cross platform | based on technologies (html, css and javascript) that also | by a huge margin have the largest amount of developers | available. | whartung wrote: | > Not only in regards to figuring out the language and | resources available but also the fact that creating a GUI | still requires external dependencies. | | What external dependencies does Java need that's not in | the JDK itself? I have an app with Mac and Windows | installers (and thus bundles JDKs), it also runs on Linux | (via a fat jar), I tested it on Ubuntu, but for the life | of me I couldn't figure out how to package it properly. | It was more complicated that I cared to invest it at the | time. | | As for the barrier to entry, I feel the same way about | the web. I find the JS and Web ecosystem to be utterly | overwhelming, one reason I stuck with Java over something | like Electron, and the installers/footprint of the app | are smaller to boot. | creesch wrote: | > What external dependencies does Java need that's not in | the JDK itself? | | I mean that it doesn't come with Java itself, but you as | a developer need to pick a UI framework and not all of | them actually work all that well cross platform or will | get you an actual modern interface. | | Edit: I should also note that the threshold for entry I | am talking about is for people just generally starting | out. There simply are way more resources available for | web related development than there are for java. | | Also, when you start bundling your JDKs I am not sure you | can talk about a smaller footprint anymore. | ElectricalUnion wrote: | > Also, when you start bundling your JDKs I am not sure | you can talk about a smaller footprint anymore. | | What, do you bundle Electron source and Electron build | environment with your Electron app? | | Why would you do the same and bundle Java source code + | Java compilers in your Java app? | | Why would you do the same and bundle <any language> | source code + <any language> compilers in your <any | language> app? | | If you need to create a "just works without dependency | b.s." experience in Java, you use the correct tooling for | that, jlink. | zlg_codes wrote: | It's the JS kiddies. They got Node and then decided the | whole world should be written in Javascript, lol. | chefandy wrote: | Java is great for making huge well-organized codebases with | a lot of developers, especially if you've got good tooling | support or a rich ecosystem of existing code to work with. | Outside of that... If it was a good development ecosystem | for native gui-based apps targeted at end users, why | wouldn't the preponderance of native user-facing apps be | written in Java, anyway? Ask nearly any experienced mobile | app developer if they're more productive in Java on Android | or Swift on iOS-- it's not even close. Sure, some of that | is the OS itself, but a whole lot of it isn't. On the | desktop, the one time I tried to make something with | _Swing_ I wanted to _Fling_ my computer out the window. | Clunky. | zlg_codes wrote: | 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. | FirmwareBurner wrote: | Oh, it gets better. Even the default Weather app shipping | with Windows 11 is also an Electron pile of trash that uses | ~520 MB of RAM. Just let that sink in. 500MB of RAM just to | show you the weather forecast for the day and week. That | was my entire system RAM of my Windows XP gaming rig. | | Same for the Widgets app, it's not only bad because it | shows you news and ads when you open it, it's worse because | it's also, you guessed it, an Electron app. | | Some VP in Redmond must be off their meds. | | I assume Microsoft just can't find devs to write C#, their | own damn programing language for their own OS, and one of | the dozens of frameworks they have for Windows GUI, that | they need to resort to using Electron for what are just | Windows-only apps. | ziml77 wrote: | The Weather app in Windows 11 a UWP .NET Native wrapper | around WebView2 controls. It's exceptionally silly that | it's basically just a web browser with predefined tabs | and that it uses so much RAM, but it's not Electron. | FirmwareBurner wrote: | Oh my bad. I think I saw it call Edge and I assumed it | must be Electron. | chefandy wrote: | Worse for users than nothing? IT shouldn't be a default, | but if it's that or nothing-- as it often is when it comes | down to limited resources-- I think it's better than | nothing. If you're looking to make a useful tool for a | broad audience that must run locally, you _have_ to support | windows because that 's where 80% of the users are. You | _should_ support OSX because that 's where 15% of the users | are. That's two codebases with dramatically diminishing | returns. You need a damn good reason to justify adding | ANOTHER codebase on there to scoop up the remaining handful | of users on Linux. | | Also, aside from startup time, I don't have any trouble | with electron apps running slow on my machines. I think | many developers are conceptually annoyed with the absurd, | bloated architectural underpinnings rather than the | experience that translates into when using them. Perception | means a lot when judging performance, and I'll bet with | most end users using, say, slack, the speed of their | internet connection affects the speed of their work more | than the speed of the application. | prmoustache wrote: | Your postulate that it is electron or nothing is wrong | from the very start. | chefandy wrote: | You postulate that I said that, which is wrong. | | > IT shouldn't be a default, but if it's that or | nothing-- as it often is when it comes down to limited | resources-- I think it's better than nothing. | | _Sometimes_ it is. _Sometimes_ it 's not. It's certainly | an option that's very efficient for dev resources, which | is often the primary limiting factor. It's certainly the | only real option if you've already got a team of web | developers, which is very common. | | The current state of commercial software supporting linux | with native apps is a pretty good indicator of how | companies are viewing this equation. The amount of | resources it takes to make a native java app is vastly | different than the amount of resources it takes to make a | native electron app. If you don't understand how that | would be something that would open the possibility of | supporting linux in many cases, I'm not sure what to tell | you. | jwells89 wrote: | If I could have that spread of frameworks that macOS offers on | Linux, I'd be targeting Linux with my side projects yesterday. | Having such a wide selection of tools to readily reach for with | zero consideration about how long it'll be supported, which | fork is best, how well it meshes with a pile of other third | party libraries, etc is amazing. It reduces friction massively | and you just build stuff. | | The KDE Qt ecosystem and its GNOME/GTK analogue are closest but | still aren't quite there. | tempodox wrote: | 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. | zlg_codes wrote: | Which libc? | | There's glibc, musl libc, etc. Also consider you may be using | the functions incorrectly. | squarefoot wrote: | More software? Wonderful! I'm all for it, but before starting | something from scratch why not contribute to something that | already exists, or possibly pick some project that was abandoned | or simply needs to be worked on for example to be built with | newer compilers, run on newer hardware, etc. Which makes me | wonder if there is somewhere a database of dormant/dead projects | that would deserve to be resurrected. | nmstoker wrote: | Yes, I would echo this. In most categories there are loads of | subpar efforts when putting all that effort behind the top few | would yield a handful of excellent apps. | | Collaboration can seem daunting and hard work, but it's work | that will yield results which is time better spent than that | devoted to projects that end up abandoned. | zlg_codes wrote: | Who gets to take the credit? | | I'm not convinced these efforts to put everyone's ideas in | one place and one software are good. Often, design | disagreements arise which are incompatible. Under this model | of "everybody love everybody" lameshit, if you can't get the | group to accept your idea, it doesn't happen. | | You don't run into this problem when you write alone. | zlg_codes wrote: | That something that already exists may not be built in the way | you are aiming for. | | That other something might be led by a dickhead that you can't | get along with, or a community that's not receptive to your | suggestions or patches. | | Social processes and blockages can lead to losing motivation to | contribute. Not everyone is cut out to be this happy-go-lucky | team player that has no personality. | | As for myself, I'd rather start from scratch because 1) I'll | control every variable, 2) I don't have to mess around with | some existing social and tech infra, 3) I don't have to talk to | anyone and convince them my ideas are good, 4) who wants to | spend more time arguing or discussing than writing code? | | The solodev experience is just better. You're not hamstrung by | politics and social process. Being a team player has only led | to misery for me. | pjmlp wrote: | > Too often they fall into the trap of creating more Linux | distributions. We don't need more Linux distributions. Stop | making Linux distributions, make applications instead. | | Right on the spot. | dwattttt wrote: | If you consider a container to be a limited distro, we turned | one into the other | pjmlp wrote: | I consider a container, shipping the developer's computer | into production, or the revenge of microkernels, take your | pick. | yjftsjthsd-h wrote: | I mean, kind of? But "shipping the developer's computer | into production" implies a lot of things that really | _shouldn 't_ be happening even with containers - the images | you ship in prod should always come from git (or such) by | way of CI, and shouldn't include ex. compilers. So I'd | argue we managed to mostly get the upsides of just shipping | the dev's machine but without the downsides. | pjmlp wrote: | There are plenty of blog posts about how containers work | in Linux is still dependent on external resources, unless | care was taken when creating those images. | danans wrote: | > 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? | zb3 wrote: | I hope nobody will take your comment seriously, because the | performance of these is horrible compared to "truly" native | apps | danans wrote: | I've seen few apps anymore whose performance is bounded it by | the choice of UI framework. | | If they're slow, it's usually because of design choices, like | making common user interactions wait to retrieve data. | | Yes, games are an exception. But for the majority of software | that is concerned with displaying text, it doesn't matter a | hill of beans if you use a cross platform framework. We're | far past the days of slow Java AWT apps. | fullspectrumdev wrote: | 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. | danans wrote: | > Then you are stuck using basically a browser wrapper for | your UI, | | AFAIK, Flutter compiles to native code, no browser needed. | rafram wrote: | > Target All The Linux Distributions | | > Unlike other platforms, Linux is a very diverse target. There | are hundreds of Linux distributions, some more popular than | others. Once published though, applications can generally work | everywhere. | | > There are well documented software packaging and distribution | systems which enable developers to get their applications into | the hands of users. | | > Each developer framework and Linux distribution will have their | own recommended route to users. When you're ready to share your | creation, the development documentation will signpost their | suggested packaging guides. | | "Your apps will generally work everywhere" and "there are | hundreds of distros and you have to do work to support each one | individually" are essentially contradictory, no? | worksonmine wrote: | Most of them work the same way though. In reality there are | like 3 big distributions to target, Arch, Debian and Fedora and | from there it will trickle down. Linux and the *BSDs generally | work the same, put the executable in the $PATH and you're good. | Where this is may differ but not by much and these days the FHS | is adopted pretty much everywhere I know. | zb3 wrote: | Why would anyone do this given a) it's harder and b) linux users | don't pay for stuff not worth paying for? | oooyay wrote: | There's also wails.io that is a much better alternative to | Electron, imo, and uses native APIs for OS functionality. Added | benefit: Wails is also cross platform. | georgeoliver wrote: | I'm definitely for more guided resources on making Linux apps | from idea -> release, which I wish TFA was more of. | | I think there's a common misconception that if the developers of | ten similar apps would just pool their resources, then one great | app would result. Fragmentation certainly can be a problem but I | feel like this is some kind of corollary to the mythical man- | month. | jay_kyburz wrote: | Does anybody have much experience with the difference between | Electron and NW.js. | | Electron seems to get all the limelight, but from reading the two | websites, nw.js sounds like a better solution to me. | tumdum_ wrote: | Is this a parody site? | nektro wrote: | instead of getting more people to make new apps, gnome and kde | should be trying to coral developers to improve the existing ones | germandiago wrote: | Looks nice but in my experience, developing apps only for Linux | is not cost-effective. | | I would choose WxWidgets or Qt and add some extension points | where needed via interfaces to keep the codebase portable. | | Sticking to just native APIs is just locking yourself down into | Linux. | emptysongglass wrote: | There's a lot of complaints that there isn't much in the way of | tooling to create cross-OS compatible apps but I disagree. Just | looking at solutions which aren't Electron: | | - Telegram uses Qt and ships a performant native app across all | three OSes | | - Flutter compiles down to native code across all three (and | mobile) | | - Kirigami is a QtQuick framework that will give you an | executable app across all mobile and desktop targets | | Go and build your app. There's no reason this needs to an excuse | to flame on Linux. ___________________________________________________________________ (page generated 2023-12-09 23:00 UTC)