[HN Gopher] Complexity is a source of income in open source ecos... ___________________________________________________________________ Complexity is a source of income in open source ecosystems (2019) Author : teleforce Score : 223 points Date : 2021-05-24 16:39 UTC (6 hours ago) (HTM) web link (www.r-bloggers.com) (TXT) w3m dump (www.r-bloggers.com) | jmcphers wrote: | > The wave is subsiding and they now need to appear to have a | viable business (so they can be sold to a bigger fish), which | means there has to be a visible market they can sell into. | | Might need a (2019) tag. As of 2020, RStudio is a Public Benefit | Corporation and has a corporate structure that is designed for | long-term investment in the scientific community, and isn't | susceptible to buyout or IPO. | | https://blog.rstudio.com/2020/01/29/rstudio-pbc/ | | (disclaimer: I work at RStudio) | shkkmo wrote: | It's great that RStudio is a B-corp, but that, by itself, isi a | magic bullet. | | Is there any information you can share on what steps RStudio | has taken to reduce susceptibility to buyout and IPO pressure | from VC? | bigbillheck wrote: | I've had a low opinion of Matloff since at least | https://matloff.wordpress.com/2018/06/20/neural-networks-are... | dash2 wrote: | Now I'm curious. What was wrong with that paper? | sytse wrote: | The incentive to make open source products more complex is worse | for consultancy business models than product driven ones. | js8 wrote: | It should be according to the hypothesis, and it is an | observable prediction that could confirm or reject it. | furstenheim wrote: | This is kind of what happens with Postgres. Postgres in itself is | great and simple to use. However, managing replication, | maintenance, sharding... Is often quoted as very complex in the | conference themselves. And that's precisely what most of the | companies around Postgres live on | [deleted] | truth_ wrote: | Which alternatively will you suggest. I know it all depends on | the case, but for a fairly simple use case, what would you | suggest? | | Are MySQL and SQLite still the most reliable ones around? | adolph wrote: | Here are SQLite's suggested use cases: | | https://www.sqlite.org/whentouse.html | whalesalad wrote: | This is why I dislike commentary like the one you are | responding to. | | Replace "postresql" with literally any tool and the sentence | holds true: redis, mysql, mongodb, cassandra, mssql, HDFS, | Kubernetes, React, Vue... | | The fact that cottage industries pop up around powerful | tooling is not a bad thing. Some things are just complicated, | and there shouldn't be such an aversion to those things. | osalberger wrote: | The thing is that SQL was originally built to be an easy | accessible DSL for simple database queries, and was not | intended to be used to build highly complex stuff. Datalog- | like query languages would do the latter much better since | they are actually capable of letting you write reusable | predicates and libraries for common usecases, while SQL | easily grows into a monolithic monster. | | Sadly a lot of the "NoSQL" hype later on was led by people | who had no clue about database theory, and proceeded to | throw the baby out with the bathwater and build whatever | abomination MongoDB is, rather than taking SQL's | theoretical basis and building a language on top of it that | is actually designed for complex usecases. There were only | a few exceptions like say Datomic in Clojure world that did | NoSQL right. | whalesalad wrote: | This is unrelated to SQL. We are using SQL as examples - | but it is not important to the argument. | jklowden wrote: | IBM did not spend the money it did to replace its premier | database product, IMS, with another DBMS, DB2, just to | enable "simple database queries". Yes, SQL was influenced | by other "4th generation languages" of the era. But IBM | judged -- correctly, on the evidence -- that most | programmers would not take the time to master first order | predicate logic or set theory. | | So they came up with something that implemented the | Relational Model in a simple way, one that would attract | new converts. SQL has plenty of warts and defects, but | its success at extinguishing every other database query | language can't be denied. | reilly3000 wrote: | I have no issue with this basic premise. Its annoying if you want | to pay nothing for a mature, nuanced service, but in my mind its | the most equitable way to compensate open source development | teams. Dual licensing, "enterprise" features, and such seem to be | popular, but are really frustrating to work with and buy. No | knock on software salespeople, but I've candidly never had a | pleasant experience around any sales or marketing interaction | with an OSS team. I would far rather pay for expertise than | suffer endless email marketing, inside sales lead qualification, | waiting for the AE to ask an internal expert, and getting spun | around whether a needed feature does/will exist. That entire | apparatus seems to exist to extract money from corporate bank | accounts while development is a cost center rather than main | focus of the team. | | More fundamentally, complexity has more to do with the problem | space than the business model. | [deleted] | sneeuwpopsneeuw wrote: | Based on the title the first thing that popped in my mind was | https://www.aseprite.org/ there source code is freely available | to anyone https://github.com/aseprite/aseprite/ and if you search | some more you can find how to install it at | https://github.com/aseprite/aseprite/blob/master/INSTALL.md But | none of these links are easy to find and the installation is not | that simple either. Is this way of doing things good/bad? I just | do not really know how to feel about it. It's partly better then | not having the option available, but, i just don't know to feel | about it. | api wrote: | IMHO "open" systems that are too complex are not actually open. | | What is closed source anyway? It just means you get binaries. | Binaries are not actually obfuscated. You can disassemble them, | and there's even some decompilers on the market that will create | functionally equivalent C code with auto-generated function and | variable names. Nothing stops you from decompiling and reading a | closed-source binary... except the complexity and difficulty of | understanding it. | | Open source systems where the source and installation/admin | procedure are absurdly complicated are not actually open... | they're just using a different obfuscation technique. If it takes | days to install or the source is write-only code, it's no | different from closed source software. | MaxBarraclough wrote: | > What is closed source anyway? | | This is asked as if there is no correct answer, but there is. | | Open Source software is software where the source is made | available under an OSI-approved Open Source licence. Closed | source software is software which is not Open Source software. | | See https://opensource.org/osd | | > It just means you get binaries | | Sometimes even the binaries are carefully obscured. I imagine | it's an uphill battle to dig the binary out of a PS5 game, for | instance. | | > Binaries are not actually obfuscated. | | Some are. | | > Nothing stops you from decompiling and reading a closed- | source binary... except the complexity and difficulty of | understanding it. | | And possibly the licence, and possibly laws like the DMCA. | Also, even if you succeed in reverse-engineering the code, you | may be legally constrained in what you can do. If you improve | the software, you probably cannot legally distribute the | improved version, although you might get away with distributing | a delta. | | See also https://www.gnu.org/philosophy/free-sw.en.html | | > Open source systems where the source and installation/admin | procedure are absurdly complicated are not actually open... | they're just using a different obfuscation technique. | | I agree artificial complexity (whether in the code or in the | software's usability) _could_ be a way for someone to, say, | deliberately subvert copyleft licences. An artificially | unmanageable codebase would increase the cost of development | for the company, though. | | As for tricky installation processes, I believe the only way to | get the official OpenBSD builds is by buying their DVDs. I | don't think most OpenBSD users particularly mind compiling | their own system, but I don't know for sure. | | > If it takes days to install or the source is write-only code, | it's no different from closed source software. | | It _is_ different, because the licence allows others to improve | the software. | lapinot wrote: | > > What is closed source anyway? | | > This is asked as if there is no correct answer, but there | is. | | > Open Source software is software where the source is made | available under an OSI-approved Open Source licence. Closed | source software is software which is not Open Source | software. | | I believe you're missing the point. Parent is making a moral | point and your talking about copyright laws and licences | stamped by OSI. For one i'm pretty sure parent would much | more trust GNU than OSI. Perhaps parent's point would've been | clearer if they said 'non-free software' instead of 'closed | source'. | | And GNU licences define 'source code' as the 'preferred form | of modification'. The reason for this being exactly parent's | point. As an example, that's one (of the multiple) gripe i | have with ml: some 100 lines of python defining a neural | network with millions of params doesn't constitute the source | code, neither do the trained params. The source is in this | case non-textual, it's the training data and the state-dump | of the IDE used to manage the training and inspect the model. | | > > If it takes days to install or the source is write-only | code, it's no different from closed source software. | | > It is different, because the licence allows others to | improve the software. | | But that is pure legalese since it's intractable to modify | it. It completely subverts the spirit of the licence, as such | it is _practicaly_ and in spirit closed-source. | | Extending a bit more the argument, what we want isn't just | free software, it's software that's also interoperable, where | it's easy to reuse just a part, well engineered (minimaly | complex), with well defined scope and powerful/precise | interfaces, etc. That software is golden, the rest will just | disappear in 20 years. | workallday21 wrote: | Looks like R is having their own systemd moment. | | At this point I would like to read a book about the Confessions | of an Open Source Hit Man. | ellisv wrote: | This article strikes me as odd. The premise is based on a | "pattern of behavior" but to me it feels the author is | attributing malice where there likely is none. | | > For the last nine-months I have noticed that the term Tidyverse | is being used more regularly to describe what had been the | Hadley-verse. And??? | | Hadley never liked the name 'Hadleyverse' and the first | appearance of the `tidyverse` package on CRAN is from 2016. | | > RStudio management rode in on the data science wave, raising | money from VCs. | | RStudio is now a Public Benefit Corporation. | harikb wrote: | I think the author ignores the fact that creating simple, | consistent systems is a very hard problem, and rarely compensated | (short term). So most apps, APIs, platforms will eventually | become complicated and messy until there is significant push from | a competition to force people to do the dirty work of cleaning up | architecture | | So if you want a clean and simple R ecosystem, go support Julia | or some alternative like that. | AzzieElbab wrote: | it is not unique to open source. Complexity is a source of income | in software period. Simple software is hard | mushufasa wrote: | This is true, and a corollary is that the observation that the | value proposition for many SaaS companies is just the simplicity | over open-source underpinnings. | | For example, anyone who's tried to implement SAML SSO by hand or | self-hosting a shibboleth server will appreciate the relatively | simpler services provided by OneLogin / Okta. | | I'm not sure, however, that this is a problem. The freedom of | open source to develop without constraints has to come first, so | that someone can later take existing code and impose guardrails | to simplify. | | In other words, freedom itself is at odds with simplicity. | [deleted] | api wrote: | Economics, not freedom, is at odds with simplicity. Nothing is | actually free, so you have to have a paywall somewhere. For | for-profit open source the paywall is usually at the UI/UX | layer where that's typically SaaS-based or for enterprise | software available in the form of consultants to hold your hand | and train your team. | | Make a free, open, easy to use app and you'll go bankrupt. | mushufasa wrote: | I meant freedom as in liberty, not free as in 'free beer.' | | In other words -- if you are free to write code any which | way, complexity will result. Or conversely, in order to keep | code consistent, someone would need to enforce rules. | api wrote: | I 100% agree, but the problem is that most people care a | lot more about free as in free beer than free as in | liberty. | | I have for quite some time seen the two as being at odds. | Free as in free beer undermines free as in liberty by | destroying the economic basis for anything other than | surveillance or closed business models. | suifbwish wrote: | I frequently run across codebases that appear to have | purposely "broken" tiny things that need to be fixed before | the code can be used. This seems to be a type of lock/key | mechanism to prevent just anyone from using it even though | it's open source | the_optimist wrote: | A very unusual claim we have here, on the link-through to | Matloff: "The Tidyverse also borrows from other "purist" computer | science (CS) philosophies, notably functional programming (FP). | The latter is abstract and theoretical, difficult even for CS | students, and thus it is clear Tidy is an unwise approach for | nonprogrammer students of R." | | This seems to be the root of the argument, and it is a completely | bizarre statement. | vharuck wrote: | I agree with Matloff's overall point, though. "Tidy | programming" (which came to mean non-standard evaluation) is | very hard to understand, even for R professionals. It relies on | directly handling symbols, and encourages using new notations | to do it. Debugging is even more complex with NST code, and | people learning the language will be doing a lot of debugging. | I can't imagine a good way to introduce functions to newer | users when using NST. You'd have to first mention environments, | scoping, and symbols. | | My rant aside, I did find this next quote from Matloff a better | argument _for_ using dplyr: > | mean(Nile[80:100]) | | "printing the mean Nile River flow during a certain range of | years. Incredibly, not only would this NOT be in a first lesson | with Tidy, the students in a Tidy course may actually never | learn how to do this. Typical Tidiers don't consider vectors | very important for learners, let alone vector subscipts." | | With dplyr, you'd subset based on a `filter()`, likely | specifying the years to keep. It encourages self-explanatory | code. Matloff's vector subscript tells me nothing about why | certain elements are kept. | Tade0 wrote: | Wouldn't be the only such project if that was the case. | | I often joke that Angular(or specifically any app written in it) | is a job program for front-end developers. | | The architecture of this framework is so byzantine that you can | spend _years_ working with it and still keep discovering new, | often insufficiently documented features. | fmajid wrote: | And this is why Python is eating R's lunch. | legulere wrote: | Another case in point: OAuth | truth_ wrote: | > RStudio, the company, need to sell their services (their IDE is | clunky and will be wiped out if a top of the range product, such | as Jetbrains, adds support for R). If R were simple to use, | companies would have less need to hire external experts. | | They are actually fighting for survival I would say. | | Most of the people using R and RStudio are the people who _only | know_ R and RStudio. | | RStudio's interface feels like it is from the early 90s, and | RStudio is impractical and messy to use. Frankly, it is _bad_. | | R, as a language does only very few amounts of things well. And | when some people's use cases that are limited to that, uses it. | | Data Science wave riders dominantly learn Python (IMO, as they | should). Think >90%. | | There are plenty Data Science Misguiders (influencers) who, just | from shallow knowledge, tell gullible learners to learn R _OR_ | Python. And still almost everybody chooses the second. | | Some people I know who uses R amd RStudio uses them as a simple | Dashboard, dataviz app, or those who uses it for other reasons | write R using Jupyter, VSCode, or good ol' vim. | | R thrives on the backs of lesser skilled developers amd domain | experts using R for some reason. | | Some argue that the tooling of R projects is better than | Python's, but it does so less. A penny is of course more reliable | than a train. | rleigh wrote: | I discovered that PyCharm had some nice R support a few weeks | back. Not sure why PyCharm and not other IDEs, but what was | there was simple but decent. Even embedded the graphics output | in its panels and integrated really nicely. I can see myself | using this when I have problems which call for R. | kuang_eleven wrote: | I would suspect because Python is R's main competitor in data | science. | iagovar wrote: | I'm one of those noobs. Python... IDK, I don't really like | pandas, but i can do anything with python, the community feels | pretty welcoming even when you're asking stupid things (which I | do), there's plenty of information for everything, I can use | any database I want... | | I tried R but it felt weird, and the community felt more | elitist. | gwern wrote: | > Once a collection of complicated packages exist, it is in | RStudio's interest to get as many other packages using them, as | quickly as possible. Infect the host quickly, before anybody | notices; all the while telling people how much the company is | investing in the community that it cares about (making lots of | money from). | | More than RStudio, it's in _Tidyverse_ users ' interests to | extend and embrace; even without any plan or malice aforethought, | it is simply natural that as Tidyverse users do their own thing, | their packages and scripts will rely on the Tidyverse ever more, | and their downstream users will thenceforth rely on it whether | those users like it or not. Thus the situation where you | install.package some harmless looking package and now R is | installing 20 or 40 packages from the Tidyverse. | | I dub this general phenomenon 'bitcreep': | https://www.gwern.net/Holy-wars Somewhat ironically, Hadley | Wickham himself has been a bit annoyed by bitcreep caused by | Mac/Linux users working against Windows users: | https://twitter.com/hadleywickham/status/1280340931657564160 | cwyers wrote: | I missed your article when it first came out, and I'm glad to | have encountered it here; thank you, I think it helps explain | some things here and more generally. I do think that this | explains why the "Base R" people feel so threatened by the | Tidyverse. | | What I find interesting about the quoted excerpt, and the | article most broadly, is about how it spends very little time | discussing what RStudio's economic interest in propagating the | Tidyverse actually is. Because, notably, RStudio doesn't charge | for the Tidyverse packages. There's no Tidyverse Enterprise | Edition, there's no Tidyverse support plans. They mostly make | money off their IDE and server products, and those products | don't have a lot of meaningful synergies with the Tidyverse | packages; there's few IDE features that integrate directly with | the Tidyverse, and those that exist aren't very significant. | Meanwhile, nothing about the Tidyverse is written to work | better with RStudio than with VS Code using the R language | server, or with Emacs, or what have you. | | This isn't to say that RStudio is doing this for any reason | other than economic interest, but the economic interest here is | not in convincing R users to use Tidyverse packages; RStudio | makes the same amount of money if you do your plots in ggplot | or not, and if you switch to ggplot there's nothing about it | pushing you to change your IDE/editor. | | So what is the business model for the Tidyverse, then? It's | pretty straightforward: the goal of the Tidyverse from the | perspective of RStudio is to drive R adoption, mostly at places | who are using commercial closed-source alternatives to R, like | Matlab, or SAS or SPSS. (You could argue that they're competing | for mindshare with Python, too, but RStudio has moved to | treating Python the way that post-Azure Microsoft treats Linux, | as a part of its product portfolio. RStudio's flagship | products, the IDE and the Connect server, both advertise first- | class Python support. Whether or not they have achieved this is | another question, but they certainly are trying.) Once you have | converted people to using R, you can sell them IDEs and | servers. | | I suspect that the "Base R" people have a hard time grappling | with this aspect of the Tidyverse business model, because it | implies that Base R is _inherently less popular_ than the | Tidyverse, which makes their losing less about the whims of a | corporation that they can argue is acting in bad faith, but | about the preferences of the R community, which they have no | power to gatekeep. | | Because the point of the Tidyverse is driving adoption among | people who were not previously R users, the Tidyverse is able | to win over the majority of the community not by persuading | holdouts but simply by growing the community with new Tidyverse | supporters. I understand how that can feel threatening to | someone who was an R user pre-Tidyverse, but you understand why | they don't want to focus their message around shrinking the R | community. And their efforts to persuade these new people to | switch from the Tidyverse to Base R is undermined by the fact | that the best argument for Base R over Tidyverse, the | familiarity of Base R to someone who learned Base R to begin | with, doesn't apply to them at all. They're fighting a losing | war with bad weapons. | lwhi wrote: | Perhaps there is a perverse incentive to not worry about | simplifying now, but I think complexity will eventually piss | people off enough to either leave the community or develop an | alternative. | | Atlassian's Jira is a good day example of what the author's | gunning for. A complex, unintuitive, hulk of a product .. with | seemingly nonsensical UI updates and archives of out of date | documentation. | | Amazing for people providing support and training. As a potential | user, I've been annoyed by badly set-up instances so many times | I'd gladly turn my back on it. | throwawayboise wrote: | The popularity of R amazes me. I took a one-week class in R and | left with a vow to avoid it at all costs. I have never seen a | more confusing, hard to understand, inconsistent software product | in my 30 years as an IT professional. It's apparently targeted at | scientists and sociologists who are non-programmers. I have no | idea how they manage to use it. | beforeolives wrote: | I've written some R both for small interactive scripts and | running in production, it wasn't the first language I learned - | R gets some things done very well; it also has some | idiosyncracies, there is stuff that is clearly patched up | together and exists for backwards compatibility, and there are | _many_ ways to do the same thing in R. If you don 't expect it | to be perfect, it gets the job done - nothing to write home | about and certainly not a language that you should avoid at all | costs. | sharadov wrote: | It does it well, if there is a package out there for what you | are trying to accomplish and hope that the package works for | your use case.. | gravypod wrote: | It's selling point is it's not matlab. It's downfall is it's | not python. The python scientific compute libraries have | they're problems but people are using them and math people "get | them". I think they have an awful design/api from a programming | perspective but most people don't care. Matlab is similarly a | strange language but all of it's libraries/tools make what | scientists do easy. "Click a button and your code can now run | on a compute cluster". | | R is very popular with stats people but new PhD candidates are | beginning to write python implementations of R things (sort of | how like DataFrames/pandas happened). | breck wrote: | Have you spent time with the community? The community is | fantastic. | | Also, the cheat sheets put out by the RStudio team are the best | programming language cheat sheets I've seen for any language: | https://www.rstudio.com/resources/cheatsheets/ | | I don't do R much anymore (at the end of the day I personally | have the freedom to start fresh so I choose that over dealing | with technical debt in the R language itself), but the R Studio | product, team, and R community I found fantastic. | colechristensen wrote: | Scientific programming is just different. Much of the culture | of scientific programming is different and with good reasons | not easy to understand. | | Its something like how baking cookies at home and running a | cookie factory are very different. To a person doing each, the | behaviors and priorities of the other seem strange and it's | easy to for one to think "we are both just making cookies, why | don't they do what i do which is obviously superior " | | Scientific programmers are solving problems first, not writing | programs. They are solving problems in a way that is useful | only to them or peers who know a whole lot about the problem | being solved. The problem-first tools look strange because they | deemphasize the programming niceness in favor of problem | niceness. | | You find the same sort of confusion when programmers are facing | business types and excel usage. | | There are certainly times when a piece of code starts needing | the programming touch, but the right tool for the job depends | on the job. | lwhi wrote: | There's no good reason for something being difficult to | understand. Especially a product that's been designed to be | general purpose. | | You give good reasons for why a certain situation exists in | scientific communities, but I see no reason why it has to be | that way. | tacostakohashi wrote: | Being "difficult to understand" is a perspective of an | individual observer, not some fundamental property of the | thing itself. Japanese is "difficult to understand" if you | only know English, but not if you grew up speaking | Japanese. | | The various conventions around "accepted" programming | paradigms like OO, inheritance, scoping, etc are natural if | you use them every day for years, but if you're more | interested in optimizing some finances or solving a physics | problem, something "primitive" or "messy" like a | spreadsheet formula or fortran might actually be more | understandable. | xeromal wrote: | Love this point | gravypod wrote: | I'm wondering what your opinion is of this talk: | https://www.youtube.com/watch?v=7jiPeIFXb6U | | It has some comments about why good software engineering | leads to good software, how good software engineering is | hard right now because there's a lot of bad examples | which cause people to make more bad code, and some | suggestions on how things could be done. | taoffhand wrote: | I couldn't agree with more OP. I got my graduate degree | in Statistics and, after working for several years in | such a role, made a similar vow to Never Again(tm) touch | R (or SAS). This effectively forced a career change. (I'm | now "officially" a software developer and couldn't be | happier.) My distaste for Statistics stems directly from | the commonly used tools. | | I appreciate your point. In most contexts, such as your | comparison between Japanese and English, I agree with it. | However, paradigms like OO, inheritance, scoping, etc. | are hard-won, intellectual accomplishments; they're not | arbitrary. They're purposefully designed to solve | specific problems. My experience with R showed it to be | rife with problems that have been avoidable for decades. | AFAICT, it boils down to the tragic view of "I'm a | (statistician|engineer|mathematician) not a coder so I | don't need to care". The unfortunate truth is that | despite such a view, doing analysis with R makes the | analyst a programmer _by definition_. And so the | language, ecosystem, and, consequently, users suffer from | half-baked, poorly designed workarounds to problems which | have long been solved (and abundantly documented in the | software literature). To reduce it to a matter of | perspective feels to me like a tautology: it 's easy once | you get it. | | Clearly, I'm triggered by this. I hope I've expressed | myself respectfully. My point is, I don't feel it's | arbitrary. The design and complexity of R has real | consequences in terms of cost and reproducibility. | edumucelli wrote: | Inheritance was invented for performance reasons [1]. It | was not conceived for pure code organization, so in way | it is arbitrary as any other solution that could have | brought performance gains for the original garbage | collector. Inheritance is an "intellectual | accomplishment" as other accomplishments, that will incur | into issues if applied blindly, so not having it is not | an issue per se. On the contrary, today's widely accepted | view of inheritance is to rather use composition instead | of it [2]. | | R does have inheritance by the way, not as you will see | frequently on "general purpose" programming languages, | thing R is not. | | [1] http://catern.com/inheritance.html [2] https://books. | google.pt/books?id=ka2VUBqHiWkC&pg=PA81&lpg=PA... | azalemeth wrote: | I use R regularly. I love it. Doing the maths is very | easy and general. The programming makes me think | differently. I like how it's high level, reasonably fast, | rarely involves loops or inline functions directly, and, | above all, is the Swiss army chainsaw of statistical | analysis. The fact that the journal of statistical | software exists is a good thing! | lwhi wrote: | > Being "difficult to understand" is a perspective of an | individual observer, not some fundamental property of the | thing itself. | | I disagree. There are inherent qualities associated with | systems that happen to be easier to understand. If you or | I were designing such a system, and wanted to ensure this | system imbued similar qualities -- I believe it would be | possible to do so. | | > Japanese is "difficult to understand" if you only know | English, but not if you grew up speaking Japanese. | | Needing a priori knowledge to be able to understand | something, is different. | Karrot_Kream wrote: | > I disagree. There are inherent qualities associated | with systems that happen to be easier to understand. If | you or I were designing such a system, and wanted to | ensure this system imbued similar qualities -- I believe | it would be possible to do so. | | Can you formalize these inherent qualities? Until you | can, it's hard to prove that a quality is or is not | essential. | zaphirplane wrote: | Of course difficult and easy exist. It's hard to run a | marathon it's easy to eat popcorn. It's hard to learn | Japanese it's easy to watch tv | droopyEyelids wrote: | Having worked a bit with candy making and baking from home | sized to restaurant sized to a regional factory, I'll say | this analogy doesn't make sense. | | Almost all the progression in that industry is relatively | straight forward and would make sense to the lay person. | TeMPOraL wrote: | I sometimes quip that the difference between cooking and | process engineering is that unlike the former, the latter | actually gives a shit about the quality of outcome. | | The issue isn't _just_ specialized knowledge - knowing the | principles underlying the process, knowing that there _are_ | principles - but also access to tooling. I 'm sure plenty | of lay cooks would appreciate appliances that let them be | more consistent, even without knowing any related formal | theory - but these are not available. As it is, an oven | that's not shit is a major capital investment. It only | makes sense to get one if you're more likely to call your | work output a "formulated product" than "cookies". | | However, software development is a peculiar occupation - | one in which the best tools are free. It's like being able | to buy a production line for less than a consumer-grade | stove. Access to quality tools is not a limiting factor. | Knowledge and awareness is. | | Of course, non-programmers that code have more interesting | things to do than to study software engineering. Which is | why it's doubly important to make sure tools that are being | popularized aren't shit. On the contrary, tooling is the | perfect place to encode good practices and principles, so | that even most lay (programming-wise) users succeed by | default. | Communitivity wrote: | R programming is fundamentally different at a conceptual level. | You are operating on datasets rather than individual values. | Also the GUI mechanism use reactive programming if you are | using R Shiny. R is awesome for what it is designed for. | jayd16 wrote: | Yeah, its not so hard to groc. Its just a data driven style | all the way down. You get pros and cons. Its great at working | on data sets. | | That said, I feel like correctness should be given a higher | priority in scientific computing and yet a dynamically typed, | lazily evaluated language is used. | CapmCrackaWaka wrote: | I was a mathematics major in college, and didn't have much | training in programming when I graduated. R was the first | language I learned when I started my career as an actuary, and | it was a breeze. Things "just work". Want to add 2 vectors of | different dimensions together? R knows what you're getting at, | and makes it work. Comparatively, learning Python was harder. | | Now that I'm used to both languages, I find it funny how much R | is hated by "true" programmers. | vharuck wrote: | This is the key. R shouldn't be seen as a general programming | language, but a domain specific language that's still open- | ended. I started with SAS in my job, which was fine for | statistics and handling tables. But anything beyond that, | even supposedly simple things like reusing code or listing | all files in a folder, was not simple. With R, it was. | | R only had to be ergonomically better than the competition, | and they weren't very good. | blt wrote: | What are you "getting at" by adding two vectors of different | dimensions? It's not obvious to me. | | Off-by-one dimensionality errors are so common in | programming. If the language does something like zero- | extending instead of raising an error, it will lead to an "it | runs but gives the wrong answer" bug. These are much more | painful in numerical code than in logic-based code. | CapmCrackaWaka wrote: | For instance, if you wanted to add 1 to every other element | in the vector (1,2,3,4,5,6). To someone who has no | programming experience, this may be a daunting task. But | simply doing (1,0) + (1,2,3,4,5,6) works in R. | Closi wrote: | The only problem with this is that I don't personally | find it obvious/intuitive that (1,0) + (1,2,3,4,5,6) = | (2,2,4,4,6,6). | | In fact, I would probably _expect_ the output to be | (1,0,1,2,3,4,5,6). | Karrot_Kream wrote: | Indeed, no mathematician or statistician would think of | `+` as concatenation. List concatenation isn't a relevant | problem to most mathematicians. This is where the above | comments about prior knowledge and context come into | play. Likewise, when I multiply two vectors together, or | multiply a scalar with a vector, I have a definite idea | what I "want" out of that multiplication. For many | programmers, they think of this more as an exercise in | data-types than an expression of linear algebra. | CapmCrackaWaka wrote: | I guess that's the difference between people who prefer R | vs. people who use more traditional languages. '+' means | addition in the scientific world, if I'm trying to figure | out how to add numbers the first thing I try is '+'. To | me, those vectors are just that - vectors of numbers, not | instances of a class (even though that is kind of true | under the hood). I have a problem I want to solve, and R | does a good job of giving me what I want. | roenxi wrote: | In what branch of maths or science is (1,0) + | (1,2,3,4,5,6) even defined? That operation shouldn't make | sense to anyone; it is adding vectors of different | dimensions. | | The result should probably be vector promotion then | (2,2,3,4,5,6). (2,2,4,4,6,6) is not a good answer. | samuel wrote: | That's are my thoughts, mostly, but in the end libraries are | the killer feature of successful programming languages. I have | got used to it and I'm more proficient now at data analysis | tasks using R than Python/pandas thanks to tidyverse+ggplot. | | The object system mess though... I have no words. | rossdavidh wrote: | I am primarily a python programmer, but I sometimes use R. | | You are either going to use a programming language (or library, | etc.) made by a programmer pretending they know about | statistics, or a statistician pretending they know about | programming. Oftentimes, as a programmer, the right choice is | the former, but not uncommonly (because statistics is even less | intuitive than programming), you really really need to know | that the statistics have been done right. If someone has ported | the relevant code from R to python, great. If not, bit the | bullet and use R, it's where the statisticians hang out. | | You know, I bet statisticians don't think any more kindly of | how programmers make stuff. Our use of the '=' sign, for | example. We're just used to that kind of thing, so it doesn't | look like a problem to us. | blacktriangle wrote: | My description of R: It makes hard things easy and easy things | hard. Ergonomically it is the absolute worst "programming | language" I've touched in my life. However somehow it managed | to become the official language of statistics research and has | packages to do any type of analysis you can dream of. | | I think the reason you and I dislike R is because we just work | differently than non-programmers. Non programmers think in | purely imperative, straight-forward semantics. They write one- | off unmaintainable code tying together libraries that solves | their immediate problem. Programmers try and write R code as if | it was a proper programming language and immediately run into | walls. Non-programmers never see the walls because they don't | even know there's another way. | sedeki wrote: | FWIW, R started to make sense to me (as a programmer) once I | read Advanced R by Wickham. | mbreese wrote: | I have a colleague that use R as a general purpose language | (I'm in science), and it's horrible. He runs into problems | all the time and usually the answer is "more RAM". | | For the things it's good at, it's great. For everything else | I avoid it like the plague. More often I find it easier to | use a quick Python script to generate a data table that I can | then read into R to perform whatever stats or plots I need. | It's almost always faster than if I had just run everything | in R to begin with. | | But I think your description is spot-on. Non programmers just | want to get something done and if it works in R, then great. | For those of us that think in terms of software engineering, | good practices can be difficult in R. | | The vanilla-R vs Tidyverse split has made this all worse too. | These are two completely separate dialects of R that while | still the same language, are completely different. | | It's like the R folks took the "there's more than one way to | do it" mentality from perl and said "challenge accepted!". | A4ET8a8uTh0 wrote: | I agree overall. In my particular case, my employer won't | let me have Python for fear I will do things with it. But | it is perfectly ok for me to RStudio with 2 million useful | extensions that will do similar things. For better or | worse, sometimes the tools we use are the tools we are left | with. | | And I am saying this as a recent RStudio convert. I love | how easy it makes some otherwise hard things. I hate the | sheer amount of hoops you have to jump through to make some | stuff work. | | But it works and I am definitely not an engineer. | dragontamer wrote: | R > Matlab. But both suck as programming languages. | | But that's because neither R nor Matlab are primarily | programming languages. They're primarily mathematical | exploration tools. | kuang_eleven wrote: | Luckily, Python >> R > Matlab, and the fight between R and | Python is core to data science. Last I did any real | investigation, R still had the edge in highly-theoretical | and new techniques, for whatever reason it was much more | used by academics, but Python was eating R's lunch for non- | academic data science. | dragontamer wrote: | I've given SciPy a try, but its performance is grossly | lower than R and Matlab in my experience. SciPy also | seems to be missing plenty of things. You get pretty far | (basic filter design seems easier in SciPy than Matlab), | but Matlab has so many different mathematical fields in | it its just incomparable still. | | R is statistical-slant, so you have all sorts of | distributions and statistical features. | | Matlab is general mathematics (but especially matricies). | So you can grab say... Galois Fields between 2^2 through | 2^16 and just start working with them immediately. | | Matlab itself is decently replicated by Octave (which is | a great project), but it should be noted that Octave aims | to be largely compatible with Matlab (so all of my | complaints about how awful that programming language | still applies). | osalberger wrote: | Right. Julia is looking fairly promising as a "real" | programming language that is still an excellent Matlab | replacement, and possibly to a lesser extent an R | replacement, and it does show that there is nothing about | filling the exploratory math programming niche that | requires it to have the warts that the incumbents have. | | Fundamentally, R and Matlab are probably best comparable to | Perl in terms of how they got popular. While they are | rather ugly, they were the first to provide a simple | solution to a few specific problems that a lot of people | had, which snowballed them into popularity and network | effect advantages | mushufasa wrote: | The fact that Julia requires compilation seems like such | a huge hurdle to adoption in light of the above. When the | alternatives are a REPL and the users aren't programmers, | to use Julia they have to first learn the difference | between code and compiled code. | beforeolives wrote: | Julia is JIT compiled and most people use it through a | REPL. For a beginner there's hardly a difference in the | experience. | dash2 wrote: | No, there is a difference. My day-to-day use case is: | start the REPL, start typing some code, wanna see a | graph. I might literally only want to write a single | command. If that takes a minute to compile, it's a | problem. Julia is pushing hard to address this and I'm | really interested to see where it goes - I tried it for | the first time recently and saw a lot to like. | adolph wrote: | _Project Jupyter 's name is a reference to the three core | programming languages supported by Jupyter, which are | Julia, Python and R_ | | https://en.wikipedia.org/wiki/Project_Jupyter | bachmeier wrote: | > somehow it managed to become the official language of | statistics research | | There's zero mystery to this. The intended audience is people | that want to get stuff done. Professional software developers | commenting on R are like this: "He's such a good salesman. He | does everything the right way. He dresses right. He talks | right. He has the best smile of any salesman I've ever seen. | He fills out his reports on time. Granted, he doesn't make | many sales, but why would you hire one of those other guys | over someone that's perfect?" | Grimm1 wrote: | Mmmm more like like they try to put the salesman in an | operations role and wonder why the company has broken down. | | If you tried to use R for an actual engineering project | you'd wind up with a system that is always on fire. Where | as these one off analysis it's fine because it's just a one | off. | | We want to get stuff done too, but we need it to hold up | for more than a few hours so that's the mode we think in. | bachmeier wrote: | Every HN discussion: I do real programming. Everyone else | works on toy problems. | blacktriangle wrote: | He wasn't calling that one-off use case a toy, just that | it's a different world than most of the people here on HN | function in. | Grimm1 wrote: | It's all real programming and it has all the real | consequences, but there is a distinction between | something that needs to live for a day, a few months, | maybe years and then maybe have multiple people work on | it, have it communicate with other systems or not and the | level of investment and structure you need to put into a | system to make sure that's possible. | | Programming has a very low barrier to entry and that is | incredibly powerful but there is a big gap between | someone writing one off scripts to solve immediate | problems and people writing highly connected systems that | withstand scrutiny. | | I've always personally been for accreditation for | software engineers much like pretty much every other | engineering discipline. | andyonthewings wrote: | > It makes hard things easy and easy things hard. | | People also say it for k8s. And it kind of explains why k8s | is creating so many jobs. | ghaff wrote: | I'd generally argue that, if you're trying to do easy | things with Kubernetes, there's a good chance you're using | the wrong tool. | outworlder wrote: | > And it kind of explains why k8s is creating so many jobs. | | Is it 'creating' jobs? I think it's merely making it easier | to specialize. | | A few problems are unique because of container usage, but | by and large K8s is trying to do what's otherwise a | difficult job. Try assembling your own distributed | container system with scheduling and whatnot and see if you | can build something easier to understand or that works | better. Maybe you can, but there's inherent complexity. | | The criticism of K8s should really be criticism of | indiscriminate container usage and the attempts to ship a | company's organization chart as microservices. Many | applications should really be monoliths and would work | better that way. Some should be split on different | "services" (not _micro_) along obvious interface points. | Just a minority should be architected as microservices from | the get go. Distributed systems are _hard_ | collyw wrote: | I imagine that you could get rid of kubernetes in 90% of | the projects it is used in. We have it at my work, must | have taken around six months to a year for on dev. Sure | we can autoscale now, but we never actually need to. It | saves us a bit in server costs, but more in maintenance / | dev time. | jokethrowaway wrote: | What's the previous system you had which required less | maintenance than k8s? | failwhaleshark wrote: | R was the supposedly the "FOSS" replacement for SAS, and Matlab | to a degree. I had to support it and bioconductor. | | Now, most people just use Python. | jokethrowaway wrote: | Machine learning is ripe with similar examples (tensorflow in | primis). | agumonkey wrote: | it seems to me that the value is in hard-compressed optimized | functions and to this crowd this is the most important factor | | software engineering practices don't exist unless you have a | gigantic program, programming language theory is either not | interesting or too foreign for them | | about how they manage.. it's easy, they get used to it | froh wrote: | R got a simplicity boost with the "tidyverse", R studio and | ggplot, all driven by Hadley Wickham. at its core, R is a very | straightforward language. however it never had a benevolent | dictator who gave it consistency, elegance and style. Hadley is | compensating that a bit. | asdff wrote: | I'd argue that tidyverse is entirely nonconsistent with the | rest of R, though. At least base R packages all operate in an | "R-way," so learning this syntax helps you with other | packages that others try to write in an "R-way," while | tidyverse only operates in a tidyverse way that you can't | take your syntax knowledge with you to other packages. | | I'd say the learning curve for making a sexy plot is a lot | shorter with tidyverse, but overall, relying on it handicaps | you versus spending the half hour longer to do the same thing | with base graphics (or a base-like package). | roenxi wrote: | > I'd argue that tidyverse is entirely nonconsistent with | the rest of R | | Well, yes, but that is part of the reason why it is so | popular. R may be written by world-leading language design | experts - but it doesn't show! | | > ...relying on it handicaps you versus spending... | | There is almost no reason to drop out of tidyverse if the | problem domain is visualising data. Most people could go an | entire career as an analyst using just ggplot + tidyverse. | | If something needs to be plotted and ggplot won't work it | probably makes sense to drop out of R and go straight to | TikZ or OpenGL. | jklowden wrote: | A lot can be said in favor of R, but "straightforward" is a | debatable description. The semantics of R were never really | designed, and were only recently "discovered", post hoc. See | "Evaluating the Design of the R Language" | (http://janvitek.org/pubs/ecoop12.pdf). | asdff wrote: | Other than using apply functions instead of loops, coding R is | a lot like coding python only you get a lot more of the data | science python package functionality already baked into base R. | The syntax differences are slight enough where it's pretty easy | to move between the two (or find relevant stackoverflow answers | instantly to common annoyances). R generally inputs your data | and outputs your statistical test results in less code with | less headscratching than doing the same in python in my | experience. I prefer plotting in R as well. | dash2 wrote: | In general this idea may be true, but for the tidyverse it's just | a load of horse. | | Hadley Wickham is a very talented developer, and what he's | _particularly_ talented at is writing interfaces that are easy | for people to use. dplyr, a key part of the tidyverse, is a great | example of that. It breaks data tidying up into a few simple | steps that can be chained together. It 's the descendant of an | earlier iteration (plyr) and Hadley learned from that and just | kept polishing the interface. | | There's a similar story with tidyr. Reshaping data from wide to | long is a complex operation. Base R has a reshape() function and | using it has given me permanent PTSD. It was impossible to get | right until you read the documentation. After you read the docs - | still impossible. Hadley wrote the reshape2 package, which | improved things a bit. Then there was tidyr::gather() and | spread(). Finally, we got tidyr::pivot_wider() and | pivot_longer(), and at last I can be reasonably confident of | getting the results I need without too many tries. | | The tidyverse is hugely popular for just this reason. Without it, | I'd probably have abandoned R. I certainly wouldn't dream of | teaching it. Ditto Rstudio. Calling these people parasites is | absurd. | macleginn wrote: | I agree with your assessment of the claims made in this post, | but I want to note that for me the tidyverse culture became the | reason to abandon R for all use cases where it has decent | alternatives. R is not pretty, but it is also not super hard, | and it has some internal logic. tidyverse's logic is orthogonal | to that of R, it is a different data-manipulation paradigm, | which I know have to know in addition to having to know R | itself---not that you can really skip this part. Also, as it | has been already mentioned here, this layering doesn't help | with debugging. | | ggplot2 did a similar thing with plotting. Together these two | projects made R more accessible-like and, IMO, seriously | damaged the culture around it. | asdff wrote: | tidyverse has ruined stackoverflow. So many questions could | be answered with base R, and sometimes you might _need_ to do | base R if you want your code widely compatible, but people | insist on submitting some arcane ggplot2 or dpylr code | instead, and nothing is learned about R. | mbauman wrote: | It's interesting, though, that those "clean" interfaces come | with the horrors of non-standard evaluation and have caused a | rather large divide between the tidyverse and base R. | | I fully disagree with the disparaging aspersions or even | motives that TFA leans towards, though. I can see how this | would arise out of a local minimum. | | The "beauty" of R has always been its core DataFrame | abstraction and the fact that a table is a language primitive | -- and that's where 90% of the consistency came from (from my | outsiders' vantage point). | rossdavidh wrote: | Just to add an anecdatum, as a python programming who has | started using R in production, I find dplyr to be less clear | than base R. Not that either one is clear. | zelphirkalt wrote: | I don't have much to say about the R ecosystem, as I am not | actively using it or even doing anything using R. | | > Matloff is also upset about a commercial company swooping in to | steal their precious, a common academic complaint (academics | swooping in to steal ideas from commercially developed software | is, of course, perfectly respectable). | | This reads like some kind of sarcastic statement. In fact it is | indeed perfectly respectable, that academics do this, because it | lets our society advance and research progress outside of | proprietary software gardens. In my opinion any such kind of | action is perfectly respectable, if it shares knowledge with the | world. The other way around it is not OK, because from | proprietarizing ideas, there is no benefit for society. If a | company is worth its salt, it will offer services on top of | existing public knowledge, without creating walled gardens. If it | cannot do so, then it might be time to realize, that the company | should not exist. | | What is not OK is, if academics take that knowledge and make it | seem like they were the ones inventing stuff. One should always | give credit where credit is due. Never forget academic honesty. | Usually however, a lot of foundational research is done by | academics, only to be picked up years later and often by | commercial entities dealing in proprietary software. | tfehring wrote: | > _If a company is worth its salt, it will offer services on | top of existing public knowledge, without creating walled | gardens._ | | I contend that every profitable company leveraging public | knowledge _does_ offer services (broadly construed) on top of | that knowledge, since otherwise no one would pay them. Maybe | the minimal example is that in which the only service provided | is marketing, but the range of service levels provided in | practice runs the gamut. RStudio clearly goes well beyond that | minimum. | | In some cases, the services offered are so valuable that the | company can create a walled garden - which reduces the net | value of those services to the customer but provides the | company with monopolistic pricing power. (It's not clear to me | that RStudio's products have significant lock-in, for what it's | worth. R has significant lock-in, like any programming | language, and RStudio benefits from the lack of competitors | creating good R tooling, but that's not really a walled garden | of RStudio's making.) | archibaldJ wrote: | In mathematics we roughly have two ways to discovering new | things: one is the theoretical approach (eg Galois and his theory | that proves the none-solutions for fifth degree polynomial | equations) and the other is the more adhoc technique-driven | approaches (e.g. you can see the ingenuity of that in many of | Erdos proofs). Of course the categorization is not always so | clear-cut you often get a mixed of both worlds. | | I think it's very similar when it comes to writing code. The more | theoretical driven approach, the more structures you've got at | your disposal to reason about things (eg see Mochizuki's proof of | the abc conjecture). | | For example, should you use monad in a small project? Maybe not. | But if you are dealing with thousands lines of code every week | you may find that if you reimplement some components as monads | then suddenly refactoring gets easier and you can extend things | more easily without having to do a global search and modify all | the occurrences of a certain thing every time you make changes to | the type, etc | | So ultimately you are offloading cognitive efforts to structures, | which are really just constructs to optimize cost-to-transform | (though it may increase the cost-to-execute (both computationally | as well as mental-visualization/simulation-wise)) | | So is it worth the effort to work with structures? It really | depends on the project you are working on or what you see | yourself building in the next 10 years | | Depending on how you see your career it's always good to be a bit | more ambitious | sebastialonso wrote: | you know..."it depends" if a famous (non) answer among (good) | software architecture | [deleted] | [deleted] | hnrj95 wrote: | has mochizuki's proof been formally recognized? i thought it | wasn't yet agreed upon | jacobolus wrote: | No, Mochizuki's "proof" is likely to be fatally flawed. He | has almost entirely refused to engage with careful and | targeted criticism by the experts who found what they claim | is a serious flaw. | | Mochizuki finally went ahead and published his work in a | journal where he is the editor in chief. So much for peer | review. | failwhaleshark wrote: | OpenStack, K8s. Nuff said. | hinkley wrote: | These days it seems like people make a library, and they never | get to documenting it properly until someone offers them a book | deal. And they can't just put all of than knowledge immediately | in the docs otherwise who would still buy the book? | | From outside this looks like they're holding out on us. | | Some tools require google stalking the maintainer in order to | synthesize explanations from six different places into a Theory | of the System of how the thing is supposed to work. Apache Ant, | for a memorable one. | | As with many things, you don't know your own opinion of a subject | until you have to try to teach it to someone else. | rabidrat wrote: | > holding out on us | | They're doing the fun part (coding) for free. It's well-known | that developers don't like writing documentation (esp | "properly" which is ill-defined and for some definitions can be | a much larger task than writing the code in the first place); | in fact, does _anyone_ enjoy writing docs as much as an | engineer enjoys writing code? | | So this makes total sense to me. As a user of free software, | you can choose: a) pay for a commercial package with comes with | docs; b) use free software, and pay for the docs in the form of | a book (perhaps waiting a few years until lots of people want | to do the same); c) use free software and figure it out from | breadcrumbs the developer left in whatever forums they use; d) | (c) but then step up and write some docs. | | Too many people think that free/libre software is supposed to | be like commercial software, only better, but it's not the | case. It's definitely better in the "libre" way, and of course | cheaper in the "price" way, but it's usually not packaged for | easy consumption, nor is the developer going to do a bunch of | work they don't enjoy for other people who don't want to pay | them for it. | antirez wrote: | One thing I used to say often was: "Complexity is a form of | vendor lock-in" | throw_m239339 wrote: | Consultancies made billions with unnecessarily complex | JEE/Enterprise patterns systems that needed hundreds of | developer to maintain. So I'm not surprised all that pseudo | agile/DRY/SOLID stuff were pushed as "good practices" in the | 2000's and the 2010's. | | "No you can't just use if statements, you need to use a chain | of responsibility with many classes cause it's SOLID". | | It's not a mystery that one of the author of a popular front- | end framework was a JEE consultant, and this popular framework | now feels like a solution looking for a problem... | fock wrote: | another example is Moodle. It's horrible spaghetti code (PHP as | used in 2000, including addons relying on specific database | schemata) and if you google for it you'll find a nice forum | thread, where a lot of LMS "consultants" are bashing a guy asking | whether there are plans for a rewrite. | | And yes, as a Moodle user (teacher) you notice quickly that these | decisions seriously impact usage! | ExcavateGrandMa wrote: | lemme re-iterate :D | | Complexity is a source of useless processing with the only goal | to obfuscate simple things... :) | agumonkey wrote: | This is a regular pattern.. it's worth asking if that's not the | sole mean for systems to stay alive. | turminal wrote: | The title is actually true for any kind of software ecosystem, | open source or not. | Nasrudith wrote: | I have found that claim mostly projection from closed source | rivals in my experiences. Namely because those are the only | places I have found support knowledge outright cashgated. | | I head the claim and it seems as if it was a line from Microsoft | back when they were hostile to open source and a minute after it | left their mouth managment promptly set up a meaning to ask "Why | aren't we doing that?" shortsightedly to the detriment of their | own longterm health. | | Open source ethos have been more "not want to deal with that | crap" in ethos and a general tendency against wanting to provide | support if it doesn't involve bugfixes. Again back when the | community were more stereotypically grumpy greybeard telling you | to boost your expertise by RTFM than evangalists with sizable | blog and/or social media presence depending on the timeframe, or | even novices grinding out tutorial websites as a portfolio item | of sorts as an extension of "extracurriculars to get into a good | college" side activities. I am not calling that cultural change a | bad thing, far from it. I am just noting it has far more energy | involved in maintenance of a communal efforts compared to less | than easily accessible man files whose gap in time between last | update and today could rent a car if it was an ordinary human. | xg15 wrote: | This is why a market-based economy is not good at solving | problems. It's great at _managing_ problems, alright, but | _solving_ a problem would mean cutting off a source of potential | revenue. | jokethrowaway wrote: | I don't see how you got to this conclusion. | | It's not good at solving problems in the best possible way | according to everyone. Centralisation is great at solving | problems in the best possible way according to a single person | or circle of people. | | It's good at solving problems so that the majority of people | willing to pledge resources are happy. | recursivedoubts wrote: | There's probably something to that. | | I've accepted that my open source project, htmx, will likely | never drive any significant income. It's too simple. Whenever | someone starts talking about consulting, I tell them to read the | docs and maybe jump on the discord, but that they'll probably | figure it out. | | In addition to the revenue angle, a lot of developers don't like | admitting "that seems too complicated" because it can be | interpreted as "I'm not smart enough". Arguing for simplicity | often requires a lot of backbone (or disagreeableness, according | to taste.) | breck wrote: | "There are 2 kinds of products: Ones that get more complex over | time and ones that no one uses." | shkkmo wrote: | True, but if your business model depends on providing support, | you may be less incentized to minimize the growth of complexity | as new functionality is added (especially if your software has | little competition.) | asdff wrote: | Meanwhile everyone uses 50 year old bash. Sometimes it's | ridiculous to waste effort inventing yet another hammer. | whalesalad wrote: | Complexity is a source of income everywhere, not just open | source. It's even worse in the Microsoft world. Just because you | can't see the complexity doesn't mean it isn't there. | | The blog post is projecting a lot on the situation. It's a blog. | Take it for what it is. | robertlagrant wrote: | When choosing between Office 365 and Google Workspace, you may | find the familiarity of Office is an expensive choice with all | the IT people you need to hire to tame it. | throwaway3455 wrote: | >It's even worse in the Microsoft world | | One of the reasons I stopped using Windows was the complexity | pretty much forces a support contract for anything other than a | toy business. | | Funny how distros offering support contracts are taking linux | down the same path. | schleiss wrote: | I can emphasize with the argument that complexity is a source of | income. But, I don't think that it's intentional. Rather, the | constant change of developers introduced little inconsistencies | that over time accumulate and generate complexity. Recently, I | even looked at some open source projects[1] to measure the | complexity by counting import/include statements. | | [1] https://schleiss.io/measuring-potential-complexity-in- | open-s... | for_i_in_range wrote: | What he's touching on is Complexity Fallacy. (i.e. we "over- | complexify" things). Why? "We often find it easier to face a | complex problem than a simple one."[1] | | Humans also possess Simplicity Bias. (i.e. we "over-simplify" | things). "Simplicity bias is a cognitive bias towards holding | views which can be explained by a simple narrative."[2] | | Ironically, this very article may exemplify the _Simplicity Bias_ | to explain a _Complexity Fallacy_!! | | It seems the ultimate answer is the perennial, "know thyself." | Practice self-awareness; and know which Bias you're leaning on, | and more important, _why_ you 're leaning on it (in light of the | goal). | | [1]: https://fs.blog/2018/01/complexity- | bias/#:~:text=Complexity%.... | | [2]: | https://issuepedia.org/Simplicity_bias#:~:text=Simplicity%20.... | jedberg wrote: | My first job was working for Sendmail, Inc. Their entire business | model was based on helping people configure open source Sendmail, | via consulting and/or a commercial web UI for configuring the | software. And of course selling support for the open source | software. | | And it wasn't even intentional. The software existed for almost | two decades before the commercial company. The commercial company | sprang up because the open source authors needed paychecks for | all the support they were doing. And also a bunch of companies | were selling Sendmail consulting. So they figured people would | rather buy consulting from the people who actually make the | software. | | Sadly, it didn't work out. The company was acquired for a loss to | the investors. | vmarshall23 wrote: | Heh. I actually replied below before I saw this, but the | sendmail.cf file immediately popped into my head when I read | the post's subject line. | DesiLurker wrote: | Isn't it everywhere? | chovybizzass wrote: | is that why i'm tired of programming after 25 years? | vmarshall23 wrote: | sendmail.cf ___________________________________________________________________ (page generated 2021-05-24 23:00 UTC)