This says so much about the sad state of modern software development...
When native development is a last resort.
This says so much about the sad state of modern software development...
When native development is a last resort.
As an end user why do I care about "openness"? If I pay a premium for my platform, why would I want second rate cross platform software?
Falsehoods HNers believe about how people buy/use software. Didn't stop Slack/Discord from become ubiquitous.
"But native tho" just becomes a circlejerk. Talking about what users care about, most people don't know what native means nor if a given app is it. They don't know if Zoom is using more memory or CPU than it "should".
Other than VSCode for Rust and TypeScript, my own personal computer is as much Electron free as possible.
So don't mistake market share for freedom of choice.
The important thing is features - which VSCode has, and the speed at which those features are developed and deployed on all platforms - where VSCode is nearly peerless.
If developers cared about performance and resource consumption above all else, no one would be using VSCode right now (you included). They’d be using vim, emacs or perhaps Sublime. But that isn’t the case.
So why does HN keep flogging the “electron is bad” meme?
Also, I wonder how much the Electron love overlapps with VSCode, after all many of those developers were pushing for Atom before VSCode was born.
I think Microsoft chose Chromium for Edge mostly because they have big plans for Electron.
Edit: a word missing
Indeed, even Java and .NET are improving their AOT stories, while available since the early days, weren't as widely deployed as they could have been.
I'm just saying users don't care. They'll still use software that has the features they're looking for, on the platforms they use, as long as performance is acceptable.
I'm pushing back against the idea that performance nuts on HN who won't install a single electron app are somehow representative of the population at large.
How many people know that Slack is battery draining monstrosity?
The only people that pay for Slack are companies. The definition of Enterprise Software is where the user is not the customer.
In the famous words of Jobs about Dropbox -- chat isn't a product, it's a feature.
Are you paying for your software or getting whatever you can find for free? If you are paying, is the software's leanness something you value - that is, will you buy some software because it is leaner over some other software that is heavier? Would that be even if the heavier software has more features?
What sort of software have you bought? I'm asking seriously, not trolling - i've bought Total Commander myself exactly because it was lean (check: windows calculator vs one of the most feature packed file managers[0]) but i do not think there are many that value things like that.
On mobile, I’ll pay to remove ads and I won’t use any software or games where I can’t remove ads.
With the economy in the crapper, I’m starting to voluntarily pay more to support my favorite content producers.
Office is not written using one of the cross platform frameworks and is usually only around 3-9 months behind when it comes to taking advantage of new features as Apple releases them.
Plex is server software. The UI is a web page.
R# itself is a plug-in only for Visual Studio for Windows. Yes Rider is cross platform, but I don’t have a need for it.
The only other software I mentioned are games. No one expects a native experience from games.
this is something that you might value but I think it's fair to say it is already a minority position.
phones and the web have become the primary platform for software delivery, and people do not treat their desktop if they even have one as some sort of premium platform, it's a terminal for the internet.
at this point, people are probably more familiar with the look and feel of web applications than they are with native applications and value similarity across platforms over features of individual platforms. The operating system and the hardware are increasingly becoming irrelevant and a detail compared to the web on top.
Who values desktop software enough to pay for it? I know in the Mac market at least, the few indy developers making money are not writing apps using cross platform SDKs.
Plenty of money to be made desktop solutions to life sciences, manufacturing, factory automation, aren't plugging their air gaped dashboards to the web.
Anyone doing music composition, graphics, animation, infotainment systems.
In Europe there are enough Win32, WPF, UWP, Qt related jobs and consulting projects with hourly rates to do a comfortable living.
As for B2C, it is always going to be an uphill battle regardless of the application type, there are only so many application types that one is willing to pay for outside established brands, and SaaS is a much better way to avoid piracy and get everyone to pay.
But either way, you kind of made my point. Consumers aren't paying for applications built on cross platform frameworks outside of games.
In most countries they just need to go the local market or get hold of one of those lists distributed among students.
All those small companies that manage to have their software exposed on shops like Saturn here in Germany, or do direct sales over their web site.
And just because it is B2C, Prosummer or used via a tablet plugged into a docking station, it doesn't stop being desktop software, from the points of view who's paying and selling it.
And regarding games, anyone with experience on the field knows how much harder it is to make any kind of living out of them versus regular desktop software.
The success/failure rate is much higher, with the large majority of studios never making any dime.
And if you look at the end consumer software which have billions of users, who in one way or the other pay for it, it's almost always built on web tech these days. Discord, Skype, Slack, Spotify, and so on.
Of course there's professional or industrial software written in native code. But that's not because it's popular, it's because it's niche and specialised. The business model of charging upfront isn't exactly a sign of popularity, if anything it's the opposite.
No one cares about the Spotify UI. People don’t interact with Spotify that much. They listen to it.
The business model of charging upfront isn't exactly a sign of popularity, if anything it's the opposite.
In a capitalist system how else do you measure value than what people are willing to pay enough for to have a sustainable business? End users aren’t paying for Slack. They are using the free plan because it’s good enough.
Are you just going to find a different reason why you're going to ignore software built on a web tech-stack? Add up the market valuation of all companies using web technology to bring software to their users. Then compare it to the native market. It's not even close.
It's perfectly fine to use market value to estimate utility in a capitalist system. You just can't ignore every piece of software you don't like.
More developers, more applications of software.
At the same time, performance has a tangential relationship with computer code being interpreted or compiled to native.
After all, Java is compiled to byte code and powers plenty of high traffic servers efficiently.
Many AAA games use ActionScript, Python, Lua, etc for their UIs and scripting for mods.
While it's true that there is no substitute for code compiled to native when high performance is called for, I think it's justified for native development to be last resort.
This is coming from someone who codes primarily in C++, where high performance is important. I wish I didn't have to.
How well has Java done on the client in the last two decades?
Many AAA games use ActionScript, Python, Lua, etc for their UIs and scripting for mods.
What's the actual performance sensitive parts written in?
So I am not sure what you are saying. Everyone that is able to is compiling their stuff to try to regain some efficiency.
The reason is that people wants to do more complex things with their software nowadays, and hardware can't keep up with the trend. There is also battery life, smartphones, tablets...
Those are the reasons we are seeing a resurgence of native development.
This isn’t just me being a Mac snob. I found Apple’s few Windows apps over the years to be just as bad.
Yes and a long time ago Sun came out with Swing. How did that work out?
Even before that MS came out with P-Code and the abomination that was Word 6 for the Mac.
I think it clearly shows that complex UI apps require cross platform UI, or will remain single platform (Xcode, Visual Studio).
I was at a crossroads in 2008. I had been developing mostly in C for a decade and decided to pivot to being your standard “Enterprise Dev”. I had a choice between moving my career to C# or Java. I chose C# partly because of the bad stench of the cross platform Java IDEs at the time. Give me VS or Xcode any day over a Java based IDE.
Photoshop definitely isn’t using a non native runtime. I doubt that Blender is either.
But for writing C# apps in a Windows computer, the old VS was already miles ahead back in 2010. It is a really good product. It had RAD tools, testing, deployment, source control, database migrations, all wrapped in a very snappy and convenient GUI that I still don't think VS Code replaces properly. As much as I love the command line and unix philosophy, there was something about such a complete IDE that made me very productive. All IMO of course.
However I strongly believe that VS Code will get better and better with time and be able to fully replace old VS even for this use case in the future.
Why would you think React Native would be less bloated than native apps?
What are some well done cross platform apps that don't unnecessarily drain battery life? I can think of one - VSCode.
You're talking about Electron there, which like phonegap is a browser wrapper and a different thing to RN. I don't believe RN is known to be a battery drain in general.
React Native for Windows and Mac specifically, none. We commenting on an article about its launch. It's a bit early to be talking about that.
Cross-platform frameworks like Electron or Flutter, loads. VSCode, Skype, Discord, WhatsApp Desktop all use it. Of course you might argue that they're all selling services rather than software but that the point really is that the companies authoring those apps want to keep costs down, give users the same experience everywhere, and believe cross-platform apps can give users a good experience.