7 ms·
One question: why would you use the awful clusterfuck that is JavaScript on the desktop where you’ve got the freedom to choose from dozens of lovely languages t
by Rjevski 8y ago
One question: why would you use the awful clusterfuck that is JavaScript on the desktop where you’ve got the freedom to choose from dozens of lovely languages that actually are a pleasure to use?
JS is a necessary evil on the web, but why inflict such pain to yourself when you’re able to use something else?
- roryisok 8y agoWhy do you speak English when you could be speaking French? Because it's what you know, and lucky for you it's everywhere and you don't need to learn French. I'm making some assumptions about you as a person but you take my point I hope. People use JavaScript over other languages because they already know it and, hey, look, you can use it anywhere. Sure, it might be more efficient to go and learn python or C++ or assembly or whatever but most people are happier to leverage the skills they already have than go and learn a new language for one app. I'm a JavaScript coder by profession and in my extremely limited spare time I want to build things, and if i use JavaScript it maximizes my time.
- crooked-v 8y agoAlso, "you can use it anywhere" really does apply to Javascript in a way that it doesn't to other languages (at least, not until there's full WASM<->DOM integration and a good set of compilers that uses that).
- Rjevski 8y agoBut don’t you believe in using the right tool for the job? JavaScript is barely acceptable on the web, but again it’s a necessary evil as you can’t easily use anything else. But why use an inadequate tool on the desktop? The perceived time you save upfront would backfire later on. Now I’m not saying go and spend a year learning another language just to make a side project (by all means use JS or whatever you’re familiar with), but if you’re making a production-grade app, PLEASE use the right tool for the job and it ain’t JS. I, for one, am sick of JS & Electron contaminating apps I use daily like Spotify, Slack, Signal, Telegram, etc. I wouldn’t mind it too much if this was a niche thing and there were alternatives, but there aren’t. JS on the desktop should die.
- aaron-lebo 8y agoI don't really think JS is bad. I actually prefer it to most languages. It's fast, concise, flexible, and has lots of modern features. It has some weak spots, but all languages do. When people are so ideological about the language it tells me they either haven't used it much or they are unrealistic about flaws in other languages.
- Rjevski 8y ago> haven't used it much I actually used it, and hated it quite a bit (although ES6 solves most of my gripes with it). I understand and appreciate the necessity of JS on the web. JS is also the perfect tool for that job as it’s been designed with the web & browsers in mind, closely tied to HTML & CSS, and while it has overheads those are a necessary evil in an environment where it’s commonplace to execute untrusted code. But it’s however completely inadequate for the desktop. Your users already trust you since they run your binary Electron wrapper, so the “untrusted code” argument goes out the window. You’re basically taking on an extreme overhead (in terms of battery life and RAM usage) for no benefit at all. HTML/CSS is not that great either, IMO native elements provided by the OS deliver a much better UX and actually behave consistently across the entire OS.
- roryisok 8y agoThe right tool for the job is very opinionated. Clearly an awful lot of desktop devs think js is the right tool for the job because electron is everywhere and projects like this very one we're commenting on exist. My opinionated view on "the right tool" comes down to the distinction between foreground and background apps. I do think electron is not the right tool for the job when it comes to Spotify, because Spotify is something that mostly runs in the background and should be super performant. On the other hand I use vscode all day every day, and I'm happy for it to use as much ram and cpu as it does because its always in the foreground - it's the main thing I'm using when I use it Edit: I should add I think we need to find more comparisons to continue this electron debate though. Vscode is always the hero and slack and Spotify are always the villain
- akavel 8y agoI'm there with you being sick of Electron apps on the desktop. The problem is, compared to the JS ecosystem, GUI apps development on desktop with any native technology I know is super bloated, slow and crappy. While I've just started trying to use Elm recently, and the speed of iteration when using it totally amazed me, so that now I cannot longer say that I don't understand why people do that. As much as it pains me.
- giancarlostoro 8y agoExactly. People mock me for using Python and MongoDB at hackathons but I have won my first Hackathon cause I spent my time getting code done and not thinking too hard about it.
- roryisok 8y agoExactly. What did you win with out of interest?
- giancarlostoro 8y agoI participated in this years TADHack Mini in Orlando: http://blog.tadhack.com/2018/03/12/tadhack-mini-orlando-2018-winners/ http://blog.tadhack.com/2018/03/12/tadhack-mini-orlando-2018... It was a lot of fun and the first time we ever worked with any Telecoms / VoIP companies. Also planning on competing on TADHack Global this time joining forces with another team. Didn't win much since others won as well, apparently you could use all the vendors, we only used one. TADHAck Global is this year in October for anyone interested: https://tadhack.com/2018/global/ https://tadhack.com/2018/global/
- zerr 8y agoAttendance to hackathons deserves mocking in its own... :)
- mwcampbell 8y agoCan you please explain why? Genuinely curious.
- zerr 8y agoThe first two bad things that come to mind: squeezing free time from developers and making hype out of it for peer pressure.
- giancarlostoro 8y ago
- brolover 8y agoES6 (or 7) is a much better language than a bunch. Adding in the types through flow or typescript, and now it's a pragmatist's heaven.
- aaron-lebo 8y agoIncredibly pragmatic, which is perhaps the most important thing possible. an approach that assesses the truth of meaning of theories or beliefs in terms of the success of their practical application You can have your ideal language, we'll just keep building great stuff in a good enough language.
- Rjevski 8y ago> Great stuff Like what? A chat client that uses 1+ GB of RAM and melts batteries faster than a flamethrower? No thanks! It almost looks like this Electron/JS trend was started by CPU manufacturers who realised that current CPUs have more than enough power for everyday tasks, and needed a way to create demand for even faster CPUs. I’d say Electron (and JS in general) was pretty effective at that.
- brolover 8y agoThat's what Vuido is for, now there's no Electron.
- roryisok 8y ago> manufacturers who realised that current CPUs have more than enough power for everyday tasks, and needed a way to create demand for even faster CPUs Lol. It's a common trend across software. Try comparing office 2003 to office 2013. Office 2003 starts instantly on a modern desktop and uses minimal RAM. Office 2013 takes a good four or five seconds to fire up and uses a few hundred mb memory. And they both do exactly the same thing. With cpu speeds and ssd proliferation there's no incentive to keep things low footprint any more.
- Rjevski 8y ago
- mintplant 8y agoNormally I would agree, but GUI development with Vue is such a lovely experience. It takes advantage of many of the newer JS features to make this possible (automatic data binding via property get/set interception, for example). As a consequence it's hard to imagine providing the same in another, better language.
- pjmlp 8y ago.NET has been doing it since 2008.
- Can_Not 8y agoIs this something that's had good crossplatform support since 2008 or more recently?
- pjmlp 8y agoNo, it is something that has been doing "automatic data binding via property get/set interception, for example" since 2008, so it is easy to see it in an language that isn't JavaScript. Additionally, Xamarin is older than VueJS.
- Can_Not 8y agoIt would be a bigger deal if it was not windows only.
- pjmlp 8y agoXamarin never was Windows only. And Mono was a thing before .NET Core came into the scene.
- mintplant 8y agoYeah, I've worked with XAML and such in .NET-land. DependencyProperties are nowhere near as painless and transparent as the state of things in Vue. Doing computed propeties, trying to use converters in a sane way, setting up templates for repeated items - all quite clunky and arcane. This falls out of doing interception at the library level rather than the language level, I think.
- sandGorgon 8y agoES6 an typescript are wonderful languages and have little resemblance to the jquery-esque JavaScript era. Think C# rather than jquery.
- megaman22 8y agoBut you could just use C# instead on the desktop, and be happier.
- city41 8y agoAre there good cross platform UI solutions in C#?
- pjmlp 8y agoXamarin.Forms and Avalonia.
- mwcampbell 8y agoAvalonia has no accessibility support, so it's unusable for blind people via screen readers, among others.
- pjmlp 8y agoYes, it is very important, yet unless it is a government project, it gets ignored by project delivery acceptance requirements.
- sandGorgon 8y agoThe world's largest computing markets dont use desktops. India and China are 80% mobile traffic. These people have never seen a desktop or a laptop in their life, but use the web and mobile apps with a lot of comfort. The JS developer ecosystem is very popular as a consequence of the mobile-first ecosystem. And I think it is a great thing that desktop SDK are evolving to be JS first.
- tzahola 8y agoStockholm syndrome?
- Can_Not 8y ago> you’ve got the freedom to choose from dozens of lovely languages that actually are a pleasure to use? Well there's your problem. If my choice is to wrap my existing SPA in electron in one day vs a 6 month make-and-maintain-a-copy-in-another-language, then I think the choice is obvious. Then you have a dozen languages to choose from? All of them are lovely except JavaScript? That sounds pretty biased. If I'm going to write a desktop application and take advice from strangers, I need to know that my advisor completely understands where I'm coming from and where I'm trying to go. I don't want to get burnt because a hater is trying to give me unthoughtful "literally anything but" bad personal vendetta advice thinly vailed with technical concern trolling. Then I have to pick one of 12 languages? I don't need "well literally anything but", I need a well written set of tutorials and/or case study demonstrating that one option is superior to JS and is written to bring JS devs to an understanding of if the tool being presented is what they need to use or not.