1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

web-based application vs. desktop software

Discussion in 'General Programming Chat' started by sub001, Jan 4, 2017.

  1. sub001

    sub001 Regular Member

    Joined:
    Nov 17, 2016
    Messages:
    222
    Likes Received:
    56
    I'm trying to assess the pros and cons of developing a SEO tool as a web-based online application (works via an online interface) versus a desktop software application (installed and residing on your machine). What are your views on the pros/cons of each?

    Simplified, the tool will access several Google APIs, retrieve the data, store it and then process/filter/present to the user.

    **** Edit ****

    I'm summarizing the responses here:

    Web-based
    Pros:
    Portability
    Cross-platform

    Cons:
    Limited privacy
    Provider dependency (availability, security, scalability, etc.)
    Internet access required
    Data stored remotely

    Desktop
    Pros:
    Privacy, annonymity
    Independent from 3rd parties
    Data stored locally
    Doesn't need Internet access to work

    Cons:
    Install needed (trust issues)
    Platform-specific (Win or Mac)
     
    Last edited: Jan 4, 2017
  2. Aty

    Aty Jr. VIP Jr. VIP

    Joined:
    Jan 27, 2011
    Messages:
    5,994
    Likes Received:
    4,089
    Occupation:
    SEO (Senior Erection Officer)
    Location:
    your 6 o'clock
    Home Page:
    Depends on what kind of tool you have in mind, but I would probably go with web based, the main reason being that I'm not comfortable installing apps that I've never heard of, for instance.
     
    • Thanks Thanks x 1
  3. handmadebots

    handmadebots Senior Member

    Joined:
    Nov 8, 2012
    Messages:
    962
    Likes Received:
    217
    Home Page:
    It really depends ... it's always better to have it web based. The reason being it's portability. You can access it from whatever device with internet and browser like a laptop, tablet, smarttv, raspberry, etc, without too much trouble.
    If it's desktop software, you'll most likely build it for windows users, which will work only on windows. You can build it in python, which is cross-platform, will work on all operating systems, but people would still prefer something web based, not all devices
    run python, but almost all of them (even a smartwatch ...) could use your web-based app.

    The downside of the web based application gets into play if you're trying to do something that might get your IP blocked. When it's web based, all the requests you're sending (to wherever you're sending) will look like they came from your servers IP, all the time. If it's a desktop application, each user will do it's own thing, from it's own IP.
     
    • Thanks Thanks x 1
  4. towelfox

    towelfox Junior Member

    Joined:
    Jan 11, 2012
    Messages:
    175
    Likes Received:
    61
    Web based would be great because you can access it anywhere, cross platform including mobile. The issues come from server capacity and networking. If you're hosting your tool you'll need to be confident that you have enough ram, CPU and bandwidth. With a desktop app that's on the user to sort.

    It really does depend what you're looking to achieve with your tool. The only thing that would make me choose desktop would be if I knew I'd need to over invest in infrastructure just to get started with a web app.

    One more option is to create a user installable web app so you have the benefit of the web interface but the user has to provide the hardware. You can do the backend either in a language like php/ruby (your sources will be visible) or you can pre-build binaries that handle everything you need to keep private.
     
    • Thanks Thanks x 1
  5. sub001

    sub001 Regular Member

    Joined:
    Nov 17, 2016
    Messages:
    222
    Likes Received:
    56
    Thanks to all, so far. I've summarized the responses in the OP.

    How about security issues, data safety and speed? I would think a desktop application would normally performed better at these, right?
     
  6. Asif WILSON Khan

    Asif WILSON Khan Executive VIP Jr. VIP

    Joined:
    Nov 10, 2012
    Messages:
    12,614
    Likes Received:
    34,760
    Gender:
    Male
    Occupation:
    Fun Lovin' Criminal
    Location:
    London
    Home Page:
    Going web based will probably require more resources and make access more expensive for you and the user, if it is popular you might need to scale it quickly.
    Desktop based, user can run it on a VPS, pay for their own proxies etc.
    Hard to advise without knowing what the tools purpose is.
     
    • Thanks Thanks x 1
  7. sub001

    sub001 Regular Member

    Joined:
    Nov 17, 2016
    Messages:
    222
    Likes Received:
    56
    Simplified, the tool will access several Google APIs, retrieve the data, store it and then process/combine/recalculate/filter/present to the user.
     
  8. Asif WILSON Khan

    Asif WILSON Khan Executive VIP Jr. VIP

    Joined:
    Nov 10, 2012
    Messages:
    12,614
    Likes Received:
    34,760
    Gender:
    Male
    Occupation:
    Fun Lovin' Criminal
    Location:
    London
    Home Page:
    It will probably be better to make it web based with a monthly subscription service.
     
  9. Mediafax

    Mediafax Registered Member

    Joined:
    Sep 29, 2016
    Messages:
    72
    Likes Received:
    5
    Gender:
    Male
    Go with web.You can let users insert their proxies in the web app.curl on a apache server allows that
     
  10. Crawlie

    Crawlie Registered Member

    Joined:
    Jan 2, 2017
    Messages:
    52
    Likes Received:
    11
    Gender:
    Male
    Web-based could also cost more to upkeep. If you build a desktop app, people can use their on resources(hardware). Java apps can run on any OS. If you are very concerned about security though(pirating), web-based is a better option.
     
  11. GoDesain

    GoDesain Regular Member

    Joined:
    Feb 26, 2011
    Messages:
    480
    Likes Received:
    197
    this will depending language you use to develop and where you good in it...
    different language will effected in performance..

    if only for grab data api, i like web base.. multi platform, hard to crack and i can use anywhere..
     
  12. pasdoy

    pasdoy Power Member

    Joined:
    Jul 17, 2008
    Messages:
    792
    Likes Received:
    245
    As mostly everyone said it depends on what you do, know your audience. If you sell something here to ~100 ppl, do it desktop. It's quicker for you to develop and people here are used to install some bad vb.net program that single thread scrape something. Also when it fails, you can claim bad settings, wrongly used, proxies, w/e. On top of that you don't have to make a fancy interface, use default .net toolbox. It's ugly, people are used to it. Also you don't have to care about scalability, you just reply "Put it on a vps, buy more vps". TLDR, you can make crap software and get away with it.

    if you want to build something for a lot of people, create a chain of services or if there's multiple clients (web, apps, desktop), do it web based. This is a different game. UI is free-for-all, CSS, HTML, Bootstrap. You will need employees. You will have to care for scalability. You will develop an expertise, and has a potential of resell 100 times the desktop version. You own the data. You can mine the data, find new needs and create new features, etc. You have a real business.

    If you don't know your audience, well what are you programming for?
     
  13. handmadebots

    handmadebots Senior Member

    Joined:
    Nov 8, 2012
    Messages:
    962
    Likes Received:
    217
    Home Page:
    If you have only ~100 customers, sh*t even if you have 1 guy buying it, building it in vb.net and single threaded is not bad. It's bad if you need multi-threaded and you don't know how to do that,
    so you do it single threaded. But multi-threading is not always something that's needed.

    It's bad if you have no idea of what you're doing.
    I'm not a fan of visual basic, but I do code in C#.

    If it fails, depends why it failed ... you can't just claim BS, to get away with it.
    The .net toolbox is ugly, if you use it wrong. It gives you all the stuff needed to make something very cool with it (change color, background image, opacity, font, style, etc).
    I prefer python though, it's easy and multi-platform, but when it comes to GUI's, I find that .NET is great in building them nice and fast, while
    in python you would need to create everything manually (you don't have ugly any toolbox/designer).

    Here's a software I've built in C#, using the default .net toolbox. I don't think it's that ugly :p
    [​IMG]

     
  14. LostLife

    LostLife Regular Member

    Joined:
    May 12, 2017
    Messages:
    265
    Likes Received:
    288
    Gender:
    Male
    Occupation:
    Software Engineer
    Make web based and take monthly charge.
     
  15. Vladamir

    Vladamir Power Member

    Joined:
    Jan 4, 2012
    Messages:
    569
    Likes Received:
    341
    Gender:
    Male
    Occupation:
    Restore Old Boats
    Location:
    Zihuatanejo, Ixtapa, Mexico
    Was just listening to a podcast from the creater of ninjaoutreach, he was saying one of the worst mistakes he made in development was making the software desktop based before he later switched it to webbased he even jokes "yeah desktop based I know what was I thinking". Most apps are trying to go webbased though I dont have much experience in app development everything I heard points to webbased being the future.
     
  16. rafark

    rafark Regular Member

    Joined:
    Jan 15, 2013
    Messages:
    439
    Likes Received:
    221
    Gender:
    Male
    Occupation:
    Moderador
    Location:
    Noble and Heroic MC
    Both desktop and web apps would require an Internet connection as calls to the google public API will be made.I'd go with a web app. If its popular enough, you may consider launching desktop and or mobile apps in the future for both platforms.
     
  17. bluehatface

    bluehatface Regular Member

    Joined:
    Oct 19, 2013
    Messages:
    259
    Likes Received:
    105
    Location:
    Here
    I'd go with web based for a tool that uses web APIs. A desktop app will still need to be connected to the internet anyway and you don't have to faf around with all the runtime dependency stuff and updates etc.

    If you need super speed you can always write a C++ (or similar) command line utility and call it from PHP using exec(). That's the way I do most of my tools - a multithreaded C++ utility that has a php wrapper for the front end so I can access the data and manage it from any computer.

    Edit: and if you want a desktop version later you can wrap it in an Electron app (presuming you've made your web app as an API service)