6

I like rants that are thought provoking and push a message forward regardless of whether they may sting a little, so for my first post on here I'd like to hit at home with many of you.
Html5 "Native" Applications are not needed. Let's cover mobile first of all, the misconception that apps are written in either javascript or Native android/ Native ios environment. Or even some third party paid tools like xamarin is quite strange to me. OpenGL ES is on both IOS and Android there is no difference. It's quite easy to write once run everywhere but with native performance and not having to jump through js when it's not needed. Personally I never want to see html or css if I'm working on a mobile app or desktop. Which brings me to desktop, I can't begin to describe how unthought out an electron app is. Memory usage, storage space for embedding chromium, web views gained at the expense of literally everything else, cross platform desktop development has been around for decades, openGL is everywhere enough said. Finally what about targeting browser if your writing a native app for mobile and desktop let's say in c++ and it's not in javascript how can it turn back into javascript, well luckily c++ has emscripten which does that simply put, or you could be using a cross complier language like haxe which is what I use. It benefits with type safety, while exporting both c++ and javascript code. Conclusion in reality I see the appeal to the js ecosystem it's large filled with big companies trying to make js cross development stronger every day. However development in my mind should be a series of choices, choices that are invisible don't help anyone, regardless of the popularity of the choice, or the skill required.

Comments
  • -1
    This was interesting until the c++/opengl part. Its 2018. C++ is horribly dated. And thanks but i wont fuck around with opengl to write a mobile app. If you dont want web stuff, there is flutter.
  • 1
    @sharktits c++ is horribly dated what haha, I don't know if we live on the same planet but you do realize chromium is written in c++. Flutter suffers even more by the Electron issue of having to download huge packages of resources when light and neat should be a top priority, Not to mention my entire "Rant" you missed when I explained choices are key, not making up things.
  • 0
    I guess downloading huge packages isnt an issue if you have no package manager
  • 0
    @PXshadow electron is also written in c++, and package size is moderate considering the tools it gives you. Also fyi the issue with modularity and shared resources on electron are based on the current architecture of chromium. This will be adressed, but it has no high priority 50mb vs 110mb unpacked.

    Our in development electron app comes in a 45mb installer, has 2 js dependencies as distribute files, vue and vuex and otherwise native code in c# and c++ as modules or bindings dependant on the usecase.

    Also you definitly need to take a look on OpenGL properly, cross API does not equal cross perfromance. Especially DPI diffrences and collor correction. And this is another whole chapter for mobile development.

    Also since you probably did not code any software with a extensive GUI, all cross platform tools besides webviews and drawing directly into a window buffer are unusable or extreamly limitating with the capabilities.
  • 0
    A good example is Unity where the GUI is made with OpenGL, the GUI is really well coded but in reality it has severe issues with its extension model it suffers from a extreamly limited API and any non default attemt to extend it result in high memory usage.

    Compaired with steam, they choose a CEF based aproach and the app works well without people complaining, i bet you didnt even knew it was web based.
  • 0
    @Hammster I talked about openGL merely as the level to build off of. Of course if you're gonna write ui application I would not recommend writing direct openGL. Things like Cario, Imigui. And others make higher level development alot nicer. also I'm not trying to say your Electron app is inherently flawed. I'm merely "Ranting" the fact that you could do the same application without using js.
  • 0
    @Hammster Check out Cario OpenGl is just a layer like everything else. The current mobile application I'm working on for ios and android does not deal with those problems, That's more Unity code wise then a flaw in openGL.
  • 0
    @PXshadow imgui is pretty much undesignable and UX is also not really extendable. I use it for my own game engine though since it is very practical and efficient for development purposes.

    Cairo also has many drawbacks, and the code maintainability is much more important then the efficiency anyways.

    In addition to that you need to code too much yourself until you can get started, while a Chromium or CEF approach will get you started right away. It allows quick iterations and nearly no limitations for the design depending on the developers in the team. While for OpenGL applications a architecture has to be developed, changes may affect this and make things incompatible resulting in bigger refactors. Also non-static designs are not really doable in most cases, which is a reason most games have horrible UI's and much more horrible UX's
Add Comment