[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)