Yeah the main reason is performance. In some languages if you use a value "linearly" (i.e. there's only ever one copy) then functional style updates can get transformed to mutable in-place updates under the hood, but usually it's seen as a performance optimisation, whereas you often want a performance guarantee.
Koka is kind of an exception, but even there they say:
Note. FBIP is still active research. In particular we'd like to add ways to add annotations to ensure reuse is taking place.
From that point of view it's quite similar to tail recursion. It's often viewed as an optional optimisation but often you want it to be guaranteed so some languages have a keyword like become to do that.
Also it's sometimes easier to write code that uses mutation. It doesn't always make code icky and hard to debug. I'd say it's more of a very mild code smell. A code musk, if you like.
I guess an easy fix for that particular issue is to severely rate limit mentions. E.g. if a user mentions more than 100 users in 1 hour then delay them and flag the account. Then you can whitelist it if it's a legit CI bot or whatever.
I've tried to learn Vim in the past but IMO it is not worth it at all. In a world without multiple cursors... sure, maybe. With multiple cursors? No way. I can can edit just as fast as I've seen any Vim user do it, and without having to remember a gazillion mnemonics and deal with the silly modal thing.
Multiple cursor editing even has some significant advantages over Vim style, e.g. it's interactive, so you can do your edit gradually and go back if you make a mistake. Rather than having to write a complex command and only finding out it if works at the end. (If you've used regex find & replace you'll understand that problem.)
I'll probably get downvoted for this since Vim is kind of a cult, and Vim users get a sense of superiority from it. Kind of like audiophiles - they don't appreciate it if you tell them their £10k valve amp doesn't actually sound any better than your £1k digital amp.
For editing on remote computers I use VSCode remote or Micro for quick tasks.
There are dozens of circumstances where an employee can claim automatic unfair dismissal, or where a worker thinks they have been unfairly dismissed or mistreated due to their protected characteristics which could lead to an additional unlawful discrimination claim.
The general fear of litigation means that in practice it is really hard to get rid of underperforming employees in most white collar jobs (once they have passed probation which is normally 3 months). The normal way it happens is they are "managed out", which is a long and unpleasant process.
If it's a new company with fewer standards then more niche products become more viable. I don't know exactly what the situation at Pebble was but if they took lots of VC funding they can't turn around and say "ok we're just going to trundle along with this niche watch that is loved, but only by a few people". A small company can do that.
Advertising / brand awareness. Pebble was very well known, but if you make some random alternative nobody is even going to learn of your existence. This attempt is using the actual Pebble code and it's run by the ex-Pebble people.
Don't underestimate the software effort. Now that they have most of the code, resurrecting it is a lot easier.
Having said that, I would probably put my money on them doing a Kickstarter (which will do very well based on nostalgia), delivering a product that can't really compete with modern smart watches, and then slowly fading into the night. Hope not but I won't hold my breath. (I can't really wear watches anyway so it doesn't really affect me.)
I’m all for JSON configuration for really low-down dirty stuff, but for something as simple as this? Eugh, no!
I totally agree. But it's difficult to see why that would be a deal breaker tbh. It still works... and Python is too shit to use for the kinds of stuff you just have a single "run" for anyway (e.g. desktop apps or games).
You can do it in launch.json. In fairness it easily the weakest part of VSCode - I wouldn't call editing JSON "comfortable". I tend to just use the integrated terminal instead.
I think the bigger argument for Pycharm is refactoring. VSCode still has fairly weak support for refactoring, whereas in IntelliJ you can move classes and methods around, extract functions etc and it all works quickly and reliably (in Java at least; I dunno about Pycharm - Python is trash so it might not be possible to do refactoring reliably).
He definitely improved it... but there's still plenty of material for r/linusrants.
He may not directly call people names anymore but he's still extremely rude and unprofessional. He would have been fired long ago from any company I work for, and I live in the UK where it's practically impossible to get fired.
Really? I find Pylance to be great. Pretty quick error checking, Pyright is fairly sound, and auto-complete/go-to-definition work reliable. When you have types of course - the biggest problems with Python development are still the communities disinterest in type hints, and the godawful tooling.
At the time it made way more sense because the "traditional" smart watches were way worse. Not even one day battery life. I would say Pebble still wins on size though - actually normal watch sized.
As for why they didn't catch on.. Probably a little bit ahead of their time, and also less shiny.
D didn't catch on for many good reasons... And it never will. Zig has way more momentum (and it better!) as a "better C", and obviously the main draw of Rust is memory safety without GC which D doesn't have.
So what is the correct solution?