1. 7

    It’s all cool and æsthetical, but I remember Frontpage being completely unusable and full of WordArt-style gimmicks, generating trashy HTML code on the same level of complexity as HTML generated by Word. Probably properly viewable only in Internet Explorer.

    Macromedia Dreamweaver, on the contrary, had really “professional” feel and allowed to make real websites for a long time. Maybe it’s still used today. Its UI is “photoshopish” and looks like it’s really intended for website designers and not dreamy salesmans like Frontpage and many other Microsoft products.

    1. 4

      Macromedia Dreamweaver

      Macromedia anything. They were kicking all kinds of ass. More learning curve, though. FrontPage’s selling point was, like author says, it was extremely easy to use. They taught it to most people at a local school. Those that didn’t get HTML did get some or all of FrontPage’s basics.

      1. 2

        Macromedia’s stuff was pretty incredible before Adobe bought them. Over the next decade they’d take Flash, an incredible tool that was very light weight (compared to Shockwave and Java) for vector art, programming, animation and slowly make it unwieldy and terrible.

        Now we have so many games written in Flash that we won’t be able to ever play again after 2020 (unless you don’t care about security updates or people make inbrowser Flash-to-HTML5/JS players).

        1. 1

          Macromedia is one of those things I think about when people making web apps tell me a chat app or banner has to use up a ton of CPU and memory. Things like the Deep Blue Sea website navigating parts of the sea vessel took up less space.

      2. 2

        Maybe it’s still used today

        Adobe acquired Macromedia a few years back, and still publish Dreamweaver. I don’t know how the current versions compare to the late-90s versions, though.

      1. 3

        For comparison, the Apple II monitor ROM was 8x in size. It had lots more stuff, though, including low-res graphics stuff.

        And that was only part of the Apple II ROM. The rest managed to include a language interpreter (Integer Basic), a mini assembler, and a … well, an emulator for a non-existent 16-bit machine.

        Clearly, all frugality had gone out the window in that second version.

        1. 11

          There was a comment in that HN post that stated:

          Lobste.rs is basically Hacker News without intransparent moderating based on whims, liberofascist social justice warriors, stalinists and feminazis. I like browsing it, but it doesn’t have as much activity as Hacker News.

          It was soon moderated and marked as “dead”.

          Inflammatory words, but the moderation part has some truth to it in my experience.

          1. 17

            i would mark any such post as troll too. There is no content beyond the insult - and the insults are unacceptably vitriolic.

            1. 10

              And they make us look bad. Many people will think that’s how comments on Lobsters look or how most of us think about HN. Neither is true. I tried hard in my summary there to avoid causing a quick dismissal by the crowd which that troll earned for themselves. I count it going dead as an example of HN moderation doing their job.

              1. 5

                Your summary was wonderful detailed and a great representation.

            2. 6

              liberofascist social justice warriors

              LOL what is that even supposed to mean

              1. 2

                “Bad bad people who are bad and I disagree with them”, I think.

              2. 3

                The problem isn’t that HN is moderated in a politically biased way, it’s that it’s not really properly moderated at all. I’m sure this is what you actually meant, but it’s important to point out. I’m a leftist with liberal opinions and I also found HN’s moderation lacking.

                1. 2

                  The presence of people that doesn’t ditch social issues was the exact reason I joined lobste.rs (complete opposite of what that person thinks what lobste.rs is). If I wanted a community of techbros, I would have joined any other community on the internet.

                  1. 2

                    The presence of people that doesn’t ditch social issues was the exact reason I joined lobste.rs

                    Really? I don’t visit Lobste.rs as often nowadays, however I remember that when I joined the site it was because that it focused on tech (and stuff interesting to hackers) more than politics. Has that changed?

                    1. 3

                      It’s still focused on tech, but social issues also happen on tech. And from what I noticed visiting the website in the last months, people don’t just dismiss them, solely because they are social issues. Which I think it’s a good thing.

                      1. 3

                        Could you point me to some example threads here (or, better, the relevant tags) that you refer to as social issues?

                        1. 1

                          They are often tagged with culture or culture + person when it’s something very specific. I just don’t link the threads specifically because I don’t know how the moderation will feel about that. But, if you google “site:https://lobste.rs + term” with a term related with social issues, you might find them easily.

                      2. 3

                        It’s news to me…I’m still working on keeping that stuff out.

                    2. 1

                      obviously whoever posted that comment has never seen my replies

                      1. 0

                        plz delete this

                      1. 4

                        Furby emulator when?

                        1. 2

                          Why emulator? It’s better to make an extensible, open hardware interactive toy platform.

                          I wonder, did they really have to use raw assembly for that. That kind of codebase must be a real headache to maintain.

                          1. 5

                            In my opinion an emulator would be a cool thing to tinker with and I am sure I’m not alone in thinking that.

                            The processor in the Furby is apparently a Sunplus SPC81A, its datasheet describes it as a 6502 instruction set although it only has 69 instructions as opposed to the 151 in the 6502 so it’s likely to be missing some registers. It comes with 80K-byte ROM shared by audio samples as well as programme and 128-bytes of working RAM. While it can run at up to 6Mhz at (3.6V-5.5V) circuit diagrams for the Furby show a 3.58MHz crystal in use that runs at 3V.

                            So why raw assembly rather than some higher language compiled into ASM? The answer should become clear from the above. With just 80K-byte of storage, a lot of which is likely consumed by audio samples - the only way to make a programme fit in the space available let alone be performant on such limited hardware is to program it in ASM.

                            An open hardware, interactive toy platform would be cool, I have seen some projects were people have hacked a Raspberry Pi Zero or other such small micro controller into the guts of the Furby to give new life to an old toy.

                            :)

                            1. 6

                              The original 6502 only had 50ish instructions documented, iirc, with some undocumented. The later iterations added some instructions (the 65C02 had a bunch more).

                              Also, the 6502 only had three registers that were part of instructions: the accumulator, X, and Y. It also had a stack pointer and program counter which were indirectly accessible. Again, some of the later iterations added more (I think the NES-specific 6502 added a dozen or more registers).

                              In the source code, you see statements like:

                              Bank       EQU      07H
                              

                              … associated with comments like “BANK SELECTION REGISTER”. Those aren’t actual registers. Most instructions used two-byte memory addresses, a full 64k. The addresses from 0000 to 00FF, however, were the “zero page”. The 6502 had a special addressing mode which allowed one-byte addresses into the zero page, which many programs used as registers.

                              The same instructions and addresses were used to access both RAM and ROM, so if that total was larger than 64k, then you needed to use hardware switch instructions to swap memory banks. Again, though, later iterations expanded that (though only the wild later iterations, like the 16- and 32-bit versions of the processor).

                              1. 2

                                Thanks for sharing, I am fascinated by old 8-bit processors and processor design in general. I was sure the 6502 has 151 but maybe I misread it somewhere and am talking out my ass. The Sunplus SPC81A only has the X register.

                                Looking at the data sheet I can see that it says:

                                To access ROM, users should program the BANK SELECT Register, choose bank, and access address to fetch data.

                                Given its described as having a 6502 instruction set and not actually being a 6502 i’m guessing that’s in addition to what ever opcodes they chose to implement.

                              2. 2

                                “Popular home video game consoles and computers, such as the Atari 2600, Atari 8-bit family, Apple II, Nintendo Entertainment System, Commodore 64, Atari Lynx, and others, used the 6502 or variations of the basic design. “

                                People might want to play games or try to code within a similar setup. There’s already a large number of people doing stuff like that.

                          1. 6

                            (1) take advantage of modern hardware, (2) fit on a single floppy disk

                            So a floppy disk is modern hardware? wut?

                            1. 1

                              Came here to comment on exactly that cognitive dissonance. Any mylar medium is antiquated.

                              Maybe CD-ROM? That’s pretty outdated, too.

                              SD card? Even they’re almost 20 years old, and the smallest spec still handles up to 2GB.

                              Don’t get me wrong – shave all the bits you want (though as others have pointed out, it sounds like he’d rather other people do the shaving for him). I just have a hard time, seeing that contrast, that the author has thought this through to any degree.

                              1. 2

                                Fitting on a floppy disk is different from being distributed on a floppy disk (which is different from needing to be distributed on a floppy disk – a situation that a lot of hobby OSes with homebrewed bootloaders suffer from!)

                                Fitting on a floppy disk is a nice, solid benchmark for size – one that’s still used for Lua & other projects, even when those projects don’t get distributed that way. Right now, fitting on a floppy means being smaller than the average (popularity-weighted) web page, and also means fitting on any commonly-used and many uncommonly-used modern storage media. It also implies suitability (at least in size) for embedded contexts (which may make use of modern features while still having less RAM than you might naturally expect a microwave or elevator controller to ship with).

                                1. 1

                                  Fitting on a floppy disk is a nice, solid benchmark for size

                                  How big is a floppy disk? 1.44MB, right? Or 800kB, depending on the era. Or maybe 113.75kB, the capacity of a one-sided 5 1/4” disk under Apple DOS?

                                  No? It’s 1.722MB? Where the hell did that come from?

                                  It is not a solid benchmark. It’s an arbitrary one.

                                  I listed a few other, more recent media one could benchmark against, instead. Even those are arbitrary – SD cards range from 1MB to 2GB. CD ROMs vary from 600ish to 900ish MB (much narrower than the SD range, but still variable).

                                  Basically, if you have a size in mind, there’s a physical medium that you can claim to be the benchmark.

                                  make use of modern features while still having less RAM

                                  On-disk size and RAM usage are, at best, loosely correlated. Plenty of small programs will intentionally use lots of RAM, and there are large programs which need minimal RAM. There are other ways to provide a standard for embedded devices.

                                  1. 4

                                    1.722MB is Amiga. The Amiga hardware read an entire track at a time, so sectors were done purely in software. This meant you could use a bit more of the disk than on IBMs.

                                    I do recall using Tom’s Root Boot Disk back in the day. It was enough of a usable Linux system to use for rescue work. I’ve even used it to install Linux on a seriously constrained system.

                                    1. 2

                                      How big is a floppy disk?

                                      Generally speaking, when people say “it fits on a floppy disk” they’re talking about a 1.44MB diskette. (It’s a commonly-understood claim, and one that fits with the era in which it first became popular, which is to say the late 90s.)

                                      If you want to go out of your way to bother somebody, you can rules-lawyer them about single-density 5.25 inch floppies or the weird micro-diskettes that the Zenith MinisPort used or other variations. It just requires ignoring a general understanding in favor of being technically correct in the most irritating way possible.

                                      Making a full-featured OS that fits in two megs is challenging enough to be interesting but hardly impossible. It’s also still desirable. The way that such a project would normally be described is “fits on a floppy disk” – even if it doesn’t quite. That description is still understood, even if a lot of us haven’t had a machine with a floppy drive in five or ten years.

                                      I listed a few other, more recent media one could benchmark against, instead. Even those are arbitrary – SD cards range from 1MB to 2GB. CD ROMs vary from 600ish to 900ish MB (much narrower than the SD range, but still variable).

                                      Making an OS fit in 600MB isn’t really much of a challenge. You can get a modern linux distro on a business card CD and still load it with shovelware – no coding required.

                                      On-disk size and RAM usage are, at best, loosely correlated. Plenty of small programs will intentionally use lots of RAM, and there are large programs which need minimal RAM.

                                      Sure. But, a monolithic kernel without modules generally gets its entire bulk dropped into memory. If you make the object code smaller (without demoscene-style compression techniques), the object code’s in-memory footprint will roughly match what’s on disk. That gives you more space for userland to play with, even on constrained systems.

                                    2. 1

                                      It seems like an arbitrary benchmark for size tbh. I would have gone for something like “readable from flash in a time shorter than humans can perceive”,

                                      1. 1

                                        “Fits on a floppy” is the kind of description I heard a lot, when I was in the hobby OS community. Granted, that was about ten years ago, but floppy drives had already been basically totally supplanted by multi-gigabyte flash already by that point. I think people still gravitate toward that benchmark as ‘natural’ in a way that they don’t toward “1.5 megs” or “2 megs”.

                                        (Plus, has tech REALLY moved that much in the past 10 years? Sure doesn’t feel like it. We’re doing the same stuff only slower.)

                                    3. 1

                                      Maybe CD-ROM? That’s pretty outdated, too.

                                      I still use those heavily. I’ve even had some boxes that still performed well but didn’t boot from USB. Doing a CD is still easier than network boot. Just pop that sucker in there, do something else while it slow loads, and begin working with the dialogs.

                                      1. 2

                                        I use them, too. And they’re more durable than magnetic media, which is why I don’t have any Apple II floppies any more, but I still have a FreeBSD 4.0 CD-ROM set.

                                        But they’re still a bit outdated.

                                  1. 1

                                    To be honest, I’m glad he’s retiring. I feel like he’s been trying to take the language places it really shouldn’t go of late. If he wants a type safe language he should design something new and call it Guidothon :) Let Python do what it does well.

                                    1. 4

                                      my day job is doing static type inference for python (in friendly competition with mypy), so i can speak to this - no one, from guido downwards, wants to turn python into a “type-safe” language. the PEPs have always been explicit about how type annotations are treated strictly as comments by the language, are not needed, and can be safely ignored if you don’t want to use them; they just provide a clean and natural way to document your types with a consistent standard that third-party tools can use to do static typechecking.

                                      note also that your python code has types; they just aren’t enforced at compile time. consider the following code:

                                      def f(a, b, c):
                                        return b * b - 4 * a * c
                                      
                                      def g(x):
                                        return f(x, "hello", "world")
                                      

                                      python will run this obligingly enough, only crashing when you call g which in turn calls f which throws an exception because you are trying to perform arithmetic operations on strings. now consider the same code with annotations:

                                      def f(a: float, b: float, c: float) -> float:
                                        return b * b - 4 * a * c
                                      
                                      def g(x):
                                        return f(x, "hello", "world")
                                      

                                      python will still treat this code identically to the first version; you haven’t lost any of your ability to shoot yourself in the foot. but now you have two additonal things - someone can read the type annotations on f and know what it expects without having to read the actual code, and a static type checker can analyse your code and tell you that you’re calling a function that expects floats with strings before you ever run it.

                                      all that PEP484 added to the language was a standard notation to add these helpful type comments, and some syntactic support from the parser and interpreter to make them a natural looking part of the code.

                                      1. 2

                                        If Guido was the sort to name something Guidothon, then I strongly suspect he would have done decades ago, and now he’d be retiring because of GEP 527, etc, etc.

                                      1. 5

                                        Just git?

                                        I was kind of hoping that if we’re going to break the github hegemony, we might also start to reconsider git at least a little. Mercurial has so many good ideas worth spreading, like templates (DSL for formatting the output of every command), revsets (DSL for querying commits), filesets (DSL for querying files and path) and changeset evolution (meta-graph of commit rewriting).

                                        1. 10

                                          Don’t forget pijul!

                                          Seriously, though, I don’t think there is any “github plus something” that is going to break the github hegemony. Github won because it offered easy forking while Sourceforge was locked in a centralized model. Sourceforge won because it was so much easier than hosting your own repo + mailing list.

                                          The thing that will get people away from github has to have a new idea, a new use case that isn’t being met by github right now, and which hasn’t been proposed before. That means that adding hg won’t do it – not because hg is worse than git (honestly, git’s terrible, and hg is fine), but because hg’s already been an option and people aren’t using it.

                                          Adding email commits won’t do it, because that use case has been available for a long time (as pointed out elsewhere in these comments) and people aren’t using it.

                                          Until something new is brought to the table, it’s all “let’s enter a dominated market with a slight improvement over the dominant tech”, and that’s just not going to be enough.

                                          1. 8

                                            So, one thing that I would use a new contender for is being able to put my work under my own domain.

                                            The “new thing” here is “have your personal branding on your site” (which is clearly fairly popular given how common personal domain/sites are among developers).

                                            If I could CNAME code.daniel.heath.cc to your host to get my own github, I’d do it today (as long as any issues/wiki/PR state/etc remained usefully portable).

                                            1. 8

                                              That’s a really neat idea. I don’t think I can prioritize it right now but it’s definitely something I would consider implementing.

                                              1. 3

                                                I actually think that GitHub’s lack of branding and customization is a big reason for its success. When I go take a look at a new project on GitHub, I don’t have to figure out how to navigate a new site’s design, and this makes the GitHub ecosystem as a whole easier to use.

                                                1. 3

                                                  I don’t mean corporate/design branding.

                                                  I want to use my own name (and be able to move providers without breaking links).

                                                  1. 1

                                                    I want to use my own name (and be able to move providers without breaking links).

                                                    But that will happen anyway, unless your new provider uses the same software as the old one.

                                                    1. 1

                                                      Yep - so it has to be oss too.

                                                      1. 1

                                                        That makes sense actually. sr.ht supporting the ability to use your own domain name (presumably a subdomain of your personal domain name for personal projects?) would make it really easy to migrate away from sr.ht in the future if you felt it was more cost-effective to host your own. Although I don’t know what the pricing model is intended to be.

                                                2. 2

                                                  You can do that with Gitlab (or Gitea if you prefer something lightweight). Only thing is you need to take care of the hosting yourself. But I’m sure there are companies offering a one-click setup, to which you can later point your own domain.

                                                  1. 2

                                                    If you host your own gitlab instance, can you fork and submit patches to a project that’s hosted on gitlab,com, as easily/seamlessly as if you were hosted there?

                                                    Centralization has benefits that self-hosting can’t always provide. If there were some federation which allowed self-hosting to integrate with central and other self-hosting sites, that seems like a new and interesting feature.

                                                    1. 5

                                                      Git is already federated with email - it’s specific services like GitHub which are incompatible with git’s federation model (awfully conveniently, I might add). sr.ht is going to be designed to accomodate git’s email features, both for incoming and outgoing communication, so you’ll be able to communicate easily between sr.ht instances (or sr.ht and other services like patchworks or LKML).

                                                      1. 2

                                                        As I mention earlier, though, federation by email has been available for a long time and hasn’t been used (by enough people to replace github). The (vast) majority of developers (and other repo watchers) prefer a web UI to an email UI.

                                                        1. 4

                                                          I intend to build a web UI which is driven by email underneath.

                                                      2. 4

                                                        The gitlab, gitea, and gogs developers are working on this but it’s still very much in the discussion stage at this point. https://github.com/git-federation/gitpub/

                                                        1. 1

                                                          Oh, definitely no federation. Didn’t know that federation was what he was looking for.

                                                          1. 2

                                                            I don’t know exactly what he was looking for, but It seemed like one of:

                                                            • hosted, centralized, but with my domain plus some branding, or
                                                            • self-hosted but with the features of centralization, including community, etc

                                                            The latter sounds to me like it would need federation.

                                                        2. 1

                                                          It’s currently awkward to run multiple domains on most OSS servers which might otherwise be suitable.

                                                      3. 3

                                                        hg isn’t really an option right now, though. There’s nowhere to host it. There’s bitbucket, and it’s kind of terrible, and they keep making it worse.

                                                        If you can’t even host it, people won’t even try it.

                                                      4. 14

                                                        I’m afraid you’re not going to find a sympathetic ear in sr.ht. I am deeply fond of git and deeply critical of hg.

                                                        The GitHug hegemony has nothing to do with its basis on git. If git were the product of GitHub, I might agree, but it’s not. If you really want to break the GitHub hegemony you should know well enough to throw your lot in with the winning tool rather than try to disrupt two things at once.

                                                        1. 3

                                                          Do you mind expanding on why you are deeply critical of mercurial?

                                                          1. 8

                                                            Perhaps some day I’ll write a blog post going into detail. The short of it is that git is more Unixy, Mercurial does extensibility the wrong way, and C is a better choice than Python (or Rust, I hear they’re working on that).

                                                            1. 4

                                                              Git IS more unixy! Using hg feels suspiciously like using a GUI and I can’t figure out why.

                                                              1. 4

                                                                because hg‘s command-line interface was “designed”, whereas git’s command-line interface “evolved” from how it was being used.

                                                          2. 2

                                                            The GitHug hegemony has nothing to do with its basis on git.

                                                            Exactly; it’s the other way around. Git got popular because of github.

                                                            Git was much worse before github made it popular. It’s bad now and difficult to use now, but it was much worse before 2008. So if you just want to get away from Github, there’s no need to stay particulary enamoured with git either.

                                                            And whatever criticisms you may have about hg, you have to also consider that it has good ideas (those DSLs above are great). Those ideas are worth spreading, and git for a long time has tried to absorb some of them and hasn’t succeeded.

                                                        1. 11

                                                          Sadly, this stuff has been well known since at least the famous “Peopleware” book of the 1980s, and certainly firmly ensconced into conventional wisdom by the zeros. Facts and new studies are not moving the needle on this one. (My pet theory: tech companies are much more risk-averse than they like to pretend, and doing anything different from your peers is too scary, especially if it costs more.)

                                                          1. 3

                                                            tech companies are much more risk-averse than they like to pretend, and doing anything different from your peers is too scary

                                                            I think it’s more active than that. Tech companies want to emulate silicon valley startups. Silicon Valley startups are funded by VCs, who want to check on their investment. At some point, someone decided that open-air offices would 1- show thrifty spending, and 2- show people being busy. From that point on, everyone’s been doing open-air, even when it’s no longer #1 (I’m thinking of some significant remodel work that’s gone into some open-space workplaces, not to mention climate control costs or morale/productivity loss), nor #2 (when open-air offices are as large as football fields).

                                                            1. 3

                                                              It’s not just startups, although I bet most successful startups have open floor plans. Facebook and even Microsoft are moving or have moved to the model.

                                                              To quote Dan Luu, speaking of Peopleware:

                                                              This book seemed convincing when I read it in college. It even had all sorts of studies backing up what they said. No deadlines is better than having deadlines. Offices are better than cubicles. Basically all devs I talk to agree with this stuff.

                                                              But virtually every successful company is run the opposite way. Even Microsoft is remodeling buildings from individual offices to open plan layouts. Could it be that all of this stuff just doesn’t matter that much? If it really is that important, how come companies that are true believers, like Fog Creek, aren’t running roughshod over their competitors?

                                                              1. 3

                                                                I asked the Facilities people at Google about this last year and they told me why they subject us to open plan offices despite knowing we hate them. Apparently the #1 reason is flexibility. They move teams around frequently as they grow so being able to easily defrag space is their top priority.

                                                                1. 3

                                                                  That’s long been a reason. I wonder if the answer is to try to make easy to build or tear down spaces that are more like actual offices. Especially with noise resistant material in between the “walls” maybe in form of squares or rectangles that can be shoved and stacked in there. I guess it would look like cubicles that go up to the ceiling with an outer wall, filler, and inner wall. If they have different shapes, windows could be another modular component in some of them if someone desires.

                                                                  I wonder if anyone has tried something like this.

                                                                2. 1

                                                                  I believe this is called survivor bias

                                                            1. 1

                                                              There seems to be some unspoken assumption here that SQL is simpler/easier/cheaper than ML/AI. That’s not my experience: everything you can do with modern tools is possible in SQL, sure, but the modern tools make it much easier and eliminate a lot of the pitfalls.

                                                              1. 5

                                                                I don’t follow: what kind of modern ML/AI tools are you thinking of (as simple/easy/cheap as SQL)?

                                                                1. 1

                                                                  Mainly Spark. Hardware performance/cost is probably worse unless you’re on a really big dataset, but for me it more than made up for it in programmer cost: I found it so much easier to answer questions based on our data when I could use a shell in a normal programming language with access to our data as normal values and just call e.g. .aggregateByKey and pass code to do what I wanted.

                                                                  1. 5

                                                                    Calling aggregateByKey isn’t using ML, it’s using straightforward querying of a dataset. Spark isn’t an ML solution so much as it’s a non-relational data store that’s queried differently than SQL-based data stores.

                                                                    You can build ML solutions on top of Spark, much the same as you can on top of SQL.

                                                                    The big difference between the two is instead the declarative vs. imperative nature of querying. With SQL, you describe what you want, whereas with Spark (and a number of other big data and nosql stores), you describe how to get it. The latter is more familiar to many imperative/OO programmers, but the former is generally more approachable to non-programmers, and tends to deal with changes to data more smoothly.

                                                                    In fact, the declarative approach is useful enough that Spark SQL exists and is widely used.

                                                                    1. 1

                                                                      So maybe: “you don’t necessarily need ML/AI: you should consider just using SQL if you already know it.“?

                                                                      1. 1

                                                                        I still don’t follow: as far as I know, Spark is not a ML/AI tool.

                                                                  1. 7

                                                                    This alternative title turned up in my brain and won’t let go, so I’m writing it here to get it out of my head:

                                                                    You don’t need ML/AI. You need data queries and business logic.

                                                                    I’m not trying to argue with the original title! SQL is definitely the right language for querying data and gathering cases to feed to the business logic. Also, it is a well-written article that makes its case for the use of queries and business logic very nicely. Thanks for sharing it!

                                                                    1. 7

                                                                      You don’t need ML/AI. You need data queries and business logic.

                                                                      I think that hits on an important point that the article misses (or sidesteps): business logic. SQL is only helpful if you can describe what you’re looking for, and doing that requires knowledge and skill.

                                                                      When you lack the ability to describe what you’re looking for, then SQL seems useless, and ML seems magically useful. Of course, you’ll still end up doing that work if you opt for an ML approach, it will just be less obvious.

                                                                      (digression: this parallels the problem of not being able to describe what you’re storing, which leads to poor usage of NoSQL databases)

                                                                      Now, if you have a broad notion of what you’re looking for, and a willingness to experiment, then ML (well, analysis of any kind) can help. What about the contents of a basket can be a predictor for returning after a reminder email? What is the right size of a coupon to entice people back while minimizing cost? What is the right period of time to contact someone after an absence? More customers/transactions/views/baskets means more leeway to experiment, which means more data, which means more use cases for an ML-style approach.

                                                                      But, yes, absolutely, simple querying will be a better ROI until you get hyuuge.

                                                                      1. 1

                                                                        When you lack the ability to describe what you’re looking for, then SQL seems useless, and ML seems magically useful.

                                                                        From the point of view of SQL, I would state this as “when you lack the ability to describe your relationships.” Whether you know enough in advance to add table constraints or write queries to discover them, SQL helps (forces) you to make your data categorically consistent.

                                                                    1. 6

                                                                      I find that the combination of points 2 (evolving) & 3 (old enough to have established body of literature) is actually rather a bad thing, as there is an enormous amount of outdated literature. Some of it will teach you to write old-school code that will not be welcome in a modern C++ codebase. The rest of it will devote 80% to writing elaborate constructs to implement features which are now part of the language.

                                                                      1. 3

                                                                        I found that, too. It was especially jarring since part of point 2 is that different C++ versions can behave differently with the same code – even if that situation is rare, that knowledge makes any legacy documentation suspect.

                                                                      1. 3

                                                                        For a good laugh, look here at this PR.

                                                                        1. 18

                                                                          It’s both easier and more polite to ignore someone you think is being weird in a harmless way. Pointing and laughing at a person/community is the start of brigading. Lobsters isn’t big enough to be competent at this kind of evil, but it’s still a bad thing to try.

                                                                          1. 6

                                                                            https://github.com/tootsuite/mastodon/pull/7391#issuecomment-389261480

                                                                            What other project has its lead calmly explaining the difference between horse_ebooks and actual horses to clarify a pull request?

                                                                            1. 3

                                                                              And yet, he manages to offend someone.

                                                                              1. 4

                                                                                Can someone explain the controversy here? I legitimately do not understand. Is the individual claiming to be a computer and a person? Or do they just believe that someday some people will be computers and desire to future-proof the messages (as it alluded to in another comment)?

                                                                                1. 7

                                                                                  This person is claiming they think of themselves as a robot, and is insulted at the insinuation that robots are not people.

                                                                                  Posts like this remind me of just how strange things can get when you connect most of the people on the planet.

                                                                                  1. 6

                                                                                    So, I tried contacting the author:

                                                                                    http://mynameiser.in/post/174391127526/hi-my-name-is-jordi-im-also

                                                                                    Looks like she believes she’s a robot in the transhumanist sense. I thought transhumanists thought they would be robots some day, not that they already are robots now.

                                                                                    I tried reading through her toots as she suggested, but it was making me feel unhappy, because she herself seems very unhappy. She seems to be going through personal stuff like breaking up from a bad relationship or something.

                                                                                    I still don’t understand what is going on and what exactly does she mean by saying she’s a robot. Whatever the reason, though, mocking her is counterproductive and all around a dick thing to do. Her request in the PR was denied, which I think is reasonable. So “no” was said to something, contrary to what zpojqwfejwfhiunz said elsewhere.

                                                                                    1. 6

                                                                                      As someone who’s loosely in touch with some of the transhumanist scene, her answer makes no sense and was honestly kind of flippant and rude to you.

                                                                                      That said, it sounds like she’s been dealing with a lot of abuse lately from the fact that this Github thread went viral. I’m not surprised, because there are certain people who will jump on any opportunity to mock someone like her in an attempt to score points with people who share their politics. In this case she’s being used as a proxy to discredit the social justice movement, because that’s what she uses to justify her identity.

                                                                                      Abuse is never okay and cases like this require some pretty heavy moderation so that they don’t spiral out of control. But they also require a pretty firm hand so that you don’t end up getting pulled into every crazy ideascape that the internet comes up with. If I was the moderator of this GitHub thread, I would have told her, “Whatever it is you’re trying to express when you say ‘I am a robot,’ the Mastodon [BOT] flag is not the right way to do it.” End of discussion, and if anyone comes around to try to harass her, use the moderator powers liberally so as not to veer off-topic.

                                                                                      Then you could get into the actual meat of the discussion at hand, which was things like “If I have a bot that reposts my Twitter onto Mastodon, could that really be said to ‘not represent a person’? Maybe another wording would be better.”

                                                                                      In the end she’s just a girl who likes to say she’s a robot on the internet. If that bugs you or confuses you, the nicest thing you can do is just take it like that and just ignore her.

                                                                                      1. 8

                                                                                        I don’t think she was rude to me. She’s just busy with other things and has no obligation to respond to every rando who asks her stuff. I’m thankful she answered me at all. It’s a bit of effort, however slight, to formulate a response for anyone.

                                                                                        1. 3

                                                                                          I mean, I can kind of see where you’re coming from, but I’d still argue that starting with “You should develop your software in accordance to my unusual worldview”, followed by flippantly refusing to actually explain that worldview when politely asked, is at least not nice.

                                                                                          Regardless, that might justify a firm hand, but not harassment, because nothing justifies harassment.

                                                                                          1. 2

                                                                                            I see this point of view too. But I’m also just some rando on the internet. She doesn’t owe me anything, If someone needed to hear her reasons, that would have been the Mastodon devs. They handled it in a different way, and I think they handled it well, overall.

                                                                                            1. 1

                                                                                              I’m inclined to agree on that last point, though it’s hard to say for sure given all the deleted comments.

                                                                                              And I do hope she can work through whatever she’s going through.

                                                                                      2. 4

                                                                                        I don’t know, personally, anyone who identifies as a robot, but I do know a bunch of people who identify as cyborgs. Some of it’s transhumanist stuff – embedding sensors under the skin, that sort of thing. But much of it is reframing of stuff we don’t think of that way: artificial limbs, pacemakers, etc, but also reliance on smartphones, google glass or similar, and other devices.

                                                                                        From that standpoint, robot doesn’t seem a stretch at all.

                                                                                        That said, I agree that the feature wasn’t intended to be (and shouldn’t be) a badge. But someone did submit a PR to make the wording more neutral and inclusive, and that was accepted (#7507), and I think that’s a positive thing.

                                                                                        1. 2

                                                                                          Actually, that rewording even seems clearer to me regardless of whether someone calls themself a robot or not. “Not a person” sounds a bit ambiguous; because you can totally mechanically turk any bot account at any time, or the account could be a mirror of a real person’s tweets or something.

                                                                                        2. 1

                                                                                          That’s unfortunate. It’s always difficult to deal with these things. I, too, understood transhumanism to be more of a future thing, but apparently at least some people interpret it differently. Thanks for following up where I was too lazy!

                                                                                        3. -6

                                                                                          American ‘snowflake’ phenomenon. The offendee believes that the rest of the world must fully and immediately capitulate to whatever pronoun they decided to apply to themselves that week, and anything other than complete and unquestioning deference is blatant whatever-ism.

                                                                                          1. 16

                                                                                            Person in question is Brazilian, but don’t let easily checked facts get in the way of your narrative.

                                                                                            1. -5

                                                                                              Thanks for the clarification. Ugh, the phenomenon is spreading. I hope it’s not contagious. Should we shut down Madagascar? :-D

                                                                                              1. 3

                                                                                                TBH I think it’s just what happens when you connect a lot of people who speak your language to the internet, and the USA had more people connected than elsewhere.

                                                                                                1. 0

                                                                                                  It definitely takes a lot of people to make a world. To paraphrase Garcia, “what a long strange trip it will be”.

                                                                                            2. 3

                                                                                              She says “she” is a fine pronoun for her.

                                                                                        4. 1

                                                                                          It’s wonderful. :)

                                                                                        5. 3

                                                                                          What is happening there? I can’t tell if this is satire or reality

                                                                                          1. 2

                                                                                            That’s pretty common with Mastodon; there’s an acrid effluence that tinges the air for hours after it leaves the room. That smell’s name? Never saying no to anyone.

                                                                                            1. 12

                                                                                              Seems “never saying no to anyone” has also been happening to lobster’s invite system :(

                                                                                              People here on lobsters used to post links to content they endorse and learn something from and want to share in a positive way. Whatever your motivation was to submit this story, it apparently wasn’t that…

                                                                                              1. 4

                                                                                                The person who shared the “good laugh” has been here twice as long as you have.

                                                                                                1. 1

                                                                                                  I’m absolutely not saying you’re wrong, but I’m pretty confident there’s something to be learned here. I may not necessarily know what the lesson is yet, but this is not the first or the last situation of this kind to present itself in software development writ large.

                                                                                          1. 2

                                                                                            Oh, man, improved partition removal plus updates actually moving between partitions are really big and important things. I’m excited to see postgres really mature into the bigger data world.

                                                                                            1. 18

                                                                                              I love postgres (I’m a postgres DBA), and really dislike mysql (due to a long story involving a patch-level release causing server crashes and data loss).

                                                                                              That said, there is still a technical reason to choose mysql over postgres. Mysql’s replication story is still significantly better than postgres’. Multi-master, in particular, is something that’s relatively straightforward in mysql, but which requires third-party extensions and much more fiddling in postgres.

                                                                                              Now, postgres has been catching up on this front. Notably, the addition of logical replication over the last couple major versions really expands the options available. There’s a possibility that this feature will even be part of postgres 11, coming out this year (it’s on a roadmap). But until it does, it’s a significant feature missing from postgres that other RDBMSes have.

                                                                                              1. 7

                                                                                                There’s a possibility that this feature will even be part of postgres 11

                                                                                                PG 11 is in feature freeze since April. I don’t think there was anything significant for multi-master committed before that.

                                                                                                1. 3

                                                                                                  Good point. I’d seen the feature freeze deadline, but wasn’t sure if it had actually happened, and what had made it in (I haven’t followed the -hackers mailing list for a while). I was mostly speculating based on the fact that they’d announced a multi-master beta for last fall.

                                                                                                  I’m not surprised it’s taking a long time – it’s a hard problem – but it means that “clustering” is going to be a weak point for postgres for a while longer.

                                                                                                2. 3

                                                                                                  Once you take all the other potential issues and difficulties with MySQL into account though, surely Postgres is a better choice on balance, even with more difficult replication setup?

                                                                                                  1. 5

                                                                                                    It really depends. If you need horizontally-scalable write performance, and it’s important enough to sacrifice other features, then a mysql cluster is still going to do that better than postgres. It’s possible that a nosql solution might fit better than mysql, but overall that’s a decision that I can’t make for you.

                                                                                                    I’ll add that there are bits of postgres administration that aren’t intuitive. Specifically, bloat of on-disk table size (and associated slowdowns) under certain loads can really confuse people. If you can’t afford to have a DBA, or at least a dev who’s a DB expert, mysql can be very attractive. I’m not saying that’s a good reason to choose it, but I understand why some people do.

                                                                                                    1. 1

                                                                                                      What are your thoughts on MySQL vs MariaDB, especially the newer versions?

                                                                                                      1. 3

                                                                                                        Honestly, I haven’t looked closely at MariaDB lately. The last time I did was just to compare json datatypes – at the time, both mysql and mariadb were just storing json as parsed/verified text blobs without notable additional functionality.

                                                                                                        I have to assume it’s better than mysql at things like stability, data safety, and other boring-but-necessary features. That’s mostly because mysql sets such a low bar, though, that it would take effort to make it worse.

                                                                                                      2. 1

                                                                                                        You clearly know more about databases than me, but I would question idea that MySQL is a good choice when you lack a DB expert. If anything, it is then when you shouldn’t use it. I still carry scars from issues caused by such lack of expertise at one of my previous employers.

                                                                                                  1. 2

                                                                                                    I’ve been looking for a tutorial like this for years!

                                                                                                    1. 8

                                                                                                      Scrum may be the illness; it is more likely an expression of a deeper problem that may be inextricable. Either way, it has pushed more experienced, excellent developers out of the industry than I care to count.

                                                                                                      Software is the only industry in the world where people above IQ 120 with 5 years of experience (even well above 120, and well above 5 years) have to justify days and weeks– hell, sometimes even hours– of their own working time. No one capable will tolerate that if she can get something else. Scrum is a great way to end up with the Dead Sea Effect.

                                                                                                      I call Scrum the Whisky Goggles of programming. It turns the unemployable 3’s into marginally employable 5’s, but the 6+ see you as a foolish, dangerous drunk and want nothing to do with you.

                                                                                                      I also doubt that it will change. It works well enough to get to the next round of funding. Hiring massive armies of mediocre programmers has become “the way it’s done”. Now it’s reminiscent of “Nobody ever got fired for buying IBM.”

                                                                                                      Those of us in the top ~5 percent, we had our time. It seems to be over, at least in this industry. Some of us will reinvent ourselves as “data scientists” and hope to escape the hell of burndown story points and product “individuals”; some of us will go back to graduate school and either escape into academia or vie for the few remaining R&D jobs that Scrum can’t touch; many of us will just leave and do something else.

                                                                                                      1. 4

                                                                                                        I’m going to let out a big secret that I probably shouldn’t about Scrum. I’m going to quote one of your recent posts on medium because I think it is relevant.

                                                                                                        The one thing that universally turns up when people investigate workplace violence is… not race, not mental health, not disputes with co-workers or management, but exactly that type of “performance management”, which is the euphemism for this sort of psychotic, evil surveillance capitalism. It literally drives people nuts.

                                                                                                        Where are the managers in Scrum? The answer, there aren’t any. Scrum is sold to businesses as a technique to exponentially increase productivity. However, the this is a lie, a foot in the door technique. The reason the other 95% of IT workers like it is that Scrum is a worker emancipatory movement. No more managers, no more long hours, no more abuse, no more performance management.

                                                                                                        Scrum is not meant to protect the gifted 5% of engineers who worked privileged environments, who never deal with the kind of abuse other 95% of IT workers have to. It’s was never designed to make life easier for those that already have an easy life. Scrum isn’t meant for the already privileged 5%.

                                                                                                        You mention high IQ like it’s a good thing. In the words of Alan Kay, high IQ is a lead weight, your viewpoint is everything.

                                                                                                        1. 6

                                                                                                          Software is the only industry in the world where people above IQ 120 with 5 years of experience (even well above 120, and well above 5 years) have to justify days and weeks– hell, sometimes even hours– of their own working time

                                                                                                          That’s … not true at all. If you look at jobs done by actual engineers, you’ll see that they routinely have to provide time estimates. In order to make those time estimates, they have to estimate their work to the day and week, even if those detailed timelines aren’t provided to their clients. Even newly-licensed engineers already have 4 or more years of experience, since work requirements are part of the license process. Most people who are engineers have high IQ, because they’re complicated technical fields with nontrivial education requirements. And they all must pass an exam on engineering ethics.

                                                                                                          And they provide time, labor, and cost estimates to clients.

                                                                                                          Which is much like what we do in software development. We put together estimates in as detailed a way as we can, to provide an overall plan. We tell our customers the overall plan, and we track against our detailed plan so we know if we have to tell the customer the plans have changed.

                                                                                                          Actual engineers are currently far better as an industry at providing those types of estimates. If we ever want to mature as an industry, we must improve our ability to estimate our work.

                                                                                                          Claiming that we’re above the need to estimate because we’re smart and we have experience misunderstands the need. Being smart and having experience should make us more comfortable and confident providing estimates, rather than less comfortable even being asked.

                                                                                                        1. 4

                                                                                                          The distribution of programming talent is likely normal, but what about their output?

                                                                                                          The ‘10X programmer’ is relatively common, maybe 1 standard deviation from the median? And you don’t have to get very far to the left of the curve to find people who are 0.1X or -1.0X programmers.

                                                                                                          Still a good article! I think this confusion is the smallest part of what he’s trying to say.

                                                                                                          1. 6

                                                                                                            That’s an interesting backdoor you tried to open to sneak the 10x programmer back into not being a myth.

                                                                                                            1. 6

                                                                                                              They exist, though. So, more like the model that excludes them is broken front and center. Accurate position is most people aren’t 10x’ers or even need to be that I can tell. Team players with consistency are more valuable in the long run. That should be majority with some strong, technical talent sprinkled in.

                                                                                                              1. 3

                                                                                                                Is there evidence to support that? As you know, measuring programmer productivity is notoriously difficult, and I haven’t seen any studies to confirm the 10x difference. I agree with @SeanTAllen, it’s more like an instance of the hero myth.

                                                                                                                EDIT: here are some interesting comments by a guy who researched the literature on the subject: https://medium.com/make-better-software/the-10x-programmer-and-other-myths-61f3b314ad39

                                                                                                                1. 5

                                                                                                                  Just think back to school or college where people got the same training. Some seemed natural at the stuff running circles around others for whatever reason, right? And some people score way higher than others on parts of math, CompSci, or IQ tests seemingly not even trying compared to those that put in much effort to only underperform.

                                                                                                                  People that are super-high performers from the start exist. If they and the others study equally, the gap might shrink or widen but should widen if wanting strong generalists since they’re better at foundational skills or thinking style. I don’t know if the 10 applies (probably not). The concept of gifted folks making easy work of problems most others struggle is something Ive seen a ton of in real life.

                                                                                                                  Why would they not exist in programming when they exist in everything else would be the more accurate question.

                                                                                                                  1. 0

                                                                                                                    There’s no question that there is difference in intellectual ability. However, I think that it’s highly questionable that it translates into 10x (or whatever-x) differences in productivity.

                                                                                                                    Partly it’s because only a small portion of programming is about raw intellectual power. A lot of it is just grinding through documentation and integration issues.

                                                                                                                    Partly it’s because there are complex interactions with other people that constrain a person. Simple example: at one of my jobs people complained a lot about C++ templates because they couldn’t understand them.

                                                                                                                    Finally, it’s also because the domain a person applies themselves to places other constraints. Can’t get too clever if you have to stay within the confines of a web framework, for example.

                                                                                                                    I guess there are specific contexts where high productivity could be realised: one person creating something from scratch, or a group of highly talented people who work well together. But those would be exceptional situations, while under the vast majority of circumstances it’s counterproductive to expect or hope for 10x productivity from anyone.

                                                                                                                    1. 2

                                                                                                                      I agree with all of that. I think the multipliers kick in on particular tasks which may or may not produce a net benefit overall given conflicting requirements. Your example of one person being too clever with some code for others to read is an example of that.

                                                                                                                      1. 3

                                                                                                                        I think the 10x is often realized by just understanding the requirements better. For example, maybe the 2 week long solution isn’t really necessary because the 40 lines you can write in the afternoon are all the requirement really required.

                                                                                                                      2. 2

                                                                                                                        There’s no question that there is difference in intellectual ability. However, I think that it’s highly questionable that it translates into 10x (or whatever-x) differences in productivity.

                                                                                                                        It does not simply depends on how you measure, it depends on what you measure.

                                                                                                                        And it may be more than “raw intellectual power”. For me it’s usually experience.

                                                                                                                        As a passionate programmer, I’ve faced more problems and more bugs than my colleagues.
                                                                                                                        So it often happens that I solve in minutes problems that they have struggled for hours (or even days).
                                                                                                                        This has two side effects:

                                                                                                                        • managers tends to assign me the worst issues
                                                                                                                        • colleagues tends to ask me when the can’t find a solution

                                                                                                                        Both of this force me to face more problems and bugs… and so on.

                                                                                                                        Also such experience make me well versed at architectural design of large applications: I’m usually able to avoid issues and predict with an high precision the time required for a task.

                                                                                                                        However measuring overall productivity is another thing:

                                                                                                                        • I can literally forget what I did yesterday morning (if it was for a different customer than the one I’m focused now)
                                                                                                                        • at time I’m unable to recognize my own code (with funny effects when I insult or lode it)
                                                                                                                        • when focused, I do not ear people talking at me
                                                                                                                        • I ignore 95% of mails I receive (literally all those with multiple recipients)
                                                                                                                        • being very good at identifying issues during early analysis at times makes some colleague a bit upset
                                                                                                                        • being very good at estimating large projects means that when you compare my estimation with others, mine is usually higher (at times a lot higher) because I see most costs upfront. This usually leads to long and boring meeting where nobody want to take the responsibility to adopt the more expensive solution (apparently) but nobody want to take the risk of alternative ones either…
                                                                                                                        • debating with me tends to become an enormous waste of time…

                                                                                                                        So when it’s a matter of solving problems by programming, I’m approach the 10x productivity of the myth despite not being particularly intelligent, but overall it really depends on the environment.

                                                                                                                        1. 1

                                                                                                                          This is a good exposition of what a 10x-er might be and jives with my thoughts. Some developers can “do the hard stuff” with little or no guidance. Some developers just can’t, no matter how much coaching and guidance are provided.

                                                                                                                          For illustration, I base this on one tenure I had as a team lead, where the team worked on some “algorithmically complex” tasks. I had on my team people who were hired on and excelled at the work. I had other developers who struggled. Most got up to an adequate level eventually (6 months or so). One in particular never did. I worked with this person for a year, teaching and guiding, and they just didn’t get it. This particular developer was good at other things though like trouble shooting and interfacing with customers in more of a support role. But the ones who flew kept on flying. They owned it, knew it inside and out.

                                                                                                                          It’s odd to me that anyone disputes the fact there are more capable developers out there. Sure “productivety” is one measure, and not a good proxy for ability. I personally don’t equate 10x with being productive, that clearly makes no sense. Also I think Fred Brookes Mythical Man Month is the authoritative source on this. I never see it cited in these discussions.

                                                                                                                    2. 2

                                                                                                                      There may not be any 10x developers, but I’m increasingly convinced that there are many 0x (or maybe epsilon-x) developers.

                                                                                                                      1. 3

                                                                                                                        I used to think that, but I’m no longer sure. I’ve seen multiple instances of what I considered absolutely horrible programmers taking the helm, and I fully expected those businesses to fold in a short period of time as a result - but they didn’t! From my point of view, it’s horrible -10x code, but for the business owner, it’s just fine because the business keeps going and features get added. So how do we even measure success or failure, let alone assign quantifiers like 0x?

                                                                                                                        1. 1

                                                                                                                          Oh, I don’t mean code quality, I mean productivity. I know some devs that can work on the same simple task for weeks, miss the deadline, and be move on to a different task that they also don’t finish.

                                                                                                                          Even if the code they wrote was amazing, they don’t ship enough progress to be of much help.

                                                                                                                          1. 1

                                                                                                                            That’s interesting. I’ve encountered developers who were slow but not ones who would produce nothing at all.

                                                                                                                            1. 4

                                                                                                                              I’ve encountered it, though it was unrelated to their skill. Depressive episodes, for example, can really block someone. So can burnout, or outside stresses.

                                                                                                                              Perhaps there are devs who cannot ship code at all, but I’ve only encountered unshipping devs that were in a bad state.

                                                                                                                          2. 1

                                                                                                                            You’re defining programming ability by if a business succeeds though. There are plenty of other instances where programming is not done for the sake of business, though.

                                                                                                                            1. 1

                                                                                                                              That’s true. But my point is that it makes no sense to assign quantifiers to programmer output without actually being able to measure it. In business, you could at least use financials as a proxy measure (obviously not a great one).

                                                                                                                        2. 1

                                                                                                                          Anecdotally, I’m routinely stunned by how productive maintainers of open source frameworks can be. They’re certainly many times more productive than I am. (Maybe that just means I’m a 0.1x programmer, though!)

                                                                                                                          1. 1

                                                                                                                            I’m sure that’s the case sometimes. But are they productive because they have more sense of agency? Because they don’t have to deal with office politics? Because they just really enjoy working on it (as opposed to a day job)? There are so many possible reasons. Makes it hard to establish how and what to measure to determine productivity.

                                                                                                                      2. 3

                                                                                                                        I don’t get why people feel the need to pretend talent is a myth or that 10x programmers are a myth. It’s way more than 10x. I don’t get why so many obviously talented people need to pretend they’re mediocre.

                                                                                                                        edit: does anyone do this in any other field? Do people deny einstein, mozart, michaelangelo, shakespear, or newton? LeBron James?

                                                                                                                        1. 4

                                                                                                                          Deny what exactly? That LeBron James exists? What is LeBron James a 10x of? Is that Athelete? Basketball player? What is the scale here?

                                                                                                                          A 10x programmer. I’ve never met one. I know people who are very productive within their area of expertise. I’ve never met someone who I can drop into any area and they are boom 10x more productive and if you say “10x programmer” that’s what you are saying.

                                                                                                                          This of course presumes that we can manage to define what the scale is. We can’t as an industry define what productive is. Is it lines of code? Story points completed? Features shipped?

                                                                                                                          1. 2

                                                                                                                            Context is a huge factor in productivity. It’s not fair to subtract it out.

                                                                                                                            I bet you’re a lot more then 10X better then I am at working on Pony… Any metric you want. I don’t write much C since college, I bet you’re more then 10X better then me in any C project.

                                                                                                                            You were coding before I was born, and as far as I can tell are near the top of your field. I’ve been coding most of my life, I’m good at it, the difference is there though. I know enough to be able to read your code and tell that you’re significantly more skilled then I am. I bet you’re only a factor of 2 or 3 better at general programming then I am. (Here I am boasting)

                                                                                                                            In my areas of expertise, I could win some of that back and probably (but I’m not so sure) outperform you. I’ve only been learning strategies for handling concurrency for 4 years? Every program (certainly every program with a user interface) has to deal with concurrency, your skill in that sub-domain alone could outweigh my familiarity in any environment.

                                                                                                                            There are tons of programmers out there who can not deal with any amount of concurrency at all in their most familiar environment. There are bugs that they will encounter which they can not possibly fix until they remedy that deficiency, and that’s one piece of a larger puzzle. I know that the right support structure of more experienced engineers (and tooling) can solve this, I don’t think that kind of support is the norm in the industry.

                                                                                                                            If we could test our programming aptitudes as we popped out of the womb, all bets are off. This makes me think that “10X programmer” is ill-defined? Maybe we’re not talking about the same thing at all.

                                                                                                                            1. 2

                                                                                                                              No I agree with you. Context is important. As is having a scale. All the conversations I see are “10x exists” and then no accounting for context or defining a scale.

                                                                                                                          2. 2

                                                                                                                            While I’m not very familiar with composers, I can tell you that basketball players (LeBron) can and do have measurements. Newton created fundamental laws and integral theories, Shakespeare’s works continue to be read.

                                                                                                                            We do acknowledge the groundbreaking work of folks like Ken Ritchie, Ken Iverson, Alan Kay, and other computing pioneers, but I doubt “Alice 10xer” at a tech startup will have her work influence software engineers hundreds of years later, so bar that sort of influence, there are not enough metrics or studies to show that an engineer is 10x more than another in anything.

                                                                                                                        2. 3

                                                                                                                          The ‘10X programmer’ is relatively common, maybe 1 standard deviation from the median? And you don’t have to get very far to the left of the curve to find people who are 0.1X or -1.0X programmers.

                                                                                                                          So, it’s fairly complicated because people who will be 10X in one context are 1X or even -1X in others. This is why programming has so many tech wars, e.g. about programming languages and methodologies. Everyone’s trying to change the context to one where they are the top performers.

                                                                                                                          There are also feedback loops in this game. Become known as a high performer, and you get new-code projects where you can achieve 200 LoC per day. Be seen as a “regular” programmer, and you do thankless maintenance where one ticket takes three days.

                                                                                                                          I’ve been a 10X programmer, and I’ve been less-than-10X. I didn’t regress; the context changed out of my favor. Developers scale badly and most multi-developer projects have a trailblazer and N-1 followers. Even if the talent levels are equal, a power-law distribution of contributions (or perceived contributions) will emerge.

                                                                                                                          1. 1

                                                                                                                            I’m glad you acknowledge that there’s room for a 10X or more then 10X gap in productivity. It surprises me how many people claim that there is no difference in productivity among developers. (Why bother practicing and reading blog posts? It won’t make you better!)

                                                                                                                            I’m more interested in exactly what it takes to turn a median (1X by definition) developer into an exceptional developer.

                                                                                                                            I don’t buy the trail-blazer and N-1 followers argument because I’ve witnessed massive success (by any metric) cleaning up the non-functioning, non-requirements meeting (but potentially marketable!) untested messes that an unskilled ‘trailblazer’ leaves in their (slowly moving) wake. Do you think it’s all context or are there other forces at work?

                                                                                                                        1. 3

                                                                                                                          My understanding is that LLVM supports as a target far more platforms than rust. Is that not the case?

                                                                                                                          1. 1

                                                                                                                            Of course it does but since you can compile Rust to LLVM, it doesn’t matter.

                                                                                                                            1. 0

                                                                                                                              Rust compiles to LLVM, so by extension it inherits some of that support. See here for a full list of platforms: https://forge.rust-lang.org/platform-support.html

                                                                                                                              1. 1

                                                                                                                                … sure, but if you’re compiling to rust as an intermediate to LLVM as an intermediate to platform-binary, it’s not clear what the rust step is gaining you. Unless your new language is highly-semantically-compatible with rust in the first place, but in that case it might be better implemented as a series of rust macros.

                                                                                                                                Edit: After reading the rest of the comments more thoroughly, I realize that I’m just inching towards the same arguments that are made better by others.

                                                                                                                            1. 2

                                                                                                                              What I’m most interested in knowing is what is Reddit written in now, and what specific business or technical problems made them switch away from Lisp? Reddit is a very popular website, and if Lisp was not in fact used to get it to where it is today, that says something about how we ought to evaluate Lisp as a language.

                                                                                                                              1. 4

                                                                                                                                what is Reddit written in now,

                                                                                                                                They moved from lisp to python, though I don’t know if it’s still in python.

                                                                                                                                and what specific business or technical problems made them switch away from Lisp?

                                                                                                                                They posted a lengthy blog about why they ported away from lisp at the time. Unfortunately, it looks like the blog post is gone. There’s a bunch of discussions still around, though. Also some other evidence of the lisp community response.

                                                                                                                                Short version: it was technical. Libraries didn’t exist or weren’t sufficient, lisp implementations didn’t work cross-platform, so development was painful, and they continued to have difficult-to-debug slowdowns and site crashes. Stuff like that.

                                                                                                                                Of course, this was over a decade ago, so I strongly suspect the lisp situation has changed.

                                                                                                                                1. 3

                                                                                                                                  Of course, this was over a decade ago, so I strongly suspect the lisp situation has changed.

                                                                                                                                  It’s currently powering Grammarly (circa 2015) so it sounds like it.

                                                                                                                                  One of the common complaints about Lisp that there are no libraries in the ecosystem. As you see, 5 libraries are used just in this example for such things as encoding, compression, getting Unix time, and socket connections.

                                                                                                                                  1. 1

                                                                                                                                    Looks like they’re not actually using it for a webapp, but instead for a back-end process. That’s a different use case than reddit had.

                                                                                                                                    Also, I note that they’re still using two different lisp implementations, one for production, and one for local development. That was a big issue for reddit at the time. I wonder how much energy goes into implementation difference issues.

                                                                                                                                2. 2

                                                                                                                                  Lisp still powers Hacker News, afaik.

                                                                                                                                  1. 1

                                                                                                                                    I thought HN was arc, Paul Graham’s take on scheme?

                                                                                                                                    1. 1

                                                                                                                                      Indeed, that’s my understanding. I should have been more clear, by “Lisp” I was talking about the Lisp family of languages, not Common Lisp specifically.

                                                                                                                                  2. 1

                                                                                                                                    Core is still Python, newer components are being written in Node.js. PostgreSQL was historically the main datastore, with Cassandra serving a secondary role, but data is being re-homed to Cassandra due to scale.

                                                                                                                                  1. 5

                                                                                                                                    It’s nice of them to release the sourcecode (I remember the kerfuffle when they ported to python), but, wow, the lack of documentation hurts. I remember being in the “lisp is so readable it doesn’t need comments” camp, and I may have been wrong.

                                                                                                                                    Honestly, though, a place to start might be enough. IIRC, they were using CMUCL and Hunchentoot. Anybody know/remember the build process for those?

                                                                                                                                    1. 5

                                                                                                                                      I think that was wrong because understandability often goes down as complexity and power go up. LISP is super-powerful with people applying that power in many complex ways. Especially the difference between what you see and what’s going on underneath macros. So, I’d say it needs more documentation or source control if aiming for easily-approachable or predictable codebases.

                                                                                                                                      1. 5

                                                                                                                                        It used ASDF to build (see the .asd file).

                                                                                                                                        1. 3

                                                                                                                                          At the risk of being snarky those are actively maintained projects and you can simply check their respective websites for how to install and use them.

                                                                                                                                          Hunchentoot is in quicklisp and installs easily with (ql:quickload :hunchentoot). The SBCL fork of CMUCL is more widely used than CMUCL, and can be installed with “apt-get install sbcl”, or pre-built binaries for 5 or 6 platforms can be downloaded from their website.

                                                                                                                                          1. 1

                                                                                                                                            The SBCL fork of CMUCL is more widely used than CMUCL

                                                                                                                                            Sure, but SBCL forked, like, twenty years ago, and this code is from more like 10-15. That is, I’m sure they were aware of SBCL, but I’m pretty sure they chose CMUCL instead.

                                                                                                                                            And, yes, if I’m certain they’re using CMUCL and Hunchentoot, and am familiar with both tools, and am familiar with ASDF, and know I need quicklisp, and am also familiar with that, then I suspect I wouldn’t have too much trouble scrapping together a build method that might work. However, I haven’t been in the lisp ecosystem for years, and don’t know for certain which lisp and which web framework they were using.

                                                                                                                                            Looking at the asd file, it seems they were using TBNL, which predates Hunchentoot (in name). Will it build with Hunchentoot? Not sure – how API-compatible is modern Hunchentoot with that old version of TBNL? For that matter, what version of TBNL was used? Are we certain this code can build at all?

                                                                                                                                            A note saying “you need the following versions of the following things to build this: x,y,z, …” would be useful if they don’t have the resources to put together a modern README document.

                                                                                                                                            Also more useful than the current lack of documentation would be a note saying: “this has not been built in years, we don’t know the needed library versions, and it’s not clear whether this can be built at all, but we wanted to provide the source anyway”.

                                                                                                                                            So, I appreciate the fact that some of this is discoverable, but 1- it’s only discoverable if you’re already an up-to-date lisp hacker, 2- even then it might not be fully discoverable, and 3- standards for documentation have changed over the past couple decades, and this doesn’t even meet the standards of many years ago.

                                                                                                                                          2. 2

                                                                                                                                            eh .. the whole platform use to be open source but they closed it a while back. They claimed it was simply too difficult to run the entire thing and there was no point in keeping it OSS.

                                                                                                                                            I dunno .. After Reddit started banning tons of communities, removed their warrant canary and their CEO was caught editing comments, I dismissed the entire platform. I rarely use it; maybe really specific communities.