1. 3

    Why link to a single-sentence blog post whose only useful information is a link to the browser’s site when you can link directly to the browser’s site?

    1. 2

      Because otherwise he’d have to use the “show” tag due to promoting his own paid product, which would’ve bumped it down in the rankings 😏

    1. 4

      Alternatively, just use a language with a native code formatter. Examples: zig fmt, go fmt, etc. Then you can use whatever your muscle memory dictates while typing in code, and still have a consistent format applied on saving.

      1. 3

        Then you can use whatever your muscle memory dictates while typing in code

        Are you suggesting people sit there hitting space 4 times to align their code?

        1. 2

          People do. (I do, when I’m using a language like renpy where it doesn’t support tabs for indentation at all.)

          If you’re not, then what exactly is the point of using spaces to indent? If you’re just autoexpanding tabs, then your tab expansion is controlled by your tabstop setting, and so you don’t experience any difference when editing code (except that you may need to press backspace four to eight times instead of one when de-indenting & you will find that your source files will be a few hundred bytes longer).

          1. 1

            I think most programmers who prefer spaces (including myself) autoexpand tabs, at least in my environment.

            Main reasons I have for using spaces:

            • Consistency between different environments
            • Consistent visual width for characters
            • Possibility to set guides/constraints for line length
            1. 1

              Consistency between different environments

              As the author of a piece of text, I don’t think I have any right to impose my indentation-width preferences on other readers or editors. If code I have written becomes less readable when the tabstop is set differently, then I have failed to write clean code, and no changes to spacing will fix that underlying problem.

              Consistent visual width for characters

              We already have all sorts of characters that have widths other than 1 (even in monospace fonts, where characters have widths that are integer multiples of the glyph width). Even within ASCII, CR ought to be zero glyphs wide, while LF is sqrt(-1) wide, and backspace is -1 glyphs wide.

              Possibility to set guides/constraints for line length

              Line length constraints are typically with respect to number of characters. In other words, it’s line length rather than line width.

              1. 1

                We already have all sorts of characters that have widths other than 1 (even in monospace fonts, where characters have widths that are integer multiples of the glyph width). Even within ASCII, CR ought to be zero glyphs wide, while LF is sqrt(-1) wide, and backspace is -1 glyphs wide.

                So yes ofcourse LF and CR are exceptions to this rule, however when I think of code I think in lines and columns and not one long string of characters, so to me the characters that represent these columns are the ones that matter when thinking about character width. Regarding backspace and non-ascii characters my strong belief is that those do not belong in source code altogether.

                Line length constraints are typically with respect to number of characters. In other words, it’s line length rather than line width.

                Not entirely true, indeed linters/formatters tend to look at line length, however every text editor I have used tends to visualize these kinds of constraints with a line at a certain line width. Not having to worry about this distinction however is exactly my point about why I think spaces work better for this purpose than tabs. Also although most constraints are indeed implemented to look at line length, I think the motivation behind why that constraint was put in place is usually because of line width which further emphasizes why it is nice to not have a distinction between these two.

      1. 10

        My reactions are:

        • Are the spaces people just now figuring this out? If that is the case, get out of your bubble and into the real world where you can encounter, for example, blind people, whom perceive the digital world through a Braille-display of usually only 1x40 character displays or 2x80 character displays if they are lucky. Taking up 3 tab symbols is way better than taking up 12 or 24 symbols on their displays. Tabs are simply a blessing for accessibility in most cases.
        • Ever looked at a hex/deximal-dump of your source files? I definitely prefer code written with tabs in that case. You just look for the 09 bytes and count them to figure out your level of indentation. Counting to 3 0x09 or 09 bytes is better than counting 12 0x20 or 32 bytes.
        • When writing code, I usually use tabs in an editor which I can configure to output whatever is desired, but I’m hitting that tab-button instead of the space bar. Even in languages where the number of prefix-spaces can be any random number, I still hit tab most of the time and trust my editor to convert tabs to spaces where needed.
        • In the end I really just don’t care and I think this is kind of a non-discussion, because we have plenty of tools that can fix this for us. So if the language you are using is not depended on whitespace (python and Haskell are, but Java, C/C++ etc are not), then just use tabs and let the individual coder do whatever he or she prefers.

        However in defence of spaces:

        • Everything always looks the same way and as intended without any effort on just about every machine.

        I just don’t see why this should still be a problem or even a discussion in 2019.

        1. 16

          If that is the case, get out of your bubble and into the real world where you can encounter

          That’s going too far. I’ve met tons of programmers in lots of spaces. This site was the first site I learned stuff about blind or visually impaired programmers. This is the first time I’ve heard about this issue. My favorite use of the a11y tag so far. A charitable position is to just assume others might have not run into the same people or read the same articles as you.

          1. 5

            Fair enough….

            However, I ran into visually impaired CS students immediately in my freshman year of university. And there was at least one visually impaired student in each year. In fact: There were cohorts in which we had more visually impaired programmers CS students than we had female CS students. So I’ve been thoroughly aware of these issues, right from the start of my career.

            1. 4

              While I had met a few Deaf students during my studies at my university, I never met any blind person. My university also had an active Deaf culture, and I am familiar with their accessibility requirements. Perhaps people with different accessibility requirements choose the university more well known to have catered to people with similar requirements.

              1. 3

                That’s really interesting. I’d have not expected that.

                1. 5

                  Maybe that is because my university had the facilities to accommodate visually impaired students at the science department. It’s something only the bigger ones can afford. And then they have to be willing to go the extra mile as well.

                  Anyway: All I can say is that there seem to be more visually impaired programmers then one would expect if one were just to take a random sample of people from the general population.

                  1. 9

                    This, this, this. People often think disabled people don’t exist or are very uncommon in a space or discipline, not because it’s inherently so, but rather because the spaces those people have been in aren’t accommodating to disabled people, and so those disabled people went elsewhere! (Grumble grumble something about my school saying we didn’t need elevators because no disabled students attended anyway.)

                    1. 2

                      Sometimes the issue is just plain and simple economics.

                      The costs of retrofitting an old building, if possible at all, with elevators are often prohibitively high. Even more so if the building is constructed from concrete. That probably plays a role as well when a statement like that is issued, but is left out by the speaker. This is because the speaker often assumes that the listener has the same background information as the speaker has, which is often not the case. This idea probably has a name already, but I am not aware of it. This is why empathy and the ability to read between the lines correctly, without making unnecessary assumptions are vital skills.

                      1. 3

                        Believe me, as the former treasurer of the student disability advocacy organization at Beloit College, I’m well aware of these economic factors. I was merely using that as another example of the effect you mentioned.

            2. 11

              blind people, whom perceive the digital world through a Braille-display

              Side tangent: I’ve never known a blind person in tech with a Braille display. Everyone I know uses Jaws, ZoomText or some other screen reader and headphones. One of my friends said he never liked Braille displays; how they were super expensive and didn’t work well with a lot of the software he used.

              The only place I’ve actually seen one of these was in the movie Sneakers.

              1. 1

                I have a (fully) blind relative which uses one for all interaction with a computer in combination with headphones and screen readers. It is apparently nearly impossible to type a regular letter or e-mail without a Braille display. The smartphones are the exclusive domain of just screen readers and voice typing though.

                1. 1

                  Wait a minute, can’t blind people just touch type on a regular keyboard? I mean, I’m not blind, but that’s what I do. I arguably correct my errors faster, because I can see them on screen, but they could be nearly as fast by hearing their typos. Couldn’t they?

                  1. 2

                    That doesn’t work in a lot of cases, like coding or excel spreadsheets for example. Then there is also the fact that a moderately skilled reader, can read about 2 to 3 times as fast as they can process the text by hearing. Truly skilled readers can read about 5 times as fast. Screenreaders are capped at what our human auditory systems can process and visually impaired people can stretch the capabilities of their hearing to about 1,5 to 2 times the regular speed by setting the screen reader to a faster setting, but that still means they are capped at what the average person can achieve.

                    If you provide them with a fast Braille display, that bottleneck disappears and then they can become as fast as regular people, provided that they did put up the required practice.

                    1. 1

                      There’s the thing I don’t understand: how does a Braille display helps you type? You don’t need insane reading speed to process the 120+ words per minute you’re typing. Which would be a very high typing speed, but nevertheless slower than normal speech speed. And screen readers generally are even faster. The only way audio feedback could be too slow to keep up with your typing would be if you’re steno typing.

                      If you’re using a Braille display, you need to move your hands to the keyboard to type, and move them again to read what you just typed. And you can’t do them at the same time. If you’re using an audio feedback, you could hear what you’re typing, without any switching.

                      But I’m speculating here. How does your relative actually write text?

                      1. 4

                        First you’ll need to know that these devices usually provide multiple functions and that some of these Braille displays double as a Braille typewriter while others purely function as displays for computers, which are to be used in combination with a regular keyboard. Take a look at those links, you can get a general idea of what the workflow looks like by just looking at the pictures.

                        If you have a display that also lets you type in Braille, you can simply type out your characters that way and the corresponding characters will appear on the display and in the text file of the document. In this case the thumbs serve as the fingers that can be used for “reading”, just like you would use them to press the space bar, but some people also move their index fingers back an forth.

                        The display-only versions are basically used in a similar fashion and take the place of an RSI palm-rest below the keyboard.

                        The small buttons below the Braille cells are shortcuts which can position your text cursor immediately at that place of the specific character of the cell above so you can edit it. The other buttons are directional d-pads which are used to move the cursor around much like the regular arrow keys on a regular keyboard do, while the other buttons can be used to move through the lines of text on screen in four dimensions like next line, previous line, move contents of display 1 character left/right or move contents of display 40 characters left or right etc.

                        Visually impaired people can obviously touch-type, but that does not mean that they magically make less mistakes than we do. Then there is also the fact that screen-readers often mess up on pronunciation, or are downright incapable of dealing with a lot of edge cases.

                        And there is also the “reading” aspect that these devices enable. A lot of content is available in some form of digital text, but not in audio-book format (although this has gotten a lot better in de last 20 years). With a display like this, you can give a visually impaired person access to the entire internet and just about every webpage (as long as it’s low on JavaScript), text-file, epub or pdf out there.

                        The only real downside to these displays is that that are very expensive (about $3000 - $5000 depending on the version you are using) and that they are simply inaccessible to everyone without proper healthcare insurance.

                        1. 2

                          Okay, looks like the dual keyboard/Braille display is actually a chording keyboard. That kinda changes everything. Thanks for the lesson.

                          1. 1

                            Okay, looks like the dual keyboard/Braille display is actually a chording keyboard. That kinda changes everything.

                            That’s just one of the possible setup you can combine though.

                            Thanks for the lesson.

                            You’re welcome.

                2. 1

                  From what I understand, Braille displays are much more common in Europa than the United States.

                  1. 2

                    Ah yes, all those braille displays on europa.

                    1. 1

                      I know your reply has a sarcastic undertone, but ironically, you may be right on this one due to the difference in healthcare insurance between Europe and the United States. See my remark above. Funny enough it are American companies that usually produce these displays.

                      1. 4

                        I suspect his reply was a sarcastic way of pointing out that in English, Europa is a moon of Jupiter (and is, as far as we know, not colonized).

                3. 4

                  Are the spaces people just now figuring this out?

                  Some of us, yes. But that’s privilege for you: you don’t know you’re blinkered until you do.

                  1. 4

                    Don’t take this personally. A few hours ago the post was accompanied by a request from the poster which said something along the lines of: “I found this on hacker news, I want to know what reactions this community will provide.”

                    I wrote my reply with that in mind.

                    1. 4

                      Oh, I didn’t, but thanks for clarifying! :)

                      1. 4

                        The text was edited by the moderators; It was not my intention to mislead.

                        1. 2

                          I suspected that much. No offence taken…

                    2. 1

                      Just out of curiousity, in what situations would it be advantageous to look at a hex dump of your source files instead of your source files in textual representation?

                      1. 1

                        I encountered this situation once when I was providing support for a server with a bunch of php scripts on it, where one of the files would not execute properly. It turned out that the file contained an UTF-8 byte order mark that was causing the problem. I discovered this by pushing the file through xxd and I noticed that the sections with spaces were less easy to interpret than the sections with tabs.

                        But I’ll admit, that this is not a situation you will run into often and that I just threw it in because it randomly popped up in my mind.

                    1. 8

                      the infinite backlog encourages a culture of catching up rather than setting the expectation that conversations are ephemeral

                      This was a very interesting point I hadn’t even considered before!

                      1. 7

                        An alternative, however, is the option to display to newly joined users the last, say, 25 lines of history in the channel. Many users may think a channel is dead, or struggle to understand the context of the current conversation on join, and this is something that could help alleviate it.

                        It’s something we’re considering, and would likely be opt-in by channel operators via a channel mode - with the added bonus of this meaning that users who are sensitive to such backlog can be warned by their client when it receives the channel modes.

                        1. 2

                          An alternative, however, is the option to display to newly joined users the last, say, 25 lines of history in the channel. Many users may think a channel is dead, or struggle to understand the context of the current conversation on join, and this is something that could help alleviate it.

                          This is how XMPP has worked for years, and is the main reason I chose it over IRC when I was first getting into these things back in the day.

                        2. 4

                          This was a very interesting point I hadn’t even considered before!

                          One interesting thing: XMPP supports “infinite backlog” but some rooms (such as prosody) explicitly do not enable it for the same reason - to keep the discussion ephemeral.

                          1. 3

                            Only with some recent draft extensions does XMPP support infinite backlog. By default it uses a finite backlog to get you some context when you join – which is of course and amazing killer feature by itself and the main reason I originally switched to XMPP.

                            1. 4

                              Only with some recent draft extensions does XMPP support infinite backlog.

                              I know that in XMPP timeline it’s “recent” but I think it’s good to put it into perspective: MAM was initially released in 2012. Prosody module implementing that is 7 years old.

                              1. 1

                                Just as context for people reading the thread and wondering, Prosody’s mod_mam (backlog module) expires messages after one week by default. You can configure it for months, years, or forever, but honestly, one week is a pretty good default.

                            2. 1

                              I don’t think ephemerality is as common as he makes it out to be, but putting the onus of logging on individual users is itself a big deal & desirable. Social norms on irc are that everybody keeps full logs & nobody ever logs off (and bigger channels tend to have logger bots that don’t have anybody on ignore, often keeping public logs), so arbitrary scrollback is generally available if you ask for it.

                              The difference is that, because everybody keeps their own logs, authority with regard to recording history is also distributed: Slack, Inc can rewrite the history of any conversation on Slack any way they like, but it’s much harder for somebody to hack into the machines of everybody on an IRC channel and falsify their logs.

                              The logs we keep on IRC are records of what we see (or what we would see, if we weren’t AFK), reflecting our ignorelist and such, & the absence of a single canonical record is philosophically important.

                              1. 1

                                This is the reason I never really got into web BBSes as general-purpose chatting platforms. (Unlike domain-specific news aggregators like Lobsters, where we’re only commenting on articles.) I love that I can just drop in and drop out any time I like with IRC.

                              1. 14

                                The main issue that IRC faces imo is the lack of connection persistence: If you get thrown into a room without knowing if your spamming by interrupting, how active it is, etc. you’ll have a bad experience. If you can’t turn of your laptop because you’re still expecting a response, you’ll have a bad experience. If the suggestion to fix this is to try to set up one of the who knows how many broken bouncer servers, you’ll have a bad experience.

                                And if you have a bad experience, you’ll loose users.

                                1. 3

                                  But isn’t this more natural? Consider entering a room in real life where people may be having a conversation. Do you barge right in and immediately start talking at everybody? Of course not, you take time to see who’s present and what the feel of the situation is.

                                  1. 11

                                    Of course, that might be the case, but now imagine a room with people sitting around staring into the void, and seeing no reaction when you ask a question. Since you just suddenly appeared in this room and have no ability to look back into it’s history (one unrealistic fact for another) you’ll have to wait to see if anyone is even alive – what the value of being “natural” is in this situation can clearly be questioned.

                                    1. 3

                                      IRC has addressed this problem mostly through norms rather than technically (i.e., it’s sort of impolite to just join a channel, ask a question, and leave if you don’t get an answer: proper netiquitte is to idle in every channel you think you’re liable to be interested in using more or less forever, which produces local logs & also raises the likelihood that conversation will happen & relationships will be developed). IRC is not stackoverflow, in other words, & this makes IRC great for developing long-term relationships in a community but terrible as a mechanism for newbies to get help.

                                      I think the problem here is not that IRC fails to be stackoverflow, but that folks who do a lot of their dev communication on IRC have made the mistake of suggesting non-developers use IRC for tech support, filling channels with users who don’t know or care about the norms or about developing long-term relationships as regulars. (Or, in said in the hyperbolic & slightly acid way I used to say it back in my heavy IRC days, “people who shut off their computers shouldn’t be on IRC”.) Mailing lists (unless they are announcement-based) have basically the same issue.

                                      There are common norms around hosting public logs, as well. As Drew says, pretty much everything that slack tries to build in is already supported on IRC as an add-on (or as expectations around behavior), & this allows the system to be accessible to a wider variety of people – it’s just not accessible to people who are unwilling to learn the norms or use the tools (i.e., people who aren’t going to buy into the community).

                                      1. 1

                                        people who shut off their computers shouldn’t be on IRC

                                        I like this, well said!

                                      2. 3

                                        Yeah, the in-person experience usually has existing conversations you overhear, people physically situated in a way that tells you stuff, and even their gestures or clothing might indicate some interests. Whereas, IRC is much more like a void at the start unless it’s really active.

                                      3. 2

                                        If I wanted something as shitty as real life I’d go outside. I want my tools to do better than I could do without them.

                                      4. 1

                                        That’s why there are IRC bouncers/persistent clients. The problem is that you either pay a monthly fee or you have to figure out how to set it up yourself.

                                        That said, all of the alternatives to IRC offer worse experiences.

                                        1. 6

                                          you either pay a monthly fee or you have to figure out how to set it up yourself.

                                          That’s not even the primary issue, instead it’s that in practice most bouncers are unmaintained, have very specific and peculiar settings, too many moving components, bad documentation (*cough*, ZNC) etc. They are generally a mess and don’t integrate all to well into IRC as a protocol in general.

                                          That said, all of the alternatives to IRC offer worse experiences.

                                          If I’m quite honest, and I don’t like saying this, but most IM networks like WhatsApp or Facebook Messenger offer a far more stable and expectable experience, which is why people use these kinds of clients/networks. The network effect only determines which from this category becomes popular.

                                          1. 2

                                            most bouncers are unmaintained, have very specific and peculiar settings, too many moving components, bad documentation (cough, ZNC) etc

                                            Weechat is really excellent. It still has some upfront ‘costs’ in terms of setting it up, but it’s really easy and pleasant, and I’ve had no real issues with IRC via Weechat.

                                            If I’m quite honest, and I don’t like saying this, but most IM networks like WhatsApp or Facebook Messenger offer a far more stable and expectable experience,

                                            I also end up using WhatsApp from time to time, and it’s a far, far, far worse experience than IRC. The web client sucks, and has all sorts of connectivity issues. If your phone isn’t on the same network, it simply doesn’t work. It expects to be used on mobile. I can’t easily adjust how things are displayed to me in the app. I can’t connect to it from, say, Emacs.

                                            So in practice I much more frequently check IRC than I do WhatsApp, despite having family members etc. on WhatsApp.

                                            Thus, I think your example of WhatsApp is excellent. As an example of a far worse, very miserable user experience.

                                            1. 1

                                              (You might find sms-irc quite useful… :p)

                                          2. 2

                                            Have you given Matrix a fair shake?

                                            1. 1

                                              Eventually I’ll probably try to figure out how to set up a Matrix bridge or whatever via Weechat.

                                              1. 1

                                                No need for a bridge if you’re an end user and just want Weechat to speak Matrix:

                                                https://matrix.org/docs/projects/client/weechat-matrix

                                        1. 4

                                          At work, my main project has been in limbo for a while as we try to work out a locking strategy for a cache. (We need to perform bulk operations & somehow decompose the results into individual elements in the cache while being thread-safe, joining unrelated requests from multiple threads that happen to coincide into single bulk request, avoiding duplication if equivalent requests come in at the same time, and try to avoid leaking information via timing.) It’s a mess, but if we can agree on a plan, my week will probably be spent implementing that.

                                          With regard to side projects, I will try to get around to finally implementing an event system for the toy graphics library I wrote half of a couple years ago, and I will watch & judge entries to my annual no-budget film contest once entries close on the 4th.

                                          1. 2

                                            How many operations per second are you handling on the cache? Are there some really hot keys?

                                            Depending on the scenario, a cool strategy is to hash all the input values and use that as the key in a key-value store. The nice thing about that approach is that the cache can be eventually consistent. If a value is missing it might cause some over-work while multiple clients are computing the same value. But in exchange the system is lock-free.

                                            1. 1

                                              a cool strategy is to hash all the input values and use that as the key in a key-value store.

                                              We’re doing that, but we’re using an adjacent keyspace to an existing set of items in the same cache, & trying to reuse some code. There are a couple issues:

                                              • the existing code is basically cache-autovivification: it fetches from the cache if an entry exists, and otherwise performs the underlying request and caches it. This isn’t compatible with bulk requests.
                                              • since the cache has its own expiry logic, there’s a potential locking problem introduced by any attempt to avoid greedy requests. It’s possible for a cache entry to expire between the existence check & the contents fetch (and, indeed, this has happened). Waiting for a queue to fill up in order to perform bulk requests makes this problem harder – entries not included in the bulk request because they currently exist in the cache might be deleted before the queue fills up or gets flushed, so they need to be atomically copied so the values don’t get GC’d (i.e., they need to be locked on).

                                              I’m not actually convinced that this proposed cache will give us much of a performance boost, even if we somehow made it lock-free. But, with our current constraints, making it both safe & fast is hard (and we will probably hammer the underlying service anyway, because we’re specifically dealing with a sudden expansion in the set of circumstances under which the service is used at all, translating to an expansion in the variety of keys).

                                          1. 2

                                            There’s so much wrong here it hurts. Let’s start with the idea that command lines are somehow more honest and have “no hidden state” - it’s utter bollocks. Command lines as they currently exist are entirely about hidden state and options and secret incantations that must be pre-memorised by the user before they actually try to do anything.

                                            The problem with software isn’t that “so-called programmers don’t know about pointers and cache lines” - the problem with software is that we haven’t updated the interfaces between its various parts since the 1960s, and that the world of software authorship (plain text files full of jargon) is completely detached from the world of software execution.

                                            1. 5

                                              The VMS command line was very discoverable and consistent (then again, all the programs were written by a single company). For modern examples of command lines, the CLI on professional routers are incredible. At any point you can hit TAB or ? and get a list of possible completions from that point in the command line, and you only need to type as much to make the selection unambiguous (for example, on Cisco, “sh int” and “show interface” do the same thing).

                                              And despite source code being in text, I can still work with code written in the 60s and 70s. Try loading a Microsoft Word document from 1986 …

                                              1. 1

                                                It’s not that I think all command lines have to be terrible, or even that all the ones we have are. But there’s little to no work taking place to improve them. As for word, I think the problem is poor documentation and proprietary formats, rather than text vs binary. And yes, old word files are terrible, given they’re basically core dumps :)

                                                1. 1

                                                  At any point you can hit TAB or ? and get a list of possible completions from that point in the command line

                                                  zsh also supports this, which is fairly impressive considering it’s doing so for an arbitrary set of binaries.

                                                2. 3

                                                  Command lines as they currently exist are entirely about hidden state and options and secret incantations that must be pre-memorised by the user before they actually try to do anything.

                                                  I hear this take a lot, and I can’t understand it at all. As awkward as the command line can sometimes be, it’s a learnable system: it exposes all its facilities and parameters through a roughly-consistent interface (i.e., no ‘hidden state’ because everything about it is viewable and changable by the user), has built-in documentation, and users can learn incrementally rather than memorizing anything because there’s no boilerplate to speak of. There’s only slightly more front-loaded learning than a GUI, in exchange for a lot more control: any literate person can become proficient in using a command line to perform relatively complex operations, without ‘learning to code’. It’s the best user interface 1969 has to offer, and the biggest problem with it is that after fifty years it has no widely-available competitors.

                                                  It’s possible to make an interface that improves substantially on a unix CLI, keeping the level of automatability & control while making inter-process communication more general, syntax more consistent & easier to learn, and integrating support for rich media. PARC did it in the 70s. Smalltalk-style systems didn’t take off, & the reason seems to be their limited support for binaries (which have some performance benefits mostly obviated by JIT, and have opacity, which we obviously don’t care much about anymore since we’ve moved much of our ecosystem to web apps).

                                                  It’s not really surprising that somebody who doesn’t feel up to implementing a Smalltalk-style system would bring up command line interfaces as an example of handing power & access to the end user. The difficulty of learning to use a command line is vastly overstated, & almost all of it is the result of attempts at maintaining backward compatibility with older, organically-developed, competing systems, rather than essential parts of the interface paradigm.

                                                  1. 3

                                                    secret incantations that must be pre-memorised by the user before they actually try to do anything

                                                    Your problem with the command line is it requires learning?

                                                    1. 3

                                                      I think that there is a problem with discoverability in CLIs. As I’ve said many times, the text-primary interface (ie. everything is a char *) necessarily makes it harder to maintain a uniform interface, and also limits the user in reducing/constructing everything to/from text streams.

                                                      Add to that the historical baggage of shells, all the environmental variables that can be set and mess up the internal working of some library or dependency, the “don’t say anything if nothing goes wrong” mindset of the unix philosophy (which makes sense for typewriters, but isn’t required for modern graphical displays), the hacks upon hacks that let us even use the same tools that were thought of in the 70’s somewhat usefully, etc.

                                                      The CLI has problems that people often mythologise instead of facing.

                                                      1. 1

                                                        The CLI can be made more discoverable, but it has better discoverability than basically all GUI environments (especially if you’ve got a modern shell, where tab completion works nicely). UNIX shells tend to be bogged down under the weight of backward compatibility and technical debt (which is why zsh’s default configuration is borderline unusable), but that’s not the fault of the command line model.

                                                        More problematic is the way that the shell doesn’t go all the way down – the interactive shell layer just manipulates individual tools, usually written in C, and even very good shell scripters have to put in a lot of effort if they want to also learn C. Which means that, at a certain point (actually pretty early), users run into a wall where they need to do a bunch of extra learning if they want to change the behavior of a certain class of tools, & not all of that information is available from the shell’s help system.

                                                  1. 2

                                                    I’m attending a 4th of July party, finishing Neal Stephenson’s new book, getting through a backlog of movies, & maybe writing an essay or two.

                                                    1. 10

                                                      This feels like it misses that a lot of this complexity of there because people like it, not just because of “fighting for attention”. Major things gopher lacks:

                                                      • Being able to include images, as illustrations or to discuss them

                                                      • Text that looks good on a wide range of devices. Hard word wraps assume a number of characters per line that don’t work for phones.

                                                      • Communications that can’t be observed or modified by anyone who happens to be on the network path between you and the server.

                                                      Only the last one is fundamentally complex, but these all provide real value.

                                                      1. 1

                                                        Images can be transferred by gopher but not displayed inline. I don’t think this is necessarily a bad thing: usually, when I see an image on the web, I have not wanted to see it, & to the extent that I do want to see such images, I would find it completely acceptable to have performed another operation to download and display it.

                                                        Hard word wraps, certainly, are bad style and should not be used (on gopher or elsewhere). Every text display system is capable of character-wrapping on lines (if not word-wrapping). This is not a problem with gopher, but a problem with the people who write documents for gopher.

                                                        Crypto is useful if (1) a MITM has a reason to modify content, or (2) a MITM has a reason to intercept content. In the absence of stuff like authentication & authorization (stuff bolted onto the side of HTTP by NetScape), gopher documents are mostly static & gopher users are practically (if not reliably) anonymous – in other words, no secret information should ever be transmitted over the protocol, nor should information ever be tailored to individual users in any way. (After all, gopher is so stateless that it closes the socket after writing a response.) Despite some folks trying really hard to bolt crypto onto gopher, I hope they do not meet with success, because the inability to target users or perform commerce on gopher is what keeps it usable as a hypertext system.

                                                        The complexity of the web is not because ‘people like it’ but because features were deemed useful for potential profit centers & added without thinking the consequences through. Any system built organically by beginners will eventually end up looking like the web.

                                                        Anyway, I don’t think the primary thrust of this essay is promoting gopher. Instead, gopher is an example of how to get 90% of the desirable functionality with less than 1% of the code (and less than 1% of the undesirable stuff).

                                                        My own (very strong) take: HTML (all of it) is a bug; HTTP (most of it) too; CSS is a collection of bugs intended to work around HTML’s limitations without actually fixing them, and ends up merely adding complexity. There is no utility in preserving a knot of technical debt this way. The features added largely should either not exist or should have been provided by already-existing facilities (that could not be used because of problems introduced by poor design).

                                                        1. 2

                                                          I want to focus on crypto, because that’s both the most complex feature we’re talking about and the one with the strongest case for it. Consider the case where gopher or something else similarly simple succeeds to the point where it’s an important protocol that a lot of information people care about is transmitted across. Sure, responses are not individually tailored, which means the information shouldn’t be secret, but there are at least two ways you still need crypto:

                                                          • Without it other people can tell what you’re reading. You should be able to read things without your ISP/coffee shop/government knowing.

                                                          • Without it other people can modify the content. This includes the range from public WiFi inserting ads into responses (simple text ads would still be commercially viable to inject if gopher/etc took off) to governments modifying news coverage or editorials to support their position.

                                                          1. 1

                                                            That’s true, but consider possible threat models. Why do people care what you’re reading? Why do people want to change the content?

                                                            In the absence of commerce & personalization, vast third party commercial enterprises have no reason to do drag-net surveillance (they don’t care what you’re reading because they don’t know who you are) or to change data (they don’t know who you are or what you’ve been reading, so they have no reason to believe they can improve revenue by changing ads, nor does inserting ads make as much economic sense).

                                                            In other words, your threat model is substantially less vague: you only need to care about secrecy if you personally know of specific organizations with a specific interest in specifically you, & you only need to care about anti-tamper if you specifically know a MITM has reason to change your stream (to feed you modified information for political reasons or something).

                                                            If either of those things are true, it makes sense to use crypto for gopher. The appropriate way is probably to use ssh tunneling or tor, both of which already work & require no changes to the protocol.

                                                            1. 3

                                                              You’re forgetting authoritarian governments who have a vested interest in controlling the information their citizens consume.

                                                              1. 1

                                                                An authoritarian government is a known specific organization acting as a MITM with reason to change your stream. I intentionally specified the threat model to include that. Even so, authoritarian governments don’t want to intercept or modify all content – only certain types that are generally predictable.

                                                              2. 2

                                                                That’s true, but consider possible threat models. Why do people care what you’re reading? Why do people want to change the content?

                                                                To inject advertising and make an extra few cents. There are already instances of ISPs doing this.

                                                                1. 1

                                                                  People barely pay for targeted advertising (like, a couple cents for a few hundred click-throughs – not even impressions). What makes you think anybody will consider it viable to pay for advertising to be injected on a platform that supports neither tracking nor click-through metrics.

                                                                  1. 3

                                                                    People barely pay for targeted advertising (like, a couple cents for a few hundred click-throughs – not even impressions).

                                                                    This sounds way off. Quickly searching I see AdStage claiming “In Q1 2018, advertisers spent, on average, $2.80 per thousand impressions (CPM), and $0.75 per click (CPC). The average click-through rate (CTR) on the GDN was 0.35%.” Those are in-line with what I’d expect to see, and would be $75 for a hundred click-throughs, not $0.02. And this is for a mixture of personalized and unpersonalized ads, since it’s an average across the GDN.

                                                                    There’s also content-based targeting: inserting ads for credit cards into someone’s post on how to choose a credit card would be very profitable.

                                                                    What makes you think anybody will consider it viable to pay for advertising to be injected on a platform that supports neither tracking nor click-through metrics.

                                                                    Advertisers bought ads before the internet, and still buy ads in untracked media: billboards, tv spots, radio, etc. Personalized ads are worth more, sure, but not so much that only personalized ads are worth running.

                                                                    You also can still track clicks through URL decoration. This is like when you see an ad on the subway and it gives a url like www.example.com/subway.

                                                                    1. 1

                                                                      This sounds way off.

                                                                      Numbers are from my experience running ads on blogs & personal websites since 2006. I have made a total of nine dollars and change from those ads, eight dollars of which come from a 2-month period in 2006 during which things were computed differently. I’ve had thousands of impressions and hundreds of click-throughs. Maybe my blogs were exceptionally hard to target or attracted only low-paying advertisers, or maybe AdStage’s metrics are biased by a handful of folks spending thousands on SEO or click farms.

                                                                      Advertisers bought ads before the internet, and still buy ads in untracked media

                                                                      You also can still track clicks through URL decoration.

                                                                      Fair enough. I don’t think it’s a major risk, even in the case that gopher really takes off, on the grounds that the main lesson from adtech (and the falling price of personalized ads) is that even in the best-case scenario (micro-targeted ads with 100% tracking across sites), ads don’t work well enough to spend market rates on. That said, it’s not like people don’t regularly make terrible business decisions.

                                                                      Tracking through URL decorations is definitely a thing, but I only really see it used in an influencer context (where somebody has a strong parasocial relationship with, say, a podcast host & so is disposed to include the tracking info when retyping a URL). With third party ad injection, impressions are unintentional on the part of the user and click-throughs are accidental. It’s very different from someone you trust recommending things to you. Techniques to turn accidental click-throughs into impulse purchases are less effective when you can’t make purchases through the same protocol, as well.

                                                                      1. 1

                                                                        Numbers are from my experience running ads on blogs & personal websites since 2006. I have made a total of nine dollars and change from those ads, eight dollars of which come from a 2-month period in 2006 during which things were computed differently. I’ve had thousands of impressions and hundreds of click-throughs.

                                                                        Hundreds of click-throughs with thousands of impressions seems much higher than I’d expect; normally you see 0.1% to 1% as many clicks as impressions?

                                                                        I’ve also had ads on my personal sites, going back to late 2010, though I had them turned off for a while 2015-2018. Checking AdSense, I see a CPM of $1.79, and a CPC of $0.54. These are also after AdSense’s 32% cut, which means advertisers are paying more like $0.80 CPCs.

                                                                        (Disclosure: I work for Google, though I’m speaking only for myself)

                                                                    2. 1

                                                                      Because it would be so cheap to inject content into text as to make it worth it regardless of targeting or tracking. Look at spam email. Or how Google displayed ads in GMail based on text in the messages. That’s a level of targeting that might give it value.

                                                                      You’d have to be part of the connection chain like an ISP or WiFi provider, unlike email where anyone can send mail to anyone. But “free” WiFi could have the ability to do this and someone might think it worth doing. A lot of stores (or places otherwise selling something) provide WiFi and would have an incentive to advertise in any plain text protocol if the tools were available to them.

                                                                      1. 1

                                                                        If you’re a large ISP & you have enough of a monopoly that you have no risk of losing customers by alienating them with injected ads, you have the potential to inject ads & perhaps the motive. (And, Comcast famously did this with targeted ads, replacing already-existing ads with their own.) But, that’s a lot more effort for less return than simply increasing your prices and lowering your quality of service.

                                                                        If you’re using gopher and your ISP has started doing this, I would recommend using an encrypted tunnel. I do not think gopher ought to have out-of-the-box encryption. Gopher is nice because even a newbie programmer can implement a gopher server or a gopher client in a couple lines of code. Using a tunnel maintains that simplicity, while building encryption into the protocol means only crypto experts can write gopher implementations anymore.

                                                                        1. 2

                                                                          If you’re using gopher and your ISP has started doing this, I would recommend using an encrypted tunnel.

                                                                          I agree. I think something like Tor is probably the best solution as it solves multiple problems such as protecting your IP, protecting your DNS queries, as well at protecting the data in transit. And as long as it’s not a hidden service only, it can be opted out of to maintain backwards compatibility or remain light weight if someone doesn’t want/need the security.

                                                          1. 2

                                                            Not sure what a misunderstanding of Marie Kondo has to do anything, but sure, go off on one about charlatans… This just feels like reactionary bullshit (rather than anything revolutionary) with a total failure to understand what has changed about the world outside the computer and what people’s relationships with computers is.

                                                            1. 1

                                                              What, in your opinion, has changed about people’s relationship to computers since 1990 that justifies the complexity of, say, web browsers?

                                                              1. 4

                                                                The fact that on the web, you can buy almost any product you want, transfer your money around, plan and book your next vacation, (in some countries) you can register a car, your children and even yourself, or in other words, the “world wide web” has become far more integral and it’s requirements have grown from becoming a markup protocol to one of the main communication media of our global society.

                                                                I’m not sure if you would say it “justifies” it, but I do think that it explains it.

                                                                1. 1

                                                                  Absolutely. We’re using the web for a wide variety of things that it’s not meant to do, and this required sticking a bunch of extra crap on top of it, and the people who stuck the extra crap on top weren’t any more careful about managing technical debt than the people who designed the thing in the first place.

                                                                  There’s a need for secure computerized mechanisms for commerce, exchange, and identification management. Using web technologies to produce stopgap solutions has lowered the perceived urgency of supplying reliable solutions in that domain. It’s put us back twenty-five years, because (at great cost) we’ve made a lot of stuff that’s just barely good enough that it’s hard to justify throwing it all out, even when the stuff we’ve built inevitably breaks down because it’s formed around a set of ugly hacks that can’t be abstracted away.

                                                                  1. 3

                                                                    But that’s the thing – the web you talk of is little more than ruins that people like me or you visit and try to imitate. It has become irrelevant that the web “wasn’t meant” for most of the things it is being used today, it has been revamped and pushed towards a direction where it retroactively has been made to seem as though it had been made for it, it’s history rewritten.

                                                                    It’s not clean, but with the prospect of a browser engine monopoly by groups like Google, and their interests, this might get improved on for better or worse.

                                                                    The point still stands that I have made elsewhere that the web has been the most fertile space for the real needs of a computer users, both “consumers” as well as marketing and advertisement firms – one can’t just forget the last two, and their crucial role in building up the modern web into something more or less workable.

                                                                    If we had wanted the web to be “pretty” and “clean” I think it would have had to have grown a lot more organically, slower and controlled. Instead of waiting for AOL, yahoo and gmail to offer free email, this should have been locally organised, instead of having investors thrown into a space where the quickest win, technologies and protocols should have had time to ripen, instead of having millions of people buying magical computer boxes that get better with every update, they should have had to learn what it is they are using – having have said that, I don’t believe this would have been in any way practical. Beauty and elegance don’t seem to scale to this level.

                                                                    1. 1

                                                                      The lack of cleanliness isn’t merely a headache for pedants & an annoyance for practitioners: it makes most tasks substantially more difficult (like 100x or 1000x developer effort), especially maintenance-related tasks, and because the foundations we’re building upon are shoddily designed with unnecessary abstraction leakages & inappropriate fixations, certain things we need to do simply can’t be done reliably. We’re plugging the holes in the boat with newspaper, and that’s the best we can do.

                                                                      Beauty and elegance don’t seem to scale to this level.

                                                                      Scaling is hard, and I don’t expect a large system to have zero ugly spots. But, complication tends to compound upon itself. For the first 15-20 years of the web, extremely little effort was put into trying to make new features or idioms play nice with the kinds of things that would come along later – in other words, everything was treated like a hack. Tiny differences in design make for huge differences in complexity after a couple iterations, and everything about the web was made with the focus on immediate gains, so as a result, subsequent gains come slower and slower. Had the foundational technologies been made with care, even with the kind of wild live-fast-die-young-commit-before-testing dev habits that the web generation is prone to, the collapse we are currently seeing could have been postponed by 20 or 30 years (or even avoided entirely, because without the canonization of postel’s law and “rough consensus and running code” we could have avoided ossifying ugly hacks as standards).

                                                            1. 1

                                                              Just a nitpick, I’m not sure if “Against complexity in computing” is the best title, since the first thing I thought of was complexity theory.

                                                              1. 1

                                                                ‘Complication’ would probably be a better word, yeah.

                                                              1. 7

                                                                Is the problem OP complains about (professional front-end devs who don’t know HTML) real? When I was a kid, there was nary a middle-school student who didn’t know HTML…

                                                                My biases make me want to believe him, but if I want to believe something, that’s a red flag that I should be extra careful to make sure it’s really true.

                                                                1. 10

                                                                  It is absolutely real. Many devs learn a framework and only speak and think within that framework, not realizing it’s a pile of code that sits on top of the ‘native’ html/css/js stack. I’ve worked with several. It’s a dangerous mindset to take but it isn’t all bad. Those frameworks exist to increase productivity, so some amazing stuff gets built quickly. But sometimes, without that lower-level knowledge (and I kind of smirk at the idea that html/css/js is ‘low level’), weird things happen.

                                                                  1. 6

                                                                    Wow. I’ve run into some folks who are afraid to write vanilla javascript, but I’m lucky enough to have never run into somebody who can’t at least generate HTML.

                                                                    1. 2

                                                                      I was reading this and waiting for the point where it would say something that wasn’t blindingly obvious (to me), but it never happened. But I suppose there must exist people to whom this is news, otherwise how would you explain the existence of so many bad web apps?

                                                                    2. 2

                                                                      I’ve been learning webdev recently (I have experience with embedded & IoT programming, but not much actual web stuff) and I find it sort of unfathomable to not learn anything about such a fundamental technology…

                                                                      1. 3

                                                                        Right? Though, to be fair, when I started coding it was also pretty normal for people to learn assembly – the expectation to understand history & the system as a whole has gone down as entry-level wages have increased.

                                                                        1. 2

                                                                          But then again assembly is one or two levels of abstraction above literally thinking about voltages and transistors, which are incredibly complex and basically require abstraction to do any sort of productive work!

                                                                          Is the same thing true about HTML and CSS? Maybe, but definitely not to the same degree. I think you could draw the line at Single-Page web applications, which is where I believe relying only on vanilla JS makes things difficult. But a lot of websites don’t need to be SPAs, and creating something simpler would make the web significantly more accessible.

                                                                          1. 5

                                                                            I wouldn’t say that assembly is one or two levels of abstraction above voltages. Assembly is one level of abstraction above microcoded machine language. Beneath that, you’ve generally got people thinking in terms of gates. In college, as part of a sophomore-level class, we were supposed to design a 4-bit CPU from gate level to opcodes & then write assembly for it – something that wasn’t terribly difficult & gave some insight into how CPUs work, but also didn’t teach me a damned thing about electrical engineering.

                                                                            HTML & CSS are document-formatting systems, and they require workarounds and abstractions in order to be borderline usable as application GUI libraries. Even then, there’s enough abstraction leakage that I would expect everybody who does web app development, even if they primarily use a big framework, to occasionally need to write some plain javascript that injects plain HTML into the DOM.

                                                                    1. 14

                                                                      I still can’t get over the fact that someone got an idea to refresh HTML document tree 60 times per second and make HTML document viewer render it over and over and call it as “application”.

                                                                      It’s so wrong on just too many levels that I don’t even know where to start, and people basically just don’t even notice that.

                                                                      1. 10

                                                                        But it doesn’t actually work the way? In AJAX apps, DOM is only updated on events (e.g. click, user network data received). You would have to have a timer to actually update it regularly in the background.

                                                                        Probably the place it gets close to that is when they hijack the scroll event, which is horrible. But even that’s not changing the DOM if you’re not scrolling.

                                                                        FWIW I agree with the premise of the OP, but I don’t think your criticism is accurate.

                                                                        1. 7

                                                                          It’s not the first time that someone got an idea to build GUIs by just extending existing document-rendering technology…

                                                                          1. 9

                                                                            DPS is a little bit different, because postscript is a programming language (specifically, a forth dialect with logo/turtle-style pen control). It’s relatively sensible to do widget-drawing with a language optimized for drawing arbitrary line graphics. A web app is more like trying to use dot macros to modify an MS word document at 30fps.

                                                                            1. 9

                                                                              A web app is more like trying to use dot macros to modify an MS word document at 30fps.

                                                                              That reminds me, years ago my dad, who was a chemical engineer in a large company, showed me a simulation he’d gotten as an email attachment from a colleague. It had a pretty decent graphical animation entirely within an Excel spreadsheet. Part of the sheet was a “normal” spreadsheet with the actual formulas, but another part had cells resized to be small and rectangular, and their colors were changed a few times a second by macros, producing a medium-resolution raster-graphics display basically. This was apparently relatively common, because it made the graphical output self-contained within the same spreadsheet that you could mail around.

                                                                          2. 7

                                                                            I am not actually that offended by this idea, because most GUI applications are enhanced document viewers. But I do think that when your application requires to be run at 60 fps, you should use something else.

                                                                            For example: The interoperability problem has already been solved with Java and if you really need something with more performance than that, you’d basically have to resort to lower level code like C/C++.

                                                                            But if “a glorified document viewer and/or editor” all your application is, then an web-application will more than suffice.

                                                                            1. 3
                                                                              1. 5

                                                                                Web apps are a cool hack, and I absolutely love the perverse joy one gets from making something impressive using the absolute wrong tools for the job. But, the point of a cool hack is that the idea that somebody would use it seriously or for important tasks is absurd.

                                                                              2. 3

                                                                                A developer equivalent of https://xkcd.com/763/

                                                                                1. 2
                                                                                1. 4

                                                                                  When users fully understand HOW their programs work, they retain their control over the computing experience.

                                                                                  Here’s the thing: most people don’t care. I’ve wanted to believe that “control over the experience” matters for a long time, and part of my malaise with tech lately has been coming to grips with the fact that for likely the majority of people this is simply a non-issue. This is why environments that offer that kind of control don’t interoperate so well with ones that don’t.

                                                                                  [Gopher’s] simplicity kept it alive: it requires little knowledge to set-up & it requires little in terms of resources. Gopher has been left unscathed […]

                                                                                  Not too be too harsh, but this is because no one uses it. Here’s a Gedanken-Experiment: suppose it was Gopher that got popular and not the Web. Do you think Gopher would be as simple today?

                                                                                  The Web isn’t complicated because developers were negligent, it’s complicated because it attracted a lot of attention and people wanted it to do more. And fast. I agree that it’s over-complicated and it drives me nuts. But I think it’s very wrong to believe that all the stuff we do now that we weren’t doing in the same way 20-30 years ago (and that’s a lot) is boiled down to something as elegant as a pipeline command in the shell. It’s good to fight complexity; it’s folly to think everything is simple.

                                                                                  1. 1

                                                                                    Here’s the thing: most people don’t care. I’ve wanted to believe that “control over the experience” matters for a long time, and part of my malaise with tech lately has been coming to grips with the fact that for likely the majority of people this is simply a non-issue. This is why environments that offer that kind of control don’t interoperate so well with ones that don’t.

                                                                                    People care that their stuff works the way they want it to. They want reasonable defaults, and they want bugs fixed. I don’t think professional software developers can provide either of these things at scale, because the variety of applications is too wide for a professional class to cater to (and thus, more often than not, reasonable defaults aren’t reasonable for all users & correct behavior for one user is a bug for another).

                                                                                    There are a few alternatives to making a small professional class of devs write a lot of special-casing code for handling a huge variety of actual user cases:

                                                                                    1. handle a couple of user cases that are more or less representative, and have the rest of the users suck it up or invent their own workarounds based on a vague & warped understanding of how the program is supposed to work. (This is what we do now.)
                                                                                    2. don’t handle user cases at all, and instead focus on the hard stuff while making the easy stuff easy enough for users to roll their own solutions. (This is what web development was like before it became professionalized, and more or less corresponds to what physicists and linguists end up doing with shell scripts.)

                                                                                    I think option #2 is basically preferable for everybody (even though it means that the demand for code monkeys basically disappears), but it requires us to make the tools simpler and more available. Already, in many cases, the easiest way for a non-technical end user to get the behavior they want is to learn to code, but we could make things easier for them by designing systems so that making the kinds of shallow changes end users tend to want can be performed with only a shallow understanding of both the language & the rest of the code (i.e., to make most changes desired by end users tantamount to slotting together existing calls).

                                                                                    suppose it was Gopher that got popular and not the Web. Do you think Gopher would be as simple today?

                                                                                    I think you’re right that Gopher would have undergone the same change as the Web did, but I think you’re wrong that developers are not basically complicit in this, or that it’s inevitable. We can learn from history, and refuse to implement only-shallowly-desirable features while making sure whatever new features we implement are consistent & scale.

                                                                                    The sin we committed with the web is naivete: we assumed that, no matter how unstructured and ad-hoc we were, complexity would never add up. We now know that we were wrong about that. We can’t save the web, because the technical debt has been ossified in standards, but the next time we build a hypertext system we can endevour to manage complexity properly.

                                                                                  1. 6

                                                                                    The great thing about programming is that the software industry has little to do with it, & you can code without doing it for money.

                                                                                    Every industry is awful & dysfunctional (though not necessarily as bad as ours), & the treadmill of hyped technologies isn’t totally universal in ours either (although the fewer experienced engineers involved in decision-making, the more easily management will be swung by hype). This rant is a basically-accurate rant about corporate managerialized capitalism. (By the way, the music industry also treats musicians like mules & pushes them into stupid hype-driven fads. There’s a whole stable of songs (ex., Welcome to the Machine) and movies (ex., Phantom of the Paradise) about it!)

                                                                                    1. 41

                                                                                      Am I the only one shocked by the poverty wages paid in open source? I make more a day than that project makes a month and not by a small margin.

                                                                                      The current open source licenses have failed us completely when middlemen make billions while coders make less than minimum wage.

                                                                                      1. 11

                                                                                        Am I the only one shocked by the poverty wages paid in open source? I make more a day than that project makes a month and not by a small margin.

                                                                                        Probably because giving away something for free and then holding out your hat afterward in expectation of payment is a shitty business model. It barely works for some musicians, it doesn’t work at all as a faceless github account on the Internet.

                                                                                        If you want to make money doing what you love to do, you have to create a workable business model around it. And the thing about businesses is that sometimes they work and sometimes they don’t. Just because you create a thing doesn’t mean you are suddenly entitled to receive a profit from it. The thing you make or do needs to have value to others, you have to prove that value to them, you need a system for delivering that value, and then make it easy for them to pay you for it. There are plenty of companies doing well enough with their own spin on a combination of open source with commercial opportunity. Like any other business, it’s not easy and many fail. But it is possible.

                                                                                        The current open source licenses have failed us completely

                                                                                        Incorrect, they work exactly as they were intended to work. The majority of open source software is given away with no expectation of anything tangible in return. Open source software (generally) gets written because someone had an itch to scratch and wanted to share the results or their work with a community. The authors may have many motivations for giving away their code (altruism, recognition, social interaction) but none of them are to make a bunch of money.

                                                                                        Finally, I have no opinion of the musl project but if they actually want donations, they’re doing a very good job of hiding that fact on their website.

                                                                                        1. 4

                                                                                          Really? He makes only slightly less than half of what I make (and it probably goes a lot further for him), and I consider myself well-compensated by the standards of the amount of work I put in (if not well-compensated by the standards of this industry, where dev wages are hugely inflated).

                                                                                          1. 4

                                                                                            You are not the only one.

                                                                                            1. 3

                                                                                              The current open source licenses have failed us completely

                                                                                              Some licenses are way more permissive towards freeloading than others.

                                                                                              1. 1

                                                                                                That’s true, but there’s another twist to it, right?

                                                                                                Giving away the source code freely and then having freeloading (e.g., not pushing changes upstream or sharing source code they link with) services live behind an inscrutable wall (network service, usually) makes catching violations very difficult. At least with a binary you can decompile it and get an idea of what libraries were used–there are no such easy fruit for web applications if even the slightest effort is put into it.

                                                                                                1. 0

                                                                                                  Yes, SaaS make violations difficult to catch. However, licensing can make such “dark pattern” too risky or too unpractical to be used at a large scale.

                                                                                                  Unfortunately license adoption needs a critical mass is needed for this to work. If 90% of software stays under very permissive licenses freeloading will not stop.

                                                                                              2. 1

                                                                                                It depends on purchasing power, right?

                                                                                                There are countries even in continental Europe where a small Patreon campaign can match a lawyer’s salary.

                                                                                                Also a reason to not donate to larger projects through Patreon is that it’s impossible for the project management to accomodate everyone. People without that much disposable income, who would prefer to pay for specific features, even if they are on the roadmap but not a priority, may choose to keep their money instead.

                                                                                                Or buy into a more commercial solution to get what they need without the open-source politics.

                                                                                                1. -5

                                                                                                  A single lawyer can’t save a company several million in opex a month. I’ve have.

                                                                                                  I don’t quite understand why the go to example of people trying to explain to me why I should be getting paid less are jobs which have no inherent ability to scale, be it lawyer, doctor or building architect and whose only reason for being highly paid is a cartel keeping wages inflated. Here’s hoping we import enough Cuban doctors or Latvian lawyers that their wages reflect the difficulty of their job and the demand for it.

                                                                                                  1. 24

                                                                                                    Please don’t dismiss other people’s work just because you don’t understand what they do. Of course a single lawyer can save a company millions in operating expenses per month, and their profession has been doing it for far longer than we have.

                                                                                                    1. -5

                                                                                                      [[citation needed]]

                                                                                                      I have seen teams lawyers cost the opposing side tens of millions pretty easily, I have never seen them save money inside a company that wasn’t being sued. In short, a zero sum profession, with a high bar to entry and a marvelously developed class consciousness. Good job if you can get it. I only wish developers could develop that sense too, because we add actual value in the trillions.

                                                                                                      1. 13

                                                                                                        I have seen teams lawyers cost the opposing side tens of millions pretty easily, I have never seen them save money inside a company that wasn’t being sued.

                                                                                                        There’s a good reason you might not see it. By having proper policies and procedures in place to comply with the law, lawyers can save a company money by understanding the law and ensuring that they don’t get fined or sued. For example, breaking wage and hour laws in New York can be very expensive. One of the fines listed is $50 per employee per day. There are like 65,000 fast food workers alone in NYC. If all of the companies failed to comply, that would total over $3 mil / day in just fines. That’s before all the lawsuits that would probably also show up.

                                                                                                        Also interesting, if the guys racking up tens of millions lose their case, they might end up paying those tens of millions back to the people they sued because of laws regarding recovery of attorney’s fees, or counter-suits.

                                                                                                        In short, a zero sum profession, with a high bar to entry and a marvelously developed class consciousness. Good job if you can get it. I only wish developers could develop that sense too, because we add actual value in the trillions.

                                                                                                        I’m wary any time someone talks about how great software engineering is or developers are. Were the people who wrote the code to do spoofing and layering adding actual value? How about the engineers and developers behind the Clipper chip?

                                                                                                        1. 4

                                                                                                          It’s not always a zero sum game, there are (unethical) agencies who make multi million euros a year by sending cease and desist letters for allegedly (and often false) copyright violations. Sadly, it took many years until this practice was prevent by the government in Germany, maybe because about half of the politicians are lawyers themselves.

                                                                                                          Update: typo

                                                                                                          1. 3

                                                                                                            You can bet Goodwill consulted a lawyer before implementing this cost-cutting strategy.

                                                                                                        2. 8

                                                                                                          A single lawyer can’t save a company several million in opex a month.

                                                                                                          Not to take away from your point, but they absolutely can: M&A, restructuring, downsizing, RightSizing™. And so on. I personally know a lawyer whose sole job is to fly around BoA offices around the world shitcanning [redundant] people.

                                                                                                          I don’t quite understand why the go to example of people trying to explain to me why I should be getting paid less…

                                                                                                          Because people like free stuff and one obvious way they get free stuff is if you work for free.

                                                                                                          However if zig is successful, Andrew will likely get hired at a big marketing company like Google or Facebook where he’ll lead a charge to zig all the things with a nice fat salary doubled up with lots of RSU. It’s a bold move, and not for everyone, but using a “open source career” to bootstrap an enterprise retirement is easy enough to do that (while the markets are good) people are doing it on accident.

                                                                                                          1. 16

                                                                                                            That’s not my plan. I might consider working at a place like Mozilla but never Google or Facebook. I’m looking into starting my own non-profit company. Do you know how amazing it is to not have a manager?

                                                                                                            1. 7

                                                                                                              Can I suggest you start a for-profit company instead and make a nice life for yourself? There’s nothing unethical about charging customers money for the tools you build. It’s worked quite nicely for me and I hate to see fellow OSS enthusiasts scrape by and play down their own value to society.

                                                                                                              1. 6

                                                                                                                I appreciate that you’re looking out for my interests, but why not start a non-profit company and make a nice life for myself and others? Non-profits are allowed to charge customers money for tools. There’s nothing stopping me from having a nice salary in a non-profit.

                                                                                                                1. 4

                                                                                                                  What is the benefit of a non-profit vs a privately owned company that can do what it wants? I suppose I can see why a programming language steward company might be a non profit.

                                                                                                                  1. 3

                                                                                                                    While @mperham is one of the best examples I know of for turning a profit and contributing to the community (maybe followed by Richard Hipp/sqlite), may I augment his suggestion with that of a Benefit corporation if that suits your priorities better?

                                                                                                                    It seems to me that the bigger problem for you (vs @mperham) is that almost everybody expects language toolchains to be free at this point (there are some exceptions, but most of those seem like legacy / gigantic enterprise work).

                                                                                                                    But either way, I hope to see you continue the great work!

                                                                                                                2. 2

                                                                                                                  Reminds me of a quote from one of my favorite movies:

                                                                                                                  Free winds and no tyranny for you? Freddie, sailor of the seas. You pay no rent. Free to go where you please. Then go. Go to that landless latitude, and good luck.

                                                                                                                  For if you figure a way to live without serving a master, any master, then let the rest us know, will you? For you’d be the first person in the history of the world.

                                                                                                                  Lancaster Dodd

                                                                                                                3. 0

                                                                                                                  Not to take away from your point, but they absolutely can: M&A, restructuring, downsizing, RightSizing™. And so on. I personally know a lawyer whose sole job is to fly around BoA offices around the world shitcanning [redundant] people.

                                                                                                                  I said single, any push like that would require a team of at least a dozen. On average, sure, a team of 50 lawyers can for a small investment of 10 million get you a couple of billion in roi.

                                                                                                                  1. 3

                                                                                                                    I’ve personally seen a single lawyer acting as in-house counsel and compliance officer in a heavily regulated space save the company millions in potential fines, and tens (if not hundreds) of thousands in filing and process fees.

                                                                                                          1. 12

                                                                                                            One of the things that intrigues me are extensive personal websites, just full of a huge pile of stuff the site owner finds interesting, has written, etc. Not exactly the same as a prolific blog (though there is overlap), because they tend to be more hypertext structured, in ways other than purely chronological post dates plus tags; more like a big personal wiki in some cases.

                                                                                                            These were more common in the ‘90s I think, but there are still some around (some dating to then, others a bit newer). Four that come to mind: John Walker’s fourmilab, Pierro Scaruffi’s website, Cosma Shalizi’s bactra.org, and Gwern Branwen’s website.

                                                                                                            Not necessarily a model for creating a personal website if you don’t have a decade or so to invest in it though! Of those four, it looks like: one is a university professor, one is a wealthy tech entrepreneur, and two are independent writers/researchers.

                                                                                                            1. 3

                                                                                                              John Walker & Gwern’s sites are great. In the same vein (but leaning more toward being a blog) is Charlie Stross’s site, which also contains his wife’s font work. (Stross isn’t as prolific on his blog as he used to be – writing two novels a year at 50+ while also dealing with carpal tunnel and trying to use an iPad for some of it lowers productivity in terms of pure word-emission rate – but there’s a community of regulars in the comments there, many of whom have been posting consistently since before I first discovered the site ~10 years ago. Common topics are similar to Farber’s IP list – i.e., ostensibly tech and science fiction, but with a nigh-inexplicable attractor around the history of aviation tech & an abiding interest in espionage and international relations.)

                                                                                                              Not necessarily a model for creating a personal website if you don’t have a decade or so to invest in it though!

                                                                                                              My own website has been around for a much shorter time but it growing along a somewhat similar model (though originally just a kind of portfolio for my writing). Presumably, this is what Gwern’s site would have looked like after only a year, if he had way less free time.

                                                                                                              1. 1

                                                                                                                I get a SSL_ERROR_BAD_CERT_DOMAIN for your website?

                                                                                                                1. 1

                                                                                                                  It doesn’t have HTTPS at all. (It’s static & non-secret, so why bother?)

                                                                                                                  1. 2

                                                                                                                    Yeah, but your link is to https and that looks like it’s falling back to the hosting service you’re using.

                                                                                                                    1. 1

                                                                                                                      Hmm… Maybe I made a typo. Lobste.rs doesn’t want me to edit it anymore.

                                                                                                                2. 1

                                                                                                                  I’m getting some bad cert errors when I visit your personal errors.

                                                                                                                  1. 1

                                                                                                                    I don’t have a cert. My personal errors are 100% public.

                                                                                                                3. 2

                                                                                                                  I came across https://musicinformationretrieval.com/ recently also.

                                                                                                                  1. 2

                                                                                                                    In a similar vein, I used to enjoy https://ftrain.com/

                                                                                                                    1. 2

                                                                                                                      This page definitely qualifies, a wealth of technical info and images about Nikon cameras and lenses.

                                                                                                                      http://www.mir.com.my/rb/photography/entry.htm

                                                                                                                    1. 22

                                                                                                                      I think I’m just going soft–this writeup is something that years ago I would’ve been jealous to have written!

                                                                                                                      That said…I kind of hope the author of V doesn’t get too discouraged and they address this stuff and keep working on their language.

                                                                                                                      1. 12

                                                                                                                        I think we all want the language to succeed. The difference between “I can cure cancer” vs “I am working on a cure for cancer” is huge. Now the site has changed I am more ok with it.

                                                                                                                        1. 10

                                                                                                                          I actually want V to succeed. Having a cross platform GUI development tool is part of what we need badly to end the web app insanity. Just not like this exact implementation.

                                                                                                                          1. 12

                                                                                                                            There’s plenty of cross platform GUI things though? Qt/QML is probably the most complete one, with fast OpenGL rendering, accessibility, internationalization, and countless other things a UI toolkit has to have. Google is reinventing that with Flutter thanks to NIH syndrome (or licensing issues, or whatever).

                                                                                                                            Developing a full, solid UI toolkit is not an easy problem and it’s been done a hundred times already. So I don’t think there’s a technical solution to the “I want people to use non-web cross-platform GUI tools” problem. What needs to be done is more promotion, more resources, documentation, tutorials, support for the existing tools.

                                                                                                                            (and I don’t like the Web Hate Bandwagon either. the web platform is awesome :P)

                                                                                                                            1. 9

                                                                                                                              Absolutely. There are dozens (if not hundreds) of cross-platform GUI libraries, and five or six are at the intersection of well-maintained, frequently used, and featureful.

                                                                                                                              All of them, as far as I can tell, are ugly & awkward to use, but none of them are as ugly or awkward to use as web tech.

                                                                                                                              That said, almost all these libraries have their own universe & their own idioms that typically don’t match any of the idioms of languages they bind to (and in some cases, such as with GTK and QT, they have totally distinct type systems and build systems). Writing code in Tkinter is too much like writing code in Wish and not enough like writing code in Python. There’s a certain amount of intellectual work to be done to learn a new system like this (and these systems are typically grown organically, so even if you’re using a properly-designed host language, you’re locked into memorizing and dealing with ugly corners of fossilized design by your GUI toolkit), and I think this is what keeps so many people locked into webtech: they have, at great cost to their sanity and the length of their lives, memorized the most obvious ugly corners of CSS, HTML, JavaScript, browser behavior, and perhaps 3 creaking leviathans of web frameworks, and learning to navigate the treacherous twists of QT and the names and habits of the strange beasts in its depths seems rightly daunting.

                                                                                                                              1. 4

                                                                                                                                Problem is that V promised cross platform GUI with tiny amounts of space requirements, which sounds great to me.

                                                                                                                                pyside2 is smth like 80MiB, pyqt is smth like 60MiB, which are absolutely massive compared to ~400KiB of V.

                                                                                                                                But sadly it turned out to be vaporwave. Oh well. It would be nice to have that (a graphics library that’s easy, cross platform, well documented and not massive) one day.

                                                                                                                                1. 3

                                                                                                                                  Anything that promises to be tiny is either cheating (big stuff is still coming somewhere else) or is a toy :)

                                                                                                                                  Honestly the obsession with tininess is just a big waste of energy.

                                                                                                                                  1. 2

                                                                                                                                    I always thought the heavy software taking up more CPU and RAM was a waste of energy. ;)

                                                                                                                                  2. 3

                                                                                                                                    There’s always TK, if you don’t care about alpha support or 24-bit colors. It seems to ship with python (as TKInter).

                                                                                                                                    1. 1

                                                                                                                                      tk support needs to be compiled in and isn’t available by default on all distros.

                                                                                                                                      1. 2

                                                                                                                                        True. It’s as close to built-in as you can get with python, though. (Like, curses also ships with python, but if you’re building from scratch & you don’t have curses installed, the python bindings will not provide it.) Some binary distros will let you not install X, & will split off TK & tkinter to support Xless systems.

                                                                                                                                        That said, last I looked, Tk ships with the binary windows and Mac OS classic versions of python.

                                                                                                                                        (IIRC, TK also runs on less-common systems like riscos, though I’ve never seen it do so. I’ve also heard tell of a curses frontend to TK, for folks who don’t have a bitmapped display at all, but I don’t know how much it supports or how well it’s been maintained. Basically, it’s way more cross-platform than most of the stuff that gets called cross-platform.)

                                                                                                                                2. 9

                                                                                                                                  It seems to me much of this already exists with Rebol.

                                                                                                                                  1. 6

                                                                                                                                    Rebol was the first thing that popped into my head when I was reading about V. It is also quite shit for doing anything (I’ve tried for something like a year) and it taught me that one-person projects done by brilliant coders are not good enough, even if they claim superior features. Community counts.

                                                                                                                                  2. 3

                                                                                                                                    I am working on curing cancer. Hit my Patreon!

                                                                                                                                    1. 3

                                                                                                                                      An honest crackpot is ok . If you do terrible cancer research, but you actually are doing something, all good. Open source helps people see what is going on regardless, then they can make a properly informed decision to throw money away. Before it was more like “I definitely cured cancer, coming soon, donate now.”

                                                                                                                                      So do some cancer laboratory tours with investors and go ahead :) I hope you succeed lol.

                                                                                                                                      1. 4

                                                                                                                                        Regarding my own work, I was kidding about actually doing cancer research (though I have a minor in molecular and cell biology in my Masters from UC Berkeley). I am, however, quite serious about solving the high performance cross-platform GUI problem.

                                                                                                                                        1. 4

                                                                                                                                          Good luck :), definitely something people struggle with.

                                                                                                                                1. 7

                                                                                                                                  This post is bullshit and I’m sad to see it here with 82 upvotes.

                                                                                                                                  I hate the smug pedant writing style throughout, the massive effort spent explaining that WIP features are indeed a work in progress, the pages of copy pasted console output to demonstrate that there are trivially fixable bugs, and so many errors. (using trivially replaceable libc functions fits the standard definition of “zero dependencies” for C code, try making a release build, nobody cares if a compiler leaks memory, you would fix it by deleting the malloc, nobody cares that compiling a 1.2m line function fails, your benchmark is invalid because it doesn’t actually work, macbooks are 10x slower than any modern desktop, …)

                                                                                                                                  I especially hate the condescending suggestions at the end and loosely sprinkled flowery statements that allow you to pretend you’re being constructive and not just making fun of someone in public for upvotes.

                                                                                                                                  Five days ago you submitted a post about how you hope you can help new programmers get into the industry, now you’re writing multiple posts and comments dumping on someone because version 0.0.12 of the one man project they’re giving away for free isn’t as good as you hoped. Don’t you find that hypocritical?

                                                                                                                                  BTW yes I am aware his patreon raises $800/month, remarkably average programmers fresh out of school make that much in one day at Google/FB/etc, all of whom will happily take his work and give nothing back should it benefit them.

                                                                                                                                  1. 14

                                                                                                                                    the massive effort spent explaining that WIP features are indeed a work in progress

                                                                                                                                    That this was not how anything was portrayed or described for months on end. The post doesn’t really give full context.

                                                                                                                                    nobody cares if a compiler leaks memory, you would fix it by deleting the malloc

                                                                                                                                    No, V manages memory for you apparently.

                                                                                                                                    macbooks are 10x slower than any modern desktop,

                                                                                                                                    I know you are exaggerating, but no, they aren’t 10X slower, especially not for a single threaded workload like the current v compiler. I agree the benchmark is synthetic and doesn’t mean much, but If anything a real program is split into many files which will slow things down further. The fact of the matter is the author likes to say V compiles 1.2 million lines of code a second, and it doesn’t. Why say things like that when they aren’t true? Just say V is fast, or V will be fast.

                                                                                                                                    Five days ago you submitted a post about how you hope you can help new programmers get into the industry, now you’re writing multiple posts and comments dumping on someone because version 0.0.12 of the one man project they’re giving away for free isn’t as good as you hoped. Don’t you find that hypocritical?

                                                                                                                                    I don’t think he/she said they should get into the industry by telling people they are more capable or accomplished than they actually are. Say I have some free things to give your elderly parents that don’t work as advertised and then cause harm, fine by you I guess? It was free after all.

                                                                                                                                    BTW yes I am aware his patreon raises $800/month, remarkably average programmers fresh out of school make that much in one day at Google/FB/etc, all of whom will happily take his work and give nothing back should it benefit them.

                                                                                                                                    Can’t argue with that.

                                                                                                                                    Anyway, the V site is much better now - all people want is honesty. It isn’t that hard.

                                                                                                                                    1. 8

                                                                                                                                      I hate the smug pedant writing style throughout, the massive effort spent explaining that WIP features are indeed a work in progress,

                                                                                                                                      Problem is that for months if not years, those features were advertised as present. The (WIP) icon only got added recently.

                                                                                                                                      macbooks are 10x slower than any modern desktop

                                                                                                                                      Not even close. A MBP can get as high as 5140 on geekbench, while the maximum a high end iMac has gotten is 6245. https://browser.geekbench.com/mac-benchmarks

                                                                                                                                      BTW yes I am aware his patreon raises $800/month, remarkably average programmers fresh out of school make that much in one day at Google/FB/etc, all of whom will happily take his work and give nothing back should it benefit them.

                                                                                                                                      $800/day is $208k/year

                                                                                                                                      that’s notably higher than average dev salary at facebook and at google, and I’m sure that a new graduate doesn’t get the average salary.

                                                                                                                                      But yeah, this is semantics, so whatever.

                                                                                                                                      In any case, you should also account for that fact that he lives in Russia, and that $800/mo (used to be $1000/mo fwiw) is a notable amount by Russia standards. Yandex pays ~2k USD per month on average to their software developers. (conversion)

                                                                                                                                      1. 2

                                                                                                                                        Note the patreon is $800 per month, not day. $9,600 per year is not much.

                                                                                                                                      2. 5

                                                                                                                                        What @ac said is true. Here are the original claims he presented mostly like it was done. A few articles like that. On HN, we got him to back off admitting some claims were actually in just getting started stage. Eventually, he put WIP icons on some of that on the new site.

                                                                                                                                        Before that, he was saying he had a language safe with no GC like Rust (but easier) that compiled fast like Go running as fast as C with no to sub-1MB dependencies with cost-free interop with C/C++. And he can transpile your C++ code to it, too.

                                                                                                                                        Then, we got this repository as the deliverable. And it didn’t even deliver on some of the easier claims. Yeah, you bet folks are going to call him out for that.

                                                                                                                                        Edit: Tagging ac and @cadey in case you want the archive link as evidence.

                                                                                                                                        1. 5

                                                                                                                                          I’m glad you said something because this entire thing is embarrassing and in my opinion, all these folks dog-piling should be ashamed of themselves. If this person CAN make stuff happen, then why not cheer him on? If he can’t then why not say, ‘good try mate’? This hyper critical negative focus is so distasteful.

                                                                                                                                          But but he’s taking MONEY! So? He’s got a patreon and he’s trying to fund something he thinks he can do. All these hyper technical nitpicking folks thinking somehow this is a zero-sum game. Just shameful.

                                                                                                                                          1. 6

                                                                                                                                            I think he did a great job marketing, If he can make things happen then great. He just should stick to truth when getting attention. It isn’t that hard. It isn’t “hyper critical” to expect honesty. The site is much better now than it was before.

                                                                                                                                            thinking somehow this is a zero-sum game

                                                                                                                                            I didn’t see anyone make that claim.

                                                                                                                                            If he can pull off all the WIP’s in december 2019 like the site says, it would be fantastic.

                                                                                                                                            1. 2

                                                                                                                                              If he’s doing this in good faith (which I figure he probably is), then so long as he doesn’t give up, by December he’ll have learned a whole lot & be substantially more qualified to attempt everything he’s planned (even if he hasn’t managed to do so by that point). Jumping in the deep end is a great way to learn to swim.

                                                                                                                                              Already, he’s learned an important lesson: that misrepresenting planned features as already-implemented will be generally interpreted as dishonesty, & so it makes more sense to build trust by working in public.

                                                                                                                                              If he stays on this path, the donations will be justified simply because they will have supported the development of a skilled & well-rounded developer – something we desperately need more of in the world! And, cadey’s post is a vital part of making that happen.

                                                                                                                                              1. 2

                                                                                                                                                YOU my friend, made that exact reference:

                                                                                                                                                Lol, make sure you donate some more money.

                                                                                                                                                Why on earth do you care if people are giving him money or not? He’s working on something, he’s solicited for money and people have given it to him. How does this in any way affect you? This is what I meant by zero-sum. Folks giving him money doesn’t automagically reduce the available money for other people, so why begrudge him?

                                                                                                                                                Perhaps this stems from my personal belief that we should be trying to always encourage each other in our endeavors rather than tearing them down constantly, but I see nothing but a bunch of folks jumping like blood-thirsty savages on a cat with some good hype-game and some ideas about PL that he’s making an attempt to make real.

                                                                                                                                                1. 5

                                                                                                                                                  Protecting others from perceived bad decisions is not being greedy. it is trying to help people.

                                                                                                                                          1. 2

                                                                                                                                            Don’t know how v is supposed to be hyped and when, I just never heard of it, maybe using mainly lobste.rs to get tech info I’m protected of this vaporware.

                                                                                                                                            1. 5

                                                                                                                                              I’ve definitely seen it posted several places before. I think it was promoted in a newsletter I subscribe to, as well? It’s absolutely understandable that it would get a lot of hype naturally, given its claims. I probably would have spread the hype, but I think at the time there was no source released at all & so I was more skeptical.

                                                                                                                                              Sort of shockingly, some of the WIP stuff cadey lists is relatively trivial (emitting x64 machine code is basically the easiest thing about writing a compiler, particularly if you’re not supporting any other platforms, and there are great tutorials floating around for making syscalls directly without going through libc) while other stuff is absurdly complicated (writing a full-featured cross-platform GUI library with no dependencies means learning how a dozen versions of a dozen native GUI APIs work and figuring out how to interface with them without actually linking to anything before writing your own wrappers to paper over non-trivial differences between how stuff like clipboards are assumed to work; C++ is a very complicated language and processing arbitrary C++ code is a lot harder than writing a fresh & clean new language from scratch). If, indeed, this is all in the same list at the source & not clearly differentiated as different tiers of effort, that probably indicates that the author isn’t familiar enough with the problems he will inevitably encounter to make any claims about his ability to perform any of the tasks listed.

                                                                                                                                              1. 1

                                                                                                                                                Not sure, I would be curious to reverse engineer how he did it. If you look at the github stars it is amazingly high.