4 ms·
Again, a product that advertises being built on Go as if that's a feature. I have nothing against Go, but that's weird -- no one cares what Slack is written in.
by solipsism 10y ago
Again, a product that advertises being built on Go as if that's a feature. I have nothing against Go, but that's weird -- no one cares what Slack is written in.
- justinsb 10y agoPersonally I care about the security of the server (is it written in a language that historically has a good or poor track record), and I care a great deal about the client. The Slack client regularly pauses for me while I am typing, randomly refreshes, and generally feels sluggish. Those aren't things I associate with Go. That said, I think this particular implementation's client is also written in Javascript, so I don't know that it will have a particular advantage there. But an open source implementation at least won't block alternative clients (e.g. https://www.kickstarter.com/projects/2137936555/taut-the-fast-beautiful-macos-native-slack-app https://www.kickstarter.com/projects/2137936555/taut-the-fas...), in a way that the Slack Terms of Service would seem to do.
- kevan 10y agoThe desktop clients are built on Electron [1]. I've been using it for about 3 weeks and there's been a few times where performance issues were noticeable but not bad enough for me to start digging in the code to find the issue. Overall I think it's a well put together app, but people who hate anything built on Electron will probably have bad things to say about it. [1] https://github.com/mattermost/desktop https://github.com/mattermost/desktop
- mcpherrinm 10y agoSlack's performance also depends a ton on how much your teams are using it, and how many teams you're on. "reactjis" are one of the worst offenders -- I've had a channel open with some people messing around with them, and it'll be casually consuming 30% of cpu and 3 gigs of ram on my top-of-the-line macbook. I would have long since deleted an IRC client that was such a poor performer, but unfortunately there's not any good/complete 3rd party slack clients.
- chubs 10y agoHey - i made that kickstarter! Unfortunately it doesn't seem there was much interest so it went nowhere. I still think it's regrettable how resource-hungry the official client is, but doesn't seem that too many people share that opinion.
- addelindh 10y agoI audited Mattermost 1.x through 3.x a while back. Had some issues but everything was fixed smoothly and from 3.x it is actually really good. Slides from my talk on it here: https://speakerdeck.com/addelindh/hacking-mattermost-an-assessment-of-an-open-source-messaging-platform-for-hipsters-security-fest-2016 https://speakerdeck.com/addelindh/hacking-mattermost-an-asse...
- qq66 10y agoI believe you host the product yourself -- so if you are going to have to deploy it, modify it, etc., you'll want to know what stack it's built on.
- reitanqild 10y agoYep. I still hesitate to even consider deploying rails or node.js applications. It's just too many things to learn and keep up to date with. Of course if you already develop in rails or node.js or run some other services already that might not be an issue. But to me - unless it is apt-gettable - a standalone binary (typical go), war or jar file has a huge advantage.
- Freak_NL 10y agoMattermost actually is apt-gettable if you install it alongside GitLab CE with GitLab's omnibus package¹. 1: https://about.gitlab.com/downloads/ https://about.gitlab.com/downloads/
- reitanqild 10y agoAnd it's written in golang, not rails or node.js
- bryanlarsen 10y agoThat's just a throw away sentence in the article to emphasize its open source nature. All the main points of the article are bolded subheadings.
- robbyt 10y agoI disagree. The language the app is written in speaks a lot about the culture of the software. If it was Java, I would expect something very different than if it was written in PHP. If you think they're all the same, then maybe you need to get some more real world experience.
- rch 10y agoImplementation details can be important features of open source products.
- it33 10y agoThis is a really good question, I'll try to answer from different perspectives (and hopefully others can chime in with what I missed). 1) For End Users and Developers, Golang can mean fewer bugs Golang is a "type-safe" language, meaning that all the programming code is written to be explicit and consistent, versus "untyped" languages like PHP or JavaScript, where programming is more implicit with many different ways to say the same thing. It's easier for software tools to automatically analyze type-safe languages and find bugs. And those languages are also easier to read and review--since there's only one way to express something--and that helps too. 2) For System Administrators, Golang means easier install and management Golang is a "complied language", meaning that after the programming is done, a single file is produced. So a System Administrator just installs one file and Mattermost works. To upgrade, they just change that one file. Easy! Languages like PHP and JavaScript are "interpreted languages", meaning that a System Administrator would need to download lots and lots of files, install one or more programs to interpret those files, and hope that nothing breaks. When it's time to upgrade, she's got to make sure all the files and interpreters on her server are exactly the right version. It can be a nightmare to maintain. 3) So what's the trade-off? The trade-off with Golang is that it takes more work to learn than PHP and JavaScript. The programming language isn't as forgiving to new programmers. You need to say things exactly the right way or the program won't even start, whereas PHP and JavaScript if you say things "kind of right" and things will "kind of work". Does this help?