10 ms·
Yakyak: Electron Chat Client for Google Hangouts
- saghul 10y agoI don't understand much of the criticism in this thread so far. Yes, the app is built using web technologies and uses Electron, but AFAIS it's a fully fledged client, not just a wrapper around a website. The interface is built right there with CoffeeScript and LESS, and there is a Hangouts JS library which they use. I'm not a big fan of using HTML/JS/CSS for everything myself, but this project looks really complete and well built. If it was built with C++ and Qt someone would come and say "why didn't you use Gtk? or <framework X>?". Keep up the good work.
- Lazare 10y ago> Yes, the app is built using web technologies and uses Electron Right. It's a chromium window wrapped around some HTML and JS, aka a website. > AFAIS it's a fully fledged client, not just a wrapper around a website. Nope, just a wrapper. True, it's a local webpage served on your desktop they wrote themselves, but it still has all the disadvantages that you incur when your client is just a web page in a browser. > If it was built with C++ and Qt someone would come and say "why didn't you use Gtk? Electron has enormous drawbacks which C++ and Qt do not have.
- RubyPinch 10y ago> Nope, just a wrapper Nope, its still a fully fledged client, because being a capable client is not /that/ dependant on the UI rendering method, believe it or not. > but it still has all the disadvantages that you incur when your client is just a web page in a browser. No? Do you think electron exposes absolutely nothing? There is code being executed with access to the rest of your computer, this has the same access as any other language to the rest of your computer, I mean, hell even if you wanna do something weird, you could write some stuff in C (or use the pythonesque ctypes module), and then run that in turn, once again with access to the rest of your computer. I could understand these complaints if this was an important critical thing, but its a chat client, its only job is to display text nicely with formatting, browsers are pretty good at that
- Klathmon 10y ago>its only job is to display text nicely with formatting, browsers are pretty good at This is something that continually amazes me. Many developers seem to think that "display text on a screen" is easy, it's not. Browsers can handle multiple fonts, multiple sizes, and crazy positioning. Browsers can handle tons of different encodings (including stuff like UTF8 which can be a real pain to safely and correctly parse). Browsers can display just about every single glyph on the planet without a sweat. Browsers can handle right-to-left text right alongside left-to-right text (even switching in the same sentence!). Browsers have a simple way to apply multiple fallback fonts (just in case your font of choice doesn't have the unicode 'HEXAGRAM FOR DIFFICULTY AT THE BEGINNING', it can fallback to a font that does). Browser can apply simple CSS transformations to rotate text (even in 3D!) in a pretty performant way. Browsers handle all of this, without the developer needing to spend more than 5 minutes even thinking about it, and it does so looking great. Yeah, other UI libraries can handle most of this just fine as well, but the browser is the one platform that i've been impressed at just how well it handles typography in general. I remember how much of a fight it was to write text that went vertical to label a graph in business basic...
- kitsunesoba 10y ago>but its a chat client That's part of the problem. Electron apps are unavoidably heavy - huge binaries and 250MB-300MB+ memory consumed regardless of the task at hand. A simple "hello world" in electron without an ounce of JS or CSS will exhibit these traits. Chat is a very simple sort of application. We've been doing it for decades now and have had functionality that approaches that of hangouts that works perfectly on machines with tens and hundreds of times less power and resources available. There's barely an excuse for such a program to consume more than 50MB of RAM, let alone 300MB+. Some may argue that "unused RAM is wasted RAM," but I'd argue that this statement holds true only if the RAM that would be used is needed for actual functionality. If it's baseline requirement for the program to run at all, something is wrong unless the program is monstrous in nature (think AutoCAD, Maya, etc).
- kbenson 10y agoThis is only a useful argument when comparing to an alternative that does not exhibit those traits, otherwise you are saying it's worse than nothing, which it is not. If you want to say this is worse than X (where X is some theoretical desktop hangouts client) because it uses too much RAM, then do so, and we can compare and contrast what that RAM usage gets us in this case, and what the trade off is. If you just want to make a case that the RAM usage is too much for any chat, and if that's the baseline requirement for hangouts on the desktop because there are no other clients without those same problems (?), then you can propose a different protocol which doesn't have those restrictions. If you aren't willing to do any of that, then all you're really doing is telling people not to use a technology because it uses a lot of RAM, on principle, regardless of whether it would be useful to them. I don't think that's a good stance to take.
- taneq 10y ago> Right. It's a chromium window wrapped around some HTML and JS, aka a website. So 'a website', to you, is anything using HTML and JS? Because a local HTML+JS app removed what is, to me, the second biggest weakness of "the cloud", namely the dependence on an internet connection and some third party server. OK, OK, this is a chat server so it won't work without a connection anyway but you get my point.
- kbenson 10y ago> OK, OK, this is a chat server so it won't work without a connection anyway but you get my point. That doesn't matter. It still can act like a native application (because it is a native application). All code is sourced and run locally, and doesn't require you to interface with it though a separate program (as that's bundled right in with it). If that's not native, neither is an application written in Perl or Python (they run through an interpreter), or Java for that matter (it's run through the JVM).
- dubcanada 10y agoWhat happens if you built a Qt app and used Qt Web Engine for the entire app, would you complain? Do you complain about Steam, GOG, or one of the other 1000 apps that use Qt or what ever GUI kit and then just use an embedded browser for 90% of the app?
- monksy 10y agoI wouldn't as long as it was just the chat window and was used for formatting. Native apps generally perform better, tend to be lighter. (The slack client takes up 400mb in 8 processes.. it's basically a web app within a containing application) Steam uses a web widget for the store, but the entirety of Steam isn't built in HTML/JS. It makes sense to do it that way. If steam was entirely written in a web language you would never have the platform support that you currently have, the ability to download at the speeds that you currently have, etc.
- mcweaksauce 10y agoFor those of you that use Pidgin, there's also a really great libpurple plugin that I've been using: https://bitbucket.org/EionRobb/purple-hangouts/ https://bitbucket.org/EionRobb/purple-hangouts/ It works really well, but it doesn't have history scrollback. I'm happy when I don't have to open up my browser to chat with people.
- dec0dedab0de 10y agoIt works really well, but it doesn't have history scrollback That caused so many arguments between me and a former girlfriend.
- dplgk 10y ago>> but it doesn't have history scrollback That's because it's not hangouts, it's gchat.
- HugoDaniel 10y agoLike many "desktop" current apps it opens another browser that only loads one page: the "desktop" app. It uses electron (http://electron.atom.io/ http://electron.atom.io/) which uses nodejs+chromium.
- spiderfarmer 10y agoI am happy to see a more webapps break out of the browser. That way the apps make better use of the features of the OS.
- HugoDaniel 10y agoBe aware that this is not the case of an app "breaking out of the browser": BrowserWindow = require('electron').BrowserWindow . . . mainWindow = new BrowserWindow { width: 730 height: 590 icon: path.join __dirname, 'icons', 'icon.png' show: true titleBarStyle: 'hidden-inset' if process.platform is 'darwin' } in https://github.com/yakyak/yakyak/blob/master/src/main.coffee https://github.com/yakyak/yakyak/blob/master/src/main.coffee
- SlashmanX 10y agoI would've assumed that code was implied by the whole 'It uses Electron' thing in your first comment. And it is breaking out of the browser seeing as you don't need to open a browser and type in a URL to view it.
- reaktivo 10y agoI'm not sure if I can understand if your comment is a complaint or not.
- HugoDaniel 10y agoIt is just a remark. Although i do prefer to reuse the current running browser.
- Axsuul 10y agoReally glad to see this. Any plans on implementing voice dialing/receiving (Google Voice)?
- mosselman 10y agoLooks great. However, I wonder why Hangouts specifically? Am I just alien to a world where people actually use hangouts? I really really don't like it myself. Not that that is reason enough to assume all other people don't like it as well, obviously. How do people use it and why would you 'give' Google all your private chat conversations?
- pavs 10y agoWe use group hangout chat at work all the time. Considering Google is not even top 5 in chat market, I don't know why are you even worried about Google when Facebook has more private chat information than any other company.
- nix0n 10y agoLet's talk about the alternatives to Hangouts: Google's Android app has much better performance than Facebook's. (Particularly in terms of battery life. Not sure about iOS.) IRC and XMPP are both a pain to set up. (I would love to be wrong about this. I'd run my own server if if you can find me dead-simple clients for enough platforms.) SMS and MMS work well for phones but not for PCs. AIM, MSN, and Yahoo, last I checked, work well for PCs but not phones. (Not sure if they still work well for PCs, pretty sure they haven't started working well for phones.)
- lostmsu 10y agoI mostly use Skype
- carlob 10y agoSkype is pretty terrible software both in term of UX, resource usage and the political implications we all know about
- WorldMaker 10y agoVersus Hangouts? Skype and Hangouts seem to be on equal footing for UX issues and resource usage in my estimation. As for the "political implications", Google is also a big American company that has to play nice when one of America's three letter agencies knocks on the door, it's the exact same political implications and you are lying to yourself if you believe otherwise.
- SmokyBorbon 10y agoWhy give it a name so close to Yikyak?
- marczellm 10y agoSomehow I still can't consider a webapp in a window a 'desktop app'. I'm still waiting for QHangups to migrate to QWebEngine. (http://github.com/xmikos/qhangups http://github.com/xmikos/qhangups)
- dmytrish 10y agoThe name of this project reminded me a silly Ukrainian joke: — ... ("have you been in the zoo?") — ... ("yes, I saw a yak!") — І як як? ("so how was the yak?") — Як як як. ("Like a yak")
- nikolay 10y agoI am sick and tired of these wrappers falsely branded as "desktop apps". This is not a desktop app, i.e. not a native client. It's an embedded browser that comes with even more negatives than a Chrome app/panel! Now, when we have libui-node [0], which is a Node.js wrapper around libui [1], developers, you have no excuses! [0]: https://www.npmjs.com/package/libui-node https://www.npmjs.com/package/libui-node [1]: https://github.com/andlabs/libui https://github.com/andlabs/libui
- SlashmanX 10y ago> you have no excuses! > It is in early stage of development > OSX should work too, but it's not tested. > Windows has yet to be configured in build scripts, but it will be supported in further releases. > There are very few tests developed > This is not yet battle-tested in a real app All that from the official Readme [0] and you're saying there's no reason not to use it? [0] https://github.com/parro-it/libui-node https://github.com/parro-it/libui-node
- nikolay 10y agoThis is just one of the wrappers around libui [0], which itself works fine, and is tested on all platforms. Well, it's in alpha stage, true, but so what - wait until it's stable, and then start building? [0]: https://github.com/andlabs/libui https://github.com/andlabs/libui
- ohitsdom 10y agoYou're criticizing a released project for their technology choice, advocating that they should have waited to build it until some other tech was ready... Maybe take a step back and just appreciate that they built and shipped something. If you hate Electron, move on and don't use it.
- nikolay 10y agoDid you care to read? I meant they should not wait. Electron uses gigabytes of RAM - it's the one reason I switched to weechat from Slack's "desktop" client! Such "desktop" apps are a disgrace and they run way more efficiently in the browser compared to having multiple copies of browsers running in parallel.
- gobusto 10y agoAt first, I assumed that this had something to do with http://www.yakyak.org/ http://www.yakyak.org/
- Symbiote 10y agoI assumed https://www.yikyak.com/ https://www.yikyak.com/, which is a local chat app (you see messages posted from people nearby). The name sounds very similar, I'd be worried about infringing Yik Yak's trademark.
- jaimehrubiks 10y agoI'm kind of tired of the criticism on every post about an up built on electron. I mean, we all know the disadvantages it has with respect to native gtk or qt, but we also must remember the advantages it brings to developers to write multiplatform and VERY (not highest) performance apps in an easier way. Like it or not it is the era of websites. For people like me who always preferred desktop apps, this is good news because many website-like apps are ported in a "almost native way". Anyway, web technology like html+js+css is not that bad and it's evolving and improving fast as front-end.
- yoz-y 10y agoFor me the biggest problem with web apps in a browser are keyboard shortcuts. E.g.: does Cmd+P print the webpage or the contents of the edited document? Electron applications solve this problem. In the end it is important to stuff the stuff requiring performance into a native module and you are set. Having worked with JNI I prefer writing Node plugins and writing interfaces in HTML5 is great compared to stuff like Gtk (and even Qt)
- rictic 10y agoAn author can use print stylesheets to make cmd-P work as expected. Try it out in google docs for example.
- yoz-y 10y agoYes. But the shortcuts are not consistent between different web-applications. Inconsistency is he death for muscle memory. Also simple copying and pasting is not always doing what I think (e.g.: in Google docs) (it is partly my fault as I prefer safari and they did not have yet implemented all of the necessary APIs to make it work). Another advantage of Electron apps is that they do not have a concept of back and forward by default. There is no losing work in a text editor because one has unfocused the text field and pressed backspace
- plexicle 10y agoI wonder if the same people would say that Atom or Visual Studio Code is a "web app."
- sreenadh 10y agoI have been using an app named Franz @ http://meetfranz.com/ http://meetfranz.com/. Its multi-protocol and based on Electron. Not opensource from what I know.
- mdeeks 10y agoFranz unfortunately frames the hangouts.google.com interface which has terrible bugs when multiple people are chatting with you at the same time. If you're typing in a chat window and someone else messages you, it pops over your current chat window and the last half of your sentence types in the new window. If you switch back it'll pop back over every single time the other person messages you.
- dang 10y agoAs a sop to those who don't consider Electron apps desktop apps, we s/Desktop/Electron/'d the title. Please let's discuss this app now.
- rogerbinns 10y agoThere is also a Chrome extension for hangouts, and it can even run when Chrome isn't visible (authored by Google). Perhaps most useful is the "transparent ui" mode, where you have floating heads - see the second screenshot at http://www.omgchrome.com/google-hangouts-chrome-app-update/ http://www.omgchrome.com/google-hangouts-chrome-app-update/ - although for a change that is available on Windows and Linux, but not Mac! (The page also has a link to the Chrome extension.)
- rrdharan 10y agoYou mean there's a Chrome App in addition to the Chrome Extension. The problem with the Chrome App is that you still need to have Chrome running which on OS X means the Chrome dock icon, and any other downsides of having a running Chrome process (e.g. battery life impact).
- thefastlane 10y agoi don't know much about Hangouts -- am i connecting with/using Hangouts when i am using Gmail's chat feature?
- Justsignedup 10y agoFrom the perspective of the author. This is fantastic work. Keep up the enthusiasm, and I hope to see more from you. From the perspective of google, they should have done this 3 years ago. The chrome hangouts plugin is an atrocity. But at this point I've already fully abandoned google hangouts except for video chats at work. Too little, too late.
- mdeeks 10y agoStrongly agree. I discovered YakYak a couple weeks ago and haven't looked back at the plugin or native apps. For those curious why people may not like the alternatives: Chrome Plugins/Apps: - Cmd-tab doesn't work properly with apps. It will bring up my browser window instead. - My browser has to be open. Chrome has a large battery impact even when just sitting there. I often completely close Chrome when roaming. YakYak barely even registers Pidgin/Adium: - You don't see missed messages from when you weren't logged in. I used to get in lots of fights with my girlfriend because of missed messages. - Can't paste images/screenshots from the clipboard. Maybe Pidgin supported this? Adium doesn't. - History isn't shared between multiple computers (chat history on home PC isn't available on work PC) YakYak solves all of those problems for me. I am thrilled YakYak exists. Huge thanks to the author.
- bisby 10y agoIf you prefer pidgin/adium: https://bitbucket.org/EionRobb/purple-hangouts https://bitbucket.org/EionRobb/purple-hangouts Basically implements full hangouts into pidgin (connects to hangouts over "hangups" protocol rather than xmpp). It still has some minor issues. from finch (ncurses pidgin) for example, it makes links that send people to a blank page with some hangouts.google.com/ proxy stuff going on that never gets followed. it also has weird issues with instantly marking some conversations as read. Otherwise I've been viewing it as an inplace upgrade for using xmpp on pidgin.
- mdeeks 10y agoNo Mac support? or is it just not documented?
- hugozap 10y agoI love to see JS haters going crazy every time an open source electron project has some popularity.
- dang 10y agoPlease don't make the thread worse by posting snarky disses of disses. It just stirs up acrimony and adds no information, regardless of whether your point is right.
- hugozap 10y agoThe information added is the fact that it's frequent here to see disses just because an upvoted post refers a JavaScript/Electron project. That's useful information for newcomers to the forum.
- donatj 10y agoWhy would I use this over say Adium or similar multi-protocol app?
- mdeeks 10y agoSee my comments here: https://news.ycombinator.com/item?id=11925103 https://news.ycombinator.com/item?id=11925103
- imtringued 10y agoOther than a green bar with a white box on the left side and a grey box to the right side what am I supposed to be seeing here?
- joenathan 10y agoThe Windows build doesn't appear to work at all. In addition to getting file path too long issues, once I've accommodated the app by extracting on the root of my drive it never loads past a white screen.
- deleted 10y ago[deleted]