14 ms·
How Big Technical Changes Happen at Slack
- muglug 7y ago> Server-side, we’ve been migrating from PHP to Hack since 2016 A 3+ year migration of the bulk of your codebase is sort of intense. Though the Hack team at Facebook has made some great tools to ease migration, their fairly aggressive sunsetting of PHP features in Hack has presumably made this job a little harder. Also notable: Slack is the only equivalent company (outside of Facebook) that uses Hack, at least that I know of. I wonder if that makes Slack a more likely acquisition target.
- lukifer 7y agoQuizlet also uses Hack.
- seattle_spring 7y agoNot really a comparable company. Quizlet has <100 employees and $32M funding. Slack has <5000 employees and has a $15B market cap on the public market. I'm sure there are a ton of small-ish VC-funded startups using all sorts of technologies like Hack. As far as big companies though, FB and Slack are pretty much it.
- lukifer 7y agoTrue. My understanding is that they're fairly active in the Hacklang community; they're big enough to have received a mention in the HHVM docs: https://docs.hhvm.com/hhvm/FAQ/faq https://docs.hhvm.com/hhvm/FAQ/faq
- gregoriol 7y agoBad choices always bite you at some point.
- veeralpatel979 7y agoTo be fair the bad choices are what allowed them to ship quickly, get to product-market fit, and get to the point where the bad choices started to hurt them. Most startups never see the effects of their bad (or good) choices because they go out of business.
- kortilla 7y agoHard to say. Their bad choices definitely didn’t stop them from shipping quickly but it didn’t necessarily help.
- anaganisk 7y agoSlack, Facebook? Bad choice? I think they're counting more cash than a rust nerd.
- bcrosby95 7y ago> Bad choices always bite you at some point. Good choices too, for that matter. They tend to live until they turn into bad ones.
- usmannk 7y agoIt is worthwhile to note that Slack's very recently departed chief architect had previously helped start the HHVM project.
- hitekker 7y agoI predict the next Chief Architect will stall (or begin a rollback of) HHVM at Slack. Too much time wasted migrating onto a nigh-proprietary platform for a now ambiguous value proposition.
- dtech 7y agoPHP has integrated a lot of HHVM typing features in PHP 7.x and 8 I believe, so that lessens the need
- jrs95 7y agoHe also once wrote an article citing concurrency as a benefit of PHP and advocated services making web requests to themselves as a good way of achieving that. How that was taken seriously, I will never know.
- mbesto 7y ago> I wonder if that makes Slack a more likely acquisition target. M&A guy here. Sure, this is nice, but the answer is pretty much no.
- lbj 7y agoSlack is one of those few platforms, where their success makes no sense to me at all. I hate using it, I hated their bloated desktop apps, I hate the separate passwords/emails for every location you log into. I hope to one day understand the magic behind Slack, Salesforce, Sitecore and a few other huge tech successes, that have subpar tech.
- rjzzleep 7y agoI do agree with some of your rant, but actually the separate passwords/emails for every location are a very clean implementation of multi tenant client login. I'm not sure how well it is implemented in the backend, but if it is safely separated in the database while having the current UX it's actually really well designed.
- chupa-chups 7y agoThis is the exact opposite of clean multi tenant login. A "clean" multi tenant login separates the user from the account, i.e. the same user has different rights depending on the account he is using.
- paxys 7y agoA "clean" multi tenant login separates the person from the account. There's no reason for a person to have a direct 1:1 mapping with a system user or account.
- dimgl 7y agoA large majority of people who use Slack disagree with you. I've never really had a problem with it and I actually enjoy Slack quite a bit.
- cosmotic 7y agoAny evidence of this large majority?
- lazzlazzlazz 7y ago
- MatekCopatek 7y agoI very much disagree with the fads vs. revolutions division in this article, or rather - I find it unfair. A certain technology succeeding often has a lot to do with its quality, but it's impossible to ignore all the complex social processes happening around it. Sometimes great solutions simply arrive at a bad time, or don't have proper funding, or marketing, etc. It definitely makes sense to be on the lookout and try to improve your chances of identifying the winner early on for business reasons, but that doesn't mean the winner is always the best. Once you're as big as Slack, you might even be actively harming others by doing that - i.e. a better but less popular technology might have won in the end, had they backed it.
- TheSoftwareGuy 7y ago> Microkernels; EPIC architectures like IA-64; object request brokers; and 1990s’-style neural nets are gone As someone who uses #1 and #3 every day, I wonder what it is like coding in the 21st century :/
- etaioinshrdlu 7y agoObject request brokers smells a lot like a service mesh does it not?
- TheSoftwareGuy 7y agoGiven that I have no idea what a service mesh is, I'm going to guess that we do not use one. But we use CORBA a fair amount, kind of almost as an abstraction layer on top of QNX message passing.
- scott_s 7y agoA great explanation of what a service mesh is: https://news.ycombinator.com/item?id=21589508 https://news.ycombinator.com/item?id=21589508
- lwb 7y agoWhat kind of work do you do? I’m not aware of any major operating systems that use a micro kernel architecture off hand.
- opencl 7y agoThere aren't any major desktop or server OSes that use microkernels but they're common in the embedded space. QNX, Minix, FreeRTOS, etc.
- AceJohnny2 7y agogosh I miss QNX... (been working with a custom in-house RTOS for the past few years...) (but I do not miss QNX's build system. Recursive makefiles!?)
- sub7 7y agoFTFY: How to make a chat room app sound complex and difficult
- Uhhrrr 7y agoIs Slack known for their good engineering practices?
- mpoteat 7y agoThe crossed out parts of failed revolutions of tech migration was brutal to read. It really underlined the article's message.
- martincmartin 7y ago> we are ruthless in killing experiments early that do not prove valuable. Ed Catmull of Pixar calls new ideas "ugly babies." Ugly because they're covered in warts -- aspects that are easy to change, but that doubters seize on because they destroy value. For example, the script for the first Bond film, Dr. No, had an intelligent monkey for a villain. Babies because they don't have value in their current form, they need more work and iteration before they have value. How does slack identify technologies that don't have value now, but whose problems are superficial and fixable?
- thehm 7y agoOne example of Slack's decision making process is discussed in Jake Knapp's Sprint book. Essentially, create rapid disposable prototypes and test on real people to address specific problems.
- Mandelmus 7y ago> Babies because they don't have value in their current form, they need more work and iteration before they have value. That’s a highly disturbing and misguided framework if you ask me.
- lliamander 7y agoIt's a metaphor. Maybe Catmull is a sociopath, but more than likely he believes babies are valuable in and of themselves. The point is that a baby is a being with potential - and require outside input to reach that potential.
- anoncake 7y agoI take it you aren't a Unix person then?
- SergeAx 7y agoIronacally, Slack IS using at least couple of fads on a product-defining level: Hack is dead by PHP 7 and PHP 8 will dance on it's grave this year. Electron is awful when used atop of big JS framework-based apps (it is more or less okay with nicely crafted Vanilla JS). And at the same time it is a great commercial success. This last one I cannot understand.
- aisofteng 7y agoBecause they sell a product that fits customers’ needs. The tech stack doesn’t matter.
- safety-third 7y agoCommercial success has little to do with your tech stack choices. I don't understand why people are so obsessed with jumping ship for the latest shitty framework just as the old one is getting really good and stable.
- dbmikus 7y agoAren't people starting to use microkernels for virtualization hypervisors? And people still sometimes use non-deep neural networks because depth can increase overfitting.
- musicale 7y agoIf Slack uses Slack it's amazing they do any work at all.
- musicale 7y ago> Microkernels; EPIC architectures like IA-64; object request brokers; and 1990s’-style neural nets are gone, and will not return. I am not entirely convinced that they are gone: - Xen is essentially a modern microkernel. The most popular "microkernel" from the 1980s, Mach/BSD, evolved into Xnu/Darwin which powers macOS and iOS. L4 and other microkernels still exist. - VLIW lives on inside GPUs as well as x86-compatible CPUs - ORBs turned into microservices - Neural Nets turned into Deep Learning
- mxschumacher 7y agoI find the negative sentiment regarding microkernels premature as well. There are some really interesting projects underway: https://mirage.io/ https://mirage.io/ https://www.redox-os.org/ https://www.redox-os.org/ Don't microkernels have a real shot at replacing containers? Maybe we can stop running the huge linux kernel for every microservice?
- koffiezet 7y ago> Maybe we can stop running the huge linux kernel for every microservice? Ehm that's exactly how containers DON'T work. They share the kernel... (and only the kernel)
- jnordwick 7y agoHow do commercials keep getting posted here?
- cco 7y agoI can't fathom why slack is so slow, on MacOS i see a channel that is white, new messages await. I click it, and honest to God sometimes seconds pass while slack loads the _text_. How can this be? How could my slack client with a 30 Mbps connection have received the signal that there was a new message but also not downloaded the few bytes of text as well. Maybe it did but a MacBook pro from 2018 takes seconds to render text? AOL or MSN didn't back in the day.
- tiew9Vii 7y agoElectron. The trade off between packaging a html/css website as a standalone app in it's own standalone web browser minus toolbar vs apps using native toolkits such as AOL or MSN.
- dawnerd 7y agoThat's not entirely it. VS Code is Electron (not to mention doing a lot more) and somehow its faster than slack and uses about the same memory.
- 0xDEEPFAC 7y agoI think the problem with basing anything off of Electron is that the stack is just too daym high and depends on so many things out of your control. Not to mention Google owns you and your application and could add stuff to Chrome that snoops on your users... It becomes impossible for you to do any sort of quality - even making the original choice to use it means you care about the perceived "convenience" of using CSS and ECMA over performance.
- aganame 7y agoYou're comparing a software that runs locally to a service that runs mostly through the network. A fairer comparison to vscode would be emacs. Suboptimal code might have something to do with it as well, though.
- dawnerd 7y ago
- breatheoften 7y agoI don’t hate slack but I’ll share my least favorite parts In the hope someone will see these good ideas and fix them 1. The rich text editor (thankfully you can turn it off — I am very sad for non savvy users who don’t know this) 2. The UX of snippets - I paste something long into a code fence — fine its too big and you need to send it very a different mechanism — just di that please don’t ask me and make me click around - ideally you’d see the big text blob inside the code snippets and just extract those into something the reader on the other side can click - this way I can provide exposition and give the reader the option to get more details if I’ve convinced them there’s something they should look at. Present options all require me to either lose formatting of my exposition or manually copy stuff out if the message and into one or more snippets 3. Link unfurling - yes I can turn it off for me but the readers not for readers on the other side ... they are less likely to engage properly with what I write because of this crap and I can’t fix it for them ... would be great if I can turn it off for messages I send and receive ...
- paxys 7y agoFor 3: There is an "x" next to the unfurl that you can click to make it go away for everyone.
- je42 7y agoi really wonder why the C++ lib was discontinued. The explanation was a bit short unfortunately.
- igreulich 7y agoHonestly, it read like they stopped because it was harder then they wanted to pay for. Or at least the next step would have been.
- AceJohnny2 7y agoThis is a great policy. I appreciate that they provide a roadmap for engineers to propose and explore technologies, as opposed to most places (in my experience) that have a blanket diktat of the allowed technologies, and any evolution has to happen in the shadows, guerrila-style. It's nice to see a company factoring in the evolution of technology in their product, for a change.
- kissgyorgy 7y ago> The new type annotations also caused some problems along with the bugs they were catching, and a canonical static vs. dynamic typing debate unfolded and ran its course. Through debates and accumulating experience, a rough consensus emerged that increasing type coverage would do more good than harm, and a majority of teams elected to use types. I went through the exact same thing (word-by-word) at my last team and we came to the same consensus. I caught a bug in our custom made static type checker for Python and argued that all type annotations should be dropped :D but they argued that there are more benefits, mostly because it is easier to understand code in isolation so we kept it and invested in even more type-annotation throughout the whole code base.
- noname120 7y ago> Most new things in technology turn out to be fads: [...] Microkernels [...] are gone, and will not return Uh... What about Zircon[1]? It powers Google's new mobile operating system: Fuchsia[2]. [1] https://fuchsia.dev/fuchsia-src/concepts/kernel https://fuchsia.dev/fuchsia-src/concepts/kernel [2] https://fuchsia.dev/fuchsia-src/concepts https://fuchsia.dev/fuchsia-src/concepts