1. 5

    I feel like the author’s primary complaint is against process. Jira is a tool. It’s flexible enough to implement many different processes. You don’t have to have mini-waterfalls. A ticket could have statuses of “To-do”, “In Progress” and “Done” and “In Progress” can be anything you want. Pair programming, test driven, etc. Or you can get detailed and enumerate all the specific steps.

    No tool replaces having a good, clear process that people actually stick to.

    I will agree that Jira is more focused to lower level, detailed tasking and higher level project goals can benefit from a different tool.

    1.  

      Yeah, this seems to be written by someone largely unfamiliar with Jira. Or familiar with only its use in a single company where it’s poorly managed.

      I agree that you shouldn’t use Jira to define your process, but instead to describe and document your process. But I also think that Jira works fine with high-level project goals. Having a ticket type for “Project” or “Epic” that can be used for high-level prioritization seems to work reasonably well where I’ve seen it done. And you can even use (perhaps to the author’s shock) prose to describe the project and its status. Actually attaching work tickets to those project tickets is not required by Jira in any way.

      Basically, tickets types can scale up and down, and have different workflows per ticket type (and even per Jira project). If you approach it like a generalized tracking tool, then it’s capable of modelling a huge number of processes, large and small.

    1. 8

      yet in many respects, it is the most modern database management system there is

      It’s not though. No disrespect to PostgreSQL, but it just isn’t. In the world of free and open source databases it’s quite advanced, but commercial databases blow it out of the water.

      PostgreSQL shines by providing high quality implementations of relatively modest features, not highly advanced state of the art database tech. And it really does have loads of useful features, the author has only touched on a small fraction of them. Almost all those features exist in some other system. But not necessarily one single neatly integrated system.

      PostgreSQL isn’t great because it’s the most advanced database, it’s great because if you don’t need anything state of the art or extremely specialized, you can just use PostgreSQL for everything and it’ll do a solid job.

      1. 13

        but commercial databases blow it out of the water

        Can you provide some specific examples?

        1. 16

          Oracle has RAC, which is a basic install step for any Oracle DBA. Most Postgres users can’t implement something similar, and those that can appreciate it’s a significant undertaking that will lock you into a specific workflow so get it right.

          Oracle and MS-SQL also have clustered indexes. Not what Postgres has, but where updates are clustered as well. Getting Pg to perform sensibly in this situation is so painful, it’s worth spending a few grand to simply not worry about it.

          Ever run Postgres on a machine with over 100 cores? It’s not much faster than 2 cores without a lot of planning and partitioning, and even then, it’s got nothing on Oracle and MS-SQL: Open checkbook and it’s faster might sound like a lose, but programmers and sysadmins cost money too! Having them research how to get your “free” database to perform like a proper database isn’t cost effective for a lot of people.

          How about big tables. Try to update just one column, and Postgres still copies the whole row. Madness. This turns something that’s got to be a 100GB of IO into 10s of TBs of IO. Restructuring this into separate partitions would’ve been the smart thing to do if you’d remembered to do it a few months ago, but this is a surprise coming from commercial databases which haven’t had this problem for twenty years. Seriously! And don’t even try to VACUUM anything.

          MS-SQL also has some really great tools. Visual Studio actually understands the database, and its role in development and release. You can point it at two tables and it can build ALTER statements for you and help script up migrations that you can package up. Your autocomplete can recognise what version you’re pointing at. And so on.

          …and so on, and so on…

          1. 3

            Thanks for the detailed response. Not everyone has money to throw at a “real” enterprise DB solution, but (having never worked with Oracle and having only administered small MSSQL setups) I did wonder what some of the specific benefits that make a DBA’s life easier were.

            Of course, lots of the open source tools used for web development and such these days seem to prefer Postgres (and sometimes MySQL), and developers like Postgres’ APIs. With postgres-compatible databases like EnterpriseDB and redshift out there, my guess is we’ll see a Postgres-compatible Oracle offering at some point.

            1. 7

              Not everyone has money to throw at a “real” enterprise DB solution

              I work for a commercial database company, so I expect I see a lot more company-databases than you and most other crustaceans: Most companies have a strong preference to rely on an expert who will give them a fixed cost (even if it’s “money”) to implement their database, instead of trying to hire and build a team to do it open-source. Because it’s cheaper. Usually a lot cheaper.

              Part of the reason why: An expert can give them an SLA and has PI insurance, and the solution generally includes all costs. Building a engineering+sysadmin team is a big unknown for every company, and they usually need some kind of business analyst too (often a contractor anyway; more £££) to get the right schemas figured out.

              Professional opinion: Business logic may actually be some of the least logical stuff in the world.

              lots of the open source tools used for web development and such these days seem to prefer Postgres

              This is true, and if you’re building an application, I’d say Postgres wins big. Optimising queries for dbmail’s postgres queries was hands down much easier than any other database (including commercial ones!).

              But databases are used for a lot more than just applications, and companies who use databases don’t always (or even often) build all (or even much) of the software that interacts with the database. This should not be surprising.

              With postgres-compatible databases like EnterpriseDB and redshift out there, my guess is we’ll see a Postgres-compatible Oracle offering at some point.

              I’m not sure I disagree, but I don’t think this is a good thing. EnterpriseDB isn’t Postgres. Neither is redshift. Queries that work fine in a local Pg installation run like shit in redshift, and queries that are built for EnterpriseDB won’t work at all if you ever try and leave. These kinds of “hybrid open source” offerings are an anathema, often sold below a sustainable price (and much less than what a proper expert would charge), leaving uncertainty in the SLA, and with none of the benefits of owning your own stack that doing it on plain postgres would give you. I just don’t see the point.

              1. 3

                Professional opinion: Business logic may actually be some of the least logical stuff in the world.

                No kidding. Nice summary also.

                1. 0

                  Queries that work fine in a local Pg installation run like shit in redshift

                  Not necessarily true, when building your redshift schema you optimize for certain queries (like your old pg queries).

              2. 4

                And yet the cost of putting your data into a proprietary database format is enough to make people find other solutions when limitations are reached.

                Don’t forget great database conversion stories like WI Circuit Courts system or Yandex where the conversion to Postgres from proprietary databases saved millions of dollars and improved performance…

                1. 2

                  Links to those stories?

                  1. 1

                    That Yandex can implement clickhouse doesn’t mean everyone else can (or should). How many $100k developers do they employ to save a few $10k database cores?

                    1. 2

                      ClickHouse has nothing to do with Postgres, it’s a custom column oriented database for analytics. Yandex Mail actually migrated to Postgres. Just Postgres.

                  2. 2

                    You’re right about RAC but over last couple of major releases Postgres has gotten alot better about using multiple cores and modifying big tables. Maybe not at the Oracle level yet bit its catching up quickly in my opinion.

                    1. 3

                      Not Oracle-related, but a friend of mine tried to replace a disk-based kdb+ with Postgres, and it was something like 1000x slower. This isn’t even a RAC situation, this is one kdb+ core, versus a 32-core server with Postgresql on it (no failover even!).

                      Postgres is getting better. It may even be closing the gap. But gosh, what a gap…

                      1. 1

                        Not to be that guy, but when tossing around claims of 1000x, please back that up with actual data/blogpost or something..

                        1. 6

                          You remember Mark’s benchmarks.

                          kdb doing 0.051sec what postgres was taking 152sec to complete.

                          1000x is nothing.

                          Nobody should be surprised by that. It just means you’re asking the computer to do the wrong thing.

                          Btw, starting a sentence with “not to be that guy” means you’re that guy. There’s a completely normal way to express curiosity in what my friend was doing (he’s also on lobsters), or to start a conversation about why it was so much easier to get right in kdb+. Both could be interesting, but I don’t owe you anything, and you owe me an apology.

                          1. 2

                            Thanks for sharing the source, that helps in understanding.

                            That’s a benchmark comparing a server grade setup vs essentially laptop grade hardware (quad-core i5), running the default configuration right out of the sample file from the Git repo, with a query that reads a single small column out of a very wide dataset without using an index. I don’t doubt these numbers, but they aren’t terribly exciting/relevant to compare.

                            Also, there was no disrespect intended, not being a native english speaker I may have come off clumsy though.

                            1. 1

                              kdb doing 0.051sec what postgres was taking 152sec to complete.

                              That benchmarks summary points to https://tech.marksblogg.com/billion-nyc-taxi-rides-postgresql.html which was testing first a pre-9.6 master and then a PG 9.5 with cstore_fdw. Seems to me that neither was fair and I’d like to do it myself, but I don’t have the resources.

                              1. 1

                                If you think a substantially different disk layout of Pg, and/or substantially different queries would be more appropriate, I think I’d find that interesting.

                                I wouldn’t like to see a tuning exercise including a post-query exercise looking for the best indexes to install for these queries though: The real world rarely has an opportunity to do that outside of applications (i.e. Enterprise).

                          2. 1

                            Isn’t kdb+ really good at stuff that postgres (and other RDBMS) is bad at? So not that surprising.

                            1. 1

                              Sort of? Kdb+ isn’t a big program, and most of what it does is the sort of thing you’d do in C anyway (if you liked writing databases in C): Got some tall skinny table? Try mmaping as much as possible. That’s basically what kdb does.

                              What was surprising was just how difficult it was to get that in Pg. I think we expected, with more cores and more disks it’d be fast enough? But this was pretty demoralising! I think the fantasy was that by switching the application to Postgres it’d be possible to get access to the Pg tooling (which is much bigger than kdb!), and we massively underestimated how expensive Pg is/can be.

                              1. 3

                                Kdb+ isn’t a big program, and most of what it does is the sort of thing you’d do in C anyway (if you liked writing databases in C)

                                Well, kdb+ is columnar, which is pretty different than how most people approach naive database implementation. That makes it very good for some things, but really rough for others. Notably, columnar storage is doesn’t deal with update statements very well at all (to the degree that some columnar DBs simply don’t allow them).

                                Even on reads, though, I’ve definitely seen postgres beat it on a queries that work better on a row-based system.

                                But, yes, if your primary use cases favor a columnar approach, kdb+ will outperform vanilla postgres (as will monetdb, clickhouse, and wrappers around parquet files).

                                You can get the best of both worlds You can get decent chunks of both worlds by using either the cstore_fdw or imcs extensions to postgres.

                                1. 1

                                  which is pretty different than how most people approach naive database implementation.

                                  I blame foolish CS professors emphasising linked lists and binary trees.

                                  If you simply count cycles, it’s exactly how you should approach database implementation.

                                  Notably, columnar storage is doesn’t deal with update statements very well at all (to the degree that some columnar DBs simply don’t allow them).

                                  So I haven’t done that kind of UPDATE in any production work, but I also don’t need it: Every customer always wants an audit trail which means my database builds are INSERT+some materialised view, so that’s exactly what kdb+ does. If you can build the view fast enough, you don’t need UPDATE.

                                  Even on reads, though, I’ve definitely seen postgres beat it on a queries that work better on a row-based system.

                                  If I have data that I need horizontal grabs from, I arrange it that way in memory. I don’t make my life harder by putting it on the disk in the wrong shape, and if I do run into an application like that, I don’t think gosh using postgres would really speed this part up.

                      2. 3

                        Spanner provides globally consistent transactions even across multiple data centers.

                        Disclosure: I work for Google. I am speaking only for myself in this matter and my views do not represent the views of Google. I have tried my best to make this description factually accurate. It’s a short description because doing that is hard. The disclosure is long because disclaimers are easier to write than useful information is. ;)

                        1. 2

                          @geocar covered most of what I wanted to say. I also have worked for a commercial database company, and same as @geocar I expect I have seen a lot more database use cases deployed at various companies.

                          The opinions stated here are my own, not those of my former or current company.

                          To put it bluntly, if you’re building a Rails app, PostgreSQL is a solid choice. But if you’ve just bought a petabyte of PCIe SSDs for your 2000 core rack of servers, you might want to buy a commercial database that’s a bit more heavy duty.

                          I worked at MemSQL, and nearly every deployment I worked with would have murdered PostgreSQL on performance requirements alone. Compared to PostgreSQL, MemSQL has more advanced query planning, query execution, replication, data storage, and so on and so forth. It has state of the art features like Pipelines. It has crucial-at-scale features like Workload Profiling. MemSQL’s competitors obviously have their own distinguishing features and qualities that make them worth money. @geocar mentioned some.

                          PostgreSQL works great at smaller scale. It has loads useful features for small scale application development. The original post talks about how Arcentry uses NOTIFY to great effect, facilitating their realtime collaboration functionality. This already tells us something about their scale: PostgreSQL uses a fairly heavyweight process-per-connection model, meaning they can’t have a huge number of concurrent connections participating in this notification layer. We can conclude Arcentry deployments using this strategy probably don’t have a massive number of concurrent users. Thus they probably don’t need a state of the art commercial database.

                          There are great counterexamples where specific applications need to scale in a very particular way, and some clever engineers made a free database work for them. One of my favorites is Expensify running 4 million queries per second on SQLite. SQLite can only perform nested loop joins using 1 index per table, making it a non-starter for applications that require any kind of sophisticated queries. But if you think about Expensify, its workload is mostly point look ups and simple joins on single indexes. Perfect for SQLite!

                          1. 1

                            But MemSQL is a distributed in-memory database? Aren’t you comparing apples and oranges?

                            I also highly recommend reading the post about Expensify usage of SQLite: it’s a great example of thinking out of the box.

                            1. 1

                              No. The author’s claims “Postgres might just be the most advanced database yet.” MemSQL is a database. If you think they’re apples and oranges different, might that be because MemSQL is substantially more advanced? And I used MemSQL as one example of a commercial database. For a more apples-to-apples comparison, I also think MSSQL more advanced than PostgreSQL, which geocar covered.

                              And MemSQL’s in-memory rowstore serves the same purpose as PostgreSQL’s native storage format. It stores rows. It’s persistent. It’s transactional. It’s indexed. It does all the same things PostgreSQL does.

                              And MemSQL isn’t only in-memory, it also has an advanced on-disk column store.

                      1. 2

                        As a sysadmin I prefer MySQL since the high availability is way easier to setup. Either master master or master slave, and if more than two nodes, galera.

                        Postgres is a box of Lego, some tools (barman, repmgr, pgpool, pgbouncer) and wal replication, but nothing cohesive or easy “just works”.

                        Cannot say anything about its capabilities as a database but my developers like it, and as long as they’re happy I’m happy.

                        1. 9

                          As a DBA, I prefer postgres, because postgres hasn’t ever lost data for me, while mysql has. As a dev, I prefer postgres, since it has far better support for advanced datatypes and advanced querying.

                          But, yes, MySQL is still slightly easier to set up out of the box, especially in HA setups.

                          1. 0

                            As someone who cares about the consistency and availability of their data, I wouldn’t wish MySQL on a dog I don’t like.

                          1. 2

                            Questions 5 and 11 both seem pretty much in line with my experience with programming languages.

                            I only know python, or for that matter, had any interest in learning python, because of work. Outside of that I probably still wouldn’t know it; not well enough to write anything signifiant in it. For better or worse, python doesn’t really “do it” for me. I know it and write it purely to get paid. Don’t get me wrong, I quite frankly really enjoy my job, and I don’t have any regrets in learning python, but in a perfect world I wouldn’t have picked it.

                            These days, it really takes something special for a language to peek my interest enough to learn purely for the pleasure of it. A case-and-point for me. I originally wrote balistica in Vala. Looking back on it, I think that was the wrong choice, and I would choose several other languages instead if I had to do it all over again. After going through that, picking which language I devote my free time to is a much stricter process.

                            Long story short: I don’t know Haskell, is there a convincing argument to devoting my free time to learn it over say Lisp, Scheme, or Ocaml? The three languages that top my “want to learn” list presently.

                            1. 5

                              If you like stretching your brain to find new tools to solve problems, Haskell is good for that.

                              You’ll get some of those same tools from lisp / scheme / ocaml, but they allow mutation where Haskell does not.

                              Learn what you like, each new language makes it easier to learn more! Try Haskell sometime, there are lots of cool tools to discover.

                              1. 3

                                I’d recommend Haskell if you’d like to learn a functional language with an advanced type system, although OCaml is also interesting in that regard. For Lisp family I’d also recommend considering Clojure as it’s one of the more practical Lisps and actually gets use in the industry.

                                1. 3

                                  Learning Lisp or Scheme will teach you different things than learning Haskell or an ML.

                                  Lisp and Scheme (and Clojure, etc) tend to have fairly weak type systems, very simple syntax, and (because of the latter) very robust macro support. For many people, writing a lisp program means, essentially, writing non-working pseudocode, then writing the macros to make that pseudocode work.

                                  Haskel, Ocaml, and SML are all strongly and robustly typed. Writing programs in these languages often means figuring out data structures first, then writing functions to manipulate them. Of these, Haskell is a pure language – you’re only writing functions which return values, never functions that manipulate global state. Haskell is also a lazy language, which is something you can get away with not thinking about, until it produces a result that makes you think.

                                  Haskell has the virtue of a surprisingly rich library ecosystem, but the language itself can also be quite complex. SML, on the other hand, has very few libraries available, but the language is simple enough to learn comprehensively quite quickly. Ocaml splits the difference between those two extremes.

                                  … Which is all a roundabout way of saying the only convincing argument in any direction is going to be from you, about what you’re interested in learning next.

                                1. 2

                                  Any chance that means CentOS 8 is getting on the schedule?

                                  1. 9

                                    Disclaimer: I work alongside Kevin, who helped create the Commons Clause. I was not personally involved in the creation of the Commons Clause.

                                    I agree with the premise of this article, which is that projects licensed under the Commons Clause are not open source, and to call them open source is misleading.

                                    The subtext of this article seems to be “the Commons Clause is bad”, which I’m less sure I agree with:


                                    1. Commons Clause makes it possible to publish source code that would have originally been closed source.

                                    I’ve mentioned this before. Most of this code would have originally been closed source so the authors can make money off of it. The Commons Clause lets them still make money while making the program and source code available for as many users as possible.

                                    I think this is a net improvement.

                                    2. Using an open core model with existing OSI-approved licenses is unpleasant.

                                    Software developers must feed themselves. They must get paid somehow. This is a hard requirement.

                                    Open core has historically worked well for open source infrastructure companies at scale (e.g. Hashicorp, Docker, GitLab, Redis). These companies provide immense value for the software community by doing sustainable open source development. (The only successful large company I’m aware of that used the paid support model was Red Hat.)

                                    If you actually talk to many of the teams working on open source infrastructure, they’re frustrated by existing licensing tools. There is a big difference between the value that these teams generate and the value that they’re able to capture. A big contributor to this is the fact that service providers like AWS run hosted versions of open source software and capture disproportionately more value than they generate for the community. This is a strong disincentive to provide open core infrastructure.

                                    Permissive licenses like Apache allow this to happen. Highly restrictive licenses like AGPL are too broad and scare away proprietary users who would not be hurting the team’s sustainability. In practice, open source teams do not have an option for saying “I would like to be as permissive as possible, but still make money so I can fund sustainable development”.

                                    3. “Free software” and “open source” as concepts are more nuanced than the GNU and OSI definitions.

                                    The GNU and OSI definitions are very narrow, and generate a lot of confusion. This is exacerbated when people use “free software” and “open source” (as opposed to e.g. “Free Software” / “free-as-in-freedom” / “GNU free software” or “Open Source” / “OSI open source”) to refer to the GNU and OSI definitions.

                                    There are immediate layperson meanings for these terms: “software that I didn’t have to pay for” and “software where I can view the source code”.

                                    The terms “non-free” and “non-commercial” can mean too many things, and to use them to describe the Commons Clause is misleading:

                                    1. Often times, Commons Clause projects are provided at no cost.
                                    2. The entire point of the Commons Clause is to allow as much commercial usage as possible, and to only forbid the strictest possible subset of usage (reselling the software) to enable sustainable development.

                                    In practice, there are gradients of freedom. To say that software that is not strictly GNU Free Software is not free or projects that are not strictly OSI Open Source are not open source is misleading to the everyday user.

                                    I would love to see GNU and the OSI step up here with better education and clearer definitions around this.

                                    4. By insisting on their definitions of “free software” and “open source” and failing to recognise this nuance, GNU and the OSI are missing the forest for the trees and will ultimately push more projects towards closed source models.

                                    By winning this battle, they are losing the meta-game.

                                    At the end of the day, what matters is not whether there are more OSI Open Source projects, but how much value we provide to the community. When open source advocates say that Commons Clause projects are “not open source” (in the OSI sense) and discourage its use, they are correct but harmful.

                                    By taking away this middle ground, they push projects to be either free-as-in-freedom or proprietary. Given the pains of sustainable infrastructure development using OSI-approved licenses, I fear that this will ultimately drive projects that would rather be licensed under the Commons Clause (i.e. as permissive as possible) into becoming closed source and proprietary.


                                    I don’t believe that the Commons Clause is the best solution, but I believe that it’s important to start a discussion around:

                                    1. How can we best address the need for sustainable open source development?
                                    2. Should we create new licensing tools to enable sustainable development? If so, how?

                                    I think the fact that the Commons Clause has been able to get adoption is a strong signal that there is a real pain here (see also: MongoDB and its SSPL).

                                    @SirCmpwn, I would love to hear your thoughts on a better way to enable sustainable development for open source infrastructure.

                                    1. 5

                                      Software developers must feed themselves. They must get paid somehow. This is a hard requirement.

                                      In practice, open source teams do not have an option for saying “I would like to be as permissive as possible, but still make money so I can fund sustainable development”.

                                      Redis Labs only became the official sponsor of Redis in 2015, four years after they were founded as a company. So if they weren’t the primary sponsor for four years, how did sustainable development get funded? Well, until Redis Labs hired him, antirez fed himself with a job at VMware. VMware and Pivotal sponsored Redis and funded that sustainable development.

                                      Alright, so how do other developers feed themselves? Is antirez the exception? Did Gudio van Rossum work for some Python-centric company focused on support? Nope! He worked at research institutions, then Zope, then Elemental Security, then Google, then DropBox.

                                      The creators of Apache Kafka worked at LinkedIn when they initially developed it. Three years after LinkedIn open sourced it, some of the contributors from within LinkedIn founded their own company to focus on Kafka. Until that point, those devs fed themselves with a job at LinkedIn.

                                      Linus Torvalds fed himself with a job at Transmeta, then a series of non-profits that eventually evolved into the Linux Foundation (also a non-profit). Many kernel contributors are employed by hardware companies like AMD and Intel.

                                      Developers must feed themselves, but they can totally do that by working at a company that doesn’t revolve around the software they write as its sole product.

                                      I would argue that it’s more sustainable that way. Companies like Red Hat, Redis Labs, Canonical, Confluent, and a whole bunch more exist because companies want to buy a bunch of integration work ready-to-go rather than spending huge sums of money doing it themselves. If Canonical went bust tomorrow (as many Linux vendors before it have!) Linux would still get developed. Would Landscape, their closed-source management tool? Probably not. The open source component is the sustainer that allows new companies to spawn and die without fear of losing the core.

                                      1. 3

                                        You’re giving the exceptions to the rule, not the rule. The rule is most aren’t funded. The responses were really negative, too, with lots of stress and burnout. Whereas, the proprietary software that has users gets money automatically with it going up with product development and/or marketing. FOSS developers trying to catch up to that inherent advantage finding funding sources can itself seem like a 3rd job on top of their 2nd job of making the FOSS for free.

                                        1. 2

                                          You’re giving the exceptions to the rule, not the rule.

                                          Do non-FOSS applications succeed at a higher rate than FOSS ones?

                                          The rule is most aren’t funded.

                                          Ok. Here’s the end of that article:

                                          “P.P.S. [edit 1/18/16] The response to this post has been incredible. I’ve started a list of OSS projects needing support here. Please add your great examples there!”

                                          That leads to a git repo that’s no longer maintained. Uh oh. But wait! There’s a link that leads to libraries.io with the tagline “Tidelift has over $1 million dollars available to pay open source maintainers. If you’re a maintainer: Find your package.” Here’s some info from Tidelift.

                                          The responses were really negative, too, with lots of stress and burnout.

                                          Do me a favor and read them again, only this time imagine they’re working at a Fortune 100 on a closed-source project. How many of those would sound out of place through that lens?

                                          I have to say, if you asked me about the projects Ive been paid to work on full time (mostly internal stuff at various companies), I would have largely the same complaints at one time or another, including the one about “It is not fair to expect me to do even more work outside of my regular work, and then not get fairly compensated (time or money) for it.”

                                          By the way, here’s what they’re doing now, 3 years on. EDIT: I just realized that some of these are highlighting users on here! I’d love to hear what you have to say now!

                                          @pydanny, still going strong on GitHub and contributing to open source, in addition to writing books on Python.

                                          @ryanbigg, quit maintaining his open source projects (at the time of the article) and handed some off to other teams and developers. Wrote several books on open source projects, continues to work on the i18n ruby gem.

                                          @drmaciver, still working on Hypothesis and doing consulting and training around it.

                                          @andrewgodwin, still a Django core member, employed by evenbrite.

                                          @kantrn, continues to contribute to open source, did consulting. I didn’t see his employment listed on Twitter, but I found him on LinkedIn. He’s got a job as a principal engineer now.

                                          @shazow, working on blockchain tech with his own project, Vipnode. Appears to be working full time on open source via grants and partnerships?

                                          Even the person who said “I do not have the time or energy to invest in open source any more” is still contributing to open source. Some have started contributing to open source full time. Others are gainfully employed and either working on them as part of their core work.

                                          Whereas, the proprietary software that has users gets money automatically with it going up with product development and/or marketing.

                                          dwarffortress, WinRAR, WinAmp, Sublime text editor all release free versions hoping for donations or as a free trial. It is not automatic for proprietary software unless that software is so completely necessary that they can just bill you to even have a peek at it. Hell, even Windows offers a free trial despite decades of a virtual stranglehold on the market for desktop OSs.

                                          FOSS developers trying to catch up to that inherent advantage finding funding sources can itself seem like a 3rd job on top of their 2nd job of making the FOSS for free.

                                          See above for why it’s not an automatic inherent advantage. Also, that presumes the development needs external funding rather than external contributors who are already getting paid. I’d much rather convince my employer to let me contribute to open source for my regular salary and have other projects to work on for if the open source one goes bust or implodes or hires a toxic developer who everyone hates or I run out of things to do on it or I need a break from the grind.

                                          1. 3

                                            By the way, here’s what they’re doing now, 3 years on. EDIT: I just realized that some of these are highlighting users on here! I’d love to hear what you have to say now!

                                            […]

                                            @shazow, working on blockchain tech with his own project, Vipnode. Appears to be working full time on open source via grants and partnerships?

                                            Can confirm. Typically I do consulting work for part of the year to make up for the year’s expenses, then I do self-guided OSS stuff the rest of the year. Vipnode turned out to be an exception as it was a self-guided open source project that happened to resonate with a generous community that wanted to support my work financially. (And give or take some sales effort on my part.)

                                            Overall, I stand by my original quote in the cited article:

                                            Publishing and contributing to open source is going to continue happening regardless whether I’m getting paid for it or not, but it will be slow and unfocused. Which is fine, it’s how open source work has always worked. But it doesn’t need to be this way. — @shazow

                                            1. 1

                                              Thanks for following up! Would you mind sharing some of how you did the conversion to working (mostly) full time on OSS stuff?

                                              edit: boy did that sentence get muddled in the middle. Fixed.

                                              1. 3

                                                Any specific questions?

                                                I have a yearly minimum earned income goal (as I’m generally self-employed). If I reach that goal, then I allow myself to switch to not-necessarily-paid OSS stuff. That income comes from a variety of sources (I have some SaaS projects like Briefmetrics, some ad income from high-traffic free projects like Tweepsect), but the majority comes from contracts with clients.

                                                This year, a big chunk came from an Ethereum Foundation grant and the partnership with Infura.

                                                I’ve considered doing a Patreon and funneling supporters through that, but I’m not convinced that the expected value would exceed the relative effort and anxiety that would come with it. Still mulling it over.

                                                When I do paid work, I certainly prefer open source work, bonus points if it’s things I’m interested in independently. I have some recurring clients who allow me to do this kind of work sometimes, which is great. Sometimes I’ll take less-desirable yet high-paying work to reach the minimum income goal quicker so I have more time to do better things.

                                                1. 1

                                                  Awesome summary! That’s really exciting about the partnership and the grant!

                                                  Any specific questions?

                                                  SO many. I’ll try to keep it brief though.

                                                  Where was the tipping point where you were like “You know what? I can work for myself.”

                                                  How do you find paid work on projects? Do people reach out to you for help, or do you hunt for places to help? Something else?

                                                  Have you found yourself to be more productive on projects in general now that you self direct?

                                                  What are some things that employers could do to make life better for folks doing open source contributions?

                                                  What’s a normal work-week like for you? What kind of hours do you keep?

                                                  1. 3

                                                    Where was the tipping point where you were like “You know what? I can work for myself.”

                                                    I’ve been doing it on and off for a long time (since I was in my teens), so it wasn’t a super scary idea. It helps to be good with tracking your own finances. Figure out how much income you need to at least break even with expenses, and see if you can find contract work to cover it. Then dial that number up year over year so you build up savings.

                                                    Hint: It’s much easier when your expenses are low. I suggest not living in SF, or even in the US if you can help it (where health insurance is expensive and risky). That said, I primarily work remotely with US customers (SF/NY).

                                                    How do you find paid work on projects? Do people reach out to you for help, or do you hunt for places to help? Something else?

                                                    Recurring customers that you have a good relationship with are best, but those take time to cultivate. Small/medium well-funded companies have worked best for me, especially if you know people there who have a good idea of the kinds of help they might need with. Bonus points if they rely on your OSS work.

                                                    Have you found yourself to be more productive on projects in general now that you self direct?

                                                    In some ways. I certainly do more of the kinds of things I think I should be doing, and less doing things that I think are a waste of time.

                                                    It can be hard to stay motivated day to day, especially if you’re working solo it can get lonely. That’s generally true.

                                                    It’s common to have self-doubt, but it’s easier to power through it when you’re being paid. If you’re just burning your own savings for your own idea and you’re having self-doubt, it can be very hard to get over that hump. It’s hard learning to trust yourself, but maybe it gets easier with time.

                                                    What are some things that employers could do to make life better for folks doing open source contributions?

                                                    Encourage employees to spend work-hours time contributing back to projects they use and rely on at work. At least a day or two per week

                                                    An open source donation budget would also be nice, maybe as a team you can sit down once every couple of quarters and make a top 5-10 projects that the team wants to have an impact on, and do it (whether financially or through effort).

                                                    What’s a normal work-week like for you? What kind of hours do you keep?

                                                    When I draft contracting agreements, I tend to limit it to 3 full-time days/wk of commitment. I feel like I get 80-90% of a “40 hour workweek” productivity in 3 days, and it cuts down on a lot of other things. Clients aren’t keen on excessive meetings when the time available is constrained like this.

                                                    Personally, I’ve found Mon-Wed works best for me, and brief written status updates on Tuesdays. I don’t charge by the hour, but I do “productive hours” tracking internally for my own analysis. Days with 6 “productive hours” (ie. actual time spent writing code and such) are considered good days. Some days aren’t good days, and that’s okay. If I’m having a particularly off day, I’ll sometimes write it off and try again another day (like today… I’ll probably end up working tomorrow instead).

                                                    If I wrapped up my primary commitment for the week and I have days left over, I’ll switch over to other projects. Occasionally, due to the nature of contracting (it’s impossible to maintain an equilibrium of clients around your own schedule), I’ll have multiple concurrent clients, but I try to avoid that when possible.

                                                    1. 1

                                                      This feels like it could be an entire medium article or something on its own.

                                                      It can be hard to stay motivated day to day, especially if you’re working solo it can get lonely. That’s generally true.

                                                      We have a bunch of employees that are 100% remote work, and I’ve noticed that some will take advantage of video chat while others generally seem to just want to be left the hell alone, with little variation in their routines.

                                                      I don’t charge by the hour, but I do “productive hours” tracking internally for my own analysis.

                                                      Do you have a particular tool you use for this? I’ve been meaning to do the same thing at work, but have always been kind of lazy about it because it requires so much extra effort to track by hand. I have noticed that on a “bad” day I can generally tell how much distraction I’ve had by the number of times I’ve had to pause my music :)

                                                      1. 1

                                                        This feels like it could be an entire medium article or something on its own.

                                                        What’s a good spicy title for it? :)

                                                        Do you have a particular tool you use for this?

                                                        Not really. Right now I just log it with Harvest which I also use for invoicing. My friend really likes Timing2 for macOS, but I’m on Linux these days. I’ve considered using something like Thyme but it does more than what I need.

                                                        Really I should just write my own basic timer that lives in the tray and a quick start/stop shortcut.

                                                        I have noticed that on a “bad” day I can generally tell how much distraction I’ve had by the number of times I’ve had to pause my music :)

                                                        That is a good one!

                                                        I often try to keep a policy to stop music anytime I’m not doing “work”, just to condition myself and avoid getting lost in distraction.

                                                        1. 1

                                                          What’s a good spicy title for it? :)

                                                          Maybe:

                                                          Abort to Orbit: How I went independent and what I do when I need more.

                                                          The concept of Abort to Orbit is that you launch your ship and then if the crap hits the fan, you’ve got a still-relatively-good fallback option. More importantly, you look at possible failure modes and address them rather than letting them hold you back.

                                                          I’ve considered using something like Thyme but it does more than what I need.

                                                          Oooh, that looks very promising indeed.

                                                          I often try to keep a policy to stop music anytime I’m not doing “work”, just to condition myself and avoid getting lost in distraction.

                                                          I follow the rule of “if they have headphones on, leave them the hell alone.” Exceptions include the building being on fire or prod issues. I’m trying to encourage my colleagues to do the same. It’s… hit and miss.

                                            2. 1

                                              Re success rate. Yes, non-FOSS succeeds in getting their developers paid at a higher rate despite failure rate for new companies being high. They actually charge for software. So, they win by default.

                                              Re $1 million. So, FOSS developers have to divide up a million while proprietary developers get a slice of tens of billions in recurring profit. Your example argues my point more than yours.

                                              Re working big companies instead. Many already work for them before doing the FOSS on the side. You’re in luck though since Ive surveyed thousands of people on this issue when working general public. Most gripe, shrug, or roll their eyes before saying “at east Im working” (low pay) or “but it pays well” (high pay). The percentage with terrible jobs can attempt to switch companies. So, they’re not a counter to my position but I decided to answer anyway.

                                              Re anecdotes. Good they’re still contributing and/or employed. Remember my model has them working one job in regular hours paid for their work. In most examples I see, many still do FOSS as extra thing they’re not paid for. And often for lower amounts than proprietary sector pulls in.

                                              Re trials. That’s a marketing technique to generate sales. Nothing in my post precudes loss leaders if necessary. The Prosper license, a candidate for shared source, allows a 90-day evauation for free.

                                              Re last stuff. My post was about people that would like to get paid for their contributions not working extra hours on them. There’s people like you and maybe those you mentioned that want something different. Ive even known people, been one, to turn down money to keep their intentions purely altruistic or just separate fun from business. My comments may not apply to you or them at least for selfish gain and/or employment.

                                              All that said, you still havent refuted biggest point that money dictates laws governing software freedom, FOSS-lovers are losing ground due to lobbying, the need a fortune to counter it, and current models paying a pittance guarantees we loose more freedom over time. I gave examples involving money being seized via patent trolling. If they want to get dirty, copyright law has criminal penalties, too. Current or future expansions might use it. Who knows what they’ll do in future but we have less if staying on same trajectory. Doing nothing in this case is still doing something (for opponents).

                                              1. 1

                                                Re success rate. Yes, non-FOSS succeeds in getting their developers paid at a higher rate despite failure rate for new companies being high. They actually charge for software. So, they win by default.

                                                Do you have any stats to back this statement?

                                                Re $1 million. So, FOSS developers have to divide up a million while proprietary developers get a slice of tens of billions in recurring profit. Your example argues my point more than yours.

                                                If FOSS developers had to divide up $1 million amongst all the projects, it might argue your point. However, since as I pointed out in my other examples of companies that sponsor particular projects or employe developers directly to work on FOSS projects and companies based on FOSS Projects, this represents an additional $1 million to try to fill in the edges rather than core development. It’s disingenuous to represent that $1 million as the sole source of money for FOSS developers when Red Hat alone has $4bn in assets.

                                                Re working big companies instead. Many already work for them before doing the FOSS on the side. You’re in luck though since Ive surveyed thousands of people on this issue when working general public. Most gripe, shrug, or roll their eyes before saying “at east Im working” (low pay) or “but it pays well” (high pay). The percentage with terrible jobs can attempt to switch companies. So, they’re not a counter to my position but I decided to answer anyway.

                                                Can we see those survey results?

                                                Re anecdotes. Good they’re still contributing and/or employed. Remember my model has them working one job in regular hours paid for their work. In most examples I see, many still do FOSS as extra thing they’re not paid for. And often for lower amounts than proprietary sector pulls in.

                                                You said the rule was that they’re not funded, and cited a series of anecdotes. OK, pop quiz: how many of the anecdotes you cited resulted in people contributing to FOSS as their full time job rather than as an extra? Does writing books about FOSS count?

                                                Re trials. That’s a marketing technique to generate sales. Nothing in my post precudes loss leaders if necessary. The Prosper license, a candidate for shared source, allows a 90-day evauation for free.

                                                You said they get money automatically, which is demonstrably not true if they do a 90-day evaluation that doesn’t result in purchase. While it doesn’t preclude loss-leaders, it does refute your statement that they automatically get money.

                                                Re last stuff. My post was about people that would like to get paid for their contributions not working extra hours on them. There’s people like you and maybe those you mentioned that want something different. Ive even known people, been one, to turn down money to keep their intentions purely altruistic or just separate fun from business. My comments may not apply to you or them at least for selfish gain and/or employment.

                                                Fair enough, but your post claimed that “most” don’t get funded without any backing evidence, proprietary software “automatically” gets money without any backing evidence, and then made assertions about FOSS developers (without bothering to qualify it like “some FOSS developers” or even “most FOSS developers”) trying to “catch up” might have an experience like working a 2nd or 3rd job. You started with broad generalizations and suddenly want to add disclaimers?

                                                All that said, you still havent refuted biggest point that money dictates laws governing software freedom, FOSS-lovers are losing ground due to lobbying, the need a fortune to counter it, and current models paying a pittance guarantees we loose more freedom over time. I gave examples involving money being seized via patent trolling. If they want to get dirty, copyright law has criminal penalties, too. Current or future expansions might use it. Who knows what they’ll do in future but we have less if staying on same trajectory. Doing nothing in this case is still doing something (for opponents).

                                                The comment I responded to, in it’s entirety, is the following:

                                                You’re giving the exceptions to the rule, not the rule. The rule is most aren’t funded. The responses were really negative, too, with lots of stress and burnout. Whereas, the proprietary software that has users gets money automatically with it going up with product development and/or marketing. FOSS developers trying to catch up to that inherent advantage finding funding sources can itself seem like a 3rd job on top of their 2nd job of making the FOSS for free.

                                                Please show me where you made that biggest point or gave any of the examples you just claimed in the comment I replied to.

                                          2. 3

                                            Developers must feed themselves, but they can totally do that by working at a company that doesn’t revolve around the software they write as its sole product.

                                            This stance ensures that FLOSS contributors will only ever be people who have abundant energy and free time outside of their work week. That excludes a bunch of, e.g., parents, people with multiple jobs, and people with medical issues.

                                            1. 1

                                              My point was that they can be employed by a company to do that contribution as a function of their job even if the company itself isn’t focused on that particular project. Redis exists because of this model. Ditto for Kafka. If you work a full time job doing open source for a company that uses that project and have a second job doing other stuff, how would that interfere with the open source contribution?

                                              1. 2

                                                Then that’s a chicken/egg issue. How does one get a job doing open source contribution (of which there are very, very few) without having open source contributions on their resume?

                                                If you’re saying simply that companies should all contribute to open source, remember that running an open source project is significantly more work than simply writing software. That’s a large extra investment over what they’re doing now, and doesn’t have a clear ROI.

                                            2. 3

                                              I think the wording of the questions in the parent post is misleading, though probably not intentionally so. If the question was really, “How can we develop open source software sustainably?”, then as you have described, one answer is simply, “the same way we have for the last few decades”. However, I suspect the question they really want to ask is something along the lines of, “How can we fit open source development into a for-profit business in a capitalist economy?”. I do not think this is a bad question to ask, as the motivation for asking it is almost certainly a desire to promote and improve open source software full time without starving, but it is not the same as asking how we can develop open source software sustainably.

                                              Once the questions are rephrased in this way, it’s a lot less alarming: The issue is no longer dressed up as a desperate attempt to save free/open source software, it’s just some people looking for business opportunities.

                                              If you can run a successful business centred around free software development, that’s great. If you can’t, then FLOSS software development will continue regardless. I personally do not believe it is worth the risk of watering down the ideals of software freedom by implying, even if only by the names, that a free software license + commons clause is somehow still free.

                                              As far as the “Commons clause” is concerned, I see two possibilities

                                              1. It’s just ‘openwashing’. I.e. pretending to promote software freedom without actually making free software.
                                              2. It’s genuinely trying to find some middle ground where software that would otherwise be closed source can be “slightly freer” without radically changing the owner’s business model.

                                              Personally, I am opposed to 1. and have no interest in 2., but maybe option 2. might benefit some people in some way.

                                              1. 3

                                                This is essentially the “real musicians have day jobs” argument, and I find it very weak. There are a number of things wrong with it. The “day job” distracts from the work of open source maintenance and can make it much harder to do deep work. Only the top of the organization can really get jobs of this nature, it can’t fund helpers. It perpetuates the traditional problems in open source of making it easier to concentrate on technology as opposed to product management. The funding organization has too much control over the direction of the project, as opposed to the users who derive the most value from it.

                                                But yes, in the current landscape, it’s (sadly) one of the more viable approaches.

                                                1. 1

                                                  This is essentially the “real musicians have day jobs” argument

                                                  I disagree. The “real musicians have day jobs” argument is that because they can’t get a job doing the music they love, they do something else, right? Even if it’s still in music, they don’t do their main wish.

                                                  My argument is that not all projects require a company dedicated to that project to succeed. In many cases success is found in projects that have a variety of contributors. Some of them are paid to work full time on the project by a company that - while not primarily focused on the software - still want or need to invest in its development. Examples of this are AMD and Intel engineers working on the Linux Kernel, or how Kafka and Redis were initially developed before the contributors either formed or joined a company dedicated to the project.

                                                  Those companies provided incubation for projects that weren’t their core business model, but were useful nonetheless. Paying people to work full time on something you use - but can’t or don’t want to sell - is something many companies do already, but they don’t share the code. By open sourcing the project, they can get contributions from other companies with full time engineers that would use their code, or attract new talent from folks who want to work on open source but can’t because their current employer won’t allow it.

                                                  1. 3

                                                    Then we agree to disagree. Again to use my own example, I think it’s likely that working on xi-editor fulltime would likely be the largest value I could create right now. I had a sweet gig very much like you describe, working for a big company where they let me put some of my time into it. But the goals of that project weren’t precisely aligned, and I found my concentration pretty fragmented.

                                                    If I could find a sustainable way to work on xi-editor fulltime, I probably would. My decision to work on the synthesizer game is partly because it’s fun and exciting, and partly because, if it flies, it’s a nice revenue stream that will let me work sustainably.

                                                    This is my experience, I don’t speak for anyone else.

                                                    1. 1

                                                      Your example is a good one, and I totally get that disagreement. Your point is well taken. Additionally, the idea that the goals weren’t aligned is a pitfall that I imagine has lead to many a fork over the years in various projects :)

                                                      If you do find a way to work on it full-time and still want to, I absolutely want to revisit!

                                                    2. 1

                                                      Examples of this are AMD and Intel engineers working on the Linux Kernel, or how Kafka and Redis were initially developed before the contributors either formed or joined a company dedicated to the project.

                                                      The examples you keep giving are rare. Most FOSS doesn’t get funding or dedicated employees by big companies. Most FOSS with lots of users doesn’t get AMD/Intel-type investments. If we’re talking general case, it’s more accurate to assume what happens in the general case now will happen in general case for other people unless incentives and environment driving it changes. They haven’t changed. If anything, companies appear to be using FOSS in SaaS dodging the need to contribute many changes back more often than before.

                                                      And your only reply from people you quoted was a person that doing FOSS at a loss using revenue from other work. Like a 2nd or extra job worked for free while proprietary vendors of similar libraries get paid. Just like I said most would be doing if it’s FOSS.

                                                      1. 1

                                                        The examples you keep giving are rare. Most FOSS doesn’t get funding or dedicated employees by big companies. Most FOSS with lots of users doesn’t get AMD/Intel-type investments. If we’re talking general case, it’s more accurate to assume what happens in the general case now will happen in general case for other people unless incentives and environment driving it changes. They haven’t changed. If anything, companies appear to be using FOSS in SaaS dodging the need to contribute many changes back more often than before.

                                                        The question is are they rarer than closed-source software getting that kind of investment? You haven’t addressed that statement beyond your assertion that it is fact despite an utter lack of backing evidence.

                                                        And your only reply from people you quoted was a person that doing FOSS at a loss using revenue from other work. Like a 2nd or extra job worked for free while proprietary vendors of similar libraries get paid. Just like I said most would be doing if it’s FOSS.

                                                        People you cited, I quoted. I extracted their quotes from the thing that you specifically cited as an example of work not getting funded, from an article that had at the core of its premise “FOSS doesn’t get funded.” I specifically cited the examples you gave claiming they contradicted my point.

                                                        Even then, in the territory of something you cited as directly opposing my view, the response here was not a slam dunk for you point. On the contrary, you claim that the person is doing FOSS at a loss using revenue from other work despite them clearly stating that was not the case this year where a substantial chunk of their income came from exactly the funding you say is rare.

                                                        You can still hide behind the fact that it’s an exception if you want, but it doesn’t prove that it’s any different in the proprietary world. You keep asserting it’s true without the backing. Show me the stats to compare the two and maybe we can draw a conclusion.

                                                2. 2

                                                  Hi liftM, thanks for taking the time to write up your thoughts in such detail.

                                                  I agree with the premise of this article, which is that projects licensed under the Commons Clause are not open source, and to call them open source is misleading.

                                                  You’re right. This article is talking about two things:

                                                  • Using the Commons Clause and calling that software open source is dishonest and unethical
                                                  • The Commons Clause is bad

                                                  The reason these aren’t separate articles is:

                                                  • The two are related, because I think that the design of the Commons Clause actively encourages its users to lie
                                                  • I’m sick of writing articles about the Commons Clause.

                                                  Let me explain more about why I dislike the Commons Clause before I answer your questions directly.

                                                  First, I don’t think that FOSS is the end-all-be-all of software licensing. Like I said in the article, anyone is welcome to license their software any way they choose. I’m also a fan of source-available models as an alternative to closed-source software, I think it’s strictly better than closed-source. However, the Commons Clause is not a good way to license source-available software.

                                                  The Commons Clause should have been a new source-available license entirely. As an addendum to FOSS licenses, it’s totally bunk. The entire point of FOSS is to enshrine basic protections for the authors, users, and contributors. By removing these basic protections, the original license effectively becomes meaningless. It’s like a Jenga tower, with the removal of some freedoms it has a cascading effect which removes many of the others. Restricting commercial use has many grave side-effects: reusing the code elsewhere, forking the project, providing support after the maintainers abandon it, etc - all of this is now difficult-to-impossible, or at least egregiously under-specified by the Commons Clause.

                                                  Additionally, I take offense with the Commons Clause’s stated goal of turning previously open source projects into source-available projects. Though source-available is strictly better than closed source, it’s strictly worse than open source, and the change is a net loss for the commons - which is why I take offense with the name as well. It also fails to adequately explain the responsibilities maintainers hold to their contributors - without a CLA in place which assigns copyright to the maintainers, it’s in fact illegal to switch to the Commons Clause. Or at the least, the Commons Clause can only apply to new code, and the old license has to be kept in place and in many cases (notably Apache 2.0) the differently-licensed changes must be explicitly disclosed.

                                                  Now, to answer your questions directly…

                                                  Commons Clause makes it possible to publish source code that would have originally been closed source.

                                                  No, the stated goal of the Commons Clause is to transition code which was already open source to source-available. The code wouldn’t have originally been closed source because it was originally open source.

                                                  The Commons Clause lets them still make money while making the program and source code available for as many users as possible.

                                                  I don’t think it does. Without the rights afforded to users by the Apache 2.0 license, why would users have the good faith desire to use your software? Additionally, with so many grey areas, such an amateurish license, and only one option for support, any company who uses this kind of software is nuts.

                                                  If you actually talk to many of the teams working on open source infrastructure

                                                  Like me

                                                  A big contributor to this is the fact that service providers like AWS run hosted versions of open source software and capture disproportionately more value than they generate for the community.

                                                  So make a better hosted version than AWS has. Boo-hoo.

                                                  Permissive licenses like Apache allow this to happen. Highly restrictive licenses like AGPL are too broad and scare away proprietary users who would not be hurting the team’s sustainability. In practice, open source teams do not have an option for saying “I would like to be as permissive as possible, but still make money so I can fund sustainable development”.

                                                  Dual-licensing has allows this to work for ages. Use AGPL with a paid BSD option. Also note that many organizations have been successful with paid support, or with something like Patreon. You can also do sponsored blog posts, put their logos at your conference… get creative with it. You don’t need to capture all of the value of your software. Let AWS have some of it. By making it open source, it’s no longer yours. If you can make a living income on your software, demanding more is just greed. This is part of the commitment you make to the public by making your software open source. Companies like AWS have a vested interest in making sure you have a sustainable income - it’s your job to point this out to them, not to pull the rug out from beneath them.

                                                  “Free software” and “open source” as concepts are more nuanced than the GNU and OSI definitions.

                                                  No, they’re not. There’s no point in arguing this because I’m not going to concede it. Free software is defined by the GNU free software definition. Open source is defined by the OSI open source definition. If you do something which doesn’t fit in those niches, call it something else.

                                                  I would love to see GNU and the OSI step up here with better education and clearer definitions around this.

                                                  They already have. You just don’t like their definitions. Everyone else does, and in language the consensus is correct. If you misuse these terms you are a liar.

                                                  By insisting on their definitions of “free software” and “open source” and failing to recognise this nuance, GNU and the OSI are missing the forest for the trees and will ultimately push more projects towards closed source models.

                                                  Maybe they are. But the Commons Clause is doing a piss-poor job in their stead.

                                                  1. 0

                                                    I’ve mentioned this before. Most of this code would have originally been closed source so the authors can make money off of it. The Commons Clause lets them still make money while making the program and source code available for as many users as possible.

                                                    No it wouldn’t. You’re relicensing free software as ‘commons clause’ proprietary software.

                                                    Using an open core model with existing OSI-approved licenses is unpleasant.

                                                    Nobody is saying you have to use OSI-approved licenses, and nobody is saying you aren’t allowed to license things as source-available. What you aren’t allowed to do is to call those source-available models ‘open source’. That’s misleading.

                                                    “Free software” and “open source” as concepts are more nuanced than the GNU and OSI definitions.

                                                    No they aren’t. Literally it’s as simple as ‘no they aren’t’. They just aren’t more nuanced than that. Those definitions are what those mean to literally the entire software industry and all software hobbyists. They’re universally agreed upon terms with precise technical definitions. Muddying the waters then claiming that the waters are muddy is very poor behaviour.

                                                    ‘Software I don’t have to pay for’ is called freeware. ‘Software where I can view the source code’ is called ‘source available software’. Laymen are completely irrelevant. The terms exist, they’ve existed for decades.

                                                    Often times, Commons Clause projects are provided at no cost.

                                                    Commons Clause is a proprietary software license. It does not give users the four freedoms, so it is a non-free software license. What it costs has nothing to do with whether it’s free. You know this, I know this, everyone knows this. This was all sorted out long ago.

                                                    In practice, there are gradients of freedom. To say that software that is not strictly GNU Free Software is not free or projects that are not strictly OSI Open Source are not open source is misleading to the everyday user.

                                                    No, you are being misleading. And you know it. That ‘open source’ means ‘open source’ and ‘free’ means ‘free’ is long established. Very long established. The words work, they’re good.

                                                    By winning this battle, they are losing the meta-game.

                                                    What an awful article. Someone just learnt what an analogy was, I guess, and decided to practice them. Unfortunately, it makes the article impossible to skim-read.

                                                    At the end of the day, what matters is not whether there are more OSI Open Source projects, but how much value we provide to the community. When open source advocates say that Commons Clause projects are “not open source” (in the OSI sense) and discourage its use, they are correct but harmful.

                                                    You acknowledge that they are correct, but before you’re saying it’s misleading. Sorry, but that’s a contradiction. And what is harmful is misleading people, which is what you are doing.

                                                    By taking away this middle ground, they push projects to be either free-as-in-freedom or proprietary.

                                                    Proprietary software is, by definition, software that is not free. So pushing projects to either be free or not to be free, to either not be proprietary or be proprietary, is doing nothing. Every project is either proprietary or not, just like every project either includes Java or doesn’t, and every project either is lead by one person or isn’t lead by one person.

                                                    Given the pains of sustainable infrastructure development using OSI-approved licenses, I fear that this will ultimately drive projects that would rather be licensed under the Commons Clause (i.e. as permissive as possible) into becoming closed source and proprietary.

                                                    There are no pains. Free software has existed for decades, and will continue to exist for decades to come. It works fine as a model, as it is. Sell support. Sell proprietary licenses. Or don’t sell anything, and get a job doing something else. The world doesn’t owe you a paycheque.

                                                    How can we best address the need for sustainable open source development?

                                                    For a start, you need to stop misleading people and muddying the waters. You need to come up with your own terminology that is not misleading, or adopt the existing terminology (‘source available’). Until you have done so, you are actively harming the software industry and software community.

                                                    @SirCmpwn, I would love to hear your thoughts on a better way to enable sustainable development for open source infrastructure.

                                                    I’m not SirCmpwn, but my thoughts are thus: it’s fine as it is.

                                                  1. 1

                                                    This all sounds very much like the BSD vs. GPL arguments of twenty years ago.

                                                    • “GPL isn’t free because it has limitations on use!”
                                                    • “GPL is free because it enforces freedom!”

                                                    Now it’s

                                                    • “Commons Clause isn’t free because it has limitations on use!”
                                                    • “Commons Clause is free because it prevents commercial hijacking!”

                                                    Honestly, I lean in favor of Commons Clause. It’s open source in the very common understanding of it, even if it doesn’t comply with the OSI definition. And it’s a useful experiment in the evolution of OSS licensing. I don’t know that it will survive past a few years, but I predict whatever succeeds it will not only last, but become a first-class licensing option.

                                                    1. 3

                                                      I don’t think anyone should ever touch a GUI framework that doesn’t come with a designer. I mean come on, we solved that problem in the 90s! Why are we designing GUIs via text files in 2018?

                                                      1. 4

                                                        Some people actually prefer to create GUIs in text files. This is because it’s possible to understand the structure of GUI in a better way. Also it allows to create more sophisticated UX than what’s possible with designers.

                                                        The drawback is a lack of instant feedback on how the UI will actually look like. And learning curve is worse I suppose.

                                                        So I’d say both of approaches have their advantages and disadvantages, and it’s not like one way is definitely better than the other way.

                                                        1. 2

                                                          This is because it’s possible to understand the structure of GUI in a betterdifferent way

                                                          Corrected this for you.

                                                        2. 2

                                                          First you need to do it via text files before creating the GUI to manage that. Surely it’s a first step in a new combination of technologies to develop UIs. It’s not trivial to build a designer and shouldn’t be considered on the start. Imho.

                                                          1. 3

                                                            I think what @vegai meant is that they could have used an existing format like QML and parsed that. Right now, it seems you need to write code to lay out your controls which is bonkers indeed.

                                                            1. 2

                                                              Writing code to lay out controls is not bonkers at all. All the same abstraction tools you have for abstracting over the repeated bits when you write code normally are available when doing so. Expressing things in code makes sense. Rendering a list is just folding over that list, etc.

                                                              1. 2

                                                                All rendering engines need to have a programmatic solution before they can have a gui designer. Suggesting otherwise is ridiculous. Not only do you sometimes need to create user interfaces dynamically, how exactly is the magic XML going to turn into pixels?

                                                          2. 2

                                                            Every time I’ve looked at one of those ‘do it for me’ GUI tools for making GUI tools, it’s looked quite hard to use, and always produces absolutely awful code.

                                                            1. 1

                                                              I guess it’s probably because creating a designer is a huge investment, and that it’s not incompatible with writing GUI layouts in text files. This kind of project, if maintained and used in the future, might have one at some point!

                                                            1. 1

                                                              I loved BeOS, and I’ve followed the Haiku project for years. But many of the author’s points in favor of Haiku are less about the OS than about working with young and/or groups with small numbers of contributors.

                                                              There’s nothing wrong with liking that, and certainly the Haiku community fits his description. I just can’t shake the feeling that, if you removed the GUI API and messaging references, this article could have been written about any small project that’s not dictatorial.

                                                              1. 3

                                                                I loved BeOS, and I’ve followed the Haiku project for years. But many of the author’s points in favor of Haiku are less about the OS than about working with young and/or groups with small numbers of contributors.

                                                                We have around ~40-ish major code contributors between the core system and HaikuPorts, and most of them are not especially young. And if you include the community-at-large, there are over a few hundred people who show up on the forums, mailing lists, etc. So it’s not that we are especially small, though of course we are not nearly as large as even the BSDs…

                                                                1. 5

                                                                  A few, hundred users sound small or tiny. Forty contributors would normally sound huge. This is a graphical, desktop OS, though. That still seems small number for such a huge goal. So, it’s fair to say it’s a small project with some dedicated people making steady progress on their goal. Hopefully, you get even more contributors since it’s a very, interesting project.

                                                                  1. 2

                                                                    Please take my comment as a criticism of the author, not any kind of critique of Haiku, its team, or its community.

                                                                    1. 1

                                                                      I did; I was just expressing an anecdote which I think backs up the author’s point.

                                                                1. 3

                                                                  I’ve tried this in the past, and not been impressed, either. There’s another peer-to-peer search engine, that’s more academically-minded, called 6earch or sixearch. I had a harder time getting that working.

                                                                  Still, I’m glad both are happening, and hope they improve over time (or lead to another, more successful project).

                                                                  1. 4

                                                                    PostgreSQL can now execute SELECT queries that use UNION in parallel if the underlying queries are unable to be parallelized

                                                                    This single feature finally makes it possible to build a postgres cluster solution out of the box. It’s a big deal.

                                                                    1. 63

                                                                      C-level executives and board members antagonize employees and threaten unemployment, knowing full well that they’ll never miss a meal or a mortgage payment and that their children will still have health insurance and good schools: freedom.

                                                                      Workers thinking they should organize to present common concerns to management: not freedom.

                                                                      Remember, they only call it class warfare when we fight back.

                                                                      1. 14

                                                                        Workers organizing is freedom.

                                                                        Workers being coerced to join or pay an organization is not freedom.

                                                                        This is true even when the organization itself exists to protect freedom.

                                                                        1. 23

                                                                          Workers being coerced to join or pay an organization is not freedom.

                                                                          Yes and no. My being forced to pay taxes isn’t freedom. My living in a society with roads and clean water and educated children (and my own education, which given my home life at the time wouldn’t have happened without compulsory and free education) dramatically increases my overall freedom, far more than was lost by paying taxes.

                                                                          The power imbalance between most employers and most employees is such that the vast majority of people are almost-serfs in all but name. The tech sector can sometimes forget that because of the high salaries and relatively competitive employment market…but for most people, their health and home are literally tied to the whims of someone who views them as nothing more than expendable labor. Sure they’re “free” to change jobs, but saying “you’re free to risk your children’s health!” isn’t really freedom at all.

                                                                          Correcting that power imbalance might take away some freedom, but it would add a lot more freedom on the other side of the balance sheet, IMHO.

                                                                          Universal health care and a strong social safety net is the other way to fix this, if labor unions are determined to be too problematic. That allows you the freedom to change jobs without worrying that you couldn’t pay for your child’s healthcare.

                                                                          To provide a real example: a friend of mine has a chronically ill daughter. Without health insurance he literally cannot afford to keep his daughter alive. Thanks to the repeated attempts at removal of the preexisting condition clause by the GOP recently, he runs the very real risk that he could end up with his daughter uninsured and potentially in dire straits if he were to lose his job. His employer knows this and, as the provider of his health insurance, could demand literally anything of him. If he were unemployed long enough that he could no longer pay for COBRA between employers, he’d literally be unable to keep his daughter alive. That is not freedom; that it’s not the government who holds the power is immaterial.

                                                                          (Note that his employer is awesome and doesn’t do anything bad, but that’s not true of everyone and it shouldn’t have to be…)

                                                                          1. 4

                                                                            I think you made a great case for universal healthcare – which can be argued to either side of the political fence. If you lean left, universal healthcare is a right and a true good. If you lean right, universal healthcare drives competition, flexibility and allows people to create new companies and more around more quickly.

                                                                            That said, I am not sure you made a great case for unions. Unions don’t fix the fundamental problem around healthcare in any form. You still can’t leave to a non-union shop, can’t leave to start your own company, etc without giving it up. If anything it makes it more entrenched.

                                                                            1. 5

                                                                              You seem to be fixating on a single example, not the thrust of his argument. You do realize other first world countries have universal healthcare and wayyy higher union participation than the US? There must be other things unions are useful for.

                                                                          2. 20

                                                                            The point of labour organizing is not ‘freedom’, especially not in the anglo sense of formal freedom on the marketplace, that everyone on the English-speaking internet seems to assume to be the only true and natural kind of freedom there is. It’s merely improving the conditions of labour, nothing more, nothing less.

                                                                            That said, unions can be terrible because they’re often loci of concessions, nationalism, taming, and other reactionary politics, rather than struggle.

                                                                            1. 11

                                                                              They can have issues. Most of the problems I see are caused by apathy and/or incentives at the top with problems they cause being externalities. Unions also seem to stop more problems than they create. They also counter the trend paid with political bribes to make people easy to fire without cause in as many states as possible. That’s on top of executive compensation always going up in companies that “can’t afford” good wages or benefits for production works. These all lead me to be pro-union in general.

                                                                              1. 4

                                                                                Idk how it is in the US honestly, but that part of my comment wasn’t anti-union in general just noting that they definitely have limits in a political sense.

                                                                                However for workers they’re obviously a huge net-positive.

                                                                                1. 1

                                                                                  Oh ok. That makes more sense.

                                                                              2. 3

                                                                                You make a good point. The immediate goal of a union is not freedom of its workers. I think workers unionize, though, because they desire more freedom. Limiting work hours means freedom to choose what to do with the rest of the day, for example.

                                                                                1. 3

                                                                                  Yes, that’s one of the broader conceptions of freedom I was referring to:)

                                                                              3. 12

                                                                                I agree with you here. I’m all for workers being able to collectively bargain for their own interests, but not at the expense of imposing on the liberty of others.

                                                                                I don’t mind if my co-workers unionize, but I want to be able to choose my own terms of employment with my employer without having a third party interfere without my consent.

                                                                                1. 17

                                                                                  I don’t mind if my co-workers unionize, but I want to be able to choose my own terms of employment with my employer without having a third party interfere without my consent.

                                                                                  You can’t have your cake and eat it too: if the strength of your coworkers’ union results in your employer entering into a favorable health insurance contract with an insurer, are you really going to reject that insurance and try to negotiate your own? Even if the insurance you purchase will invariably be more expensive and will cover you less?

                                                                                  1. 9

                                                                                    I don’t really care what a third party does with regards to my contractual agreement with my employer. The agreement I enter in is between myself and the company employing me.

                                                                                    In your hypothetical, I may indeed choose to cover myself. It’s hard to guess without actually having the numbers and going through a negotiation. I likely value different things at different levels than a potential union does, and would be better served negotiating based on my preferences rather than letting a group decide the terms of my contract.

                                                                                    1. 6

                                                                                      Except you would end up with a significantly less favourable contract, as you lack the negotiating leverage of the union.

                                                                                      1. 11

                                                                                        I don’t understand why you care so much about my contract. It’s up to me to decide what is favorable for me and what isn’t. I have the leverage of my own skills and experience, and that I can take a better offer from a different employer at any time.

                                                                                        1. 17

                                                                                          I don’t care about you, per se, but if everybody privileges abstract notions of freedom over concrete gains from their employment, you have a collective action problem and everybody ends up strictly worse off.

                                                                                          1. 13

                                                                                            Strictly worse off by whose definition? I’m under no moral obligation to sacrifice my own values to appease yours. If you’re worried about me not joining your union, then make your union attractive enough that I want to join it over negotiating my contract myself. Don’t force me into a contractual agreement that I never consented to.

                                                                                            1. 9

                                                                                              If you’re worried about me not joining your union, then make your union attractive enough that I want to join it over negotiating my contract myself.

                                                                                              In all likelihood, it will be attractive - but the benefits it confers will end up available to all employees, not just those in the union.

                                                                                              Now, if the choice was a strict “join the union and receive benefits which it negotiated” or “do not join the union and you are solely responsible for negotiating every part of your employment” I’d be happy, and it sounds like you would be as well.

                                                                                              Would you decline to accept any benefit - work conditions, time off, retirement, etc. - which was negotiated by your workplaces union if you planned to not join the union? If your answer is yes, I’d applaud your consistency.

                                                                                              The problem that @jfb identifies is that most people would say “no” - they’d chose to benefit from things negotiated by a union they’re not a member of.

                                                                                              1. 6

                                                                                                Now, if the choice was a strict “join the union and receive benefits which have been established” or “do not join the union and you are solely responsible for negotiating every part of your employment” I’d be happy, and it sounds like you would be as well.

                                                                                                Yep, perfectly fine with me.

                                                                                                Would you decline to accept any benefit - work conditions, time off, retirement, etc. - which was negotiated by your workplaces union if you planned to not join the union? If your answer is yes, I’d applaud your consistency.

                                                                                                In a contract negotiation between myself and my employer, it’s impossible for me to know what parts of their offering are influenced by the presence of the union, or to what extent they are. For example, imagine an employer that would negotiate for some sort of health insurance regardless of existence of a union. If the existence of a union changes that relationship via a change of insurer, I can’t just ignore it and keep whatever insurance plan I chose before the union came in.

                                                                                                I don’t care to take advantage of a union. I won’t take drinks from your “union members” fridge or take breaks on your union schedule and hope nobody notices. I will, however, negotiate the best deal for myself with my employer, and not handicap myself by trying to figure out what I would or would not have access to if the union didn’t exist. The union is an outside agent that I don’t have control over, and the extent that its existence benefits extend beyond its members are for the union to figure out.

                                                                                                1. 6

                                                                                                  Would you decline to accept any benefit - work conditions, time off, retirement, etc. - which was negotiated by your workplaces union if you planned to not join the union?

                                                                                                  I certainly wouldn’t refuse all time off because the union gets some, but I wouldn’t automatically assume to have the same. If I get three weeks, and the new union contract gives four, then I guess I’m stuck with three.

                                                                                                  But observing that the company gives four weeks off is a data point I might consider when asking for more time off. That’s not strictly a union thing, though. If I saw a non union worker getting more time off, I might want that too.

                                                                                                  Is that how it works in the non union case? If you hear a coworker got a raise, do you refuse to ask for your own?

                                                                                                  1. 12

                                                                                                    My wife has a saying: Good and Evil don’t exist, it’s just selflessness and selfishness.

                                                                                                    Eric is talking right around the crux of the matter, but he missed something.

                                                                                                    I’m under no moral obligation to sacrifice my own values to appease yours.

                                                                                                    Sure you are, buddy. You aren’t under any legal obligation, nor any ethical obligation. The obligation is in fact, a moral obligation.

                                                                                                    When you throw your lot in with a group, you are sacrificing some of your autonomy in exchange for the group’s strength. Due to network effects, many groups are stronger than their strongest member, but yes, sometimes a member will become weaker by joining. (I’m ignoring here the second order effects like community respect gained due to being described as selfless, etc.)

                                                                                                    EDIT: reworked the bottom, sorry.

                                                                                                    1. 7

                                                                                                      Sure you are, buddy. You aren’t under any legal obligation, nor any ethical obligation. The obligation is in fact, a moral obligation.

                                                                                                      You and I have very different moral preferences if you think it’s ok to impose your values on someone else without their consent.

                                                                                                      When you throw your lot in with a group, you are sacrificing some of your autonomy in exchange for the group’s strength.

                                                                                                      When I join a company I am entering an agreement with an employer in which I exchange my labor for (primarily monetary) compensation.

                                                                                                      Your assumption that joining a company means joining an subset of coworkers for an unspecified goal of “group strength” seems entirely arbitrary to me.

                                                                                                      1. 4

                                                                                                        Look, the simple fact is that unions allow for more favorable price fixing by Labor.

                                                                                                        The benefit should be obvious.

                                                                                                        1. 3

                                                                                                          You join the work force as a worker and that makes you a worker. There are social expectations from that and you can be aware of them well before deciding to join the workforce. There’s an unwritten social contract and in the same way by living in a nation-state you’re implicitly a citizen, by joining the workforce you’re implicitly a worker and then subject to all the moral obligations that come with it. Most of them are not protected by law, because in non-socialist states one of the goals of the legal system is to repress the worker, but nonetheless you’re held responsible by other workers. This, most of the times just boils down to “he’s such an asshole” but in other times it meant more than that, because your action was directly and undeniably hurting your peers.

                                                                                                          1. 1

                                                                                                            You and I have very different moral preferences if you think it’s ok to impose your values on someone else without their consent.

                                                                                                            Don’t worry, I’m not in a position to compel you! That would be wrong. I may only ask.

                                                                                                            1. 3

                                                                                                              But, that isn’t the case we are discussing is it? We are talking about compulsory unionization. Join the union or no job seems to be what they are referencing.

                                                                                                              1. 1

                                                                                                                Right, the closed shop. It’s a way to limit individual liberty to allow for stronger collective liberty. I’m perfectly ok with this, but there are those who have a different conception of liberty who might not be. I think it’s totally wrong, but it’s not a nonsensical way to conceptualize the relationships between people.

                                                                                              2. 1

                                                                                                But the situation of a union being part of the negotiation is not much different than the situation where just you and the employer negotiate. Typically in a non-unionised company your boss is heavily restricted in what they can offer you by company policy and HR. Unionization is the same kind of rules just optimized for other goals.

                                                                                                The notion that you are somehow more free negotiating in non-unionised jobs is - I don’t know - self-deception?

                                                                                                I started at a unionized company which gave me a 20% pay increase that my previous employer was unwilling to match (their competitive offer was 10% after telling me before I applied that they could notpay me more). Now the union negotiates for me the annual pay increases. I can also negotiate directly with my employer in the sense that my employer can put me into a more senior position which means I would get more 💰.

                                                                                                If the union contract was bad, i could still negotiate with my employer that they pay me above the union contract. But since the union contract is quite generous and above the typical competition I would have a hard time negotiating that in the same way as i have a hard time negotiating for that kind of a salary at non-unionised competitors.

                                                                                                1. 1

                                                                                                  , i could still negotiate with my employer that they pay me above the union contract

                                                                                                  It was my understanding this was explicitly not allowed by union agreements. This is because to have collective bargaining power and a “union contract” requires that contract to be adhered to by all union members. Can you link me to a union that says you can negotiate individually in their rules? How does that even work – so you get a floor but then can ignore the ceiling and push for whatever additional you want? Doesn’t that take a lot of the positive upside away from a contract from the employer side?

                                                                                                  1. 1

                                                                                                    My union has around 16 pay levels plus some kind of an individual components. If you want to earn more than the highest level you can definitely get such a non-union contract (it’s what management gets in any case).

                                                                                                    You can also negotiate for being grouped into a different category.

                                                                                                    You could also try to be hired as a contractor (this would mean that you have the biggest negotiation freedom).

                                                                                                    Anyways the question is pretty theoretical in the sense that the union contract is fairly good and on average better than what individuals with the same competency get on the free market here.

                                                                                            2. 9

                                                                                              “I don’t mind if my co-workers unionize, but I want to be able to choose my own terms of employment with my employer without having a third party interfere without my consent.”

                                                                                              In our unionized company, everyone gets the benefits and small restrictions that come with the work of the union and its members. Some people think only the union members should get benefits union negotiates. We know how badly that might end up, though. Especially fights internal to the company. We don’t push that. We do encourage people to highlight benefits union brought: ending fire-without-cause of hard workers; reducing perjury on your references; great health/dental for $25 a month; right to sleep between shifts (a bit…); paid holidays, sick leave, and vacations; fair-ish, standard pay based on position, experience, and time in company. I’m not saying it’s best terms but better than most competitors.

                                                                                              That said, I see your position. That people choose competitors to union companies for their different terms supports it a bit. :) I’ve considered letting union people get their negotiated terms while others get theirs. The first thing I ask those people is: “Do you want to work for least they can pay over minimum wage, overtime without overtime, unsafe working conditions (maybe even no bathroom), have little to no benefits, and potentially be fired without cause after years of hard work with bosses giving you no or falsified reference? And while we get the opposite?” Outside high-pay areas like highly-skilled techs, most companies are giving employees as little as they can. They get more commoditized without even being sure they’ll get a job reference for a better job. Might have to endure a lot to get it in some companies. A lot of people don’t have that opportunity.

                                                                                              Now, if you do, there’s another thing to consider. These companies that are offering you a good deal at some five to six digit wage might be pocketing multiples of that with folks in suits doing less than you getting a bigger cut or higher cut vs beneficial work ratio. They will similarly be paying lobbyists on Washington and at state levels similarly large sums to reduce what you can gain at an individual level. The unions are one of few groups lobbying for people like you. If more technical workers unionized, then there’d be more lobbying effort toward getting such individuals better deals. That sector also has the kind of money where donations and campaigns might bring some serious results in terms of expected compensation, work environment, better share of I.P. ownership or equity, paid leave (maybe maternity leave), or even better housing in high-rent areas. Again, may not interest you. I just wanted to mention people dealing with you might have been paying politicians to reduce size of those deals, your perks, or rights as a worker.

                                                                                              1. 4

                                                                                                Thanks for the thoughtful response. Your company’s union sounds like it’s doing good work, and you’ve done a good job making a case for it. I would not rule out joining a union without looking at the terms of membership, but I would also be extra wary of joining a company that had compulsory union membership.

                                                                                                I don’t have a problem with people making more money than me at the same company, regardless of their beneficial work to pay ratio (which I can’t assess anyway), or what kind of clothes they wear ;)

                                                                                                As the lobbying question, there is a high chance I would make the ethical judgement not to join a company (or union, for that matter) based on their lobbying efforts.

                                                                                                As an aside, I appreciate your posts and comments on Lobsters in general; anything from nickpsecurity is must-read for me.

                                                                                                1. 2

                                                                                                  I appreciate the kind words! I was hoping some of us could chill the thread a bit. It seems like you just prefer to have more insight into and control of job or other commitments letting other people do their thing. A union shop may or may not be right for you depending on how flexible the terms are for non-members. Glad you would consider turning down an offer if it supports corruption. Most wouldn’t.

                                                                                                2. 2

                                                                                                  reducing perjury on your references

                                                                                                  Are you referencing bad-references as a way of punishment? I didn’t realize that was a common enough thing to warrant protection from.

                                                                                                  1. 2

                                                                                                    Many poverty or working class people I know has either experienced it or had to mitigate it with careful exits knowing it could happen. The middle class and up folks with more to loose or carry with them usually play exits safe because they know it can happen. I don’t know how often it does happen to them, though. I know there’s laws in some countries where they have to give you references without any badmouthing. Apparently, it happened enough to make laws against it over there.

                                                                                                    Not here, though. Still can get hit with the shit.

                                                                                                3. 3

                                                                                                  this is slightly tangential to the direction this went in, but I’m curious. Why? Bargaining as a group is always more advantageous than doing so individually.

                                                                                                  1. 6

                                                                                                    I’ve worked in a unionized industry; it’s not the utopia you make it out to be. While the average income may be higher under collective bargaining, this is done by making some people worse off than they would be under individual bargaining.

                                                                                                    There’s also a huge issue with people who really should be fired, but who aren’t because of the overhead imposed by the union. Honestly, I’d prefer to work for less remuneration than to work with under performers. Particularly when you know those under performers are getting paid the same amount as you. It’s completely demoralizing.

                                                                                                    1. 4

                                                                                                      “There’s also a huge issue with people who really should be fired, but who aren’t because of the overhead imposed by the union.”

                                                                                                      I don’t have any hard data, only 8 years personal experience working in a (partially) unionised white collar job.

                                                                                                      It might vary union by union or company by company but there’s patterns I noticed at management level. My union won’t protect people who do nothing: only people who work as instructed by management who are written up, suspended, or terminated by poor results of management’s plans. There are people at my company who we can’t seem to get rid of. Management uses union as excuse but I’ve seen no use of established procedures against those workers. It seems management in those areas either lets them talk their way out of it, ignores those that argue or intimidate the most, and gets hard on the more compliant workers (aka easy targets or outlets) that probably don’t deserve it.

                                                                                                      The performance metrics also suck so bad at this company and a lot of others (including non-union) where many workers artificially look like they’re not good workers. Some of these companies fail workers if they don’t achieve a arbitrary expectations with no proof they matter (see Office Space) or from managers without real-world experience. If they do this to everyone or many, then the bad workers just fade into the background of what looks like a problem with everyone. A made up problem. If the requirements were sensible, then most people would meet them visibly working at a steady or fast pace (context dependent) with some barely working and some getting way ahead. The bad workers become much easier to identify, discipline, and/or eliminate with a fair baseline.

                                                                                                      I’ve talked with people in a few other industries that are unionized. They usually have examples of the above two points happening that mostly come from top-down, ignore-workers management and office politics. I still can’t be sure how much “the union” was responsible for workers being hard to get rid of if management was that inept. It’s all the more believable by how much non-union workers and books on management talk about the same failures. My theory is most managers and corporate offices suck in a lot of ways with unions countering them usually in pretty generic ways focusing on what members value most. Outside the focus areas, the rest of the dynamic becomes back and forth battles with plenty of potential inefficiencies. Companies with competent, take-care-of-workers management usually has less of these problems and workers don’t ask for unions. Hmm… ;)

                                                                                                      1. 6

                                                                                                        I agree. Unions are not a panacea for every issue workers may have with a company, and in fact can cause many of their own.

                                                                                                        However, the issues you mention here are also universal:

                                                                                                        While the average income may be higher under collective bargaining, this is done by making some people worse off than they would be under individual bargaining.

                                                                                                        True! But considering the current state of tech salaries, I think that’s acceptable from a macro level view. I say that as one of those that would likely see a pay decrease under a union contract – I tend to negotiate quite a bit with potential employers.

                                                                                                        There’s also a huge issue with people who really should be fired, but who aren’t because of the overhead imposed by the union.

                                                                                                        There are two parts of this argument:

                                                                                                        • Unions tend to keep around poorly performing people longer

                                                                                                        and

                                                                                                        • Unions introduce extra overhead with process into the firing process

                                                                                                        I think both are false personally, and I don’t think there’s any data to prove either, I’d love to be proven wrong! For the first, I’ve personally found the opposite – the bar to entry for IBEW-NECA was much higher than that for non-unionized electricians, and the bar for firing was extremely clear. For the second, process can add more time, but it can also reduce it by clarifying for all the bar for firing. I find in most tech companies, the standard months of bad perf -> PIP -> eventual firing process can take a long time due to trepidation on the part of all parties.

                                                                                                        1. 2

                                                                                                          I think both are false personally, and I don’t think there’s any data to prove either,

                                                                                                          I don’t have any hard data, only 8 years personal experience working in a (partially) unionised white collar job. I’d have thought it was rather logical though that unions would, in their capacity of protecting their members, make firing more difficult. Which can be a good thing, but can also be horrible for org culture and performance.

                                                                                                          The idea of a union as a quality filter is interesting, and not something I’ve come across. IME, unions will take anyone in their industry who’s willing to pay the fee.

                                                                                                          1. 2

                                                                                                            Yeah I agree largely. If only there was a set standard for unions across the board — unfortunately their independence produces wildly disparate results at the tail. For that reason I can never begrudge someone that is against a union in good faith too much, I can only make my persuasion towards unionization more effective. Thank you!

                                                                                                            1. 1

                                                                                                              Unions are typically very strict on safety, and few things are more dangerous in the workplace than an incompetent electrician.

                                                                                                              1. 3

                                                                                                                But in an office job, incompetence isn’t dangerous, it’s just useless. Perhaps that accounts for our differing points of view.

                                                                                                              2. 0

                                                                                                                I’d have thought it was rather logical though that unions would, in their capacity of protecting their members, make firing more difficult

                                                                                                                There are also reasons not to make firing harder, notably the reputational damage that would occur (and which, evidenced by you, has already occurred :) ).

                                                                                                                As others have said, unions tend to make the bar for firing very clear, which also tends to mean bureaucratic. This isn’t a bad thing; bureaucracy is what we use in place of trust when trust is hard to establish or otherwise damaged. It’s also not necessarily a slowdown, as others have pointed out.

                                                                                                                It does mean that it’s harder for a manager to fire someone at a whim, or based on a longstanding issue that’s not been written down or communicated. But that’s a good thing. At the very least, documentation helps someone who is fired know why (and therefore what to work on in the next job). At the best, starting the documentation process is enough to turn a bad employee into a productive one.

                                                                                                                It also means that it’s harder to fire someone for something that’s inconvenient to the employer, but not the fault of the employee. In some places, for example, it’s very common for union construction sites to have a position called “lift operator”. It’s been used as an example of union waste in the past – it’s just someone who sits in the elevator and presses the buttons for everyone. But that position was originally created for (and is usually still used for) union members who have had injuries or other physical problems which make it hazardous or impossible for them to do mainline construction work.

                                                                                                                In a union-free situation, that person would be fired, through no fault of their own.

                                                                                                          2. 4

                                                                                                            Bargaining as a group is always more advantageous than doing so individually.

                                                                                                            Not it isn’t. I can’t be more clear than that. There are lots of cases where negotiating as an individual is a far more advantageous position. If your values differ than the group. If your skills differ from the group. If you needs are in direct conflict with the group (for example, you want a 20% raise and don’t care if it is taken from $personX because they are bad at their job). This idea that the group think is magically always what is best for you is fundamentally untrue.

                                                                                                            1. 3

                                                                                                              since neither of us have given data yet, I guess I left myself open to be rebutted in this way. There is data showing that on average union workers make more and have better insurance and benefits in general than non-union workers, but since we haven’t applied that to the tech fields yet, I won’t bring that up as proof. Do keep in mind that for non-tech fields, all of the above is already established as true. in addition:

                                                                                                              for example, you want a 20% raise and don’t care if it is taken from $personX because they are bad at their job

                                                                                                              is not really how raises are ever allocated, and if they were, I think that company needs a union.

                                                                                                              Instead I’ll provide three opinions:

                                                                                                              • Letting yourself be lulled into believing that you have more leverage than you do is pretty common amongst workers in highly competitive fields in bull markets. In a bear market where tech isn’t as desirable, you might change your mind.
                                                                                                              • The only metric you care about in this instance is salary, however collective bargaining would provide benefits far beyond that. It’s (relatively) easy for an individual to argue for more money, not so easy to argue for better healthcare packages or other benefits. In particular, I’d note that a lot of the benefits I have in mind probably wouldn’t apply to single dudes, but would to fathers, women/mothers, or non-binary folks (not even to mention race and religion).
                                                                                                              • To attack the salary question specifically, IMO the huge disparity within and between bands because of negotiation is bad. Responsible companies should tie pretty tight salary ranges to level bands and stick to it. Anything else widens disparities in worker pay. I know that a lot of tech folks will rebut this by saying that their work deserves 300k more than their coworkers, but I think that’s probably not true in 99.99% of cases.
                                                                                                              1. 3

                                                                                                                There is data showing that on average union workers make more and have better insurance and benefits in general than non-union workers

                                                                                                                “average” and “always” are very different – but since this wasn’t the thrust of your argument, we can move on past it.

                                                                                                                is not really how raises are ever allocated

                                                                                                                This is also simply not true – I have sat in exactly such hard decision making meetings. People fired, positions collapsed to give raises to other people, whole teams let go to give budgets to other higher performing teams. You put forth this idea “this isn’t how raises are ever allocated” when it simply isn’t true. It makes it very hard to have a fair and rational discussion with you. Budgets are well – budgets and in bad times hard decisions have to be made.

                                                                                                                Letting yourself being lulled … your mind.

                                                                                                                Absolutely agree. Tech workers commonly think they are worth more than they are. I suspect the Worth despair poster is commonly applicable: https://i.imgur.com/G7yMiXu.jpg (“Just because your necessary doesn’t mean your important.”)

                                                                                                                The only metric you care about in this instance is salary

                                                                                                                No, what I care about is individual interests. Some individuals value salary very highly, others a company car, others vacation, others healthcare, others still childcare and others more disparate and interesting things. I don’t find find fathers, women/mothers or non-binary folks to be any less individual than “single dudes”.

                                                                                                                Anything else widens disparities in worker pay.

                                                                                                                The silent implication here is the disparity in worker pay is a bad thing, which I don’t agree with.

                                                                                                                I know that a lot of tech folks will rebut this by saying that their work deserves 300k more than their coworkers, but I think that’s probably not true in 99.99% of cases.

                                                                                                                Sure, you say 300k to make your strawman seem obviously true – knock an order of magnitude off that number and ask if a reasonable person at the same tier believes they are worth 30k more… hell, even define how you makes these “bands” – arbitrary experience in terms of years?

                                                                                                                1. 1
                                                                                                                  1. You’re right that average and always are different. To be more explicit, I only care about the average. Individuals can get pay raises and better benefits for any reason at all, deserved or undeserved, union or no union.
                                                                                                                  2. You’re right — what I should’ve said is this: a company that makes the decision to fire one individual purely to justify giving a raise to another is not a place I would want to work. There are a number of factors that go into hiring, firing, and salary decisions, and I believe your original example was a little too simplistic.
                                                                                                                  3. In normal working conditions, these groups you described will be looking individually for the benefits they want and need. However, their bosses often don’t or won’t share in desire for or see the value in those benefits for a variety of factors. Some of those are economic — workers and their bosses have completely different world views, especially at tech companies. Unions are a way for workers who are by and large powerless individually to fight for those shared benefits collectively.
                                                                                                                  4. Disparity in worker pay is a bad thing from a social standpoint, especially in the same level. If two engineers are both seen as being at staff level, why would they make more than a difference of 50-100k in total comp? It contributes to gender and racial wage gaps for the benefit of a small set of engineers.
                                                                                                                  5. I said 300k because I’ve seen it in real life. Two engineers, one male, one female, both evaluated as being senior. One got a sizable equity grant, large sign on and a 15% bonus. The other got a pittance in equity, no sign on, and a 10% bonus. In reality, the gap was much larger because of the appreciation after the initial grant. And standardized levels and bands based on data are pretty standard at most modern startups and FAANG. For an example of what I’m referring to here, Camille Fournier open sourced hers while she was at Rent the Runway as CTO: http://dresscode.renttherunway.com/blog/ladder. Those should be tied to pay bands. Bands and levels should never be tied strictly to YOE.
                                                                                                                  1. 2

                                                                                                                    To be more explicit, I only care about the average.

                                                                                                                    Worth clarifying which average you mean while you’re at it (mean vs median yield quite different answers)

                                                                                                            2. 3

                                                                                                              Assuming your interests are the same as the group’s. Even when they are, priorities differ. Everybody wants more pay and more vacation, but which do you care more about? If I want to work 30 hours for 75% pay, will the union negotiated contract offer that flexibility?

                                                                                                              1. 1

                                                                                                                It’s more likely to if you are a voting member.

                                                                                                                But your employer will be more than happy to reward you for defecting, until the union is gone and they again have leverage.

                                                                                                                1. 0

                                                                                                                  If you are a part of the union, you get to help decide that. :)

                                                                                                                  A democratic union would take its workers wants and needs into mind when crafting the contract with the employer. Right now, you can probably only get those benefits by either being very lucky to find a company that supports it, by altering your lifestyle by working on contract, or by earning it after some time proving yourself. Hypothetically, a tech industry with a standardized contract for workers could extend those benefits to all companies, saving you the time of doing one of the above or opening your own business.

                                                                                                              2. 3

                                                                                                                I don’t mind if my co-workers unionize, but I want to be able to choose my own terms of employment with my employer without having a third party interfere without my consent.

                                                                                                                I’m assuming a lot by your avatar, but my guess is that you serve a lot less to gain from unionization than, for example, a woman of color. In other words, you still want to benefit from a system that rewards white males even if that mean weakenings an institution that would bargain for people lesser off than you.

                                                                                                                1. 0

                                                                                                                  You’re assuming a lot more than you think you are.

                                                                                                                  you serve a lot less to gain from unionization than, for example, a woman of color

                                                                                                                  A woman of color? Which one? All of them? What color? In what way?

                                                                                                                  you still want to benefit from a system that rewards white males

                                                                                                                  What system? Where does it reward white males?

                                                                                                                  I’m assuming a lot by your avatar

                                                                                                                  I’m a minority. The company I work for is less than 5% white.

                                                                                                                  1. 3

                                                                                                                    I have no desire to engage with semantic games with you, especially if it’s just going to be screenshotted to Twitter with ad hominem attacks.

                                                                                                                    Have a good day.

                                                                                                                    1. 1

                                                                                                                      Since I don’t expect you to respond to this message, I’m just posting this to clear my record.

                                                                                                                      I have not played any semantic games. All I asked you to do was concretely define your statements and back them with something other than conjecture. I can’t argue with someone who doesn’t clarify their own argument.

                                                                                                                      Ad hominem is an argumentative strategy, of which I have not engaged in. I think what you want to say is that I insulted you, which is also false, unless you count “white, male Bay Area resident” as an insult.

                                                                                                                2. 2

                                                                                                                  You are agreeing with something I did not say.

                                                                                                                  1. 1

                                                                                                                    In most of human history, the only people who rented themselves for wages were slaves. Up until recently, wage labor was called wage slavery. It takes a certain mental gymnastics to equate ‘consensual contract with employers’ as liberty. Think about how absurd it is to rent your time, especially for creative work like programming for example.

                                                                                                                    1. 1

                                                                                                                      But at the same time, people like getting wages. They don’t know how to make society value their time, so they get an employer to do that instead.

                                                                                                                      1. 1

                                                                                                                        When a few people in society hold all the money (inequality is huge) and the only way they value the rest of society is through wages, then doesn’t it follow that wages are the only realistic way for most people to get money? It’s really the only choice they have. Since wages

                                                                                                                        a) Don’t change any power relations b) Don’t change any ownership relations

                                                                                                                        They are an attractive vehicle for the people who hold all the cards. The alternative is people have percent ownership in where they work! that would be lovely.

                                                                                                                        1. 1

                                                                                                                          I suppose I’m less cynical. Money is justa recognition that someone else appreciated what you did, and most people have no idea how to help society, or have no will to risk their own lives to help society. Thus, we get salaried positions with benefits to make sure we are safe and able to live. Wages are just the employer saying they appreciate your contribution to whatever the employer wants to do.

                                                                                                                          1. 1

                                                                                                                            It’s a nice sentiment, but Rome wasn’t built in a day. The system we live in was built piece by piece over a period of time. There are historical reasons why things the way they are. If you could magically wave a wand and create it anew, would you have wages? Wages are a modern concept anyway. Why not something better?

                                                                                                                            Or are you saying the system we have is ideology-free and it’s people’s human nature that governs it?

                                                                                                                            1. 1

                                                                                                                              What’s wrong with the way we have constructed work? It has created the modern world, without which we both may never have had this discussion

                                                                                                                                1. 1

                                                                                                                                  So? People in general love to be miserable anyway, so I reject the notion that you can fix misery with something other than wages.

                                                                                                                                  1. 1

                                                                                                                                    You believe people love to be miserable? This is simply an absurd view and allows you to justify vast harm. Did you know, for example, that wage theft (wages are stolen from workers) is the largest theft? It dwarfs thugs and criminals by a mile.

                                                                                                                                    1. 1

                                                                                                                                      And wage theft is wrong. Two people entered an agreement and one party broke it.

                                                                                                                  2. 5

                                                                                                                    “Freedom” is not a useful word, here.

                                                                                                                    1. 2

                                                                                                                      And if the existence/non-existence of a union depends on whether the company can hire non-union workers, you have to decide between one kind of freedom and another.

                                                                                                                      1. 1

                                                                                                                        Yes, exactly. But how can we choose? Both have merits and consequences.

                                                                                                                  1. 47

                                                                                                                    I’m very excited that there’s finally movement in this direction. I honestly expected it to start in gamedev, but am happy to be proven wrong.

                                                                                                                    1. 2

                                                                                                                      I thought exactly the same and expected it to mention Motion Twin (the anarcho-syndicalist gamedev cooperative that made Dead Cells). Honestly, seeing actual change, no matter how small, is giving me hope.

                                                                                                                    1. 1

                                                                                                                      Is it possible to re-implement the Sync APIs [1], and build your own monolitic based Account Server instead?

                                                                                                                      [1] https://mozilla-services.readthedocs.io/en/latest/

                                                                                                                      1. 1

                                                                                                                        The answer to “is it possible” is almost certainly “yes”, but whether it’s feasible is a different story. If, for example, the API docs are vague or incorrect, then you may be signing up for a great deal of reverse-engineering work. If the API docs lag behind an implementation change required for a new browser feature, you may be stuck playing catch-up.

                                                                                                                        Then you have to deal with the fact that it’s a pretty darn niche product with a fairly small pool of potential open-source contributors.

                                                                                                                        All that said, I think it’s a worthwhile thing to do.

                                                                                                                      1. 7

                                                                                                                        Replying here because his blog would need Google Auth to comment..

                                                                                                                        First off, author seems to have been around as a ‘hacker’ for well over a decade (blog goes back to 2004) so he likely hawks from a time when one could witness most (lasting, long-term impactful) computing innovation being driven almost entirely by enthusiastic hobbyists in their unpaid own free time. The same goes for most any “new language invented” even today! Is what was good for the goose back then, now bad for the gander?

                                                                                                                        One example is library ecosystems. Every new language needs a set of libraries for commonly used functionality. Some of those libraries can be bindings to existing libraries in other languages, but it’s common for new languages to trigger reimplementation of, e.g., container data structures, HTTP clients, and random number generators.

                                                                                                                        This is the main reason I’m even commenting.. I was pondering this: imagine most “language creators” converge on utilizing LLVM initially, so they won’t need to implement their own high-perf interpreter and/or JIT and/or lang-to-asm compiler and can focus on their languages’ semantics and designs. Why shouldn’t a common set of “standard libs in LLVM-IR” to be shared by all these (and future) custom langs evolve? And if so, why hasn’t it happened yet? (Or has it?)

                                                                                                                        (edit: figured I’d ask at https://www.reddit.com/r/LLVM/comments/9kov47/are_there_or_have_there_been_any/ )

                                                                                                                        If the new language did not exist, that effort could have been spent on improving existing libraries or some other useful endeavour.

                                                                                                                        Yes, and if people didn’t spend their own free time on Candycrush, Farmville, Instagram, Netflix, Youtube, Steam, sportsball, their families, literature etc they could .. mine bitcoins for you (or me), drive down your (and my) food prices by growing edibles or raising lifestock, or indeed improve the existing libraries you (or I) use. Guess it wasn’t meant to happen?

                                                                                                                        Another example is community support. Every new language needs an online community (IRC, StackOverflow, etc) for developers to help one another with questions. Fragmenting users across communities makes it harder for people to find answers.

                                                                                                                        What happened to the old hacker mindset? Are you truly optimizing for people who get substantially slowed down by “harder to find answers”? Remember when all we had was library books, magazine source-code print-outs, and trial-and-error?

                                                                                                                        However, I hope people consider carefully the social costs of creating a new programming language especially if it becomes popular, and understand that in some cases creating a popular new language could actually be irresponsible.

                                                                                                                        There’s probably some 7.5 billion “perfect languages” (each molded to one individual’s unique brain) that haven’t been written. But let’s draw an arbitrary line at this exact moment in time and say “we have enough now, just take what you find already existing, mold and bend your mind around it instead, and shut down your current favorite hobby”. Or maybe we should go back in time and tell the Guido van Rossums, Larry Walls, Brendan Eichs, Yukihiro Matsumotos what you wrote here. In fact, what you wrote has been as “true” 10, 20, even 30 years ago as today — comparing the scales between programmer numbers and languages. Consider this: the number of programmers has ~doubled every ~five years for some ~4-6 decades now. If the same was true for new-language-projects, it might feel insane but also might be quite natural. In fact would be a good sign, indicating that we continue to win ‘true enthusiasts’ rather than “bootcamp’d mere-jobbers”.

                                                                                                                        TL;DR: well, overall sloppy/incomplete thinking AFAICT in OP but it was really the “LLVM-IR stdlib?” ponderings that had me reply here =)

                                                                                                                        1. 3

                                                                                                                          What happened to the old hacker mindset?

                                                                                                                          It is at risk of being drowned by cries for the collective conformist good.

                                                                                                                          1. 1

                                                                                                                            Why shouldn’t a common set of “standard libs in LLVM-IR” to be shared by all these (and future) custom langs evolve?

                                                                                                                            Well, it has happened before, for another language. We call it libc.

                                                                                                                          1. 4

                                                                                                                            I’ll admit that I continue to be surprised when someone who learned text-based programming claims that visual programming is bad, and a whole audience of text-based programmers nod their head sagely “yes, yes, of course!”

                                                                                                                            Let’s take the author’s points:

                                                                                                                            Textual programming languages obfuscate what is essentially a simple process

                                                                                                                            It’s unlikely that they think this. Instead, they think “seeing the relationships between different tasks is easier and more approachable if visualized instead of in text”. And that’s both true and hugely helpful in situations where you’re working with connective code rather than constructive code. And that’s why so many of the visual programming languages in use today are domain-specific, handling ETL, data flow (including visual and audio processing), automation, etc.

                                                                                                                            Abstraction and decoupling play a small and peripheral part in programming

                                                                                                                            I mean, they do. Hugely important parts, but a rare task in the scheme of things. Most programming in the real world is detail work, not abstract work.

                                                                                                                            The tools that have been developed to support programming are unimportant

                                                                                                                            Again, few, if any, think this. Instead, they think that lack of tooling shouldn’t stand in the way of innovation.

                                                                                                                            1. 2

                                                                                                                              I mean, they do. Hugely important parts, but a rare task in the scheme of things. Most programming in the real world is detail work, not abstract work.

                                                                                                                              Abstraction, not abstract work. The point is that most programming work is not about shifting blocks around, but rather about changing the boundaries of the blocks, changing what is “detail” versus “abstract” in this context.

                                                                                                                            1. 6

                                                                                                                              Scratch might not be the best example to make the author’s point, as it’s targeted to children. My 6 y.o. picked Scratch Jr on the tablet and I was surprised to discover that you could easily implement concurrent programs. He doesn’t know how to read or write properly, but still managed to create some animated programs. Now, regarding general programming, text is just a UI to the language, and the bigger problem is that programs are a tree (or actually, a graph) while text is a sequence. You could think of a hybrid approach where you’re editing a tree instead of lines of text, where some keywords or structures are styled or representated with icons instead of words. This would certainly improve the navigation in the structure/program and make formatting code a non-issue (although nowadays the *fmt tools do that already). I see that as a major improvement that needs to happen, but our toolchain is so much based on text (hello, UNIX) that it is not going to happen naturally.

                                                                                                                              1. 6

                                                                                                                                There’s a recent new programming language called Luna, which has fully regular textual representation (sources are normal text files), thus benefiting from all normal text-processing tools; but then also provides a 1-to-1 fully equivalent graphical representation for every textual syntax. It’s still at ~alpha stage of development, but you can already download and test it, and it’s open source, and personally I strongly believe it’s going to be revolutionary. It should be able to fuse benefits of both representations together.

                                                                                                                                1. 3

                                                                                                                                  You could think of a hybrid approach where you’re editing a tree instead of lines of text, where some keywords or structures are styled or representated with icons instead of words

                                                                                                                                  There’s leo, which is a tree editor. It doesn’t (last I knew, which is granted a while ago) do icons, but it does allow tree nodes to appear in multiple spots (making it closer to a graph editor). Each node is text, though. Still, it was useful for me for a brief while before emacs pulled me back in.

                                                                                                                                  1. 0

                                                                                                                                    The moment you can read visual programming languages start being a burden. Scratch gets inflicted on highschoolers for god’s sake.

                                                                                                                                  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. 18

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

                                                                                                                                            1. 11

                                                                                                                                              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. 7

                                                                                                                                              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 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. 4

                                                                                                                                                    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. 4

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

                                                                                                                                                      1. 2

                                                                                                                                                        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. 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. 1

                                                                                                                                                      obviously whoever posted that comment has never seen my replies

                                                                                                                                                      1. 0

                                                                                                                                                        plz delete this