1. 2

      They wrote their services with Go originally, and after a while found that the code was getting difficult to reason about. They experimented with swapping in some Clojure services, and liked how that worked out. They’ve since switched over to Clojure as their primary language.

      One of the main benefits they identified was that Clojure made it much easier to express business logic due to its focus on the functional style. Business logic ends up being expressed as a data transformation pipeline that’s easy to follow. They said that they were even able to show Clojure code to business people and have them follow what’s happening.

      I’d recommend just watching the talk for details as it’s not terribly long. I found it easy to follow at 1.5 speed.

    1. 18

      As a counterpoint to the author’s sweeping generalisation, I don’t think I’ve ever used an application based on Electron. I’ve certainly never used Slack, Hyper, VSCode, etc. which the author says they spend most of their time in.

      My most used programs are probably Emacs, st, Conkeror, Firefox, Pidgin, VLC, cmus, Basket, KBibTeX, …

      I know I’m certainly not “typical”, but I doubt the author is either.

      1. 2

        Thing is that many people out there are using these apps, and this creates network effects. This is especially so for any communication apps like Slack. While you might be able to avoid these apps personally, it’s becoming increasingly difficult to do for the vast majority of people out there. Another aspect to consider is that many apps simply wouldn’t exist on smaller platforms like Linux without Electron. So one very positive aspect of using the web stack is that it helps avoid platform lock in.

        1. 1

          I don’t disagree with what you’re saying in general, although I just want to make clear w.r.t. my anecodote above that I’m not actively avoiding such programs; I’ve just never encountered them, faced a problem that they would help solve, etc.

          Whilst I know it’s pithy, those particular examples do seem a little silly to me: there’s no shortage of terminals (Hyper) or text editors (VSCode). Messaging silos (Slack) are certainly a problem; although I think that’s more societal than technological at this point.

          1. 1

            I think the interesting part with stuff like VSCode is that you have a canvas right in the editor. This allows you to start doing stuff like this very easily. With proto-repl-charts, you could query your database via the REPL, get some data back, and chart it to see trends as an example.

      1. 2

        All the points the article makes apply to hosted languages as well. What’s important is the platform, and not any particular language that runs on top of it. What’s more interesting in my opinion is that some hosted languages are able to target multiple platforms. For example, Clojure has reader conditionals for expressing platform specific code allowing you to write libraries that run seamlessly on different runtimes.

        Instead of being tied to a particular runtime, you can now pick the one that’s appropriate for the problem at hand. My team writes full stack Clojure, and we have a lot of the same code running in the browser, on the JVM, and on Node.

        1. 75

          Capitalism is killing us in a very literal sense by destroying our habitat at an ever accelerating rate. The fundamental idea of needing growth and having to constantly invent new things to peddle leads to ever more disposable products, that are replaced for the sake of being replaced. There’s been very little actual innovation happening in the phone space. The vendors are intentionally building devices using the planned obsolescence model to force the upgrade cycle.

          The cancer of consumerism affects pretty much every aspect of society, we’ve clear cut unique rain forests and destroyed millions of species we haven’t even documented so that we can make palm oil. A product that causes cancer, but that’s fractionally cheaper than other kinds of oil. We’ve created a garbage patch the size of a continent in the ocean. We’re poisoning the land with fracking. The list is endless, and it all comes down to the American ethos that making money is a sacred right that trumps all other concerns.

          1. 22

            Capitalism is killing us in a very literal sense by destroying our habitat at an ever accelerating rate.

            The cancer of consumerism affects pretty much every aspect of society, we’ve clear cut unique rain forests and destroyed millions of species we haven’t even documented so that we can make palm oil.

            One can get into a big debate about this, but the concept of externalities has existed for a long time and specifically addresses these concerns. Products do not cost what they should when taken their less tangible environment impact into account. It’s somewhat up to the reader to decide if the inability of society to take those into account is capitalism’s fault, or just human nature, or something else. I live in a country that leans much more socialist than the US but is unequivocally a capitalist country and they do a better job of managing these externalities. And China is not really capitalistic in the same way the US is but is a pretty significant polluter.

            1. 5

              Indeed, it’s not the fault of the economic system (if you think Capitalistic societies are wasteful, take a look at the waste and inefficiency of industry under the USSR). If externalities are correctly accounted for, or to be safe, even over-accounted for by means of taxation or otherwise, the market will work itself out. If the environmental cost means the new iPhone costs $2000 in real costs, Apple will work to reduce environmental cost in order to make an affordable phone again and everyone wins. And if they don’t, another company will figure it out instead and Apple will lose.

              Currently, there is basically no accounting for these externalities, and in some cases (although afaik not related to smart phones), there are subsidies and price-ceiling regulations and subsidies that actually decreases the cost of some externalities artificially and are worse for the environment than no government intervention at all.

              The easy example of this is California State water subsidies for farmers. Artificially cheap water for farmers means they grow water-guzzling crops that are not otherwise efficient to grow in arid parts of the state, and cause environmental damage and water shortage to normal consumers. Can you imagine your local government asking you to take shorter showers and not wash your car, when farmers are paying 94% less than you to grow crops that could much more efficiently be grown in other parts of the country? That’s what happens in California.

              Step 1 and 2 are to get rid of the current subsidies and regulations that aggravate externalities and impose new regulation/taxes that help account for externalities.

              1. 2

                I have talked to a factory owner in china. He said China is more capitalist than the USA. He said China prioritizes capital over social concerns.

                1. 1

                  Ok? I can talk to lots of people with lots of opinions. That doesn’t make it true.

                  1. 1

                    It’s just impressive that a capitalist would say. If China was even remotely communist, don’t you find it interesting that most capitalists who made deals with China seem ok helping ‘the enemy’ become the second largest economy in the world? I prefer to believe the simpler possibility that China is pretty darn capitalist itself.

                    1. 2

                      I did not say China was not capitalist, I said it’s not in the same way as the US. There is a lot more state involvement in China.

                      1. 2

                        Is your claim then that state involvement means you have more pollution? Maybe I’m confused by what you were trying to get at, sorry :-/

                        1. 2

                          No, I was pointing out that different countries are doing capitalism differently and some of them are better at dealing with externalities and some of them are worse. With the overall point being that capitalism might be the wrong scapegoat.

                1. 7

                  I think the consumer could be blamed more than capitalism, the companies make what sells, the consumers are individuals who buy products that hurt the environment, I think that it is changing though as people become more aware of these issues, they buy more environmentally friendly products.

                  1. 30

                    You’re blaming the consumer? I’d really recommend watching Century of the Self. Advertising has a massive impact and the mass of humans are being fed this desire for all the things we consume.

                    I mean, this really delves into the deeper question of self-awareness, agency and free will, but I really don’t think most human beings are even remotely aware.

                    Engineers, people on Lobster, et. al do really want standard devices. Fuck ARM. Give me a god damn mobile platform. Microsoft for the love of god, just publish your unlock key for your dead phone line so we can have at least one line of devices with UEFI+ARM. Device tree can go die in a fire.

                    The Linux-style revolution of the 2000s (among developers) isn’t happening on mobile because every device is just too damn different. The average consumer could care less. Most people like to buy new things, and we’re been indoctrinated to that point. Retailers and manufactures have focus groups geared right at delivering the dopamine rush.

                    I personally hate buying things. When my mobile stopped charging yesterday and the back broke again, I thought about changing it out. I’ve replaced the back twice already and the camera has spots on the sensor under the lenses.

                    I was able to get it charging when I got home on a high amp USB port, so instead I just ordered yet another back and a new camera (I thought it’d be a bitch to get out, but a few YouTube videos show I was looking at the ribbon wrong and it’s actually pretty easy to replace).

                    I feel bad when I buy things, but it took a lot of work to get to that point. I’ve sold or given away most of my things multiple times to go backpacking, I run ad block .. I mean if everyone did what I’d did, my life wouldn’t be sustainable. :-P

                    We are in a really solidly locked paradigm and I don’t think it can simply shift. If you believe the authors of The Dictators Handbook, we literally have to run our of resources before the general public and really push for dramatically different changes.

                    We really need more commitment to open standards mobile devices. The Ubuntu Edge could have been a game changer, or even the Fairphone. The Edge never got funded and the Fairphone can’t even keep parts sourced for their older models.

                    We need a combination of people’s attitudes + engineers working on OSS alternatives, and I don’t see either happening any time soon.

                    Edit: I forgot to mention, Postmarket OS is making huge strides into making older cellphones useful and I hope we see more of that too.

                    1. 7

                      I second the recommendation for The Century of the Self. That movie offers a life-changing change of perspective. The other documentaries by Curtis are also great and well worth the time.

                      1. 3

                        Century of the Self was a real eye opener. Curtis’s latest documentary, HyperNormalisation, also offers very interesting perspectives.

                      2. 26

                        Capitalism, by it’s very nature, drives companies to not be satisfied with what already sells. Companies are constantly looking to create new markets and products, and that includes creating demand.

                        IOW, consumers aren’t fixed actors who buy what they need; they are acted upon to create an ever increasing number of needs.

                        There are too many examples of this dynamic to bother listing.

                        1. 12

                          It’s also very difficult for the consumer to tell exactly how destructive a particular product is. The only price we pay is the sticker price. Unless you really want to put a lot of time into research it is hard to tell which product is better for the environment.

                          1. 14

                            It’s ridiculous to expect everyone to be an expert on every supply chain in the world, starting right from the mines and energy production all the way to the store shelf. That’s effectively what you are requiring.

                            I’m saying this as a very conscious consumer. I care about my carbon footprint, I don’t buy palm oil, I limit plastic consumption, I limit my consumption overall, but it’s all a drop in the ocean and changes nothing. There are still hundreds of compounds in the everyday items I buy whose provenance I know nothing about and which could be even more destructive. Not to mention that manufacturers really don’t want you to know, it’s simply not in their interest.

                            You’re creating an impossible task and setting people up to fail. It is not the answer.

                            1. 2

                              “It’s ridiculous to expect everyone to be an expert on every supply chain in the world, starting right from the mines and energy production all the way to the store shelf. That’s effectively what you are requiring.”

                              I don’t think it is what they’re requiring and it’s much easier than you describe. Here’s a few options:

                              1. People who are really concerned about this at a level demanding much sacrifice to avoid damaging the environment should automatically avoid buying anything they can’t provably trust by default. The Amish are a decent example that avoids a lot of modern stuff due to commitment to beliefs.

                              2. There’s groups that try to keep track of corporate abuse, environmental actions, and so on of various companies. They maintain good and bad lists. More people that supposedly care can both use them and join them in maintaining that data. It would be split among many people to lessen each’s burden. Again, avoid things by default until they get on the good lists. Ditch them if they get on the bad ones.

                              3. Collectively push their politicians for laws giving proper labels, auditing, etc that help with No 2. Also, push for externalities to be charged back to the companies somehow to incentivize less-damaging behavior.

                              4. Start their own businesses that practice what they preach. Build the principles into their charters, contracts, and so on. Niche businesses doing a better job create more options on the good lists in No 2. There’s entrepreneurs doing this.

                              So, not all-knowing consumers as you indicated. Quite a few strategies that are less impossible.

                              1. 4

                                @ac specifically suggested consumer choice as the solution to environmental issues, and that’s what I disagreed with.

                                Your point number 3 is quite different from the other three, and it’s what I would suggest as a far more effective strategy than consumer choice (along with putting pressure on various corporations). As an aside, I still wouldn’t call it easy - it’s always a hard slog.

                                Your points 1, 2 and 4 still rely on consumer choice, and effectively boil down to: either remove yourself from modern civilisation, or understand every supply chain in the world. I think it’s obvious that the first choice is neither desirable nor “much easier” for the vast majority of people (and I don’t think it’s the best possible solution). The second is impossible, as I said before.

                                1. 1

                                  “consumer choice as the solution to environmental issues”

                                  edit to add: consumer choice eliminated entire industries worth of companies because they wanted something else. It’s only worsened environmental issues. That’s probably not an argument against consumer choice so much as in favor of them willing to sacrifice the environment overall to get the immediate things they want.

                                  “either remove yourself from modern civilisation, or understand every supply chain in the world”

                                  This is another false dichotomy. I know lots of people who are highly-connected with other people but don’t own lots of tech or follow lots of fads. In many cases, they seem to know about them enough to have good conversations with people. They follow what’s going on or are just good listeners. Buying tons of gadgets or harmful things isn’t necessary for participation. You can get buy with a lot less than average middle or upper class person.

                                  What you said is better understood as a spectrum to be in like most things. Lots of positions in it.

                                  1. 2

                                    I think we might actually be mostly in agreement, but we’re talking past each other a bit.

                                    That’s probably not an argument against consumer choice so much as in favor of them willing to sacrifice the environment overall to get the immediate things they want.

                                    I agree with this. But even when consumer choice is applied with environmental goals in mind, I believe its effect is very limited, simply because most people won’t participate.

                                    This is another false dichotomy.

                                    Yeah, but it was derived from your points :) I was just trying to hammer the point that consumer choice isn’t an effective solution.

                                    You can get buy with a lot less than average middle or upper class person.

                                    Totally. I’ve been doing that for a long time: avoiding gadgets and keeping the stuff I need (eg a laptop) as long as I can.

                                    1. 1

                                      “But even when consumer choice is applied with environmental goals in mind, I believe its effect is very limited, simply because most people won’t participate.”

                                      Oh OK. Yeah, I share that depressing view. Evidence is overwhelmingly in our favor on it. It’s even made me wonder if I should even be doing the things I’m doing if so few are doing their part.

                            2. 5

                              The blame rests on the producers, not on the consumers.

                              Consumers are only able to select off of the menu of available products, so to speak. Most of the choices everyday consumers face are dictated by their employers and whatever is currently available to make it through their day.

                              No person can reasonably trace the entire supply chain for every item they purchase, and could likely be impossible even with generous time windows. Nor would I want every single consumer to spend their non-working time to tracing these chains.

                              Additionally, shifting this blame to the consumer creates conditions where producers can charge a premium on ‘green’ and ‘sustainable’ products. Only consumers with the means to consume ‘ethically’ are able to do so, and thus shame people with less money for being the problem.

                              The blame falls squarely on the entities producing these products and the states tasked with regulating production. There will be no market-based solution to get us out of the climate catastrophe, and we certainly can’t vote for a green future with our dollars.

                              1. 4

                                Consumers are only able to select off of the menu of available products, so to speak. Most of the choices everyday consumers face are dictated by their employers and whatever is currently available to make it through their day.

                                That’s not true even though it seems it is. The consumers’ past behavior and present statements play a major role in what suppliers will produce. Most of what you see today didn’t happen overnight. There were battles fought where quite a few companies were out there doing more ethical things on supply side. They ended up bankrupt or with less marketshare while the unethical companies got way ahead through better marketing of their products. With enough wealth accumulated, they continued buying the brands of the better companies remaking them into scumbag companies, too, in many cases.

                                For instance, I strongly advise against companies developing privacy- or security-oriented versions of software products that actually mitigate risks. They’ll go bankrupt like such companies often always did. The companies that actually make lots of money apply the buzzwords customers are looking for, integrate into their existing tooling (often insecure), have features they demand that are too complex to secure, and in some cases are so cheap the QA couldn’t have possibly been done right. That has to be private or secure for real against smart black hats. Not going to happen most of the time.

                                So, I instead tell people to bake cost-effective security enhancements and good service into an otherwise good product advertised for mostly non-security benefits. Why? Because that’s what demand-side responds to almost every time. So, the supply must provide it if hoping to make waves. Turns out, there’s also an upper limit to what one can achieve in that way, too. The crowds’ demands will keep creating obstacles to reliability, security, workers’ quality of life, supplier choice, environment… you name it. They mostly don’t care either where suppliers being honest about costs will be abandoned for those delivering to demand side. In face of that, most suppliers will focus on what they think is in demand across as many proven dimensions as possible.

                                Demand and supply side are both guilty here in a way that’s closely intertwined. It’s mostly demand side, though, as quite a few suppliers in each segment will give them whatever they’re willing to pay for at a profit.

                                1. 3

                                  I agree with a lot of your above point, but want to unpack some of this.

                                  Software security is a strange case to turn to since it has less direct implications on the climate crisis (sure anything that relies on a datacenter is probably using too much energy) compared to the production of disposable, resource-intensive goods.

                                  Demand and supply side are both guilty here in a way that’s closely intertwined. It’s mostly demand side, though, as quite a few suppliers in each segment will give them whatever they’re willing to pay for at a profit.

                                  I parse this paragraph to read: we should blame consumers for buying what’s available and affordable, because suppliers are incapable of acting ethically (due to competition).

                                  So should we blame the end consumer for buying a phone every two years and not the phone manufacturers/retailers for creating rackets of planned obsolescence?

                                  And additionally, most suppliers are consumers of something else upstream. Virtually everything that reaches an end consumer has been consumed and processed several times over by suppliers above. The suppliers are guilty on both counts by our separate reasoning.

                                  Blaming individuals for structural problems simply lets suppliers shirk any responsibility they should have to society. After all, suppliers have no responsibility other than to create profits. Suppliers’ bad behavior must be curtailed either through regulation, public education campaigns to affect consumption habits, or organizing within workplaces.

                                  (As an aside, I appreciate your response and it’s both useful and stimulating to hear your points)

                                  1. 2

                                    “I parse this paragraph to read: we should blame consumers for buying what’s available and affordable, because suppliers are incapable of acting ethically (due to competition).”

                                    You added two words, available and affordable, to what I said. I left affordable off because many products that are more ethical are still affordable. Most don’t buy them anyway. I left availability off since there’s products appearing all the time in this space that mostly get ignored. The demand side not buying enough of what was and currently is available in a segment sends a message to suppliers about what they should produce. Especially if it’s consistent. Under vote with your wallet, we should give consumers their share of credit or blame for anything their purchasing decisions as a whole are supporting or destroying. That most won’t deliberately try to obtain an ethical supplier of… anything… supports my notion demand side has a lot to do with unethical activities of financially-successful suppliers.

                                    For a quick example, there are often coops and farmers markets in lots of rural areas or suburban towns in them. There’s usually a segment of people who buy from them to support their style of operation and/or jobs. There’s usually enough to keep them in business. You might count Costco in that, too, where a membership fee that’s fixed cost gets the customers a pile of stuff at a promised low-markup and great service. There’s people that use credit unions, esp in their industry, instead of banks. There’s people that try to buy from nonprofits, public beneit companies, companies with good track record, and so on. There’s both a demand side (tiny) and suppliers responding to it that show this could become a widespread thing.

                                    Most consumers on demand side don’t do that stuff, though. They buy a mix of necessities and arbitrary stuff from whatever supplier is lowest cost, cheapest, most variety, promoting certain image, or other arbitrary reasons. They do this so much that most suppliers, esp market leaders, optimize their marketing for that stuff. They also make more money off these people that let them put lots of ethical, niche players out of business over time. So, yeah, I’d say consumer demand being apathetic to ethics or long-term thinking is a huge part of the problem given it puts tens of billions into hands of unethical parties. Then, some of that money goes into politicians’ campaign funds so they make things even more difficult for those companies’ opponents.

                                    “Blaming individuals for structural problems simply lets suppliers shirk any responsibility they should have to society.”

                                    Or the individuals can buy from different suppliers highlighting why they’re doing it. Other individuals can start companies responding to that massive stated demand. The existing vendors will pivot their operations. Things start shifting. It won’t happen without people willing to buy it. Alternatively, using regulation as you mentioned. I don’t know how well public education can help vs all the money put into advertising. The latter seems more powerful.

                                    “(As an aside, I appreciate your response and it’s both useful and stimulating to hear your points)”

                                    Thanks. Appreciate you challenging it so I think harder on and improve it. :)

                                2. 2

                                  Only consumers with the means to consume ‘ethically’ are able to do so, and thus shame people with less money for being the problem.

                                  This is ignoring reality, removing cheaper options does not make the other options cheaper to manufacture. It is not shaming people.

                                  You are also ignoring the fact that in a free country the consumers and producers are the same people. A dissatisfied consumer can become a producer of a new alternative if they see it as possible.

                                3. 3

                                  Exactly. The consumers could be doing more on issues like this. They’re complicit or actively contribute to the problems.

                                  For example, I use old devices for as long as I can on purpose to reduce waste. I try to also buy things that last as long as possible. That’s a bit harder in some markets than others. For appliances, I just buy things that are 20 years old. They do the job and usually last 10 more years since planned obsolescence had fewer tricks at the time. ;) My smartphone is finally getting unreliable on essential functions, though. Bout to replace it. I’ll donate, reuse, or recycle it when I get new one.

                                  On PC side, I’m using a backup whose age I can’t recall with a Celeron after my Ubuntu Dell w/ Core Duo 2 died. It was eight years old. Attempting to revive it soon in case it’s just HD or something simple. It’s acting weird, though, so might just become a box for VM experiments, fuzzing, opening highly-untrustworthy URLs or files, etc. :)

                                4. 7

                                  Capitalism is killing us in a very literal sense by destroying our habitat at an ever accelerating rate

                                  Which alternatives would make people happier to consume less – drive older cars, wear rattier clothing, and demand fewer exotic vacations? Because, really, that’s the solution to excessive use of the environment: Be happier with less.

                                  Unfortunately, greed has been a constant of human nature far too long for capitalism to take the blame there.

                                  1. 9

                                    Which alternatives would make people happier to consume less – drive older cars, wear rattier clothing, and demand fewer exotic vacations?

                                    Why do people want new cars, the latest fashions, and exotic vacations in the first place? If it’s all about status and bragging rights, then it’s going to take a massive cultural shift that goes against at least two generation’s worth of cultural programming by advertisers on the behalf of the auto, fashion and travel industries.

                                    I don’t think consumerism kicked into high gear until after the end of World War II when modern advertising and television became ubiquitous, so perhaps the answer is to paraphrase Shakespeare:

                                    The first thing we do, let’s kill all the advertisers.

                                    OK, maybe killing them (or encouraging them to off themselves in the tradition of Bill Hicks) is overkill. Regardless, we should consider the possibility that advertising is nothing but private sector psyops on behalf of corporations, and should not be protected as “free speech”.

                                    1. 2

                                      If there was an advertising exception for free speech, people would use it as an unprincipled excuse to ban whatever speech they didn’t like, by convincing the authorities to classify it as a type of advertising. After all, most unpopular speech is trying to convince someone of something, right? That’s what advertising fundamentally is, right?

                                      Remember that the thing that Oliver Wendell Holmes called “falsely shouting fire in a crowded theater” wasn’t actually shouting “fire” in an actual crowded theater - it was a metaphor he used to describe protesting the military draft.

                                      1. 9

                                        I agree: there shouldn’t be an advertising exception on free speech. However, the First Amendment should only apply to homo sapiens or to organisms we might eventually recognize as sufficiently human to possess human rights. Corporations are not people, and should not have rights.

                                        They might have certain powers defined by law, but “freedom of speech” shouldn’t be one of them.

                                    2. 3

                                      IMO, Hedonistic adaptation is a problem and getting worse. I try to actively fight against it.

                                      1. 2

                                        It would be a start if we designed cities with walking and public transportation in mind, not cars.

                                        My neighborhood is old and walkable. I do shopping on foot (I have a bicycle but don’t bother with it). For school/work, take a single bus and a few minutes walking. Getting a car would be a hassle, I don’t have a place to park it, and I’d have to pay large annual fees for rare use.

                                        Newer neighborhoods appear to be planned with the idea that you’ll need a car for every single task. “Residential part” with no shops at all, but lots of room for parking. A large grocery store with a parking lot. Even train stations with a large parking lot, but no safe path for pedestrians/cyclists from the nearby neighborhoods.

                                      2. 4

                                        The new features on phones are so fucking stupid as well. People are buying new phones to get animated emojis and more round corners. It’s made much worse with phone OEMs actively making old phones work worse by slowing them down.

                                        1. 7

                                          There has been no evidence to my knowledge that anyone is slowing old phones down. This continues to be an unfounded rumor

                                          1. 2

                                            There’s also several Lobsters that have said Android smartphones get slower over time at a much greater rate than iPhones. I know my Galaxy S4 did. This might be hardware, software bloat, or whatever. There’s phones it’s happening on and those it isn’t in a market where users definitely don’t want their phones slowing down. So, my theory on Android side is it’s a problem they’re ignoring on purpose or even contributing to due to incentives. They could be investing money into making the platform much more efficient across devices, removing bloat, etc. They ain’t gonna do that.

                                            1. 3

                                              Android smartphones get slower over time at a much greater rate than iPhones.

                                              In my experience, this tends to be 3rd party apps that start at boot and run all the time. Factory reset fixes it. Android system updates also make phones faster most of the time.

                                              1. 1

                                                Hmm. I’ll try it since I just backed everything up.

                                                1. 3

                                                  I’m still using a Nexus 6 I got ~2.5 years ago. I keep my phone pretty light. No Facebook or games. Yet, my phone was getting very laggy. I wiped the cache (Settings -> Storage -> Cached data) and that seemed to help a bit, but overall, my phone was still laggy. It seemed to get really bad in my text messaging app (I use whatever the stock version is). I realized that I had amassed a lot of text messages over the years, which includes quite a lot of gifs. I decided to wipe my messages. I did that by installing “SMS Backup & Restore” and telling it to delete all of my text messages, since apparently the stock app doesn’t have a way to do this in bulk. It took at least an hour for the deletion to complete. Once it was done, my phone feels almost as good as new, which makes me really happy, because I really was not looking forward to shelling out $1K for a Pixel.

                                                  My working theory is that there is some sub-optimal strategy in how text messages are cached. Since I switch in and out of the text messaging app very frequently, it wouldn’t surprise me if I was somehow frequently evicting things from memory and causing disk reads, which would explain why the lag impacted my entire phone and not just text messages. But, this is just speculation. And a factory reset would have accomplished the same thing (I think?), so it’s consistent with the “factory reset fixes things” theory too.

                                                  My wife is still on a Nexus 5 (great phone) and she has a similar usage pattern as me. Our plan is to delete her text messages too and see if that helps things.

                                                  Anyway… I realize this basically boils down to folk remedies at this point, but I’m just going through this process now, so it’s top of mind and figured I’d share.

                                                  1. 2

                                                    I’ll be damned. I baked up and wiped the SMS, nothing else. The phone seems like it’s moving a lot snappier. Literally a second or two of delay off some things. Some things are still slow but maybe app just is. YouTube always has long loading time. The individual videos load faster now, though.

                                                    Folk remedy is working. Appreciate the tip! :)

                                                    1. 2

                                                      w00t! Also, it’s worth mentioning that I was experiencing much worse delay than a second or two. Google Nav would sometimes lock up for many seconds.

                                                      1. 1

                                                        Maps seems OK. I probably should’ve been straight-up timing this stuff for better quality of evidence. Regardless, it’s moving a lot faster. Yours did, too. Two, strong anecdotes so far on top of factory reset. Far as we know, even their speed gains might have come from SMS clearing mostly that the reset did. Or other stuff.

                                                        So, I think I’m going to use it as is for a week or two to assess this change plus get a feel for a new baseline. Then, I’ll factory reset it, reinstall some apps from scratch, and see if that makes a difference.

                                                        1. 2

                                                          Awesome. Please report back. :-)

                                                          1. 2

                                                            I’ll try to remember to. I’m just still stunned it wasn’t 20 Chrome tabs or all the PDF’s I download during the day. Instead, text messages I wasn’t even using. Of all things that could drag a whole platform down…

                                                            1. 2

                                                              Sms is stored on the SIM card, right? That’s probably not got ideal I/O characteristics…

                                                              1. 1

                                                                I thought the contacts were but messages were on phone. I’m not sure. The contacts being on there could have an effect. I’d have hoped they cached a copy of SIM contents onto in-phone memory. Yeah, SIM access could be involved.

                                                    2. 2

                                                      Now, that’s fascinating. I don’t go in and out of text a lot but do have a lot of text messages. Many have GIF’s. There’s also at least two other apps that accumulate a lot of stuff. I might try wiping them. Btw, folk remedies feel kind of justified when we’re facing a complex, black-box system with nothing else to go on. ;)

                                              2. 2

                                                Official from apple: https://www.apple.com/au/iphone-battery-and-performance/

                                                They slow phones with older batteries but don’t show the user any indication that it can be fixed very cheaply by replacing the battery (Until after the recent outrage) and many of them will just buy a new phone and see it’s much faster.

                                                1. 12

                                                  Wow, so much to unpack here.

                                                  You said they slow old phones down. That is patently false. New versions of iOS are not made to run slowly on older model hardware.

                                                  Apple did not slow phones down with old batteries. They throttled the CPU of phones with failing batteries (even brand new ones!) to prevent the phone from crashing due to voltage drops. This ensured the phone was still functional even if you needed your phone in an emergency. Yes it was stupid there was no notification to the user. This is no longer relevant because they now provide notifications to the user. This behavior existed for a short period of time in the lifespan of the iPhone: less than 90 days between introduction of release with throttling and release with controls to disable and notifications to users.

                                                  Please take your fake outrage somewhere else.

                                                  1. 5

                                                    Apple did not slow phones down with old batteries. They throttled the CPU of phones with failing batteries (even brand new ones!) to prevent the phone from crashing due to voltage drops.

                                                    In theory this affects new phones as well, but we know that as batteries grow older, they break down, hold less charge, and have a harder time achieving their design voltage. So in practice, this safety mechanism for the most part slows down older phones.

                                                    You claim @user545 is unfairly representing the facts by making Apple look like this is some evil ploy to increase turnover for their mobile phones.

                                                    However, given the fact that in reality this does mostly make older phones seem slower, and the fact that they put this in without ever telling anyone outside Apple and not allowing the user to check their battery health and how it affected the performance of their device, I feel like it requires a lot more effort not to make it look like an intentional decision on their part.

                                                    1. 2

                                                      Sure, but if you have an old phone with OK batteries, then their code did not slow it down. So I think it is still more correct to say they slowed down those with bad batteries than those that were old even if most of those with bad batteries were also bad which really depended on phone’s use.

                                                      The difference is not just academic. For example I have “inherited” iPhone6 from my wife that still has a good battery after more than 2 years and performs fine.

                                                      1. 2

                                                        the fact that they put this in without ever telling anyone outside Apple

                                                        It was in the release notes of that iOS release…

                                                        edit: additionally it was known during the beta period in December. This wasn’t a surprise.

                                                        1. 1

                                                          Again, untrue. The 11.2 release notes make no mention of batteries, throttling, or power management. (This was the release where Apple extended the throttling to the 7 series of phones.) The 10.2.1 release notes, in their entirety, read thus:

                                                          iOS 10.2.1 includes bug fixes and improves the security of your iPhone or iPad. It also improves power management during peak workloads to avoid unexpected shutdowns on iPhone.

                                                          That does not tell a reader that long-term CPU throttling is taking place, that it’s restricted to older-model iPhones only, that it’s based on battery health and fixable with a new battery (not a new phone), etc. It provides no useful or actionable information whatsoever. It’s opaque and frankly deceptive.

                                                          1. 0

                                                            You’re right, because I was mistaken and the change was added in iOS 10.2.1, 1/23/2017

                                                            https://support.apple.com/kb/DL1893?locale=en_US

                                                            It also improves power management during peak workloads to avoid unexpected shutdowns on iPhone.

                                                            A user on the day of release:

                                                            Hopefully it fixes the random battery shutoff bug.

                                                            src: https://forums.macrumors.com/threads/apple-releases-ios-10-2-1-with-bug-fixes-and-security-improvements.2028992/page-2#post-24225066

                                                            additionally in a press release:

                                                            In February 2017, we updated our iOS 10.2.1 Read Me notes to let customers know the update ‘improves power management during peak workloads to avoid unexpected shutdowns.’ We also provided a statement to several press outlets and said that we were seeing positive results from the software update.

                                                            Please stop trolling. It was absent from the release notes for a short period of time. It was fixing a known issue affecting users. Go away.

                                                            1. 4

                                                              Did you even read the comment you are responding to? I quoted the 10.2.1 release notes in full–the updated version–and linked them too. Your response is abusive and in bad faith, your accusations of trolling specious.

                                                              1. [Comment removed by moderator pushcx: We've never had cause to write a rule about doxxing, but pulling someone's personal info into a discussion like this to discredit them is inappropriate.]

                                                                1. 2

                                                                  I don’t hate Apple. I’m not going to sell my phone because I like it. The battery is even still in good shape! I wish they’d been a little more honest about their CPU throttling. I don’t know why this provokes such rage from you. Did you go through all my old comments to try to figure out what kind of phone I have? Little creepy.

                                                                  1. 2

                                                                    I’m not angry about anything here. It’s just silly that such false claims continue to be thrown around about old phones intentionally being throttled to sell new phones. Apple hasn’t done that. Maybe someone else has.

                                                                    edit: it took about 30 seconds to follow your profile link to your website -> to Flickr -> to snag image metadata and see what phone you own.

                                                      2. -3

                                                        They throttled the CPU of phones with failing batteries (even brand new ones!)

                                                        This is untrue. They specifically singled out only older-model phones for this treatment. From the Apple link:

                                                        About a year ago in iOS 10.2.1, we delivered a software update that improves power management during peak workloads to avoid unexpected shutdowns on iPhone 6, iPhone 6 Plus, iPhone 6s, iPhone 6s Plus and iPhone SE. [snip] We recently extended the same support to iPhone 7 and iPhone 7 Plus in iOS 11.2.

                                                        In other words, if you buy an iPhone 8 or X, no matter what condition the battery is in, Apple will not throttle the CPU. (In harsh environments–for example, with lots of exposure to cold temperatures–it’s very plausible that an 8 or X purchased new might by now have a degraded battery.)

                                                        1. 2

                                                          You are making a claim without any data to back it up.

                                                          Can you prove that the batteries in the new iPhones suffer voltage drops when they are degraded? If they use a different design with more/smaller cells then AIUI they would be significantly less likely to have voltage drops when overall capacity is degraded.

                                                          But no, instead you continue to troll because you have a grudge against Apple. Take your crap elsewhere. It’s not welcome here.

                                                          1. 3

                                                            You’re moving the goalposts. You claimed Apple is throttling the CPU of brand new phones. You were shown this to be incorrect, and have not brought any new info to the table. Your claim that the newer phones might be designed so as to not require throttling is irrelevant.

                                                            Please don’t accuse (multiple) people of trolling. It reflects poorly on yourself. All are welcome here.

                                                            1. 3

                                                              You can buy a brand new phone directly from Apple (iPhone 6S) with a faulty battery and experience the throttling. I had this happen.

                                                    2. 1

                                                      Google services update in the background even when other updates are disabled. Even if services updates are not intended to slow down the phone, they still do.

                                                    3. 3

                                                      The new features on phones are so fucking stupid as well.

                                                      I think the consumer who pays for it is stupid.

                                                      1. 3

                                                        It’s both. The user wants something new every year and OEMs don’t have anything worthwhile each year so they change things for the sake of change like adding rounded corners on the LCD or cutting a chunk out of the top. It makes it seem like something is new and worth buying when not much worthwhile has actually changed.

                                                        1. 4

                                                          I think companies would always take the path of least resistance that works. If consumers didn’t fall for such stupid tricks the companies that did them would die off.

                                                    4. 2

                                                      Yep. I guess humanity’s biggest achievement will be to terraform itself out of existence.

                                                      This planet does neither bargain nor care about this civilizations’ decision making processes. It will keep flying around the sun for a while, with or without humans on it.

                                                      I’m amazed by the optimism people display in response to pointing out that the current trajectory of climate change makes it highly unlikely that our grand-grand-children will ever be born.

                                                      1. 2

                                                        The list is endless, and it all comes down to the American ethos that making money is a sacred right that trumps all other concerns.

                                                        s/American/human

                                                        You can’t fix a problem if you misunderstand what causes it.

                                                        1. 5

                                                          Ideology matters, and America has been aggressively promoting toxic capitalist ideology for many decades around the world. Humans aren’t perfect, but we can recognize our problems and create systems around us to help mitigate them. Capitalism is equivalent of giving a flamethrower to a pyromaniac.

                                                          1. 3

                                                            If you want to hash out how “toxic capitalism” is ruining everything, that’s fine–I’m just observing that many other countries (China, Germany, India, Mozambique, Russia, etc.) have done things that, to me at least, dispel the notion of toxic capitalism as purely being American in origin.

                                                            And to avoid accusations of whataboutism, the reason I point those other countries out is that if a solution is put forth assuming that America is the problem–and hence itself probably grounded in approaches unique to an American context–it probably will not be workable in other places.

                                                            1. 2

                                                              Nobody is saying that capitalism alone is the problem or that it’s unique to America. I was saying that capitalism is clearly responsible for a lot of harm, and that America promotes it aggressively.

                                                              1. 0

                                                                Don’t backpedal. You wrote:

                                                                The list is endless, and it all comes down to the American ethos that making money is a sacred right that trumps all other concerns.

                                                                As to whether or not capitalism is clearly responsible for a lot of harm, it’s worth considering what the alternatives have accomplished.

                                                                1. 0

                                                                  Nobody is backpedaling here, and pointing at other failed systems saying they did terrible things too isn’t much of an argument.

                                                      1. 5

                                                        Rich Hickey: When a library breaks, it can break in many ways. Some of those may or may not be manifest in types, others would just be manifest in behavior, or missing information, or additional requirements - things that you can’t express in types, because most of what your program needs to do can’t be expressed in the type systems we have today. So yes, it still takes a string and still returns a map of information, but it stopped returning you some of that information, or it started returning other stuff, or it had additional requirements about the string… No, the types don’t capture that.

                                                        It seems like every talk or interview coming from Rich ever since Cognitect started hawking clojure.spec contains at least a handful of poorly supported, vague, dogmatic claims about static typing in opposition to…well, “how Clojure does it.”

                                                        Perhaps his style hasn’t bothered me up until recently simply because I’ve mostly agreed with his dogmatic statements about stuff like persistent data structures, but at this point I’ve lost interest in a lot of what he has to say because of how he talks about static typing.

                                                        There are a lot of other ways he could be talking about clojure.spec and why it works well in Clojure. A more nuanced appraisal of the trade-offs of clojure.spec vs. various static typing approaches would be a nice start, but I am skeptical that will happen any time soon.

                                                        I still think Clojure is a better language than many, and gets a lot of things right, but it’s not perfect and this is one area I think the creator is mistaken. While that’s fine and to be expected, I think he’s doing real damage by making statements about static typing that are either too vague to be useful, or misrepresent how static-typing advocates think about and use type systems.

                                                        1. 5

                                                          It seems like every talk or interview coming from Rich ever since Cognitect started hawking clojure.spec contains at least a handful of poorly supported, vague, dogmatic claims about static typing in opposition to…well, “how Clojure does it.”

                                                          I’m not too familiar with clojure.spec, but I know a bit about the overall idea of it. Let me see if I can explain the difference between static types vs clojure.spec from a formal methods perspective (which differs a little from the PLT perspective).

                                                          Clojure.spec is a contract system. A contract is a formally specifiable property of the code, usually as pre/postconditions on functions, that you expect the code to follow. You’re able to, through the contracts alone, specify the complete behavior of the function via specs. For example, using Deadpixi Contracts in Python:

                                                          @require("l must not be empty", lambda args: len(args.l) > 0)
                                                          @ensure("result is head of list", lambda a, result: result + tail(a.l) == a.l)
                                                          def head(l: List[T]) -> T:
                                                              return l[0]
                                                          

                                                          With this we have that head is only specified for nonempty lists, and also that its result will always be, in fact, the head of the list. This is not something we can do with the type system of Python, or even the type system of Haskell, as the type of head is indistinguishable from the type of last. We’re calling all sorts of other functions and can, in fact, run arbitrary code. In fact, we can completely decouple the specification of contracts from the verification of them. This is both a strength and a weakness. The strength is that we get both expressive power and flexibility. The weakness is that expressive power is usually a bad thing. In the general case contracts are unverifiable due to the halting problem.

                                                          In practice, there’s four approaches to verifying contracts:

                                                          1. Restrict yourself to a subset where you have simple, automatic static verification. For example, you might not be able to autoverify “this function will be called only with positive even numbers”, but we can autoverify “this function will be called with only integers”. This gives us static typing! I think you could reasonably argue that “type systems are special cases of contract systems”, but that’d get you stabbed to death in 99% of programming forums out there, so uh yeah
                                                          2. Limit verification to throwing runtime errors. Every time a contract comes up, check if it’s correct, and throw an error if isn’t. Most contract-oriented languages combine this with static typing to get “conventional” contract systems. You can do a lot of cool stuff with this. Eiffel’s AutoTest can turn your runtime contracts into integration tests, Ada can place contracts on global mutations, most systems let synthesize contracts into dynamic types, etc.
                                                          3. Formally prove the contracts correct. This is formal verification. A lot of people are doing this in different ways: Dafny uses pre/postconditions and loop invariants, Liquid Haskell uses refinement types, Idris uses dependent types, etc.
                                                          4. Informally prove the contracts correct. This is how we get Cleanroom, which is actually a lot more effective than you’d think. People write the contracts, attach english “proofs” of why they hold, and everybody verifies them through code review.

                                                          So, in summary: contracts generalize static types in a form that is good in some ways, bad in others. There are multiple different styles of contracts, just as there’s multiple different type system, but the unifying idea is that they can fully specify the program’s behavior. In verifying them is another matter, and clojure.spec’s approach is “runtime checks” as opposed to most other languages, which reduce the specification power in return representing contracts as static types.

                                                          1. 1

                                                            It’s worth noting that the halting problem also affects Turing complete type systems, such as one found in Scala.

                                                            1. 1

                                                              Which is a reason you really don’t want your type system to be Turing complete!

                                                          2. 3

                                                            It seems like every talk or interview coming from Rich ever since Cognitect started hawking clojure.spec contains at least a handful of poorly supported, vague, dogmatic claims about static typing in opposition to…well, “how Clojure does it.”

                                                            I haven’t been paying all that much attention to the talks more recently, but this is also how I feel about it. There are trade-offs between static types and specs, and specs have some advantages over types, but because of all the straw-man arguments it’s hard to find useful analyses of the trade-offs.

                                                            1. 3

                                                              The problem is that most of the “types vs ‘specs’” arguments are between people who have languages with types and no ‘specs’ and people who have languages with ‘specs’ and no types. If you want to see a more nuanced comparison, you have to look at languages that have both of them, because then you can see how people proficient in both context-switch between them.

                                                              The other problem is that there are many more languages with a lot of thought to their type system than languages with a lot of thought to their contract system. If you need both, you’re pretty much limited to Ada.

                                                              1. 1
                                                                1. 6
                                                            2. 3

                                                              I fail to see what’s vague or dogmatic about his statements. He’s basically saying that types primarily focus on checking internal self consistency, while what you really care about is semantic correctness. Expressing semantic correctness using types ranges from being difficult to impossible depending on the type system. At the same time static typing can introduce a lot of complexity that’s incidental to the problem being solved. You often end up writing code in a way that facilitates static verification as opposed to human readability.

                                                              1. 5

                                                                I didn’t really start appreciating the concept of simplicity until I started working with Clojure. I used to value having lots of language features, multiple paradigms, having syntax sugar, and so on. It felt like having more options available would allow me to write the best solution for each kind of problem.

                                                                What I came to realize is that you don’t need a lot of language features for it to be flexible and expressive. Having simple syntax and a few common patterns for solving problems makes it much easier to both write and maintain code. When your language is small it requires little mental overhead allowing you to focus on the actual problem you’re solving.

                                                                1. 23

                                                                  While I agree that the article is probably true, the biggest problem with Electron, and a lot of modern software development, is that “Developer happiness” and “Developer Efficiency” are both arguments for electron, but “user happiness” and “user efficiency” aren’t.

                                                                  Electron developers are incentivized to develop applications that make users happy in the small- they want something that looks nice, has lots of features, is engaging. The problem is that in their myopic pursuit of this one-and-only goal too many apps (and electron is a vanguard of this trend, but not the only culpable technology by far) forget that a user want’s to do things other than constantly interact with that one single application for their entire computing existence.

                                                                  That’s where electron as a model breaks down. Electron apps are performant enough, and don’t use too much memory, when they are used by themselves on a desktop or powerful docked laptop- but I shouldn’t have to be killing slack and zoom every time I unplug my laptop from a power source because I know they’ll cut my battery life in half. I shouldn’t have to ration which slack teams I join lest I find other important processes swapping or getting oom-killed.

                                                                  Even without those concerns, Electron apps selfishly break the consistency of visual design and metaphors used in a desktop experience, calling attention to themselves with unidiomatic designs.

                                                                  We do need easier and better ways of developing cross-platform desktop applications. Qt seems to be the furthest along in this regard, but for reasons not entirely clear to me it’s never seemed to enter the wider developer consciousness - perhaps because of the licensing model, or perhaps because far fewer people talk about it than actually use it and so it’s never been the “new hotness”.

                                                                  1. 7

                                                                    the author specifically calls out what the problem with QT is.

                                                                    Native cross-platform solution like Qt tend to consider themselves more a library, less a platform, and have little to offer when it comes to creating auto-updating software, installers, and App Store packages.

                                                                    Don’t be so dismissive of peoples choices with the ‘new hotness’ criticism.

                                                                    1. 5

                                                                      I think you misunderstand what I’m saying. My claim isn’t that Qt would solve every problem that people are looking to electron to solve if only it were more popular. My claim is merely that of the cross-platform native toolkits, Qt seems to be both the furthest along in terms of capability, and also seems to be one of the less recognized tools in that space (compared to Wx, GTK, Mono, Unity, heck I’ve seen seen more about TK and FLTK than Qt lately). I suspect that Qt could grow and support more of what people want if it got more attention, but for whatever reason of the cross-platform native toolkits it seems to be less discussed.

                                                                      1. 3

                                                                        Especially with QML, Qt feels just like the javascript+bindings world of the web

                                                                        1. 2

                                                                          Just to be clear, this is the workflow I have currently if I’m targeting Electron. Can you show me something comparable with Qt?

                                                                    2. 7

                                                                      This is an overly simplistic argument that misses the point. Desktop app development has not changed significantly in the past five years, and without Electron we would simply not have many of the Electron-powered cross-platform apps that are popular and used by many today. You can’t talk about “not optimizing for user happiness” when the alternative is these apps just not existing.

                                                                      I don’t like the Slack app, it’s bloated and slow. I wouldn’t call myself a JavaScript developer, and I think a lot of stuff in that world is too ruled by fashion. But this posturing and whining by people who are “too cool for Electron” is just downright silly.

                                                                      Make a better alternative. It’s not like making an Electron app is morally worse than making a desktop app. When you say “we need to make desktop app development better” you can’t impose an obligation on anyone but yourself.

                                                                      1. 6

                                                                        without Electron we would simply not have many of the Electron-powered cross-platform apps that are popular and used by many today.

                                                                        I don’t really remember having a problem finding desktop applications before Electron. There seems to be relatively little evidence for this statement.

                                                                        1. 2

                                                                          Please do not straw man. If you read what you quoted, you will see I did not say no desktop apps existed before Electron. That’s absurd. You also conveniently ignored the part of my sentence where I say “cross-platform”.

                                                                          Obviously we can’t turn back the clock and rewrite history, so what evidence would suffice for you? Maybe it would be the developers of cross-platform apps like Slack, Atom, and VS Code writing about how Electron was a boon for them. Or it could be the fact that the primary cross-platform text editors we had before Electron were Vim and Emacs. Be reasonable (and more importantly, civil.)

                                                                          1. 4

                                                                            I think Vim and Emacs, traditional tools of UNIX folks, propped up as examples of what Slack or VS Code replaced is also a fallacy you’re using to justify a need for Electron. Maybe better comparisons would be Xchat/HexChat/Pidgin, UltraEdit or SlickEdit for editor, and NetBeans or IntelliJ IDEA for IDE. So, those products sucked compared to Electron apps for reasons due to cross-platform technology used vs other factors? Or do they suck at all?

                                                                            Nah, if anything, they show these other projects couldve been built without Electron. Whether they should or not depends on developers’ skills, constraints, preferences, etc on top of markets. Maybe Electron brings justifiable advantages there. Electron isnt making more sophisticated apps than cross-platform native that Ive seen, though.

                                                                            1. 2

                                                                              I think you and the other poster are not making it very clear what your criterion for evidence is. You’ve set up a non-falsifiable claim that simply depends on too many counterfactuals.

                                                                              In the timeline we live in, there exist many successful apps written in Electron. I don’t like many of them, as I’ve stated. I certainly would prefer native apps in many cases.

                                                                              All we need to do is consider the fact that these apps are written in Electron and that their authors have explicitly stated that they chose Electron over desktop app frameworks. If you also believe that these apps are at all useful then this implies that Electron has made it easier for developers to make useful cross-platform apps. I’m really not sure why we are debating about whether a implies b and b implies c means a implies c.

                                                                              You point out the examples of IntelliJ and XChat. I think these are great applications. But you are arguing against a point no one is making.

                                                                              “Electron is just fashion, Slack and VS Code aren’t really useful to me so there aren’t any useful Electron apps” is not a productive belief and not a reasonable one. I don’t like Slack and I don’t particularly like VS Code. But denying that they are evidence that Electron is letting developers create cross-platform apps that might not have existed otherwise and that are useful to many people requires a lot of mental gymnastics.

                                                                              1. 5

                                                                                “You point out the examples of IntelliJ and XChat. I think these are great applications. But you are arguing against a point no one is making.”

                                                                                You argued something about Electron vs cross-platform native by giving examples of modern, widely-used apps in Electron but ancient or simplistic ones for native. I thought that set up cross-platform native to fail. So, I brought up the kind of modern, widely-used native apps you should’ve compared to. The comparison then appeared to be meaningless given Electron conveyed no obvious benefits over those cross-platform, native apps. One of the native apps even supported more platforms far as I know.

                                                                                “All we need to do is consider the fact that these apps are written in Electron and that their authors have explicitly stated that they chose Electron over desktop app frameworks. If you also believe that these apps are at all useful then this implies that Electron has made it easier for developers to make useful cross-platform apps. “

                                                                                It actually doesn’t unless you similarly believe we should be writing business apps in COBOL on mainframes. Visual Basic 6, or keeping the logic in Excel spreadsheets because those developers or analysts were doing it saying it was easiest, most-effective option. I doubt you’ve been pushing those to replace business applications in (favorite language here). You see, I believe that people using Electron to build these apps means it can be done. I also think something grounded in web tech would be easier to pick up for people from web background with no training in other programming like cross-platform native. This much evidence behind that as a general principle and for Electron specifically. The logic chain ends right here though:

                                                                                “then this implies that Electron has made it easier for developers to make useful cross-platform apps.”

                                                                                It does not imply that in general case. What it implies is the group believed it was true. That’s it. All the fads that happen in IT which the industry regretted later on tells me what people believe was good and what objectively was are two different things with sadly little overlap. I’d have to assess things like what their background was, were they biased in favor of or against certain languages, whether they were following people’s writing who told them to use Electron or avoid cross-platform native, whether they personally or via the business were given constraints that excluded better solutions, and so on. For example, conversations I’ve had and watched with people using Electron have showed me most of them didn’t actually know much about the cross-platform native solutions. The information about what would be easy or difficult had not even gotten to them. So, it would’ve been impossible for them to objectively assess whether they were better or worse than Electron. It was simply based on what was familiar, which is an objective strength, to that set of developers. Another set of developers might have not found it familiar, though.

                                                                                So, Electron is objectively good for people how already know web development looking for a solution with good tooling for cross-platform apps to use right now without learning anything else in programming. That’s a much narrower claim than it being better or easier in general for cross-platform development, though. We need more data. Personally, I’d like to see experiments conducted with people using Electron vs specific cross-platform native tooling to see what’s more productive with what weaknesses. Then, address the weaknesses for each if possible. Since Electron is already popular, I’m also strongly in favor of people with the right skills digging into it to make it more efficient, secure, etc by default. That will definitely benefit lots of users of Electron apps that developers will keep cranking out.

                                                                                1. 2

                                                                                  Hey, I appreciate you trying to have a civilized discussion here and in your other comments, but at this point I think we are just talking past each other. I still don’t see how you can disagree with the simple logical inference I made in my previous comment, and despite spending some effort I don’t see how it at all ties into your hypothetical about COBOL. It’s not even a hypothetical or a morality or efficacy argument, just transitivity, so I’m at a loss as to how to continue.

                                                                                  At this point I am agreeing with everything you are saying except on those things I’ve already said, and I’m not even sure if you disagree with me on those areas, as you seem to think you do. I’m sorry I couldn’t convince you on those specifics, which I think are very important (and on which other commenters have strongly disagreed with me), but I’ve already spent more time than I’d have preferred to defending a technology I don’t even like.

                                                                                  On the other hand, I honestly didn’t mind reading your comments, they definitely brought up some worthwhile and interesting points. Hope you have a good weekend.

                                                                                  1. 2

                                                                                    Yeah, we probably should tie this one up. I thank you for noticing the effort I put into being civil about it and asking others to do the same in other comments. Like in other threads, I am collecting all the points in Electron’s favor along with the negatives in case I spot anyone wanting to work on improvements to anything we’re discussing. I got to learn some new stuff.

                                                                                    And I wish you a good weakend, too, Sir. :)

                                                                            2. 3

                                                                              Please do not straw man. If you read what you quoted, you will see I did not say no desktop apps existed before Electron

                                                                              And if you read what I said, I did not claim that you believed there were no desktop apps before Electron. If you’re going to complain about straw men, please do not engage in them yourself.

                                                                              My claim was that there was no shortage of native applications, regardless of the existence of electron. This includes cross platform ones like xchat, abiword, most KDE programs, and many, many others. They didn’t always feel entirely native on all platforms, but the one thing that Electron seems to have done in order to make cross platform easy is giving up on fitting in with all the quirks of the native platform anyways – so, that’s a moot point.

                                                                              Your claim, I suppose, /is/ tautologically true – without electron, there would be no cross platform electron based apps. However, when the clock was rolled back to before electron existed and look at history, there were plenty of people writing enough native apps for many platforms. Electron, historically, was not necessary for that.

                                                                              It does let web developers develop web applications that launch like native apps, and access the file system outside of the browser, without learning new skills. For quickly getting a program out the door, that’s a benefit.

                                                                              1. 1

                                                                                No one is saying there was a “shortage” of desktop applications; I’m not sure how one could even ascribe that belief to someone else without thinking they were completely off their rocker. No one is even claiming that without Electron none of these apps would exist (read my comment carefully). My claim is also not the weird tautology you propose, and again I’m not sure why you would ascribe it to someone else if you didn’t think they were insane or dumb. This is a tactic even worse than straw manning, so I’m really not sure you why you are so eager to double down on this.

                                                                                Maybe abstracting this will help you understand. Suppose we live in a world where method A doesn’t exist. One day method A does exist, and although it has lots of problems, some people use method A to achieve things B that are useful to other people, and they publicly state that they deliberately chose method A over older methods.

                                                                                Now. Assuming other people are rational and that they are not lying [1], we can conclude that method A helped people achieve things B in the sense that it would have been more difficult had method A not existed. Otherwise these people are not being rational, for they chose a more difficult method for no reason, or they are lying, and they chose method A for some secret reason.

                                                                                This much is simple logic. I really am not interested in discussing this if you are going to argue about that, because seriously I already suspect you are being argumentative and posturing for no rational reason.

                                                                                So, if method A made it easier for these people to achieve things B, then, all else equal, given that people can perform a finite amount of work, again assuming they are rational, we can conclude that unless the difference in effort really was below the threshold where it would cause any group of people to have decided to do something else [2], if method A had not existed, then some of the things B would not exist.

                                                                                This is again seriously simple logic.

                                                                                I get it that it’s cool to say that modern web development is bloated. For the tenth time, I agree that Electron apps are bloated. As I’ve stated, I don’t even like Slack, although it’s ridiculous that I have to say that. But don’t try to pass off posturing as actual argument.

                                                                                [1]: If you don’t want to assume that at least some of the people who made popular Electron apps are acting intelligently in their own best interests, you really need to take a long hard look at yourself. I enjoy making fun of fashion-driven development too, but to take it to such an extreme would be frankly disturbing.

                                                                                [2]: If you think the delta is really so small, then why did the people who created these Electron apps not do so before Electron existed? Perhaps the world changed significantly in the meantime, and there was no need for these applications before, and some need coincidentally arrived precisely at the same time as Electron. If you had made this argument, I would be a lot more happy to discuss this. But you didn’t, and frankly, this is too coincidental to be a convincing explanation.

                                                                                1. 2

                                                                                  then why did the people who created these Electron apps not do so before Electron existed?

                                                                                  …wut.

                                                                                  Apps with equivalent functionality did exist. The “Electron-equivalent” apps were a time a dozen, but built on different technologies. People creating these kinds of applications clearly did exist. Electron apps did not exist before electron, for what I hope are obvious reasons.

                                                                                  And, if you’re trying to ask why web developers who were familiar with a web toolkit running inside a browser, and unfamiliar with desktop toolkits didn’t start writing things that looked like desktop applications until they could write them inside a web browser… It’s easier to do something when you don’t have to learn new things.

                                                                                  There is one other thing that Electron did that makes it easier to develop cross platform apps, though. It dropped the idea of adhering fully to native look and feel. Subtle things like, for example, the way that inspector panels on OSX follow your selection, while properties dialogs on Windows do not – getting all that right takes effort.

                                                                                  At this point, I don’t really see a point in continuing, since you seem to consistently be misunderstanding and aor misinterpreting everything that’s been said in this entire thread, in replies to both me and others. I’m not particularly interested in talking to someone who is more interested in accusing me of posturing than in discussing.

                                                                                  Thank you for your time.

                                                                                  1. -1

                                                                                    I am perplexed how you claim to be the misunderstood one when I have literally been clarifying and re-clarifying my original comment only to see you shift the goalposts closer and closer to what I’ve been saying all along. Did you even read my last comment? Your entire comment is literally elaborating on one of my points, and your disagreement is literally what I spent my entire comment discussing.

                                                                                    I’m glad you thanked me for my time, because then at least one of us gained something from this conversation. I honestly don’t know what your motives could be.

                                                                              2. 0

                                                                                I find it strange that you somehow read

                                                                                I don’t really remember having a problem finding desktop applications before Electron

                                                                                as implying that you’d said

                                                                                no desktop apps existed before Electron

                                                                                @orib was simply saying that there was no shortage of desktop apps before Electron. That’s much different.

                                                                                …That’s absurd… Obviously we can’t turn back the clock and rewrite history… …Be reasonable (and more importantly, civil.)

                                                                                You should take your own advice. @orib’s comment read as completely anodyne to me.

                                                                                1. 0

                                                                                  I find it strange that you’re leaving out parts of my comment, again. Not sure why you had to derail this thread.

                                                                                  1. 0

                                                                                    You seem to be confusing me with somebody else.

                                                                                    1. 0

                                                                                      Please, please stop continuing to derail this conversation. I am now replying to your contentless post which itself was a continuation of your other contentless post which was a reply to my reply to orib’s post, which at least had some claims that could be true and could be argued against.

                                                                                      I’m not sure what your intentions are here, but it’s very clear to me now that you’re not arguing from a position of good faith. I regret having engaged with you and having thus lowered the level of discourse.

                                                                                      1. 1

                                                                                        Please, please stop continuing to derail this conversation… I regret having engaged with you and having thus lowered the level of discourse.

                                                                                        Yeah, I wouldn’t want to derail this very important conversation in which @jyc saves the Electron ecosystem with his next-level discourse.

                                                                                        My intention was to call you out for being rude and uncivil and the words you’ve written since then only bolster my case.

                                                                                        1. 0

                                                                                          What is even your motive? Your latest comment really shows you think this whole thing is some sort of sophistic parlor game. I have spent too much time trying to point out that there may even exist some contribution from a technology I don’t even like. I honestly hope you find something better to do with your time than start bad faith arguments with internet strangers for fun.

                                                                            3. 8

                                                                              I’m not sure sure that it’s necessarily true that the existence of these apps is necessarily better than the alternative. For a technical audience, sure. I can choose to, grudgingly, use some bloated application that I know is going to affect my performance, and I’m technical enough to know the tradeoffs and how to mitigate the costs (close all electron apps when I’m running on battery, or doing something that will benefit from more available memory). The problem is for a non-technical audience who doesn’t understand these costs, or how to manage their resources, the net result is a degraded computing experience- and it affects the entire computing ecosystem. Resource hog applications are essentially replaying the tragedy of the commons on every single device they are running on, and even as the year-over-year gains in performance are slowing the underlying problem seems to be getting worse.

                                                                              And when I say “we” should do better, I’m acknowledging that the onus to fix this mess is going to be in large part on those of us who have started to realize there’s a problem. I’m not sure we’ll succeed as javascript continues to eat the world, but I’ll take at least partial ownership over the lack of any viable contenders from the native application world.

                                                                              1. 2

                                                                                I’m not sure sure that it’s necessarily true that the existence of these apps is necessarily better than the alternative.

                                                                                I think this and your references to a “tragedy of the commons” and degrading computing experiences are overblowing the situation a bit. You may not like Slack or VS Code or any Electron app at all, but clearly many non-technical and technical people do like these apps and find them very useful.

                                                                                I agree 100% that developers should be more cautious about using user’s resources. But statements like the above seem to me to be much more like posturing than productive criticism.

                                                                                Electron apps are making people’s lives strictly worse by using up their RAM—seriously? I don’t like Electron hogging my RAM as much as you, but to argue that it has actually made people’s lives worse than if it didn’t exist is overdramatic. (If you have separate concerns about always-on chat apps, I probably share many of them, but that’s a separate discussion).

                                                                                1. 5

                                                                                  but clearly many non-technical and technical people do like these apps and find them very useful.

                                                                                  If you heard the number of CS folks I’ve heard complain about Slack clients destroying their productivity on their computers by lagging and breaking things, you’d probably view this differently.

                                                                                  1. 2

                                                                                    If you also heard the number of CS folks I’ve heard suggest you buy a better laptop and throwing you a metaphorical nickel after you complain about Slack, you’d probably view it as futile to complain about sluggish Web apps again.

                                                                                    1. 1

                                                                                      Dude, seriously, the posturing is not cool or funny at this point. I myself complain about Slack being bloated, and IIRC I even complained about this in my other post. Every group I’ve been that has used Slack I’ve also heard complaints about it from both technical and non-technical people.

                                                                                      I’ll leave it as an exercise for you to consider how this is not at all a contradiction with what you quoted. My God, the only thing I am more annoyed by at this point than Electron hipsterism is the anti-Electron hipsterism.

                                                                                      1. 3

                                                                                        Not posturing–this is a legitimate problem.

                                                                                        Dismissing the very real pain points of people using software that they’re forced into using because Slack is killing alternatives is really obnoxious.

                                                                                        People aren’t complaining just to be hipsters.

                                                                                        1. -1

                                                                                          Dude, at this point I suspect you and others in this thread are trying to imagine me as some personification of Electron/Slack so that you can vent all your unrelated complaints about them to me. For the last time, I don’t even like Electron and Slack that much. What is obnoxious is the fact that you are just ignoring the content of my comments and using them as a springboard for your complaints about Slack which I literally share.

                                                                                          You seriously call this account @friendlysock?

                                                                                          Your latest comment doesn’t add anything at all. Many users, perhaps even a majority of users, find Slack and other Electron software useful. I don’t and you don’t. I don’t like Slack’s business practices and you don’t either. Seriously, read the damn text of my comment and think about how you are barking up the entirely wrong tree.

                                                                                2. 4

                                                                                  “and without Electron we would simply not have many of the Electron-powered cross-platform apps that are popular and used by many today. “

                                                                                  What that’s actually saying is that people who envision and build cross-platform apps for their own satisfaction, fame, or fortune would stop doing that if Electron didnt exist. I think the evidence we have is they’d build one or more of a non-portable app (maybe your claim), cross-platform app natively, or a web app. That’s what most were doing before Electron when they had the motivations above. Usually web, too, instead of non-portable.

                                                                                  We didnt need Electron for these apps. Quite a few would even be portable either immediately or later with more use/funds. The developers just wanted to use it for whatever reasons which might vary considerably among them. Clearly, it’s something many from a web background find approachable, though. That’s plus development time savings is my theory.

                                                                                  1. 1

                                                                                    I agree that many people might have ended up building desktop apps instead that could have been made even better over time. I also agree with your theory about why writing Electron apps is popular. Finally, I agree that Electron is not “needed”.

                                                                                    I’m going to preemptively request that we keep “hur dur, JavaScript developers, rational?” comments out of this—let’s be adults: assuming the developers of these apps are rational, clearly they thought Electron was the best choice for them. Anyone “sufficiently motivated” would be willing to write apps in assembler; that doesn’t mean we should be lamenting the existence of bloated compilers.

                                                                                    Is saying developers should think about writing apps to use less resources productive? Yes. Is saying Electron tends to create bloated apps productive? Definitely. Is saying Electron makes the world a strictly worse place productive or even rational? Not at all.

                                                                                    1. 3

                                                                                      “I’m going to preemptively request that we keep “hur dur, JavaScript developers, rational?” comments out of this—let’s be adults”

                                                                                      Maybe that was meant for a different commenter. I haven’t done any JS bashing in this thread that I’m aware of. I even said Electron is good for them due to familiarity.

                                                                                      “ Is saying Electron makes the world a strictly worse place productive or even rational? Not at all.”

                                                                                      Maybe that claim was also meant for a different commenter. I’d not argue it at all since those using Electron built some good software with it.

                                                                                      I’ve strictly countered false positives in favor of Electron in this thread rather than saying it’s all bad. Others are countering false negatives about it. Filtering the wheat from the chaff gets us down to the real arguments for or against it. I identified one, familiarity, in another comment. Two others brought up some tooling benefits such as easier support for a web UI and performance profiling. These are things one can make an objective comparison with.

                                                                                3. 4

                                                                                  forget that a user want’s to do things other than constantly interact with that one single application for their entire computing existence.

                                                                                  Quoted for truth.

                                                                                  Always assume that your software is sitting between your user and what they actually want to do. Write interactions accordingly.

                                                                                  We don’t pay for software because we like doing the things it does, we pay so we don’t have to keep doing those things.

                                                                                  1. 3

                                                                                    perhaps because of the licensing model

                                                                                    I also think so. It’s fine for open source applications, but the licensing situation for proprietary applications is tricky. Everyone who says you can use Qt under LGPL and just have to dynamically link to Qt, also says “but I’m not a lawyer so please consult one”. As a solo developer working on building something that may or may not sell at some point, it’s not an ideal situation to be in.

                                                                                    1. 4

                                                                                      I think the big caveat to this is that for a great many of the applications I see that have electron-based desktop apps, they are frontends for SAAS applications. They could make money off a GPL application just as easily as a proprietary one, especially since a lot of these services publish most of the APIs anyway.

                                                                                      Granted, I’d love to see a world where software moved away from unnecessary rent-seeking and back to actually selling deliverable applications, but as long as we’re in a SAAS-first world the decision to release a decent GPL-ed frontend doesn’t seem like it should be that hard.

                                                                                      1. 4

                                                                                        I have been responsible for third party IP at a company that did exactly that with Qt; it’s fine.

                                                                                      2. 3

                                                                                        The situation is more nuanced than that. Because Electron provides developers with a better workflow and a lower barrier to entry that results in applications and features that simply wouldn’t exist otherwise. The apps built with Electron might not be as nice as native ones, but they often solve real problems as indicated by the vast amount of people using them. This is especially important if you’re running Linux where apps like Slack likely wouldn’t even exist in the first place, and then you’d be stuck having to try running them via Wine hoping for the best.

                                                                                        While Qt is probably one of the better alternatives, it breaks down if you need to have a web UI. I’d also argue that the workflow you get with Electron is far superior.

                                                                                        I really don’t see any viable alternatives to Electron at the moment, and it’s like here to stay for the foreseeable future. It would be far more productive to focus on how Electron could be improved in terms of performance and resource usage than to keep complaining about it.

                                                                                        1. 1

                                                                                          I never claimed that it doesn’t make life easier for some developers, or even that every electron app would have been written with some other cross-platform toolkit. Clearly for anyone who uses Javascript as their primary (or, in many cases, only) language, and works with web technology day in and day out, something like electron is going to be the nearest to hand and the fastest thing for them to get started with.

                                                                                          The problem I see is that what’s near to hand for developers, and good for the individual applications, ends up polluting the ecosystem by proliferating grossly, irresponsibly inefficient applications. The problem of inefficiency and the subsequent negative affect it has on the entire computing ecosystem is compounded by the fact that most users aren’t savvy enough to understand the implications of the developers technology choices, or even capable of looking at the impact that a given application is having on their system. Additionally, software as an industry is woefully prone to adopting local maxima solutions- even if something better did come along, we’re starting to hit an inflection point of critical mass where electron will continue to gain popularity. Competitors might stand a chance if developers seemed to value efficiency, and respect the resources of their users devices, but if they did we wouldn’t be in this situation in the first place.

                                                                                          1. 2

                                                                                            Saying that developers use Electron simply because don’t value efficiency is absurd. Developers only have so much time in a day. Maintaining the kinds of applications built with Electron using alternatives is simply beyond the resources available to most development teams.

                                                                                            Again, as I already pointed out, the way to address the problem is to look for ways to improve Electron as opposed to complaining that it exists in the first place. If Electron runtime improves, all the applications built on top of it automatically get better. It’s really easy to complain that something is bloated and inefficient, it’s a lot harder to do something productive about it.

                                                                                        2. 2

                                                                                          but I shouldn’t have to be killing slack and zoom every time I unplug my laptop

                                                                                          Yes, you shouldn’t. But that is not Electron’s fault.

                                                                                          I’ve worked on pgManage, and even though ii is based on Electron for the front-end, we managed to get it work just fine and use very little CPU/Memory*. Granted, that’s not a chat application, but I also run Riot.im all day everyday and it show 0% CPU and 114M of memory (about twice as much as pgManage).

                                                                                          Slack is the worst offender that I know of, but it’s because the people who developed it were obviously used to “memory safe” programming. We had memory issues in the beginning with the GC not knowing what to do when we were doing perfectly reason able things. But we put the effort in and made it better.

                                                                                          We have a strong background in fast C programs, and we applied that knowledge to the JS portion of pgManage and cut down the idle memory usage to 58M. For this reason, I’m convinced that C must never die.

                                                                                          * https://github.com/pgManage/pgManage/blob/master/Facts_About_Electron_Performance.md (Note: the version numbers referred to in this article are for Postage, which was later re-branded pgManage)

                                                                                          *Edit for spelling*

                                                                                          1. 5

                                                                                            “But that is not Electron’s fault.”

                                                                                            It happens by default with a lot of Electron apps. It doesnt so much with native ones. That might mean it’s a side effect of Electron’s design. Of course, Id like to see more data on different use-cases in case it happens dor some things but not others. In your case, did you have to really work hard at keeping the memory down?

                                                                                            Edit: The Github link has some good info. Thanks.

                                                                                            1. 2

                                                                                              It happens by default with a lot of Electron apps.

                                                                                              I see where your coming from, and you’re right, but if more JS devs had C experience (or any other non-memory-managed language), we would all be better for it. The GC spoils, and it doesn’t always work.

                                                                                              It doesnt so much with native ones.

                                                                                              Yes, but I think that greatly depends on the language, and how good the GC is.

                                                                                              That might mean it’s a side effect of Electron’s design.

                                                                                              Maybe, but if pgManage can do it (a small project with 5 people working on it), than I see absolutely no reason why Slack would have any difficulty doing it.

                                                                                              In your case, did you have to really work hard at keeping the memory down?

                                                                                              Yes and no. Yes it took time (a few days at most), but no because Electron, and Chrome, have great profiling tools and we were able to find most issues fairly quickly (think Valgrind). IIRC the biggest problem we had at the time was that event listeners weren’t being removed before an element was destroyed (or something like that).

                                                                                              1. 1

                                                                                                One thing I’ll note, look at the ipc ratio of electron apps versus other native apps. You’ll notice a lot of tlb misses and other such problems meaning that the electron apps are mostly sitting there forcing the cpu to behave in ways it really isn’t good at optimizing.

                                                                                                In the end, the electron apps just end up using a lot of power spinning the cpu around compared to the rest. This is technically also true of web browsers.

                                                                                                You may use perf on linux or tiptop to read the cpu counters (for general ipc eyeballing i’d use tiptop): http://tiptop.gforge.inria.fr

                                                                                        1. 8

                                                                                          The act of powering up a computer, waiting for it to boot, doing some work, and then waiting for it to shut down gracefully is a barbaric ritual from ancient times. In 2018, we’re all modern and hip and just want to open up the laptop lid and get to work. Unfortunately this is easier said than done and as such it really only works reliably with the right combination of supported hardware. And even then, bugs in various layers of the OS can cause it to suddenly stop working consistently after an OS update.

                                                                                          This is one of the things keeping me on MacOS. The laptops are expensive for what they are, but the Just Works factor is pretty high.

                                                                                          1. 10

                                                                                            This is one of the things keeping me on MacOS. The laptops are expensive for what they are, but the Just Works factor is pretty high.

                                                                                            Have you found that to still be the case with recent models and OS revisions? That’s also the reason I’m on macOS, but it’s gotten less true for me over the past 3-4 years. The worst is that sleep/hibernate no longer seems to work reliably, and it happens on two completely different devices, a MacBook Pro (2016 model) and a MacBook Air (2014 model). About once a month, one will fail to properly wake from sleep when opening the case. Sometimes it fails to wake entirely; sometimes it seemingly wakes but won’t turn the backlight on (in the 2nd case it sometimes flashes on briefly). Usually this ends up requiring a hard powercycle to fix. Googling suggests I’m not alone, and there’s a whole pile of cargo-cart suggestions for fixing it (NVRAM resets and such). That’s by far the worst issue, but there’s a bunch of software-side stuff seemingly getting more flaky too (especially the App Store app, which sometimes requires a reboot to convince the Updates tab to load).

                                                                                            In 10 years of using PowerBook and MacBook laptops 2004–14 I never had that kind of basic functionality fail to work flawlessly, and I would’ve completely agreed with you back then, which is why I kept buying them.

                                                                                            1. 6

                                                                                              I can confirm your experience - I sometimes have the issue with waking from sleep, and regularly see the OS freezing for extended periods of time (I do have a lot of applications open, but come on, it’s 2018). The quality of software has been declining over the last 4 years. Unfortunately, I still don’t see any better alternative.

                                                                                              1. 3

                                                                                                I am sorry, are you talking about your actual computer or was this a metaphor about human condition?

                                                                                                1. 2

                                                                                                  Haha, it’s true, we’re all sleepwalking through life most of the time.

                                                                                            2. 6

                                                                                              Get a Thinkpad.

                                                                                              1. 4

                                                                                                The laptops are expensive for what they are, but the Just Works factor is pretty high.

                                                                                                So, not really expensive for what they are, given that apparently no others do what they do, reliably?

                                                                                                1. 2

                                                                                                  I wasn’t clear that I was referring primarily to the hardware - Windows 10 laptops with better specs (especially the GPU) and comparable build quality can be significantly cheaper than a new Macbook Pro.

                                                                                                  1. 1

                                                                                                    It’s the Apple Tax: “In the end, we found each Apple machine to cost more than a similarly equipped PC counterpart, with the baseline Mac Pro being the exception. Usually the delta is around $50 to $150…”

                                                                                                    1. 2

                                                                                                      So firstly, that’s an article from 8 years ago, that also highlights Apple machines having longer battery life, better resistance to malware, and use higher quality materials.

                                                                                                      Secondly, the thread is about a feature that works quite reliably on Apple computers, but very poorly on generic PC’s running Linux.

                                                                                                      So, if you want to call “better, more reliable features” a TAX, then we have to agree to label any product anywhere that is objectively better than it’s competitors, and has a higher price, “Includes CompanyName TAX”

                                                                                                      Got a HP laptop that works faster than a piece of shit Chromebook? Must be a HP Tax.

                                                                                                      Got a BMW that has more comfortable seats than a Camry? Must be a BMW Tax.

                                                                                                      1. 3

                                                                                                        Any time a person ever gave me a set of Mac specs I was able to find a cheaper Windows machine that could do the same with hardware that works well. It’s not shocking at all to me given Apple’s marketing strategy of going for high margins. They’re currently one of the most profitable companies in the world with that strategy. Whereas, most of the other vendors became something more like commodities competing so hard on things like price. Your strawman comparisons don’t change that.

                                                                                                        1. 4

                                                                                                          And any time a person ever said to me “I found this non-Apple machine with the same features/specs” they conveniently leave out features that they personally don’t place value on.

                                                                                                          We can trade anecdotal stories all day, but the article you linked to, doesn’t really support your argument the way you seem to think it does.

                                                                                                          1. 2

                                                                                                            Yup. Buying a product purely on paper specs instead of including things like build quality seems foolish.

                                                                                                            Macs aren’t that expensive anyways when you compare them to machines in the same class, like ThinkPads, Surfaces, XPSes, Latitudes, etc.

                                                                                                  2. 2

                                                                                                    The thing keeping me on macOS is being able to use Control and Alt for emacs style shortcuts for editing text anywhere (like my browser’s URL bar) because all the system keyboard shortcuts use the Command key.

                                                                                                    https://jblevins.org/log/kbd

                                                                                                    1. 2

                                                                                                      Same. Apple can’t be beaten there in the current ecosystem. It just won’t happen. Unless Red Hat acquires a hardware vendor and builds a HatBook, there’s no chance. And they won’t do that because it’s not profitable enough.

                                                                                                      1. 6

                                                                                                        This is basically the idea behind Librem laptops.

                                                                                                        1. 7

                                                                                                          If only they had gigantic truckloads of money.

                                                                                                          1. 6

                                                                                                            Only way to make that happen is to vote with our wallets. :)

                                                                                                          2. 1

                                                                                                            I like the idea of librem, but unfortunately I cant see myself buying a laptop without a trackpoint…

                                                                                                          3. 2

                                                                                                            There are some nice vendors where this Just Works. I use system76. Dell xps developer laptops are also great linux laptops.

                                                                                                            1. 2

                                                                                                              As a very happy Surface Book user, I’d argue you’ve forgotten about the other OS vendor.

                                                                                                              1. 1

                                                                                                                I’ve had this working on a de-chromed chomebook and xubuntu for a long time, the key is using not too new hardware maybe?

                                                                                                                1. 1

                                                                                                                  That’s definitely the key. And while I’m glad you have a setup you’re happy with and have no doubt it works for you, I doubt it works for everyone, or even a majority.

                                                                                                            1. 22

                                                                                                              Am I the only one that:

                                                                                                              • loves the idea of datomic (especially about time/immutability)
                                                                                                              • want the creators to be compensated for their ideas and work
                                                                                                              • but still feel incredibly uncomfortable with the closed source nature of a database/datastore in the 21st century?
                                                                                                              1. 4

                                                                                                                Im with you. The typical model is open core, premium addons for enterprise. You can also license open-source software to enterprises. Many actually prefer to pay a company to be responsible for what they depend on. Finally, some are offering hosting or cloud containers for their solutions. And those are on top of usual support and service revenue for OSS.

                                                                                                                So, yeah, I think they could make it work profitably with core product being open source. Quite a few companies do. I can’t guarantee that, though. Proprietary is still the safest route for monetizing software.

                                                                                                                1. 3

                                                                                                                  Look at all the free-software politics I’m not doing?

                                                                                                                  1. 5

                                                                                                                    Look at all the free-software politics I’m not doing?

                                                                                                                    Code dumps are not the preferable solution for releasing open source, but they are still infinitely better than nothing.

                                                                                                                  2. 2

                                                                                                                    This is why I’m pretty excited about datahike. It might actually turn into an open source dataomic-like database.

                                                                                                                    1. 2

                                                                                                                      Very cool! I had seen datascript before, but it’s nice to see this address my point about feeling uncomfortable with a non-free database.

                                                                                                                  1. 1

                                                                                                                    I’d love to read this, but it doesn’t load for me. I get three spinning circles forever.

                                                                                                                    1. 1

                                                                                                                      Perhaps an ad blocker is breaking it?

                                                                                                                    1. 7

                                                                                                                      It’s really unfortunate that the idea of a live coding remains niche, and most programmers haven’t had exposure to this style of development. Working in an environment where you can inspect and change any aspect of the system at runtime is the most satisfying coding experience in my opinion.

                                                                                                                      1. 7

                                                                                                                        Coding hackers tell me they want to understand, change, and improve on anything they can get their hands on. The live coding systems let them do that to their whole, running system. It just seems like the two are a natural fit. It makes it so much stranger to me to see such people use tools that limit them so much.

                                                                                                                        1. 5

                                                                                                                          It’s probably why people have tended to think of Emacs, Common Lisp, and Smalltalk (and Forth?) in relation to the “quality without a name” described in Zen and the Art of Motorcycle Maintenance, or the living quality of buildings described by Christopher Alexander.

                                                                                                                          1. 4

                                                                                                                            I would also add Erlang to that list, but that might be controversial.

                                                                                                                            1. 4

                                                                                                                              I mostly agree. It doesn’t have the same deep metaprogramming aspect, but the actor model is a much cooler form of concurrency than the languages I listed, and things like supervision hierarchies have quite a strong sense of being “alive.”

                                                                                                                              1. 2

                                                                                                                                The tracing capabilities and the ability what process is doing what and which messages are being received is quite impressive.

                                                                                                                              2. 2

                                                                                                                                Yeah, I don’t know if it fits since I don’t use it. I will say that making distributed, concurrent systems easier and more robust by design with ability to update running systems makes it pretty close to the idea. It’s kind of in its own category in my mind where the LISP’s were focused on max flexibility where things like Erlang or Ada are focused on max reliability. Erlang improved on things like Ada in its category by being more high-level, distributed, the updates, etc.

                                                                                                                                Now, it might be interesting to combine the two. I swore someone… (checks bookmarks) Oh yeah, it was LISP-Flavored Erlang. I can’t evaluate further about whether it truly has benefits of typical LISP workflow and Erlang since I don’t know Erlang or LFE. Looked really awesome conceptually when I found it. Anyone else chime in?

                                                                                                                            2. 3

                                                                                                                              Pervasively dynamic environments are a two-edged sword: with great power comes great responsibility. It’s trivial to render a Smalltalk image completely unusable with something as simple as false become: true. PicoLisp has similar capabilities. Most Forths do too. There’s something to be said for isolating and stabilizing some basic parts of the system: such limitations give us a margin of safety!

                                                                                                                          1. 4

                                                                                                                            Most functional languages fit this category. Clojure is a good example of a language that provides great tools to avoid naming transient variables with its various threading macros.

                                                                                                                            1. 3

                                                                                                                              It’s not really a functional language, but fwiw this is also common in modern R code via magrittr pipelines.

                                                                                                                              1. 1

                                                                                                                                You still have to name functions.

                                                                                                                                1. 3

                                                                                                                                  If you want recursion you’ll have to name functions, unless you want to write out the combinator from first principles every time. (Naming the combinator fix would be cheating!)

                                                                                                                                2. 1

                                                                                                                                  That’s a good point…I hadn’t thought of that, and I use method chaining all the time! Do you find in Clojure that it is difficult to debug the intermediate states of a “thread” (not sure what term is appropriate here) such that intermediate variables would be more convenient? (I guess I’m thinking from a perspective of JavaScript’s method chaining, which seems similar…and it is somewhat frequent that I need to log intermediate values in a .map.reduce.filter chain.)

                                                                                                                                  1. 4

                                                                                                                                    In the standard library, you can debug -> using another (-> doto prn) and you can debug ->> using (#(-> % doto prn)), although I usually use taoensso.timbre/spy for this. A simplistic solution to work for both ->, and ->> is (defn debug [x] (prn x) x).

                                                                                                                                1. 10

                                                                                                                                  Don’t leave unsecured public servers and then go blaming people when they access them. The fault here is squarely with people mismanaging the server.

                                                                                                                                  1. 5

                                                                                                                                    The author is either basing his thesis on superficial experience with Lisp, or making a straw man argument. As others pointed out, people don’t actually use lists as product types in real world code.

                                                                                                                                    1. -1

                                                                                                                                      I disagree with Stallman here.

                                                                                                                                      If you surrender your data, then you do not have any right over them. If you upload your photos to facebook, then facebook has them.

                                                                                                                                      For public utility, it is fine to restrict the collection and usage of personal data. But for private corporations, the private individuals should be able to decide for themselves if giving a corporation access to your entire search history for wifi access at the coffee shop is worth it.

                                                                                                                                      1. 25

                                                                                                                                        More and more we are getting forced to use services that spy on us. Cash is being phased out for credit cards and mobile payments. I can’t even pay for parking at my uni without installing their mobile app. We need laws to protect us from these companies because they are impossible to 100% avoid.

                                                                                                                                        1. -4

                                                                                                                                          No, we really don’t. Governments aren’t there to protect you. The consumer’s behaviours need to change. Although, this should have happened a decade or two ago when people were warning you, instead of after Snowden and after Cambridge Analytica.

                                                                                                                                          1. 40

                                                                                                                                            Governments aren’t there to protect you.

                                                                                                                                            That is literally what governments are for.

                                                                                                                                            1. 3

                                                                                                                                              Not anymore… at least here where I live, Government is composed of people and people will have their own agendas which might not include protecting other people or even obeying the laws they’ve passed. I see government as an instrument of power, some will use this power to help society, others to accumulate wealth at the expense of society.

                                                                                                                                              1. 31

                                                                                                                                                What your particular government does and what the purpose of the government is are two separate topics.

                                                                                                                                                1. 2

                                                                                                                                                  That is true but still, you can probably agree with me that when dealing with the real world, the creators intention has very little bearing in whatever usage people do of something. For example: the web was a way to share scientific hypertext and now we’re doing crazy stuff with it, or, tide pods were supposed to be used for laundry… governments, much like many other human creations happened over time, in different places, with different purposes. Monarchy is government but one can argue that historically it was not meant to protect people, dictatorships also work that way. We can say that the “platonic ideal of a pure and honest government” is to protect people but thats just us reasoning after the fact. There are no “letter of intention” about creation of government which all governments across time and space need to follow. What we perceived as “purpose” has very little meaning to what actually happens.

                                                                                                                                                  Personally, I find most interesting when things are not used accordingly to the creators intention, this creative appropriation of stuff by inventive users is at the same time what spurs a lot of cool stuff and what dooms us all, we here in Brazil have a moniker for it “Jeitinho Brasileiro” which could be translated as an affectionate version of “the brazilian way”. Everyone here is basically born in a fractal of stuff whose real world usage does not reflect its ideal purpose to the point that it is IMHO what makes us creative and cunning.

                                                                                                                                                  1. 3

                                                                                                                                                    Monarchy is government but one can argue that historically it was not meant to protect people…

                                                                                                                                                    Well, monarchy was actually a simple protection racket. It enabled a significant growth of the agricultural society through stabilization of violent power — no raids, just taxes.

                                                                                                                                                    We can say that the “platonic ideal of a pure and honest government” is to protect people…

                                                                                                                                                    That’s unreasonable. Establishment of a democratic government is just a consensus seeking strategy of it’s electorate. A move from a simple racket to a rule of law that is a compromise of various interests.

                                                                                                                                                    In feudalism, people choose other people to follow. In democracy, people chose policies to enact. Both systems are very rough and fail in various ways, but democracy has evolved because it just makes more people a lot less unhappy than an erratic dictator ever can.

                                                                                                                                                    … people will have their own agendas which might not include protecting other people or even obeying the laws they’ve passed…

                                                                                                                                                    You seem to be alienated from the political process and perceive your government as something that is not actually yours to establish and control. That’s a very dangerous position for you to take, since government has a monopoly on violence. Of course others won’t take you automatically into consideration. That’s what you do every time you do virtually anything — you never take the full situation into account.

                                                                                                                                                    But you just can’t quite ditch the government… otherwise your neighbor might try building a nuclear reactor using whatever he got from the Russians, which is something you (and perhaps a few other neighbors) might be against. Then on the other hand, he might convince a few others that the energy will be worth it… so you meet up, decide on some rules that will need to be followed so as to prevent an armed conflict and in the end, some who originally opposed the project might even join it to ensure it’s safety and everyone will benefit from the produced energy.

                                                                                                                                                    1. 5

                                                                                                                                                      Friend, lets agree to disagree. What you say do make sense, I am not saying you’re talking bullshit or anything like that, on the contrary, I find your arguments plausible and completely in tune with what I’ve learned at the university buuuuut my own country has been a monarchy, an “empire”, a monarchy again, a republic, a dictatorship, a republic again, an who knows what will happen before 2018 ends.

                                                                                                                                                      Our experience, is vastly different than what is explained above. I haven’t said we’re out of the political process, heck, I’ve organized demonstrations, helped parties I was aligned with, entered all the debates I could long ago, I was a manager for a social program, and am married to an investigative journalist. I am no stranger to political processes, but it is a very simplistic approach to say “(…) your government as something that is (…) yours to establish and control”, this sidesteps all the historical process of governments here and how the monopoly of violence is used by the powerful (which might or might not be actual government) with impunity on anyone who tries to pull government into a different path. Couple weeks ago, one of our councilwoman was executed by gunshots to her car (where a friend of mine was as well as she worked for her), killing our rising star politician, and the driver, and forever traumatizing my friend. I have tons of stories about people dying while trying to change things. Talking about the root of feudalism is meaningless to whatever is happening today. Today people die for defending human rights here (and elsewhere).

                                                                                                                                                      Academic and philosophical conversations about the nature and contracts of government are awesome but please, don’t think this shit is doable, lots of people here died trying to improve the lifes of others. I don’t know if you’ve ever been to a place like here, those conversations don’t really apply (we still have them though).

                                                                                                                                                    2. 1

                                                                                                                                                      I do think it’s important for people to have the power to keep the government accountable. Without checks and balances the government looks after its own interests as opposed to those of its constituents.

                                                                                                                                                  2. 7

                                                                                                                                                    I clicked at your profile with absolute certain that you’d be from Brazil. Now I’m kinda depressed I was right.

                                                                                                                                                    1. 4

                                                                                                                                                      Can spot a Brazilian from miles away right? Don’t know if I laugh or cry that we’re so easy to recognize through our shared problems.

                                                                                                                                                    2. 3

                                                                                                                                                      I can feel your pain (and I admire your courage for talking in a public space about the issues you see in your government).

                                                                                                                                                      But @Yogthos is right: we should not be afraid of our governments, at least not of democratic ones.

                                                                                                                                                      In democracy the government literally exists to serve people. If it doesn’t, it’s not a democracy anymore.

                                                                                                                                                      1. 3

                                                                                                                                                        @soapdog @yogthos @dz This is an interesting discussion for me (though not appropriate for lobste.rs). Any interest in discussing this together, say over email or something else. I’ve always wanted to discuss this topic of government vs individual corporations but it’s a complex subject and hard to keep devolving into a bar-fight.

                                                                                                                                                        1. 6

                                                                                                                                                          I agree that it’s a difficult conversation, but it’s on-topic. I would be more worried if we had this discussion without asking theses questions. If we can’t be trusted to talk politics, that should be discouraged in general.

                                                                                                                                                        2. 0

                                                                                                                                                          Change the name then, not the definition of what it is.

                                                                                                                                                        3. 2

                                                                                                                                                          Shouldn’t governments primariy govern? For whatever reason, but usually something along the lines of “the common good” or “to protect (individual) rights”? But sometimes sadly also in the interests of the more powerful in society…

                                                                                                                                                          1. 0

                                                                                                                                                            Why do you believe that is the purpose of governments? Can you imagine a situation where something recognized as a government doesn’t protect it’s citizens in some cases?

                                                                                                                                                            Is the government supposed to protect you if you put your hand in a garbage disposal, slip in the shower, or attempt suicide?

                                                                                                                                                          2. 11

                                                                                                                                                            Governments aren’t there to protect you.

                                                                                                                                                            They’re definitely there to protect us. However, they’re also their own separate entity. They’re also a group of ambitious, often-lying people with a variety of goals. They can get really off track. That’s why the folks that made the U.S. government warned its people needed to be vigilant about it to keep it in check. Then, its own agents keep the individuals or businesses in check. Each part does its thing with discrepencies corrected by one of the others hopefully quickly. The only part of this equation failing massively is the people who won’t get the scumbags in Congress under control. They keep allowing them to take bribes for laws or work against their own voters. Fixing that would get a lot of rest in line.

                                                                                                                                                            We have seen plenty of protection of individuals by laws, regulations, and courts, though. Especially whenever safety is involved. In coding, the segment with highest-quality software on average right now is probably group certifying to DO-178B for use in airplanes since it mandates lots of activities that reduce defects. They do it or they can’t sell it. The private sector’s solution to same problem was almost always to lie about safety while reducing liability with EULA’s or good legal teams. They didn’t produce a single, secure product until regulations showed up in Defense sector. For databases, that wasn’t until the 1990’s with just a few products priced exhorbitantly out of greed. Clearly, we need a mix of private and public action to solve some problems in the marketplace.

                                                                                                                                                            1. 0

                                                                                                                                                              Governments shouldn’t impose speed limits, people should just drive at reasonably safe speeds.

                                                                                                                                                              Just because a particular behaviour might be most beneficial to a person, does not mean they will do it. Because consumers’ behaviour has not changed (and will not), this type of surveillance has proliferated to the point it’s nearly impossible to escape, even for the most dedicated privacy advocate.

                                                                                                                                                              1. 2

                                                                                                                                                                Funny you should mention that…the setting of speed limits to drive revenue irrespective of actual engineering and human factors is pretty well documented at this point.

                                                                                                                                                          3. 5

                                                                                                                                                            For public utility, it is fine to restrict the collection and usage of personal data. But for private corporations, the private individuals should be able to decide for themselves if giving a corporation access to your entire search history for wifi access at the coffee shop is worth it.

                                                                                                                                                            But that’s precisely what fails when dealing with Facebook et al, isn’t it?

                                                                                                                                                            No matter how assiduously you or I might refuse to sign up for Facebook and its ilk, block their tracking scripts, refuse to upload our photos, our text messages, our data – other people sign up for these things, and give these services permission to index their photos and text message logs etc, and Facebook builds a comprehensive shadow profile of you and I anyways.

                                                                                                                                                            There is no avoiding or opting out of this short of opting out of all human contact, at this point, and the “simple”-sounding solution of “let every individual decide for themselves!” completely fails to engage with the collective consequences that everyone is losing privacy regardless of what decision they make individually.

                                                                                                                                                            When your solution doesn’t engage with reality, it’s not useful.

                                                                                                                                                            1. 4

                                                                                                                                                              But for private corporations, the private individuals should be able to decide for themselves if giving a corporation access

                                                                                                                                                              This will be true when everybody will be able to program and administrate a networking system.

                                                                                                                                                              That’s the only way people can understand what they are giving and for what.

                                                                                                                                                              Till then, you must protect them from people who use their ignorance against them.

                                                                                                                                                              1. 1

                                                                                                                                                                You can’t protect people from their own ignorance, long-term, except by education.

                                                                                                                                                                1. 3

                                                                                                                                                                  You have to. No citizen can foresee the effects of all their actions. The technology we use today is too complicated to understand all of it.

                                                                                                                                                                  That’s why generally everything needs to be safe by default.

                                                                                                                                                                  1. 3

                                                                                                                                                                    The technology we use today is too complicated to understand all of it.

                                                                                                                                                                    The entire field of engineering is predicated on being able to do things without understanding how they work. Ditto beer brewing, baking, cooking, and so forth.

                                                                                                                                                                    That’s why generally everything needs to be safe by default.

                                                                                                                                                                    Bathtubs are not safe by default. Kitchen knives are not safe by default. Fire is not safe by default. Even childbirth isn’t safe by default, and you’d think that would’ve been solved generations ago by evolution.

                                                                                                                                                                    No citizen can foresee the effects of all their actions.

                                                                                                                                                                    Then why would we trust policies enacted by a handful of citizens deemed able to create laws any more than individual citizens making their own decisions? That’s a far riskier proposition.

                                                                                                                                                                    ~

                                                                                                                                                                    We can’t make the world safe for people that won’t learn how to be safe, and efforts to do so harm and inhibit everybody else.

                                                                                                                                                                    1. 6

                                                                                                                                                                      The entire field of engineering is predicated on being able to do things without understanding how they work. Ditto beer brewing, baking, cooking, and so forth. … You can’t protect people from their own ignorance, long-term, except by education.

                                                                                                                                                                      Try buying an oven that will spontaneously catch fire just by being on. It’s going to be complicated, because there are mandatory standards. And it’s a good thing they are this reliable, right? Leaves us time to concentrate on our work.

                                                                                                                                                                      Then why would we trust policies enacted by a handful of citizens deemed able to create laws any more than individual citizens making their own decisions? That’s a far riskier proposition.

                                                                                                                                                                      Because a lot of shouting from many sides went into the discussions before the laws were enacted. Much like you discuss your network infrastructure policies with your colleagues instead of just rewiring the DC as you see fit every once in a while.

                                                                                                                                                                      1. 3

                                                                                                                                                                        The entire field of engineering is predicated on being able to do things without understanding how they work. Ditto beer brewing, baking, cooking, and so forth.

                                                                                                                                                                        No.

                                                                                                                                                                        Engineering is about finding solutions by using every bit of knowledge available.

                                                                                                                                                                        Ignorance is an enemy to fight or work around, but for sure it’s not something to embrace!

                                                                                                                                                                        That’s why generally everything needs to be safe by default.

                                                                                                                                                                        Bathtubs are not safe by default. Kitchen knives are not safe by default. Fire is not safe by default. Even childbirth isn’t safe by default, and you’d think that would’ve been solved generations ago by evolution.

                                                                                                                                                                        I agree that we should work to make programming a common knowledge, like reading and writing so that everyone can build his computing environment as she like.

                                                                                                                                                                        And to those who say it’s impossible I’m used to object that they can read, write and count just because someone else, centuries before, said “no, it’s possible to spread this knowledge and we have the moral duty do spread it”.

                                                                                                                                                                        But all your example are wrong.

                                                                                                                                                                        They are ancient technologies and techniques that are way simpler than programming: humans have learnt to master them and teach each generation how to do so.

                                                                                                                                                                        We have to protect people.

                                                                                                                                                                        The states and laws can help, but the first shield of the people against the abusive use of technology are hackers.

                                                                                                                                                                        We must spread our knowledge and ethics, not exploit the ignorance of others for a profit.

                                                                                                                                                              1. 7

                                                                                                                                                                Another language that’s worth taking a look at for CLI apps is OCaml,this blog series has a good rundown of of porting a Python app.

                                                                                                                                                                1. 11

                                                                                                                                                                  I really want to agree, because I love MLs and love how simple OCaml’s runtime is, but I find OCaml so frustrating in practice. There are, what, three standard libraries, which are incompatible with one another, and then also several incompatible build systems. I’m sure it’s possible to work around this and make them interpolate, but it drove me completely nuts last time I tried that route.

                                                                                                                                                                  1. 1

                                                                                                                                                                    Is the Reason flavour any better in those areas?

                                                                                                                                                                    1. 1

                                                                                                                                                                      I haven’t tried it for the dual reason that I don’t trust Facebook and it’s more a language that can target OCaml than genuinely OCaml. That may be unfair, and some old co-workers of mine love it, but I just haven’t tried it enough to form an opinion.

                                                                                                                                                                  2. 2

                                                                                                                                                                    I really never felt at home in MLs. I like haskell (although I am wary of its laziness, I usually prefer strictness as a default), I like Rust (although I would be happy to just have a GC instead of borrow-checking, but I can see what rust is aiming at, its just not my use case).

                                                                                                                                                                    OCaml in my experience (1-2 years ago) lacked good tooling and the ecosystem I find in Rust or Haskell. Also I miss typeclasses or traits.

                                                                                                                                                                    1. 2

                                                                                                                                                                      The situation is still not perfect in OCaml world, but the new dune (former jbuilder) build system is becoming the de-facto standard and tooling in the last couple of years has been improving a lot. The example of cargo, among other things, has been driving a lot of changes

                                                                                                                                                                  1. 16

                                                                                                                                                                    Using ActivityPub as a common protocol for sharing social media across different open platforms seems like it could be a real killer feature for federated platforms.

                                                                                                                                                                    With closed platforms like FaceBook, Twitter, etc. the owners of the platforms actively work to prevent users from sharing media with other platforms. Meanwhile, open federated alternatives are starting to embrace integration between them. This is a huge benefit from user perspective, as it means you can primarily use your platform of choice, but you can still interact with users of other platforms.

                                                                                                                                                                    1. 6

                                                                                                                                                                      It’s really nice to see that a federated protocol has finally emerged, which projects are starting to use. The biggest weakness of federated systems, it seems, is when they inter-server protocol fragmentation happens, preventing actual meaningful federation to happen.

                                                                                                                                                                      Now one must only hope (or help) that despite the decentralized infrastructure, these networks don’t centralize, and in the worst case split off (e.g. Google with XMPP).

                                                                                                                                                                      1. 5

                                                                                                                                                                        There’s talk of allowing GitLab events to be published with ActivityPub as well: https://gitlab.com/gitlab-org/gitlab-ce/issues/44486

                                                                                                                                                                      1. 5

                                                                                                                                                                        This post is full of bullshit. The author just says things and claims they are true. Zero evidence. So Kotlin code is shorter than Java code, that could mean a lot of things. The author even provides a formula and plugs his arbitrary numbers into it and comes up with Kotlin is 1.8 times more productive than Java. He also calls what he’s done “research”, but it’s presented more of “I did this thing and I think it had this impact so let’s use this number”.

                                                                                                                                                                        The author very well might be more productive in Kotlin, great. But I think they are falling into this trap of “I feel good so I must construct a narrative that validates my feeling”. As someone who is a user of Ocaml and has tried to get others to use it, I’ve had this beaten out of me. I like Ocaml, I believe I am more productive in it, but I’m not going to try to put some numbers in a formula to convince others that it’s true because those numbers will be bullshit. There are tons of articles on the internet about how productive of a language Go is despite it requiring tons of duplicate code and other weird things. These arguments just don’t work, the programming world is not objective enough.

                                                                                                                                                                        1. 3

                                                                                                                                                                          “I was honestly shocked at my productivity after becoming familiar with [kotlin] as I didn’t expect it to have a measurable impact”. Seems likely this has little to do with Kotlin, and a lot to do with Java.

                                                                                                                                                                          1. 2

                                                                                                                                                                            I absolutely agree that this flunks the sniff test. I have spent positively enormous amounts of time writing Java; my best estimate is around 25000 productive hours. I have seen Java grow and change and be used in ways we never expected (Android). I spent about 200 hours migrating a particularly ugly Android app to Kotlin; I have blown another 250 into attempting to prototype a high availability, high throughput back end app in it. I have researched the evolving best practices religiously. In the end, I cannot see any measurable, tangible differences that don’t boil down to “force everyone to be idiomatic”. If I were to start a new team and new codebase in a void, I would say Java and Kotlin were equal contenders and to choose whatever best suited the paradigms under which the team had learnt to code. But in the real world, there is nothing to outweigh the benefit of being able to call in the thousands of competent Java peers I have worked with and have them immediately understand the finest nuance of what code means against the language spec. Before Kotlin can support huge claims like this article supposes, it needs to go even further. I love some of the features, but so far none of them are killer. None of them feel like a revolution.

                                                                                                                                                                            1. -2

                                                                                                                                                                              This post is full of bullshit. The author just says things and claims they are true. Zero evidence.

                                                                                                                                                                              How is that different from arguments in favor of static typing again?

                                                                                                                                                                              1. 4

                                                                                                                                                                                I don’t know? My arguments for static typing revolve around explaining my values and why static typing fits into it, not some objective claim. Does everything come back to trying to shoot down static typing with you?

                                                                                                                                                                                1. 2

                                                                                                                                                                                  I’ve noted that the preference is subjective in many of the discussions we’ve had, and you’ve continued to argue that you believe there are tangible benefits absent any empirical evidence to support that. So, I find it odd that you take offence at the author using similar style of argument here.

                                                                                                                                                                                  1. 2

                                                                                                                                                                                    you’ve continued to argue that you believe there are tangible benefits absent any empirical evidence to support that

                                                                                                                                                                                    In those cases I’ve explicitly that that is my “feeling” or “in my experience” and that my perspective is not meant to imply evidence or an objective reality. As I said in the very first comment in this thread, I don’t make up some productivity numbers and plug them into some silly formula and make claims. I don’t make assertions about what other programmers would benefit from, the author consistently makes claims as if they apply to everyone.

                                                                                                                                                                                    For example, in looking through my threads in conversations with you I found:

                                                                                                                                                                                    I say:

                                                                                                                                                                                    I’m not saying static types are objectively superior, just that I tend to find them superior

                                                                                                                                                                                    https://lobste.rs/s/jlkr3r/when_types_are_eating_away_your_sanity#c_toplhk

                                                                                                                                                                                    In another one you talk about how you never found static types helped and my response was:

                                                                                                                                                                                    My experience has definitely not been this.

                                                                                                                                                                                    https://lobste.rs/s/jlkr3r/when_types_are_eating_away_your_sanity#c_ztg4zm

                                                                                                                                                                                    1. 2

                                                                                                                                                                                      Yet, you feel strongly enough about the topic to have prolonged arguments, even though I too qualify my statements as also being rooted in personal experience. You are making assertions about what other programmers would benefit from, and you’re just more careful about qualifying them than the author of the article. Meanwhile, many proponents of static typing don’t bother with any qualification, and state their claims as being self evident.

                                                                                                                                                                                      1. 2

                                                                                                                                                                                        Yet, you feel strongly enough about the topic to have prolonged arguments

                                                                                                                                                                                        Yes, I find discussion type systems fun and interesting. I also have long discussions with people about musical tastes, which is clearly entirely subjective. So what?

                                                                                                                                                                                        You are making assertions about what other programmers would benefit from

                                                                                                                                                                                        Am I? As far as I have read myself, I am saying that “my experience is X, I believe others could benefit from that”. Obviously I’m not a great judge of what I am saying though as I have a lot more context in my head than a reader does. But I do not believe that is the same statement as “Everyone will benefit from that”. I also believe in high taxes and social safety nets but understand other people have different perspectives. So what?

                                                                                                                                                                                        Meanwhile, many proponents of static typing don’t bother with any qualification, and state their claims as being self evident

                                                                                                                                                                                        What’s that got to do with me?

                                                                                                                                                                                        Look, I don’t actually know what you’re trying to say. Are you disagreeing with my comment that started this thread that had nothing to do with static typing? Do you just want to argue about static typing? Are you trying to call me out for saying something about static typing that you haven’t actually shown I’ve said? What is your goal in this discussion?

                                                                                                                                                                                        1. 1

                                                                                                                                                                                          My original point was simply that the argument the article makes is about as well founded as any argument I’ve seen in favor of static typing, and it didn’t have anything to do with you specifically. Since you decided to make it about you, I’ve simply related the impression I got from our discussions. I’m sorry if I’ve offended you by that or if I misunderstood the nature of your argument.

                                                                                                                                                                                          1. 1

                                                                                                                                                                                            My original point was simply that the argument the article makes is about as well founded as any argument I’ve seen in favor of static typing

                                                                                                                                                                                            Ok, so were you agreeing with my critique of it? Because it reads, to me, as sort of a drive-by “what about ism” and it’s really unclear what you’re trying to say.

                                                                                                                                                                                            Since you decided to make it about you

                                                                                                                                                                                            Well, you did ask me how it was different and I responded with my perspective, I’m not sure how I should have responded I cannot take ownership of a whole community nor can I take responsibility for what it says.

                                                                                                                                                                                            1. 1

                                                                                                                                                                                              I was agreeing with your critique of it, and pointing out that it’s a common line of argument. I’m not sure what exactly you found unclear to be honest.

                                                                                                                                                                                              1. 1

                                                                                                                                                                                                What you said was:

                                                                                                                                                                                                How is that different from arguments in favor of static typing again?

                                                                                                                                                                                                To me, it’s not obvious you are agreeing or disagreeing.

                                                                                                                                                                            1. 19

                                                                                                                                                                              sighs

                                                                                                                                                                              Replacing a corporate data aggregator with a distributed one doesn’t actually reduce the amount of data gathered.

                                                                                                                                                                              If you don’t want your information online and searchable don’t put it online.

                                                                                                                                                                              It doesn’t matter if it’s a friendly mastadon instead of a Harvard dudebro–sharing data means your data is shared. Staaaaaahp.

                                                                                                                                                                              EDIT: Mastadon also has some interesting history.

                                                                                                                                                                              1. 34

                                                                                                                                                                                If you don’t want your information online and searchable don’t put it online.

                                                                                                                                                                                This is not a panacea. Facebook has my phone number because other people chose to upload their contacts. Google has incredibly personal conversations because other people chose them for email. Equifax has my credit history because nearly every banking institution reports to them. Nielsen-Catalina Solutions knows my shopping preferences because retailers secretly sell it to them.

                                                                                                                                                                                If you don’t want your information online and searchable, get data protection laws.

                                                                                                                                                                                1. 3

                                                                                                                                                                                  Laws help, but we also have to take responsibility for not sharing our data (or the data of our friends) online.

                                                                                                                                                                                  1. 1

                                                                                                                                                                                    Unfortunately most users don’t know or don’t care that Facebook uploads their contacts.

                                                                                                                                                                                2. 15

                                                                                                                                                                                  That article is below the standards I expect from this site.

                                                                                                                                                                                  edited after finishing reading: That article is absolute, complete garbage.

                                                                                                                                                                                  1. 6

                                                                                                                                                                                    Please elaborate. I thought it was an interesting look into experience of having vastly different cultures using the same messaging fabric, and the issues that that gives rise to.

                                                                                                                                                                                    1. 2

                                                                                                                                                                                      I don’t think it’s garbage. I think it could have been better written, but as you point out the culture clash thing is an interesting phenomena.

                                                                                                                                                                                      I also don’t think said history would have any bearing on which social media platform you choose for most people.

                                                                                                                                                                                    2. 2

                                                                                                                                                                                      That article is absolute, complete garbage.

                                                                                                                                                                                      Do you see it as garbage because of an abundance of factual inaccuracies, or something else?

                                                                                                                                                                                      The reason I ask is that clearly there’s an absolutist free-speech position being promoted, but certainly all the stuff about Japanese and Spanish speaking Mastodon activity correlates well with what I saw at the time. I don’t know anything about people getting upset about Eugen being paid though, or any of the behind the scenes stuff.

                                                                                                                                                                                    3. 5

                                                                                                                                                                                      Replacing a corporate data aggregator with a distributed one doesn’t actually reduce the amount of data gathered.

                                                                                                                                                                                      It does if the data you share is subject to aggregator influence. And it is, since the aggregator controls the platform and its defaults.

                                                                                                                                                                                      Facebook went through a period where everytime I checked my privacy settings I found something open that I didn’t want to be open. The years of the Cambridge Analytica scrape line up pretty well with that phenomenon. Facebook used to be hugely incented to make as much of your data public to the world (search engines and, it turns out, CA) as possible. Mastodon has no such incentives.

                                                                                                                                                                                      Yes, if I share something with someone I share it with them. But I’d like to not share it with everyone else.

                                                                                                                                                                                      1. 1

                                                                                                                                                                                        It does if the data you share is subject to aggregator influence

                                                                                                                                                                                        I’m not quite sure what this means, do you mind elaborating?

                                                                                                                                                                                        1. 5

                                                                                                                                                                                          I thought I did in the rest of my comment? Basically I’d enter some data in my profile with some understanding of what was visible to whom. Then I’d come back a month or three later, and somehow stuff I intended to be visible only to friends would somehow be visible to some new vector (apps) or API. Facebook’s privacy settings sprawled out of control for a couple of years. Here’s some links I was able to dig up in a quick search:

                                                                                                                                                                                          http://mattmckeon.com/facebook-privacy

                                                                                                                                                                                          https://www.eff.org/deeplinks/2009/12/facebooks-new-privacy-changes-good-bad-and-ugly

                                                                                                                                                                                          https://www.eff.org/deeplinks/2010/04/facebook-timeline

                                                                                                                                                                                          https://www.washingtonpost.com/news/the-switch/wp/2014/04/08/your-facebook-privacy-settings-are-about-to-change-again

                                                                                                                                                                                      2. 3

                                                                                                                                                                                        I agree with this sentiment but I think all the bruhaha is currently about something entirely different. When you use an account on Mastodon, your toots are federated across the global timeline. That, along with an email address that stays local to the server you signed up on, and maybe some HTTPS traffic logs on your server, is the sum total of the information you are exposing via Mastdon until you choose to add more.

                                                                                                                                                                                        This is, from where I stand at least, a vastly different kettle of fish than Facebook.

                                                                                                                                                                                        1. 2

                                                                                                                                                                                          I agree. To some extend the distributed nature even makes it harder to remove data you don’t want online anymore.

                                                                                                                                                                                          1. 3

                                                                                                                                                                                            Removing data is already impossible in the information-theoretical sense. You just get lucky a lot of the time.

                                                                                                                                                                                            To address this particular issue, IPFS has blacklists that track DMCA notices and abusive content. They’re opted in to by consumers.

                                                                                                                                                                                            1. 2

                                                                                                                                                                                              On the other hand the data is also distributed across many instances as opposed to being owned by a single entity. There’s also the fact that Mastodon doesn’t try to track your personal identity, and the interactions can be completely anonymous. Meanwhile, the whole purpose of a site like Facebook is to build an intimate profile of you and your friends.

                                                                                                                                                                                              1. 1

                                                                                                                                                                                                Depends, some instances have ElasticSearch enabled, ostensibly to enable full-text search, but ES can be used for more insidious ““big data” purposes, to profile users with. Tools like Kibana from the ES people make such tasks trivial compared to writing tedious queries by hand. And due to the nature of federation, if someone from that instance follows you, they have your toots, which the admin can use for said purposes.