It is currently Sun Jun 16, 2019 2:24 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2
Author Message
PostPosted: Wed May 22, 2019 7:16 am 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 614
Location: Central Illinois, USA
koitsu wrote:
And now you know why I stick with CLI software development.


And also why so many cross-platform applications are written in Electron these days :-(

_________________
My games: http://www.bitethechili.com


Top
 Profile  
 
PostPosted: Wed May 22, 2019 9:25 am 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11369
Location: Rio de Janeiro - Brazil
gauauu wrote:
And also why so many cross-platform applications are written in Electron these days :-(

Lots of people know JavaScript... It's a very versatile language that makes it easy to get things done quickly. Combine that with the ability to effortlessly deploy to several platforms and you have your answer.


Top
 Profile  
 
PostPosted: Wed May 22, 2019 9:34 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21439
Location: NE Indiana, USA (NTSC)
The other answer is that some developers feel entitled enough to believe that their program is the only program running on a computer, and they have no reservation against using 450 MB of RAM for a task that could take 30 MB or less. Compare the RAM use of Skype for Linux (desktop), even minimized down to just the taskbar icon for notification of new messages, with the RAM use of an IRC client such as HexChat.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Wed May 22, 2019 9:45 am 
Offline
User avatar

Joined: Wed Feb 13, 2008 9:10 am
Posts: 694
Location: Estonia, Rapla city (50 and 60Hz compatible :P)
I very much dislike such programs. That laptop I generally use for everything will be brought to its knees, fan at full blast and everything near frozen. Joys of modern world...

_________________
http://www.tmeeco.eu


Top
 Profile  
 
PostPosted: Wed May 22, 2019 10:30 am 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3474
Location: Richmond, Virginia
I don't know how anyone could feel good about themselves for creating horribly unoptomized programs that are all to common, unfortunately. Assembly has always had the reputation of being impossible to program in (usually said by people who aren't assembly programmers...), but I've been seeing the same be said about C, which is ridiculous. Of course, your algorithms have a large part to do with performance, but I keep seeing all these CS majors having to write a bunch of fancy notation about the efficiency of an algorithm ...while they code in Python. :|


Top
 Profile  
 
PostPosted: Wed May 22, 2019 11:00 am 
Offline
User avatar

Joined: Wed Feb 13, 2008 9:10 am
Posts: 694
Location: Estonia, Rapla city (50 and 60Hz compatible :P)
You don't need assembly for a high performance program, just normal C/C++ is enough. But world seems to move towards interpreted stuff where JIT is the best case.

Maybe the carbon emissions limiting stuff catches up with computers and wasted cycles get taxed or something. one can hope lol

_________________
http://www.tmeeco.eu


Top
 Profile  
 
PostPosted: Wed May 22, 2019 11:21 am 
Offline
Formerly Espozo
User avatar

Joined: Mon Sep 15, 2014 4:35 pm
Posts: 3474
Location: Richmond, Virginia
I don't fully understand the reason (even in this thread about cross compatibility) because your performance goes to shit for some admittedly nice library functions (not that they couldn't be implemented in C/C++) a few perks like garbage collection. How about don't make seemingly everything dynamically allocated as what seems to be common practice at this point.


Top
 Profile  
 
PostPosted: Wed May 22, 2019 11:52 am 
Offline
User avatar

Joined: Sat Jan 09, 2016 9:21 pm
Posts: 614
Location: Central Illinois, USA
tokumaru wrote:
gauauu wrote:
And also why so many cross-platform applications are written in Electron these days :-(

Lots of people know JavaScript... It's a very versatile language that makes it easy to get things done quickly. Combine that with the ability to effortlessly deploy to several platforms and you have your answer.


Exactly. That was my point -- despite how much it's annoying to use Electron apps, it makes complete sense from the developer's perspective, based on how difficult or inconsistent other cross-platform toolkits are.

_________________
My games: http://www.bitethechili.com


Top
 Profile  
 
PostPosted: Wed May 22, 2019 12:26 pm 
Offline
User avatar

Joined: Sat Feb 12, 2005 9:43 pm
Posts: 11369
Location: Rio de Janeiro - Brazil
It makes total sense from the developer's perspective. Using JavaScript and the tons of libraries that exist for it they can get their products released much sooner than if they bothered with optimized code reach platform. Speed of development is much more important than execution speed these days!

What bothers me the most isn't even the performance or RAM usage of these programs (as long as I don't need to keep them running in the background, of course), but the fact that each program comes with its own copy of node.js, chromium, and the whole runtime environment, making programs that would otherwise occupy just a few kilobytes cause you storage problems on your mobile devices.


