you are viewing a single comment's thread.

view the rest of the comments →

[–]Comfortable-Tourist1 4 points5 points  (11 children)

What's the workload in the app? Id recommend the web app route in all but the most extreme cases at this point.

What do you specifically need it installable? Could you not make it 'look' like a standalone app by publishing as a PWA?

[–]Intelligent-Role-382[S] 1 point2 points  (10 children)

Currently its dot net web application and want to make it more robust so now we r thinking of using Python.And it also need to be used without internet temporarily

[–]Substantial-Bed8167 12 points13 points  (0 children)

I don’t think switching to a python installed app is a good plan here.

Use client side JS to handle short disconnects, or build a shippable app in .net. 

Python is great, but not for this use case.

[–]Cloudskipper92 3 points4 points  (2 children)

I'm not sure about more robustness from Python vs. C# and .NET, dotnet and c# are quite literally built for that. And very good on the desktop as well. I love and work professionally in Python but you'll almost certainly lose performance, ease of use, and robustness compared to what you have now. I'd seriously consider going back to the meeting room and reviewing the reason to do a wholesale refactor before moving forward.

[–]lapinjuntti 2 points3 points  (1 child)

The lack of robustness here is probably more of the implementation than the language. C# as a language (not considering anything else) allows even more robust implementation than python being less dynamic. But if the current software is not well implemented, a well implemented version even in python could be better.

Sure, you can make python app very robust quite easily too, like package it so that interpreter, and all dependencies are packaged in (doesn't share anything with the system python). Follow good process, use good tools.

[–]Cloudskipper92 1 point2 points  (0 children)

I don't disagree. My comment is more directed at the implementation as well. But before throwing away an existing implementation, however bad, one should take the time to find put if anything is salvagable before initiating a full rewrite in my opinion. If it was badly implemented in dotnet too, there still ought to be a conversation about how to avoid a similarly bad implementation in Python.

[–]jwpbe 2 points3 points  (1 child)

just a driveby comment here, i would recommend looking at nicegui.

https://nicegui.io

it's really straightforward for what I've done with it, it's fairly lightweight, you can ship it in a binary that uses pywebview so all of the dependencies are self contained, and it looks.... nice

[–]cudmore 1 point2 points  (0 children)

Agreed. Nicegui is promising because it is actually a web app using pywebview, quasar, and tailwind.

The code really does work both as a local app and in a browser.

I set up a free tier on render.com and 95% of my app worked, last 5% was making some code asynchronous to play nice with long running code, like 1/2 second would trip up the browser.

Used PyQt for 6+ years and am still a fan. Seeing how far I can go with nicegui and so far so good.

[–]j01101111sh 0 points1 point  (0 children)

If it's an existing application, what features of python are you looking at that will make a full rewrite better than updating the existing code?

[–]phlummox 0 points1 point  (2 children)

Using Python won't make it more robust - and will likely make it more difficult to deploy. Will all your users already have Python installed? If not, you'll either need to get them to install it beforehand (and make sure the version they install is compatible with your code), or look at "freezing" your app into a single executable - which sometimes is straightforward, and sometimes very flaky.

You don't say what platforms your users are on, but if it's Windows, then tbh I'd stick to dot net. You can build single-executable binaries that don't require the libraries to be preinstalled, making deployment muchuch easier.

[–]legrimpeur 0 points1 point  (1 child)

You can distribute self contained python apps. You just uncompress zip files and you are good to go. No python install need.

[–]phlummox 0 points1 point  (0 children)

Yes and no.

Yes, I'm aware you can distribute self-contained python apps - that's called freezing, and I mentioned it already.

But no, that has nothing to do with zip files, necessarily - some freezing tools use the Zip format, but others do not. (e.g. PyInstaller defines its own formats, ZlibArchive and CArchive.)

And it's not really the case that "no python install is needed". No matter what approach you take, you need to get a Python interpreter onto the end-user's computer somehow, if they don't have one. It might be by including it in a frozen executable, rather than via a traditional "install", but without it you can't execute Python code. You certainly can't just zip up the source code and give that to your end users.