Hacker News new | past | comments | ask | show | jobs | submit login
Fman Build System (fman.io)
59 points by LorenDB 8 days ago | hide | past | favorite | 18 comments





I don't think this is what most people think when they hear "build system".

Also... I dunno if people are scrambling away from Electron's inefficiencies just to replace it with Python's.


Tauri looks promising as it does essentially the same without bundling a full browser, which honestly I find absurd except in very specific use cases. Also interesting that they want to support other languages beside Rust in the future.

https://tauri.app/


I would most certainly be willing to leave electron for a python GUI framework just for the memory savings alone; I don't think the speed is the only issue. Plus, python can be fast enough if you just use it a a glue for libraries that are written more efficently. Don't get me wrong, I dislike python a lot, but, it's not electron/js.

Electron has the niceties that it does with being able to render so much via browser universalism, but, having that much of it around when your app doesn't need all of it is the problem with it fundamentally.

The best time I've had writing GUIs personally has actually been in SDL via wrapper languages like common lisp, but, I like being able to roll my own systems. It definitely takes more setup for the results I want for reasonable production apps that need less weird edge cases in their UIs


GUI programming is not like array programming where you can easily send large computations out to a native library.

GUI programming is an abstractive display layer, it most certainly can (and should) be designed around deferring larger tasks for UI responsiveness reasons, anyways

It's not CPU-bound either. I made snappy GUIs in Python twenty years ago.

Tell that to the Cura devs.

> Plus, python can be fast enough if you just use it a a glue for libraries that are written more efficently.

Yeah, Python can be fast enough if you don't use Python much.

I don't see the point unless you're already heavily invested into Python.


> already heavily invested in Python

Yep, as the most frequently used language in general, but also as one of the only major options for a few subfields of the computational sciences at this point, I think that happens a lot.

> yeah, python can be fast enough if you don't use Python much

Yup, exactly what I'm saying. Turns out that's how many many larger projects in Python operate because we're apparently deciding as an engineering society that python is one of the universal glue languages (much to my personal chagrin)



This is a GUI build system, Python + Qt. A number of good apps uses this pair, Fman apparently simplifies the creation of apps of this kind.

Pretty certainly it's lighter weight than Electron, but not exactly featherweight.

The key proposition is packaging for distribution:

> PyInstaller for packaging, NSIS for Windows installers, .dmg files on macOS, .deb files on Ubuntu.


PyQt can be pretty snappy, but all it takes is a little ignorance implementing a slot method to tank performance. You really have to understand your program as a C++ event loop and not a regular Python application.

I used this (fbs) once for one of my early projects. A few notes that I remember:

- fbs was built ~2017

- to use Python 3.7+, PyQt6, or code signing, you need the paid version. The free version limits you to Python 3.6 and PyQt5.

- the main command is fbs freeze, which builds an executable

- fbs requires a couple changes to your project structure and main.py, compared to the default PyQt way


Author here. Thank you for sharing. I'll be happy to answer any questions.

Interesting! This appears to be an alternative to the BeeWare Project and its suite of tools. I'd be interested in looking at them head-to-head. https://beeware.org/project/overview/

Please notice the license. Not really an alternative for commercial use unless you want to pay, and even the look out for PyQT being GPL. Looks great for open source though.

Which is quite fair license, earn the same as one is willing to give to the authors of the tools that make the application possible in first place.

As much as I hate Python, I love fbs. I've used it for a couple of projects and it's always been a breeze.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: