1. 8

    This advice should be expanded. Do not under any circumstance use any kind of 3rd party VPN at all.

    1. 4

      VPNs are this decade’s antivirus.

      1. 2

        This advice is hyperbolic…. there are tons of valid uses for a 3rd party VPN. For example, I use a 3rd party VPN to torrent over networks that punish me for doing so (LTE, university WiFi).

        1. 1

          OK… this is not very helpful advice. But, if you have something constructive to say on the subject, I’d like to hear it!

          I don’t suppose you’re saying that you should just trust your ISP.

          Perhaps you’re saying that you should set up and maintain your own VPN? Do you have any helpful resources to suggest for those of us who might want to do that? Because I can imagine a few ways to get that wrong too.

          But perhaps more to the point, what do you suggest for less technical people who are concerned about their privacy, or those who don’t want to maintain that much infrastructure?

          1. 3

            I don’t suppose you’re saying that you should just trust your ISP.

            If you’re using a VPN service, that’s exactly what you’re doing - just trusting the VPN operator.

            But perhaps more to the point, what do you suggest for less technical people who are concerned about their privacy, or those who don’t want to maintain that much infrastructure?

            “If you’re telling people not to buy these rocks, what do you suggest for people who are concerned about keeping tigers away and can’t afford fences and guns?”

            If you genuinely need to access the internet without being tracked, you need to put the legwork in and use Tor; this is not something you can afford to trust someone else to do for you (though there are bundled installers etc. that can make it slightly easier).

            1. 2

              Sometimes I trust my VPN operator more than my ISP. Thus using the VPN is nicer

              Example cases:

              • being in China
              • airport wifi
              1. 1

                Using tor for many tasks is no harder than a vpn anyway

              2. 3

                There was another blog post not too long ago about not using VPNs. This article does state all the reasons to use a VPN: protect your from your ISP and protect your location data.

                However a VPN isn’t TOR. They can still keep logs on the VPN side and turn them over to police, even in other countries. It has a limited use and people need to understand what those uses are. Too many people use it without understand what VPNs do and don’t do (similar to the confusion around Private Window browsing .. even though there’s a clear wall of text describing the limitations, most people don’t read it).

              3. 1

                I’d argue that pretty much anyone who reads this site has the wherewithal to set up their own VPN. Check out Streissand or Algo

              1. 9

                I think Bob Harper’s position on “programming paradigms” is worth consideration.

                http://www.cambridgeblog.org/2017/05/what-if-anything-is-a-programming-paradigm/

                One of the more obvious problems with computing as a “science” in the western tradition is that the objects of our study often come into existence as an effect of our study itself. The “informatics” formulation avoids the myopic focus on physical machinery, but information itself is a slippery subject. I highly recommend Herbert Simon’s classic The Sciences of the Artificial as a starting point for those who would be serious about epistemology in this field.

                Also, for those who would seek some kind of solid foundation in mathematics, the philosophy of mathematics itself is pertinent, from Lakatos to Lakoff and beyond. In brief, human values and lived experience are not so easily disentangled from mathematical “reality”. My advice to anyone who cares about this stuff is, start reading in the philosophy of science and technology… and don’t stop with Kuhn!

                1. 4

                  Also Wittgenstein’s philosophical investigations is great for thinking about programming and science in general.

                1. 13

                  Fails to deliver on the promise of an unthinkable thought.

                  1. 4

                    The author seems to be thinking that the Smalltalk programme had some merits that the current PLT programme doesn’t, which I find unthinkable. So it delivered as far as I’m concerned.

                    1. 3

                      Most tantalizing question was:

                      ..when and why did we start calling programming languages “languages”?

                      1. 3

                        That seems neither unthinkable nor unanswerable. I mean, I don’t know the answer off hand, but there’s a finite number of papers one can read to find out.

                        1. 1

                          Yup. I wasn’t disagreeing with you.

                        2. 1

                          The same reason earlier formal languages like predicate logic are called languages.

                          1. 1

                            Uhh, citation required?

                            1. 2

                              Do you not think computer languages are formal languages? Do I need a citation if I say English is a natural language?

                              1. 1

                                Ah, that link/term is helpful. Thanks!

                                I’m sorry I’m annoying you.

                                Do I need a citation if I say English is a natural language?

                                No, but the whole point under discussion is why our terminology connects formal languages with natural languages. When did the term “formal language” come to be? The history section in your Wikipedia link above mentions what the term can be applied to, but not when the term was coined. Was it coined by Chomsky at the dawn the field of mathematical linguistics? That’s not before computers, in which case the causality isn’t quite as clear and obvious as you make it sound.

                                I’ll stop responding now, assuming you don’t find this as interesting as I do.

                                Edit: wait, clicking out from your profile I learn that you are in fact a linguist! In which case I take it back, I’m curious to hear what you know about the history of Mathematical Linguistics.

                                1. 3

                                  Was it coined by Chomsky at the dawn the field of mathematical linguistics?

                                  It’s at least older than that. The term “formal language theory” in the sense of regular languages, context-free grammars etc. does date to Chomsky. But the idea that one might want to invent a kind of “formal” language for expressing propositions that’s more precise than natural languages is older. One important figure making that argument was Gottlob Frege, who was also an early user of the term (I’m not sure if he actually coined it). He wrote an 1879 book entitled Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens, which you could translate as something like, Concept-Script, a formal language modeled on that of arithmetic, for pure thought.

                                  1. 1

                                    Thanks a lot for that elaboration on the Frege link!

                                  2. 2

                                    In general they’re all languages because they have a syntax (certain combinations are ‘ungrammatical’ or produce interpreter/compiler errors) and a (combinatorial) semantics (the basic symbols have meaning and there are rules for deriving the meaning of [syntactic] combinations of symbols).

                                    Formal languages go back at least to Frege’s Begriffsschrift of 1879, which isn’t before Babbage described the Analytical Engine (1837) but certainly before digital computers. And there are precursors like Boole’s Logic and Leibniz also worked on something of the same sort, and there are yet earlier things like John Wilkins’ “philosophical language” and other notions of a similar kind.

                                    For modern linguistic work on semantics, the work of Richard Montague is perhaps the most important, and there are connections to computer science from very early on - Montague employs Church’s lambda calculus (from the 1930s) which also underlies Lisp.

                          2. 1

                            Nothing that extreme, no, but I’d say it delivers on questioning rarely-questioned assumptions.

                            1. 1

                              How would you know? Maybe you simply failed to think it.

                            1. 5

                              It looks cute, but I can’t imagine playing games with that. I can feel my hands getting cramped just looking at that demo video.

                              1. 2

                                I’m more worried about my fingers hurting from the tiny friction, with the PS1 I remember my fingers hurting from the D pad. I’m not sure if my eyesight will be able to appreciate all the magic either.

                                1. 1

                                  Their OLED display is native “96 x 64 px, cropped to 5:4 ratio”, so actual display area is 80x64 pixels. The Game Boy LCD resolution was 160×144. So if the picture seems blurry and cramped, it’s not just your eyesight. I’m sure it’s fine for Tetris, though.

                              1. 4

                                For a related/amusing/useless game history factoid, Bangai-O Spirits on the Nintendo DS from 2008 also used this technique to transfer custom levels without a link cable or Internet. ( technical details here , IIRC it’s ASK)

                                You can still find a lot of them on YouTube under “bangai-o spirits sound load”

                                1. 5

                                  So does the latest model Teenage Engineering Pocket Operator.

                                1. 10

                                  If Firefox starts showing me ads I’m 100% abandoning the browser, period.

                                  1. 17

                                    If Firefox starts showing me ads in the New Tab page, I’m 85% clicking on that little “(?)” icon, clicking “New Tab Preferences”, and un-checking a box or two.

                                    But, I hope that if you end up running a browser made by an advertising company, you will at least savor the irony.

                                    1. 5

                                      Well, I abandoned chrome a long time ago and will certainly never return, if that’s what you’re getting at :)

                                      Advertising is a slippery slope. I don’t care to play cat and mouse with a company that thinks it’s OK.

                                      The real irony is that I (and probably many others) would be happy to pay for a browser…

                                      1. 5

                                        I’d be happy to pay for a high-quality browser too. But the industry doesn’t seem to be headed that way.

                                        I’m curious where you’ll go. Vivaldi, Opera, and Brave all use the Blink rendering engine from Chromium. All the little WebKit-based browsers are beholden to Apple. Only Firefox has any independence or control of its code base, as far as I can tell.

                                      2. 1

                                        If Firefox starts showing me ads in the New Tab page, I’m 100% clicking on them, to support Mozilla.

                                        But my new tab page is about:blank, I probably won’t see them :(

                                        1. 1

                                          Eh, given that Firefox has forced adware on its users in the past, I wonder if Mozilla isn’t an ad company at this point, if one which makes somewhat different kinds of deal.

                                      1. 8

                                        Thank you for both the Oil project and this post. This is definitely the explanation I will point people to.

                                        I haven’t adopted Oil yet myself, and probably won’t until at least 1.0. I’ve tried zsh, fish, and xonsh, and have nice things to say about them all… but so far I always keep setting my login shell back to bash on linux, because there are just too many other people’s scripts for me to deal with. The net semantic complexity of $NEAT_NEW_SHELL plus that of $CRANKY_OLD_SHELL is always greater than the latter alone, so I find myself stuck with bash despite its irritations. It’s apparently just another one of these insoluble collective action problems.

                                        The embrace, extend, (eventually) extinguish approach that source translation enables is the only one I can endorse for having a hope of success in such an entrenched, messy, decentralized context as the Unix diaspora. There’s an important lesson here, and I hope similar projects take note.

                                        1. 8

                                          but so far I always keep setting my login shell back to bash on linux, because there are just too many other people’s scripts for me to deal with

                                          What does this have to do with the shell that you run? I run fish and that is no obstacle to running programs written in any other language, including bash.

                                          1. 6

                                            It’s not just the shell I run, it’s the shell “all the things” expect. I can easily avoid editing C++ or ruby source (to pick a couple of random examples) but, in my job at least, I can’t avoid working with bash. I can’t replace it, and I need to actually understand how it works.

                                            Of course, other people with other jobs, or those who have long since attained fluency in bash, may have better luck avoiding in their personal environment. I can’t, because I have to learn it, ugly corners and all. I’d be happy to stick with fish, it’s just not a realistic option for me right now. My observation is that, for my current needs, two shells are worse than one.

                                            1. 3

                                              I’ve used fish for years now. Whenever I need to run a bash script I just run bash script.sh. The smallest hurdle I have to deal with is the small mental effort I have to make translating bash commands to fish equivalents when copying bash one liners directly into the shell.

                                              1. 3

                                                I don’t understand what working with bash scripts has to do with the shell that you run, though. Just because you run Python programs doesn’t mean your shell has to be a Python reple, these things are separate. In the case you’re referring to it sounds like bash is just a programming language like Ruby or Python.

                                            2. 2

                                              Thanks, yes I didn’t explicitly say “embrace and extend”, since that has a pretty negative Microsoft connotation :)

                                              But that’s the idea, and that’s how technology and software evolves. And that’s is how bash itself “won”! It implemented the features of every shell, including all the bells and whistles of the most popular shell at the time – AT&T ksh.

                                              Software and in particular programming languages have a heavy lock-in / network effects. I mean look at C and C++. There’s STILL probably 100x more C and C++ written every single day than Go and Rust combined, not even counting the 4 decades of legacy!

                                              It does seem to me that a lot of programmers don’t understand this. I suppose that this was imprinted on my consciousness soon after I got my first job, by reading Joel Spolsky’s blog:

                                              https://www.joelonsoftware.com/2004/06/13/how-microsoft-lost-the-api-war/

                                              There are two opposing forces inside Microsoft, which I will refer to, somewhat tongue-in-cheek, as The Raymond Chen Camp and The MSDN Magazine Camp.

                                              The most impressive things to read on Raymond’s weblog are the stories of the incredible efforts the Windows team has made over the years to support backwards compatibility:

                                              This was not an unusual case. The Windows testing team is huge and one of their most important responsibilities is guaranteeing that everyone can safely upgrade their operating system, no matter what applications they have installed, and those applications will continue to run, even if those applications do bad things or use undocumented

                                              This is a good post, but there are others that talked about the importance of compatibility. Like the “never rewrite post” (although ironically I’m breaking that rule :) )

                                              https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/

                                              Another example of this that people may not understand is that Clang implemented GCC’s flags bug-for-bug! GCC has an enormous number of flags! The Linux kernel uses every corner of GCC, and I think even now Clang is still catching up.

                                              Building the kernel with Clang : https://lwn.net/Articles/734071/

                                            1. 15

                                              If comparing them, so far I’m saying Barbara Liskov for the win. The work I like most is the kind that can accelerate other work. There’s lots of influence given both abstract, data types influence on language design and CLU having some influence on C++ that got widely used. Her work might have also helped build a lot of the others’ work if it got more investment or refining. The other two things on her Wikipedia were first language for distributed systems and an object-oriented database. I recall she also did something in Byzantine Fault-Tolerance but I can’t remember if it was big impact.

                                              She wasn’t obscure to CompSci either: they gave her a Turing Award for her contributions. She’s still publishing with new and old papers here. Definitely should be recognized by modern programmers esp since distributed systems are the thing these days with her laying a lot of groundwork when client-server on PC’s and servers was the thing. True pioneer.

                                              1. 3

                                                Her work on Byzantine Fault-Tolerance is now used in some cryptocurrencies (Ripple and Stellar for example) so it’s pretty significant.

                                                1. 1

                                                  While we’re acknowledging fundamental abstractions, Emmy Noether should get some credit for her contributions to algebra. Algebraic invariants, well-founded induction, lots of important and subtle stuff there. It’s the kind of math that makes formal semantics of programming languages even possible.

                                                  1. 1

                                                    Yes! I was thanks to the Noether language giving tribute that I found out about her. She was amazing.

                                                  2. 1

                                                    Liskov’s work is great because she created so many great mental tools that I literally use everyday.

                                                  1. 2

                                                    I have been feeling some of this, and am considering going back to my BlackBerry Q10. There’s a couple of reasons I wouldn’t ditch smartphones outright:

                                                    1. I can miss having most apps, but perhaps not having access to the mobile Internet.
                                                    2. WhatsApp is the de facto standard communications and organization platform for my social circles. I probably couldn’t get by without it at this point.
                                                    3. I consider having a camera on hand at all times valuable, even if I don’t use it all the time. I would consider the one on the Q10 borderline serviceable in 2018.
                                                    4. I use a lot of two-factor auth services, and I don’t want to carry a dedicated device for this.

                                                    I would like to be less tempted to pick up my phone to play a game, or check the news, or read a news article. The Android emulator on BlackBerry would run all the apps I need today, but perhaps not for long (emulation level is roughly Android 4.3 without Google services).

                                                    Keeping an Android tablet at home and a limited smart phone to take with me might be a suitable solution.

                                                    1. 1

                                                      I use a Q10, and I’m happy enough with it. The physical keyboard is so much better than any screen keyboards I’ve tried, and I mostly use it for SMS. But it can support my other use cases when I need them: mobile maps, camera, alarm clock and timer, terminal, web browser. Mostly I just appreciate that it’s neither iOS nor Android. And of course I’m fond of QNX.

                                                      Still, I’m thinking of ‘upgrading’ to a Q20 just for the physical cursor keys. Text editing is pretty annoying without them. Long term, I’m not sure where I’ll go. My previous phone was a (dumb) Nokia Asha 210, and when I had accomodated to the S40 OS quirks I really liked it… but then when the mic stopped working I couldn’t replace it: they had vanished from the market altogether. Not even eBay had them.

                                                      1. 1

                                                        I’m considering the same thing, for some of the same reasons. I’m mostly concerned I won’t be able to reach anybody in my circle (especially my family, who’s in a different continent) without WhatsApp. I’m thinking of getting a 4G tablet that stays mostly at home and runs WhatsApp and whatever else I may think I may miss, and upgrading from the iPhone to a feature phone (eg: Nokia, Blackberry) for being reachable for important things. That’ll probably require making sure my family knows how to use Skype for phone calls, etc, but I think it can work!

                                                      1. 2

                                                        This study is based on social media engagement metrics. But, breaches don’t appear to have much long-term affect on stock prices either:

                                                        1. 4

                                                          I use http://qutebrowser.org on my NixOS machines but it doesn’t run on other platforms. What alternative browsers are there for Mac OS?

                                                          edit: I’m wrong about this! https://lobste.rs/s/biqv7l/update_on_pocket_firefox_integration#c_3c8u5d

                                                          1. 7

                                                            Are you saying you’d stop using Firefox because of default “sponsored content” in New Tab?

                                                            It’s pretty easy to turn that off, just like all the other New Tab content. The article even links detailed instructions.

                                                            Or is it a matter of principle for you? How do you suppose Mozilla should make money?

                                                            1. 5

                                                              It is not “sponsored content” - that concept does not exist in Firefox. Nobody is paying Mozilla to show specific content on New Tab.

                                                              1. 3

                                                                I already didn’t use Firefox, but I also don’t think browsers should have ads or be monetized.

                                                                1. 2

                                                                  There are no ads in Firefox. Why did you think there are?

                                                                  1. 4

                                                                    There absolutely are—or were until fairly recently—ads in unfilled tiles on the new tab page. Here’s an example support forum thread asking how to get rid of them.

                                                                    1. 4

                                                                      That was two years ago and that feature was completely dropped.

                                                                2. 2

                                                                  How do you suppose Mozilla should make money?

                                                                  Should Mozilla make money? Should one of the most important applications in modern-day computing be produced by a company that is incentivized to produce a profit?

                                                                  1. 6

                                                                    Mozilla corp is not incentivized to produce a profit, it is quite openly their goal to “just” keep the lights on. But that already needs quite a bit of cash. That’s a huge difference.

                                                                    Mozilla corp is for-profit, as for certain legal reasons, producing software is not 501(c)3 compatible. It’s a very usual setup.

                                                                    Yes, Mozilla should make money. Otherwise, they’d shut down.

                                                                    1. 2

                                                                      Mozilla is a non-profit, so no, they don’t have to make money. But the people who work for Mozilla don’t work for free. You can’t build a product like Firefox purely on volunteers, so Mozilla should at least be able to pay their workforce.

                                                                      They can’t keep up with the rest of the world and provide a quality, free software alternative browser without money.

                                                                      If you think the work Mozilla does is valuable (I do!) and feel like they should stay away from alternative monetization methods (I do!), you should consider donating to Mozilla so that they don’t have to find other ways of funding development.

                                                                  2. 3

                                                                    Does it have to be libre? If not, Vivaldi is an excellent web browser that believes in making easy things easy and customization easy. It’s the spiritual successor to Opera 12, which was the pinnacle of browser experiences.

                                                                    1. 3

                                                                      what do you mean? they even have prebuilt images for all major platforms. On MacOS, you can install it from Homebrew as well (brew cask install qutebrowser).

                                                                      1. 1

                                                                        What do you do about plugins? I miss a few plugins from Chrome when I tried out qutebrowser, primarily my RSS feed monitoring one as well as my usenet one.

                                                                        The other big one I miss is Join, but that’s sort of a separate thing in terms of how “encompassing” it is.

                                                                        1. 1

                                                                          I just installed qutebrowser too. That is just brilliant. Thanks for linking - I remember stories coming about it before but never made the effort to try it out, but now I can see it becoming pretty regular.

                                                                        1. 0

                                                                          Beyond research, a number of Facebook teams use this platform to train custom models for a variety of applications including augmented reality and community integrity.

                                                                          Um… does anybody here know what exactly FB means by “community integrity”? Sounds ominous.

                                                                          1. 2

                                                                            I’d love to see a detailed comparison with SSB and any other similar projects.

                                                                            1. 8

                                                                              Very interesting. Having seen some similar visual languages come and go, I do hope it works out well for them. I think that pd and its cousin Max/MSP have shown that visual dataflow languages can be successful, at least in niche domains.

                                                                              Regarding the universality, composability, and dual-representation claims they make, there’s some important prior art which they do not cite on their marketing page but I sure hope they’re aware of: Milner’s Bigraphical model.

                                                                              1. 2

                                                                                That guy was really prolific. I love seeing his name pop up everywhere.

                                                                              1. 5

                                                                                Obviously boiling lobsters is cruel and brutal, but so is eating them. There is no “compassionate” way to eat something. If you are bothered by boiling them, take the logic a step further and don’t eat them either.

                                                                                1. 8

                                                                                  So you think that there’s no moral difference between “quick and painless”, “slow and horrible”, and “clumsy bludgeoning”? Sounds like a pretty extreme position to me.

                                                                                  http://futurama.wikia.com/wiki/Suicide_booth

                                                                                  1. 9

                                                                                    I think this is a useful attempt to elucidate a somewhat confusing position on dz’s part, but that reducing a choice like this to the apparent fundamental principles rarely advances a conversation. People weigh far more things than they are even aware of, and are often not able to explain their real reasons. That’s especially true with a concern like animal suffering which is difficult to think about without having an urge to dismiss it out-of-hand to avoid having to imagine horrifying implications in detail.

                                                                                    Personally, I think that both killing animals and causing them to suffer are wrong. Unfortunately, they’re on the list of wrong things that all humans are complicit in to some extent, although certainly we can individually adjust the degree to which we are, through our lifestyle choices. Political slogans are simplistic because they must be, but it’s important to remember the nuance when actually talking through something controversial like this.

                                                                                    I see the point of a device to kill lobsters faster. But let’s not name anything on the site after it. I expect that this thread has already gotten more political, and with less relevance to the site’s core mission, than many lobste.rs users are comfortable with.

                                                                                    1. 3

                                                                                      Yes I agree not to name anything on this site after it. It would be uncool and uncrustaceanly.

                                                                                      1. 2

                                                                                        Thank you. I very much agree that there’s a lot of subtlety to these kinds of issues, and that they are worth considerate discussion in depth, but that this is probably not the right venue.

                                                                                        I’m still learning how to write comments that are simultaneously relevant, provocative, and concise without being glib or mean… or encouraging others to. It’s hard! Sometimes it might be impossible. I think it’s still worth practicing.

                                                                                        1. 2

                                                                                          but that this is probably not the right venue

                                                                                          I dunno about everyone else but I find this sentiment common and deeply disappointing.

                                                                                          Programmers, like it or not, must learn to tackle ethical questions. We’ve automated jobs away, built software to cheat on emission standards, designed UIs with the intent to deceive users — and any attempt to discuss these issues where programmers dwell is invariably shut down with claims of “improper venue!”

                                                                                          How can we expect to advance our profession if we keep proclaiming that our spaces are strictly for tech chat only?

                                                                                          1. 7

                                                                                            I agree! But let’s spend those limited resources discussing ethical questions that relate to systems we, as programmers, might be asked to build someday. I can promise you that it’s possible to make an entire career simply out of thinking about those questions, and still barely scratch the surface.

                                                                                      2. 3

                                                                                        I didn’t say that. One would prefer “quick and painless” but the immoral act isn’t the suffering, it’s the killing.

                                                                                        1. 5

                                                                                          If the immoral act isn’t the suffering then you shouldn’t eat plants, either.

                                                                                          1. 2

                                                                                            While I don’t share @dz’s moral position, I don’t see this as a gotcha! that shows it is inconsistent.

                                                                                          2. 2

                                                                                            This is a really interesting position - Is there some underlying principle on which this belief rests? Or does it just feel self-evident? For you, is there any amount of crustacean suffering that’s worth more than one crustacean death?

                                                                                            1. 1

                                                                                              So as long as I don’t kill you I can make you suffer as much as I want and it wouldn’t be immoral. I certainly see the appeal of the philosophy.

                                                                                              1. 1

                                                                                                edited: see below

                                                                                                1. 1

                                                                                                  What if both things are immoral?

                                                                                                  1. 5

                                                                                                    There are certainly a large segment of people who think that killing and causing suffering are immoral, however this is the first time I’d ever seen that killing was immoral but suffering was not. Given that humans probably would go extinct without killing anything (plants included) usually people make the caveat “Killing is okay as long as you’re killing the beings that suffer the least”. Some go the whole fruits and nuts route, causing no harm at all, but I don’t think this is large scale sustainable. Plants only is a decent argument, but you’re still totally killing, so if suffering isn’t a moral criteria you might as well go eat whatever because I mean you’ve gotta kill you might as well kill the thing that reduces your suffering and I would have to kill like 400,000 clovers to equal one cow because biodensity.

                                                                                                    Something tells me this isn’t the philosophy DZ has and I’m going to take a generous interpretation that they really meant that reducing suffering doesn’t mean there is NO suffering. The animal was still ripped from its habitat, deprived of a normal life, separated from any family it might have had, etc. I’m going to also suspect that DZ also feels that killing is unilaterally wrong, which is I think not a bad moral basis to aspire to. I think there is some wisdom in having that goal.

                                                                                                    Being said, don’t make perfect the enemy of the good. If someone is going to kill and eat me, I should hope they don’t boil me alive. I would be a lot more upset about being tortured to death than I would about just being killed.

                                                                                                    1. 3

                                                                                                      Yes, this is the correct interpration, and I see how my post could be read differently.

                                                                                          3. 3

                                                                                            Something tells me if you were in the position of being boiled alive vs a painless death you would have more of an opinion on the matter.

                                                                                            1. 3

                                                                                              By this logic, nothing ever would have had to have been invented. At least if you carry it through to the end, it the way stated, not the way it was intended.

                                                                                              1. 12

                                                                                                This particular line of refutation and critique is probably the most common refrain I hear when this sort of article or sentiment is brought up. It’s also wrong–note the “maybe” in the post title.

                                                                                                Let’s not flatter ourselves: yet another “HTML DOM but with better syntax”, “jQuery but with cleaner syntax”, “HTML DOM but with databinding”, “Angular but with smarter data-binding this time”, “Angular but with version-breaking and typescript”, “HTML DOM but with better diffing”, “React but artisinal”, “React but artisinal but also angular”, is hardly invention in the sense you probably mean it.

                                                                                                1. 10

                                                                                                  Our use of common tools has forced us into fixing the things that bother us about them, instead of developing truly new ways of solving our problems. The common solutions don’t make us think, and destroy our ability to think outside the box.

                                                                                                  What would software be like if the free software movement never happened? Instead of “buying” loose fitting uniforms, I bet we’d all be excellent fabric makers, and tailors of original clothes that fit just right.

                                                                                                  1. 3

                                                                                                    And worse, now that we have too many tools to ever fix any of them, there is actually an entire generation of “developers” who simply have no capacity to write quality, durable code.

                                                                                                    What would software be like if the free software movement never happened? Instead of “buying” loose fitting uniforms, I bet we’d all be excellent fabric makers, and tailors of original clothes that fit just right.

                                                                                                    Some of us anyway.

                                                                                                    But unlike good clothing, most people cannot “see” code, so very few people appraise it’s quality – A lot of people actually think they’re paying for code, that somehow more code is more valuable.

                                                                                                    Weird.

                                                                                                    I actually welcome legislation that puts programmers and business on the hook legally (with proper teeth, like the GDPR promises to have) for their work, because I would like to always do good work, but I know I can’t do that while being competitive.

                                                                                                    1. 3

                                                                                                      And worse, now that we have too many tools to ever fix any of them, there is actually an entire generation of “developers” who simply have no capacity to write quality, durable code.

                                                                                                      This isn’t any different from how it used to be. For as long as we’ve had computers we’ve had people worried about developers writing bad, brittle code. The usual solution? High quality, well tested components we know are good, so that developers have fewer places to screw up.

                                                                                                      Not having to roll our own crypto is, on the whole, a good thing.

                                                                                                      1. 1

                                                                                                        And worse, now that we have too many tools to ever fix any of them, there is actually an entire generation of “developers” who simply have no capacity to write quality, durable code.

                                                                                                        You sound old and grumpy, it’s gonna be alright. I’ve seen old people and young generation alike write shitty (and good) code. At least by reusing existing components people might have an easier time to build systems or complex program relying on widely used and tested pattern.

                                                                                                        I actually welcome legislation that puts programmers and business on the hook legally (with proper teeth, like the GDPR promises to have) for their work

                                                                                                        How would such legislation going to encourage individuals from taking risk and rewrite their own components instead of reusing existing more tested and widely used ones?

                                                                                                        because I would like to always do good work, but I know I can’t do that while being competitive.

                                                                                                        If you need legislation to be able to market your good work, “maybe it’s you”.

                                                                                                        1. 1

                                                                                                          That probably results in more money for insurance companies but not better software.

                                                                                                          1. 4

                                                                                                            I’m confident if we are planning more, writing better specs, coding more carefully, focusing on reducing code size, and doing more user-testing, then software will be better.

                                                                                                            And there may always be a gap: As we learn where it is, we can probably refine those fines…

                                                                                                        2. 3

                                                                                                          What if I don’t want to be a tailor, though? I want to be a welder, but I can’t, because I spend all my time tailoring!

                                                                                                          Component programming has, historically, been the hoped-for solution to the software crisis. Parnas made that a central advantage of his work on modules, high-correctness software is predicated on using verified components, etc etc. It might not have lived to it’s standards, but it’s a lot better than where we used to be.

                                                                                                          Consider the problems you want to think about, and then consider how hard it would be to solve then if you had to write your own compiler.

                                                                                                          1. 2

                                                                                                            It might not have lived to it’s standards, but it’s a lot better than where we used to be.

                                                                                                            Hmm. Can you elaborate on why it’s better? I feel that in a lot of ways it’s worse!

                                                                                                            Consider the problems you want to think about, and then consider how hard it would be to solve then if you had to write your own compiler.

                                                                                                            We’ve trained ourselves to make a base set of assumptions about what a computer is, and has to be. A C compiler is just a commodity tool, these days. But, obviously, people have invented their own languages, and their own compilers.

                                                                                                            But, consider a very basic computer, and forth. Forth is simple enough that you can write very big functioning systems, in a small amount of code. Consider the VPRI Steps project that’s been attempting to build an entire computing system in a fraction of the code modern systems take. What would things look like, then?

                                                                                                            1. 1

                                                                                                              Hmm. Can you elaborate on why it’s better? I feel that in a lot of ways it’s worse!

                                                                                                              The most popular Python time library, Arrow, is 2000+ lines of core code and another 2000+ lines of localization code. If you tried to roll your own timezone library you absolutely will make mistakes that will bite you down the line, but Arrow is battle-tested and, to everybody’s knowledge, correct.

                                                                                                              Consider the VPRI Steps project that’s been attempting to build an entire computing system in a fraction of the code modern systems take. What would things look like, then?

                                                                                                              That report lists 17 personnel and was funded by a 5 million dollar grant. I don’t have that kind of resources.

                                                                                                              1. 2

                                                                                                                When was the last time you wrote code that required accurate timezones (UTC is almost always OK for what I do)? And, to be honest, 4,000 lines doesn’t seem like enough to be exhaustive here…

                                                                                                                But, I don’t disagree that there are exceptional things that we should all share.

                                                                                                                Just that, in the current state of things, relying on an external library responsibly, requires a deep understanding of it to use it properly. You can’t rely on documentation—it’s incomplete. You can’t rely on its tests—they don’t exhaustively prove it works. You can’t trust the names of functions—they lie, or at least have ambiguity. And, more often than not, you care about only a small percentage of the functionality, anyway.

                                                                                                                That report lists 17 personnel and was funded by a 5 million dollar grant. I don’t have that kind of resources.

                                                                                                                The point wasn’t “we should all go define 2,000 line systems that do everything.” It was, apparantly poorly, attempting to point out that there may have been another way to “compute,” that would have made rolling everything yourself more appropriate. I think it’d be pretty hard to go back to a place where that’s true—the market has spoken, and it’s OK with bloated, completely broken software that forces them to upgrade their computers every 3 years just to share photos in a web browser and send plain text email to their familes.

                                                                                                                1. 1

                                                                                                                  When was the last time you wrote code that required accurate timezones (UTC is almost always OK for what I do)? And, to be honest, 4,000 lines doesn’t seem like enough to be exhaustive here…

                                                                                                                  Maybe not timezones, but definitely https, authentication libraries, web scrapers, crypto, unit testing frameworks, standard library stuff…

                                                                                                                  I think it’d be pretty hard to go back to a place where that’s true—the market has spoken, and it’s OK with bloated, completely broken software that forces them to upgrade their computers every 3 years just to share photos in a web browser and send plain text email to their familes.

                                                                                                                  Right, but I’m asking historically if this was caused by the rise of component-based programming, as opposed to just being correlated with it, or even if it happened despite it! It’s really hard to prove a counterfactual.

                                                                                                        3. 0

                                                                                                          So… do you not believe in evolution, then?

                                                                                                          1. 1

                                                                                                            Thb, when I read “maybe it’s you”, I understand this as a stylistic device, and don’t read it literally. And I guess it depends on the situation, I totally agree with you than 99% of the “new” stuff invented for the web have no need to be created (which one could generalized to the whole economy if one would want to). I just want to say that there are situations where being open to new ideas wouldn’t be bad, because sometimes bad ideas are kept just because of a network effect.

                                                                                                            And if we’re already talking about what exactly was written (I should have clarified this, so it’s my fault), i was talking about the title. I know the text says something different, that’s why I said “not the way it was intended”.

                                                                                                            1. 2

                                                                                                              Author here. Thank you for your feedback! You’re right: the title may be construed as an accusative. For the record: it is not. I’ll take better care with such things going forward!

                                                                                                        1. 3

                                                                                                          Well, Jobs and Raskin agreed on one thing: They were both utterly opposed to people being able to customize their environments to be more pleasant (or, in fact, possible) for them to work in. That’s what I call the Design Disease: Thinking you know better than your users, and therefore forcing them to do things your way, even when they know a way that’s better for them, given the totality of their environment and workflow. It fits with the Cult of Mac, which can claim things “Just Work” for values of “Just Work” which necessitate building your entire environment out of parts sourced from a single company.

                                                                                                          When that philosophy works, it works well. When it doesn’t, you’re the one holding it wrong.

                                                                                                          1. 6

                                                                                                            Hmm… literally all of the commercially successful platforms I can think of that target non-specialist users have adopted this philosophy to some extent. I mean MacOS (from before it was called that), PalmOS, Windows, iOS, Android… and now ChromeOS, which takes it to an extreme, and is what I usually recommend for young kids and grandparents, even though I really dislike Google the company. It’s just so much less pain for a computer non-specialist to use. In my experience, most people don’t want to “build an environment” at all. They just want a tool that they can understand enough to have it get out of their way while they get on with their work.

                                                                                                            Meanwhile, the year of the linux desktop never came. The closest we have are big slick distros like Ubuntu, which are still way too complex, have too many breakable moving parts, for “regular folks” to be comfortable with – unless they’re especially motivated to learn the arcana. If they do climb up that learning curve, like you and I did, they inevitably accommodate to a whole bunch of idiosyncratic design decisions that went into things like shells and editors and network config: things that, in practice, nobody can redo.

                                                                                                            The conclusion that I draw is that it’s a far greater failure to require your users to customize their environment before they can get on with whatever they want to be doing. For most people, computers have always been a means, not an end. I think it’s a pity how easily technical people lose sight of that.

                                                                                                            1. 1

                                                                                                              Your bigotry against the disabled is unwelcome here.

                                                                                                              1. [Comment removed by author]

                                                                                                                1. 4

                                                                                                                  I have re-read the commend you are replying to and cannot find any bigotry. Can you please highlight the quote where you see it?

                                                                                                            1. 21

                                                                                                              I’m sorry, if I have the skill to build it, i’ll likely build it myself. That’s the beauty of software and computers. These things should be empowering and we should not be at the mercy of “the open market”. In fact, the market kind of sucks for giving you what you want.

                                                                                                              1. 8

                                                                                                                What people want and what is good for them are usually different things, and having a common tool with some common discomfort is far better than a bunch of bespoke solutions.

                                                                                                                It is no accident in history that the spread of interchangeable parts and industry made artisans basically irrelevant.

                                                                                                                1. 10

                                                                                                                  Not if they never get fixed and are poorly documented or hard to contribute changes into. Then people have to create something new in order to fix common discomforts.

                                                                                                                  EG, check out the node ecosystem.

                                                                                                                2. 4

                                                                                                                  Indeed. To bring in a little more jargon, even if I were to believe in such a strong version of the “efficient market hypothesis” that applied outside of formal markets with real prices, why should I expect that it should apply in such a novel and immature area as software, where Ecclesiastes is obviously wrong?

                                                                                                                  1. 6

                                                                                                                    Ecclesiastes

                                                                                                                    Because economics is religion. Religion can’t be wrong.

                                                                                                                  2. 4

                                                                                                                    Author here. Should have posted with the “devops” tag.

                                                                                                                    Absolutely, I encourage you to! The point I try to make in the article is not to deter you from building anything new. Just to make you think if the effort is worth it, and to make you question if the problem you’re solving is indeed a problem that has no solution other than requiring you to build a new thing from scratch. In fact, I repeat this quite a few times throughout the writing. But some things just aren’t the focus of your work, and for those things making a couple of compromises and adopting the general case might be worth it.

                                                                                                                    Glad you think the market sucks when catering to your demands, as diversity is what makes the ecosystem evolve.

                                                                                                                    1. 1

                                                                                                                      Indeed. The market isn’t for building things, it’s for setting prices.

                                                                                                                    1. 2

                                                                                                                      Jef Raskin is not exactly an unsung genius anymore, but I’d still say “undersung”. Something of a tragic hero in the classical sense.

                                                                                                                      The Canon Cat is a little rare and expensive when you can find it, but a Swyftcard replica for your vintage Apple II is pretty affordable still. Also the Cat software (written in Forth!) is fully emulated in the MAME suite. If you find this stuff interesting, I’d strongly suggest at least reading Raskin’s book The Humane Interface. Wikipedia’s page on Archy has some interesting tidbits too.

                                                                                                                      Apart from some good ideas on human interface design, there is a broader lesson to be learned about the real political and economic reasons why technical projects succeed or fail. Smalltalk, Oberon, Lisp machines, BeOS, NeXT, the Newton… all worth study.

                                                                                                                      Lobsters, what are your favorite coulda-been systems? I’d especially love to hear from the old-timers among us.

                                                                                                                      1. 1

                                                                                                                        Mainstream PowerPC Amiga. :’(