Top
 Profile  
 
PostPosted: Wed May 22, 2019 6:04 pm 
Offline
Formerly 65024U

Joined: Sat Mar 27, 2010 12:57 pm
Posts: 2269
Just wanting to put in my own two cents.

All this stuff sucks because creating stuff from scratch outside of languages which require toolkits and such to make a UI is a complete and utter bitch, and it sucks. And it's 10x more code and headache for what should be 5% of your time.

I totally understand why it's appealing to roll a language and environment where doing custom stuff well and cool doesn't suck and you can even code in it. But it does suck that it's so high level and shoe-horned into working instead of being the actual right tool for the job. Add so much code to the environment to make it work even when it shouldn't.


TLDR: I think UI's and probably multiple platforms are why this shit sucks.


Top
 Profile  
 
PostPosted: Thu May 23, 2019 3:07 am 
Offline

Joined: Sun Mar 27, 2016 7:56 pm
Posts: 216
It's surprising what you can do with even a small amount of JavaScript and HTML.

I once downloaded a .zip for a Discord log viewer, and was surprised to find out it contained an 18 KB .html file. I'd never downloaded a program only to find out it was just an .html file before. But I tried it, and was shocked at how much functionality it had despite being so small.

No megabytes of JavaScript being dragged in. No dependencies at all, in fact, besides the web browser itself. Yet... you could load files, you could switch between different channel tabs, you could change the number of messages per page, filter by user or message, formatting was processed, images were loaded inline... It's impressive how much functionality was packed into that one file.

Yes, I know. It's all because it has a massive web browser to call into. That's a dependency. The power to manipulate these trees of semantic elements and have it all work and render and everything else comes at a pretty hefty price, storage-wise. But I also think it's true that your web browser isn't exactly going anywhere, unless you plan to live as a hermit. The fact that you're able to read this post in the first place kinda tells me you aren't.

