How incredibly arrogant. It can't be that people have legitimate grievances with elecron, like not wanting to use a program based on an incredibly bloated and poorly designed platform, oh no, they just "lack real world experience" and are "more interested in identity" (whatever that means).
High-and-mighty types like this are exactly why working in IT or contributing to FLOSS is so draining at times.
It's super annoying when you are trying to create a desktop app and you get issues (multiple of them) essentially going "Why are you using Electron? it eats up my RAM, please use X framework and you should be fine"
This would be fine if:
1. You attached that with a PR for said framework or
2. You searched before and read this being answered earlier
From a maintainer's point of view - this is super annoying.I'm sure the author built this to satisfy his itch first and open sourced it because it might help others (either to directly use the product or to learn from the code). It's super annoying when you have people who think they know better come and tell you to use X because they have a problem with Electron (not necessarily your app in particular but Electron in general). I say this as it appears the author might be using arch linux and as a linux user, I always appreciate an electron app vs no app (obviously a native app is better but that's generally never the option - it's generally electron or nothing).
I'm sure it could have been worded nicely but eitherway it got the effect the author wanted - it drives away people who'd be annoyed by Electron in the first place.
Eck, please don't do this. Think of this with any other language/framework. "Your app was written in C++ but I rewrote it in Arc because the code is way nicer. You're welcome." or "You used Java but that is a pain because it has to be compiled, so I rewrote it in PHP and now it's possible to make changes live on production servers."
There are many reasons a maintainer may not want to do that (eg, not knowing or wanting to learn the language/framework, having an ecosystem of plugins/branches that would be negatively affected, different opinions on what the project objectives are and how best to achieve them, etc). It's very hard as a maintainer to have to close a massive PR that someone put a lot of time into, and it's obviously a waste of time for someone to work on something that is ultimately rejected.
What you can do instead is open an issue and say "This is very memory-intensive because of Electron, are you open to addressing this? I'm willing to rewrite using <framework/language>."
You can also fork (or effectively just start a competing project) and become the maintainer of the new project. If you're not willing to do that, it's really not fair to expect someone else to -- as effectively with a massive PR you're basically asking them to take on maintenance of your code.
Other comments here (and probably GP) dismissed the software, due to the note, before even checking its utility. This is good, because the polarizing note deters people who value tone and identity more than utility, preventing these arguments down the chain. Basically it's leveraging outrage against people quickly susceptible to outrage, so I would say it serves its purpose effectively!
I've had experience both in work and my personal life with a wide variety of open source project maintainers/creators, some have been amazing, and their attitude encourages you to contribute, others have been so horrible you don't want to have to think about it again.
For me, personally, I have no problem with what this person is saying, it's how they're saying it that means I'll never touch this project, because I've formed an opinion on the kind of response I'm likely to get if I was to raise an issue.
Why should someone use a language/framework/etc they dislike just to make something in their spare time and FOSS?
Don't get me wrong, I think Electron is a problem - but I don't blame people for choosing it. Often our FOSS development aspirations are limited by time, energy and shockingly enjoyment.
I can choose to use what I want, and you can choose to not use it.
Disclaimer: I've never used Electron, but I'm shocked it's not blatantly obvious why people would choose it.
It's super annoying when I'm looking for a desktop app and everything I find is really a poorly-disguised web app which eats RAM.
Just develop programs for X11 & POSIX: every system, from Windows to Linux to macOS to *BSD supports them to one extent or another.
I think other programmers don't understand that many people get into front end web development because it uses other skills that writing C++ doesn't require.
Learning HTML, CSS, and JavaScript doesn't mean you can pick up a systems level programming language and start writing desktop programs.
Not everyone is capable or has time to learn other programming languages, and not everyone should try either.
Electron empowered Web Developers to be able to create cross platform desktop apps in a familiar environment.
It's not about quick or cheap, it's about using what you know to explore your ideas.
I've written my fair share of low level systems languages but if I needed to write a cross-platform GUI app I would write it in electron no questions asked.
Sure there's cross-platform UI applications out there like VLC, but like you said web technologies are maintaining attention right now and DO provide a lot of benefits.
I, like you, would not be embarrassed in the slightest to release something in Electron. I know about its bloat. I'm also aware that it means I can create a good looking application without spending a ton of time trying to figure out how to implement it.
But having worked with that for a decade - I have to agree with you. If you work for customers (as opposed to in-house software), it makes much more sense to use the web technologies for that.
We use Go for the backend though, so you can use a "real language" on the backend.
I do have some hopes for Go on the frontend as well with webassembly. :)
Interesting, that's exactly what I'd say about your comment...
The way I interpret the author's point is, with a lot of real-world programming/engineering experience also comes the appreciation of tradeoffs and priorities. Like, people don't use Electron because it's well-designed or efficient, but because it allows you to quickly and easily create new software that mostly works mostly everywhere. If you can come up with a better alternative, or substantially improve Electron, you should definitely do it!
Electron made many trade-offs indeed but writing "this is electron based so I'll not use it" and "great idea but unfortunately built with Electron, so I closed the tab" kind of comments on every bloody HN thread is extremely tiring.
Current GUI programs running on my computers:
- StumpWM :: not Electron
- emacs :: not Electron
- Firefox :: not Electron
- st :: not Electron
- Chromium :: not Electron
- dunst :: not Electron
- redshift :: not Electron
- xautolock :: not Electron
- nm-applet :: not Electron
From my own perspective, 'most desktop apps' are not written in Electron.
There are legitimate technical grievances with Electron, but how many time must those be expressed? If we data mined every Hacker News comment for negative comments about Electron would it be considered big data? I just don't think the persistent Electron criticism for each and every Electron app is very productive.
As other commenters have expressed. If someone could provide an example of an alternative to Electron that provided the same affordances (multi-platform, open source, permissive license, proper web view support), then by all means.
Not everyone is Spotify and can invest the technical know how to make things with Chromium Embedded Framework. To this day the Linux client for Spotify is not an officially supported client. It is something the Spotify developers maintain of their own volition.
And QT, a popular window toolkit, is quite expensive unless you release your software under GPL (at which point you can use QT for free under the GPL license).
Also, a single maintainer does not have time to work on three or more window toolkits for their app (Windows Forms, Cocoa, and GTK).
> web view
https://docs.wxwidgets.org/3.0/page_class_cat.html#page_clas...
However, a "web" view could be interpreted in many ways; are you just looking for an easy way to layout formatted text/images/etc? Many toolkits (including wx) have lightweight HTML widgets.
If your app doesn't actually need a "web view" (many don't), Tk is easy to use[1], has strong cross platform support, is BSD licensed, and bindings are available in many languages.
WHY do people keep repeating that?! Qt is NOT under GPL, you do NOT need to release your software under GPL to use it!
If you don't want to abide by the LGPL requirements you will have to fork out 459 USD a month. For an established development company this is not a big deal, but for a side project?
Every time until it's no longer used. JavaScript delenda est:
https://news.ycombinator.com/item?id=11447851
> And QT, a popular window toolkit, is quite expensive unless you release your software under GPL
'Doc, it hurts unless I do this.'
Then do that! Don't be a software hoarder.
> Also, a single maintainer does not have time to work on three or more window toolkits for their app (Windows Forms, Cocoa, and GTK).
As I mentioned elsethread, X11 & POSIX are supported on Windows, macOS, Linux & the BSDs. Just write against that, and you're done.
The fact is that Electron is a good platform for ONE application. Once everybody jumps in and makes their application with Electron, and all applications running in your machine are electron, then you as an user have a big problem, basically no battery life.
I wrote an incomplete PopcornTime clone with QML, I've also practiced by cloning the UI of some known apps such as Slack and Spotify, it was very pleasant and immensely saner in terms of resource usage of the machine. But alas, yes, you need to know C++, and that means you need to know about memory managenent and fine details of how things are done under the hood (although maybe that one is not a bad thing at all...)
That's a huge cultural problem right there. Some devs seem to think that their software is a special masterpiece (obviously, since it's made by an ensemble of rockstars), and therefore it'll run alone on users' computers. But that's nearly never the case; even the least technical users run many applications at the same time. Unless you're writing a fullscreen videogame, your software should never assume it has 100% of machine's resources for itself, and these days, even most videogames shouldn't.
(Or, in other words, tragedy of the commons.)
Only if the conclusion was arrived at independently and wasn't a product of groupthink. Software development is extremely prone to groupthink and exaggerated dogmatic thinking (blind hatred for PHP (and Javascript up until SPAs became a thing), religious wars over linux/mac, your text editor of choice, language of choice, OOP vs FP and so on). Often an idea catches on and suddenly a large percentage of vocal developers are all echoing the same sentiment.
Electron is a memory hog and a weird platform given it ships with so much overhead, sure. But it's fast to develop on, and with modern machines you can run multiple electron apps at the same time. There's just no viable alternative - building a cross platform desktop app without it requires going back in time 20 years and having to learn a bunch of complicated nonsense about memory management and object lifecycles (and I'm saying this as someone who knows said nonsense fairly well) just to draw some buttons on a screen. And all that effort for 1/10th of the UI flexibility that HTML/CSS/JS affords you.
In other words, electron is OK because the alternatives suck. That doesn't mean it's good but it's the best of a terrible bunch.
The attitude this person portrays seems to fit in line with that. Defending your position with arrogance and irritation shows everyone a great deal about you.
I'll go ahead and lump myself in with the rest of the group that remains thoroughly unimpressed.
Visual Studio Code is amazing. I started using VIM on my Amiga 500. I use VS Code 90% of the time now.
RStudio is and was life changing for programming R
I use Discord everyday and use it as a real time Reddit for many non-gaming communities.
Time saving is a huge factor in why apps are developed. There is always a balance between performance/resource usage and development time.
Your talk of balance is ironic considering the subject. It's absurd that a single blank window with no content should spawn multiple processes and consume over 100mb of memory before any logic has been added. Demanding better would almost certainly be met with calls of selfishness so I'll settle with contempt.
When your dev machine has 16gb RAM and at least a quad core processor, you're not exactly going to be benchmarking how well you manage memory space or complexity of execution.
Electron does allow people to build projects quickly using simpler HTML/CSS/JavaScript technologies than prior-era desktop applications, and you get cross-platform for almost nothing.
Free cross-platform is a good thing, I agree, though it comes at the cost of lowered interoperability and inconsistency with other applications and OS's conventions - which is a big usability issue. But the "build quickly using simpler web technologies" part? That's a problem right here - it essentially makes it easier to create low-quality cookie-cutter app, instead of forcing people to do this well. It's not that much more effort to learn something beyond JS, but it seems that these days a lot of devs think their education ends at their first job.
To be fair: the high-and-mighty types that create issues saying that using Language/Framework/Architecture X is bad and that you should use Y is another reason why working in IT or contributing to FLOSS is so draining at times.
> What if I am religiously opposed to using Electron for any and all purposes?
> Then you are not the target audience of this program. See mps-youtube (link above) for a similar program that will not taint your machine with a library you happen to dislike.
> On an unrelated note, highly polarized opinions about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.
The phrasing of the question is unnecessarily offensive, but whatever. The Q and A stands alone just fine. They really didn't need that second paragraph jab at Electron-dislikers to make their opinion of such people clear.
It's not. People who have grievances about specific platforms and frameworks should complain (or, in the case of Electron, submit patches) to the actual project than whine about it on the issue tracker of every project that uses it.
Picking Electron is ALL about developers. Nothing more or less.
What's arrogant is ignoring that it's 2019, hardware can easily do multiple electron clients, and frequently do. Nobody has made better, and in the real world you use what's best designed to complete your goal.
However, there are some use-cases when some specific technology for building it as a PWA is unavailable and therefore, building it with Electron might be the best alternative. But as a result, the author shouldn't just state that you are the problem ('... not the target audience'), but instead, state his reasons for choosing that technology (e.g. why he is using Electron instead of building a PWA).
Totally agree. The problem is the biting Q&A is misconstruing such moderate opinions as religious zealotry and then mocking the people who hold them.
> Then you are not the target audience of this program. See mps-youtube (link above) for a similar program that will not taint your machine with a library you happen to dislike.
Which would be fine. It even goes the extra step to recommend an alternative, which is unnecessarily gracious.
Here I don't really see how this is better than Spotify/iTunes/Amazon Music.
[0] https://www.slsknet.org/news/
And if you connect with a mobile device on the same network as the computer with the files on it, they'll automatically be transferred so you'll get them on mobile too.
Two of my favorite bands (Blind Guardian, Kamelot) put only their last couple of releases on Spotify, but with this method I can listen to their whole back catalog.
But to add something substantive, I also do this with many artists. I also really like Tool, which are notoriously absent from all the platforms. I ripped my old CDs and uploaded them to Google Play Music and now I can listen whenever, wherever I want.
But for users who are interested in that content, I don't know how this is much better than just browsing the songs directly on YouTube.com.
I didn't use it much, but it was an amazing example of "Do one thing well."
(Pro-tip: if you use https://open.spotify.com/ with a free account with an ad blocker, you get no ads)
PT allowed streaming playback of torrented movies and was very clearly piracy and illegal.
Meanwhile, this seems like an aggregator for existing free sources of music (Bandcamp, YouTube, SoundCloud).
That said, it looks like a cool hobby project and a great alternative for folks who want/need a multi-source music client. Google Play Music was my go-to service for a long time since I could not only get streaming access but also upload my own local files to their servers for playback anywhere. Most of that local music came from Bandcamp.
Now I haven't checked if those bands are sharing free promotional material on Bandcamp, SoundCloud, etc. but something feels a bit iffy about this.
I'd be a lot happier if the artists featured were clearly releasing music under Creative Commons or something like that. Right now this makes me think that if I use it the music streamed would be against the artists' wishes.
Just like with software, FOSS is better for everyone than just pirating commercial software.
- Do you find it immoral to watch music videos on YouTube?
- Do you find it immoral to watch music videos on YouTube with ads blocked?
- Do you find just putting that in a separate player to be the immoral part?
"To provide you with features, information, advertising, or other content which is based on your specific location."
You might also be interested in the massive amount of data they store about users that was discovered after GDPR passed. Here's the HN thread: https://news.ycombinator.com/item?id=17681289
1) Local servers are a no-go for multiuser environments unless you want to log-on every time you run your "native" app, as most (all?) browsers don't support http over domain sockets and there is no authentication for local sockets.
2) Managing the health of the service properly in a cross-platform manner is complicated. With electron if the app crashes, it just crashes. With a local server the browser tab just stops working. Sure technical users can figure it out, but if you are targeting a gui over a console, presumably you are trying to capture some fraction of non-technical users.
So you might consider developing an app with vue/react/... and build it in a way to run independently from the server. The simplest way to do that is to cache it with a Manifest file, but modern browsers support ServiceWorkers too, which are a lot more powerful.
The only thing you will need a server for is the deployment (and maybe some sharing/sync logic).
The user experience bar for a music service has gone up since the days of Napster. If you primarily use one computer and that's your audio experience, this probably works well. I've found that I'm increasingly playing podcasts and music in different locations and going back to a centralized playing source is not an experience I want.
DLNA is slowly going the way of RSS. It's too open of a standard for the current times. Google is already mounting an Embrace-Extend-Extinguish attack on it via the Chromecast protocol. I'm scared Bluetooth audio will be the next to be forgotten. Meanwhile, cloud music services are current trend, and it's not crazy to think they will follow the Nextflix-HBO-Disney steps and start creating walled gardens full of exclusive content.
So, which options do we have now? Users can surrender power and gain convenience by going with, say, Spotify. The app's slick, the multiple device support is awesome, and the social features, while nowhere near Audioscrobbler/Last.fm, are enough. Keep in mind Last.fm is more than 15 years old. 15 years without progress on the music social media front. Also, disappearing songs are a huge problem. A company that pulls a song from their catalog without notifying the user is borderline evil. I feel connected to music. It's almost like the company is deleting a memory from your brain, hoping you won't notice its absence.
Another option is to keep living in the 00s and maintain a home music library. You ensure no songs will disappear from your library without notice, which is good. The bad thing is you are more isolated. There's no easy way to access your library in other devices, there's no easy way to integrate a personal library with a cloud service, and there's no easy way to share your experiences with friends in the same way you can do it with Spotify.
What do I do then? I decided to go the Spotify way, while keeping a small "memories" library which contains the more obscure songs, plus the ones I want to keep with me forever. I'm wary, though. The day Spotify decides to become more profitable, it will be over. Half the features will be gone, and we'll have to start all over again in a worse position than before, because our hardware will be less open than it is now.
This is how I roll. I'm not sure what benefit I'd get by integrating my personal library with the cloud, but I find accessing my library from multiple devices to be pretty easy by simply duplicating songs onto those devices. Nowadays most of my devices are big enough to accommodate the whole library. Sharing music with friends is also simple because pretty much everyone's phone can play an mp3 file out of the box these days. This approach might have been cumbersome when I was younger and I added to my collection more frequently, but I had fewer devices then. Not only does this strategy insulate me from the whims or obsolescence of some third party, but the defacto back up preserves my collection in the face of device loss/failure as well.
I have ~40k songs uploaded and available to stream for free anywhere with google music. I'm still the kinda of crazy that maintains my own collection locally and it stays sync'd automatically. It also serves as a free offsite backup. Agreed that there is no easy way to share but I have vastly different musical tastes from my friends so that's never been an issue for me, though for a lot of people it might be a negative.
On an unrelated note, highly polarising comments about languages and frameworks are characteristic of people who lack real-world programming experience and are more interested in building an identity than creating computer programs.
Glad I did. The project was done way faster than I could have imagined. And everyone else was amazed and pleased as punch with the result.
Job done. :)
I presume that in this case such bug reports would be closed immediately.
# Legal information My lawyer tells me I am allowed to smack anyone saying this program is illegal with a flyswatter.
Isn’t English grand?
However, that makes you safe anyway :P
The prominent "Best new music" part had an Earl Sweatshirt album review, so I wanted to listen to it, but you can't click the album title... only the artist name. Then I had to sift through 30+ album covers (no titles... not ordered by release date) to find the one that looked like the one I saw on the previous page (it had a slightly different cover).
You'd think a "new" album would be at the top.
Then I double clicked the first song twice, then realize there is a popup that has a "Play Now" button on a SINGLE click (unlike Spotify or Google Music). I clicked that and it only added it to my "queue", I thought it was downloading for a couple min, but nope I had to click "Play" at the bottom to actually start it.
I went to another album, clicked "Play Now" on a song and it froze with the logo pulsing fullscreen, and I had to restart the app.
This is basic stuff.
More recently, I used Songbird (which went through a few name changes). It was a web browser that tried to include iTunes functionality. It really sucked - imagine trying to take a normal web browser and make it twice or thrice or more slower - but the idea was nice, you could go to music blogs, and click the play button and listen to all the songs they linked to, and click the download button if you wanted to keep the file.
I am trying to get Nuclear to work, just to see what it's about, but I literally can't get any audio out of the program. That makes it slightly useless.
I would love a program that collated legally available music and provide a music player interface (preferably VLC or WinAmp style and speediness). There is so much music out there that you would never have to listen to the same song twice. Digging through SoundCloud and BandCamp and Archive.org would provide endless music. Archive.org alone, if you wanted to avoid legal issues (even though lots of music is available free streaming at the other two websites I mentioned).
Perhaps I'll have to write this program myself. I already have too many projects as it is, though.
It's nice to know the project's name
but where is the torrent client?
It looks good enough to stand by itself.
Something tells me it doesn't support gapless playback. (I might be wrong tho)