Giter VIP home page Giter VIP logo

Comments (13)

luchillo17 avatar luchillo17 commented on May 31, 2024 1

@alexanderepstein It makes sense, indeed the actual functionality doesn't justify the bundle size.

However have you already tested such alternative on Python and confirmed that the simple empty page example is smaller in Python than in Electron?, unless the difference is big, the cost of swapping the full app may not be worth it.

from sandman.

alexanderepstein avatar alexanderepstein commented on May 31, 2024 1

Going with lightweight bash version as well to do simple rest awareness and uptime notifcation hopefully can also implement update check

GUI Version

  • Will remain written in electron framework
  • Will be extended and improved upon until it becomes the ultimate sleep application

Bash Version

  • Will maintain very similar function to GUI Version 1.4.1
  • Will only notify user and show notification balloons but no buttons
  • CLI

from sandman.

luchillo17 avatar luchillo17 commented on May 31, 2024

What's exactly the part of the app that takes memory, electron or the app itself made in JS?

Also idk much about Python, how portable is it? can you still generate bundles for Windows, Mac and Linux(though idk if you actually deliver one for Linux) from Python?

from sandman.

alexanderepstein avatar alexanderepstein commented on May 31, 2024

@luchillo17 It is mostly electron that is the issue. Electron package are bundled with chromium and utilize that to render the application. The application will take up more memory than it should for just having a blank window with no functionality. If you check out the OS and OS version section of this issue their are 3 links all of them are about packaging a Python application into an app,exe or deb.

from sandman.

karuppiah7890 avatar karuppiah7890 commented on May 31, 2024

I get it that the binary size is big, but have you considered checking how other softwares keep up with it ? Something like LightTable. All their binaries are within 50-60 MB range - LightTable site

from sandman.

karuppiah7890 avatar karuppiah7890 commented on May 31, 2024

And they already have lots of code

from sandman.

alexanderepstein avatar alexanderepstein commented on May 31, 2024

@karuppiah7890 the difference however lies within our purpose and end result although yes you are correct that a lot of applications do run to be this size these applications generally also do a lot more. A code editor with syntax highlighting, linting etc is doing a lot more and can justify that binary size of theirs. What my application actually does is relatively simple and shouldn't be hard on the computer.

As a developer I guess I am noticing that the efficiency of the application is not justified by its function and therefore I can either do two things

  • add so many features that i can actually justify the size of binary size of Insomnia
  • port it to a new language and then add features and styling slowly as they make sense like i have been now

Plus i started this project to learn some javascript and the electron framework. I am definitely no master of it but i feel way more comfortable with it than i did before. So why not do that same thing with python a language i have been trying to truly grasp for a long time, now I have the opportunity with this project to do just that.

from sandman.

karuppiah7890 avatar karuppiah7890 commented on May 31, 2024

from sandman.

alexanderepstein avatar alexanderepstein commented on May 31, 2024

@luchillo17 you are correct i have yet to test it, however i know that python scripts are relatively small hopefully the packaging would only increase that by a little bit. I think the only reason it may not be worth it is if i decided to go in the direction of #15 because with the current setup it is easier to add features as the npm library is massive and generally well documented. However if this app just becomes a more polished version of what it already is then it should definitely be ported to some other language.

from sandman.

luchillo17 avatar luchillo17 commented on May 31, 2024

Well i would like for you to expand on it, specially on the Chronotypes Quiz and Settings issue i put, which still has no answer #22

from sandman.

alexanderepstein avatar alexanderepstein commented on May 31, 2024

@luchillo17 sorry meant to answer that previously and i hope i have the ability to expand on it as well this issue is here just to remind me to justify or remove this problem

from sandman.

DavidWigley avatar DavidWigley commented on May 31, 2024

@alexanderepstein Write a small program in each language. Test functionality and binary size if that is the main concern. Also writing in Java may require a JVM to run...not sure if Python needs any additional overhead to run.

If you like the results from a small program with VERY basic functionality then you can begin porting more and more portions. The first step is definetely writing smaller programs to see if 1. it is doable, 2. it gives the file size decrease you want, and 3. it can be run across platforms with ease.

from sandman.

luchillo17 avatar luchillo17 commented on May 31, 2024

I'm mostly specialized on JS, now making the ultimate task scheduler with electron, and i'm very happy with it, though mine does pack considerable UI features, and since it needs to make important tasks like connecting API's and executing scripts, i've always considered the architecture and functionality over the bundle size.

However if you make @DavidWigley suggested tests and are satisfied with Python portability and bundle size, then go for it, it's your app and you should make it in whatever you enjoy (though i don't recommend Java, i'm making some projects for university course and after comparing it to C++ i cannot begin to like it).

from sandman.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.