So, if you want to write a program as a simple web app, that's a perfectly legitimate choice in my eyes. It's probably the easiest way to make a cross-platform program these days, and you get a bunch of nice features out of the box, like users being able to customize its appearance completely using CSS, accessibility for the blind practically for free (assuming you don't abuse JS to hell and back), spell-checking in text inputs, and other fun stuff along those lines.

But that also leads me to my next point. Your user having a web browser can be taken for granted. So just have it run in the browser! You don't need to drag in your own entire separate copy of Chromium to run it on. It can still be local without having to be a native app. You probably don't need a lot of those JavaScript dependencies either. If you can make small native apps, then you can sure as hell make small web apps, considering how powerful web browsers are these days.


Top
 Profile  
 
PostPosted: Thu May 23, 2019 3:50 am 
Offline
User avatar

Joined: Sun Sep 19, 2004 9:28 pm
Posts: 4104
Location: A world gone mad
For sake of counterpoint:
Attachment:
Capture.PNG
Capture.PNG [ 6.07 KiB | Viewed 3879 times ]

Meanwhile, IRC clients -- which is really just what Discord is, a glorified IRC client -- come in no where near that. I can also manipulate, view, search, etc. IRC logs using any tool on any OS that can open/read a text file. No HTML, no 260MByte RAM client to generate logs, no "oh I can't do anything with this because it's in some special webcrap format", etc.. I can actually talk on IRC without even using a real IRC client -- I've used telnet on many occasions.

Also, your analysis of the software that can view the log is only part of the reality. The software that builds this JavaScript (because that's what it is -- the .html is for convenience and presentation) is here -- https://github.com/chylex/Discord-History-Tracker -- and involves Python bare minimum. If you want a minified CSS (for minimising how much disk space/network traffic the CSS uses) you need Java, and if you want similar for the JavaScript itself, you need Node and npm. This is probably a good 200MBytes or more of tools/disk space/whatever just to build what, a glorified log viewer?. I urge you to browse through repository I linked -- don't just click the URL, actually go through the subdirs -- and you'll see what I mean.

This is why many of us in this industry call it "webshit". But if you're going to use webshit, you might as well go all-in and use it to its fullest, because you've succumbed to the bloat by choosing it. You can indeed make some pretty useful things with it, but there are very very few (read: extreme minority) of webshit people who focus on minimalism. I only know of 3 or 4 people *at most*, and those people are like needles in a haystack. Most of what you find in the web-o-sphere will be large -- either in run-time or in build. Keeping runtime sizes down (executable, RAM, etc.) is good, and I appreciate that when I see it, same with web devs that minimise the number of external fetches for content, keep code clean and minimal (one JS file under 64KBytes is wonderful), etc... but it's not commonplace.

But at least you can do GUI things a bit easier... assuming you like CSS, HTML, and all of that.


Top
 Profile  
 
PostPosted: Thu May 23, 2019 6:01 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 21439
Location: NE Indiana, USA (NTSC)
Nicole wrote:
Yes, I know. It's all because it has a massive web browser to call into. That's a dependency. The power to manipulate these trees of semantic elements and have it all work and render and everything else comes at a pretty hefty price, storage-wise. But I also think it's true that your web browser isn't exactly going anywhere, unless you plan to live as a hermit. The fact that you're able to read this post in the first place kinda tells me you aren't.

I can read this post in Firefox. I cannot use Skype in Firefox because Skype for Web denies access from any web browser that isn't Microsoft Edge or Google Chrome. In order to use Skype for Web on the computers that I regularly use, I would have to install Google Chrome and run it alongside the existing Firefox browser, potentially causing the computer to dip into swap.

Nicole wrote:
So, if you want to write a program as a simple web app, that's a perfectly legitimate choice in my eyes. It's probably the easiest way to make a cross-platform program these days, and you get a bunch of nice features out of the box

Except for ability to keep other applications in RAM at the same time, as koitsu alluded.

_________________
Pin Eight | Twitter | GitHub | Patreon


Top
 Profile  
 
PostPosted: Thu May 23, 2019 1:19 pm 
Offline

Joined: Sun Mar 27, 2016 7:56 pm
Posts: 216
koitsu wrote:
For sake of counterpoint:
[Task Manager showing Discord.exe processes]
tepples wrote:
Except for ability to keep other applications in RAM at the same time, as koitsu alluded.
You did see I was arguing against web apps as native apps, right? RAM usage is not nearly as bad when you're not dragging in an entire extra browser for each individual program. Don't just look at your browser processes either; they usually include multiple tabs in a single process.

koitsu wrote:
Meanwhile, IRC clients -- which is really just what Discord is, a glorified IRC client -- come in no where near that.
Maybe, because I happened to mention a Discord log viewer, you think my post is supposed to be a glowing endorsement of Discord or something. It's not. Discord is horribly bloated and occasionally brings my computer to its knees for a few seconds whenever I bring up the native app.

The fact that the program happened to be a Discord log viewer was just pure chance. The reason it left an impression on me to begin with was the contrast of its size to other, clearly far more bloated web apps. Don't take my endorsement of a 18 KB program and apply it to what is currently a 300 MB behemoth on my hard drive. It is not the same thing.

koitsu wrote:
Also, your analysis of the software that can view the log is only part of the reality. The software that builds this JavaScript
...is not relevant. Any program, native ones included, can have horribly convoluted build processes. That log viewer was just an example of a full-fledged GUI program that can do something useful (and still have room for extra features!) despite only being an 18 KB .html file. I don't really care how that file was made, and even if I did, there is nothing in principle stopping it from being built with a small C program or even hand-written.

koitsu wrote:
but there are very very few (read: extreme minority) of webshit people who focus on minimalism.
My post is advocating for more of them.

koitsu wrote:
But at least you can do GUI things a bit easier... assuming you like CSS, HTML, and all of that.
Much easier. So much easier that inexperienced programmers flock to it in droves. These programmers frequently don't have the background knowledge to understand what's happening under the hood. Some of them know and don't care. It's only natural that many programs will be large, bloated messes. But it really doesn't have to be that way.

tepples wrote:
I can read this post in Firefox. I cannot use Skype in Firefox because Skype for Web denies access from any web browser that isn't Microsoft Edge or Google Chrome. In order to use Skype for Web on the computers that I regularly use, I would have to install Google Chrome and run it alongside the existing Firefox browser, potentially causing the computer to dip into swap.
I am not endorsing Skype. I use Firefox myself. I can't stand apps that don't work across all major browsers.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 29 posts ]  Go to page Previous  1, 2

All times are UTC - 7 hours


Who is online

Users browsing this forum: Google [Bot] and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group