Earlier quoted context omitted.
As a big fan of rewrites (but not as big a fan as some), I think Linux has avoided needing big rewrites with a lot of very clever modularity in its design. Many corporate software programs do not have that level of modularity. Modularity has performance costs, is slower to develop, and "looks ugly" on a block diagram, but it pays dividends for open source projects and projects that need upgrades over time. Individual…
Linux IS corporate. It has been corporate for a long time - the heaviest commits come from paid, professional developers.
The collapse of complex software
181–190 of 304 posts
Re: The collapse of complex software
#182This "software grows too complex" is certainly a culture issue, and not a software problem. It mostly comes from businesses throwing a bunch of under-skilled labor at the problem, and demanding more and more too quickly. Of course it will outgrow the ability of that team to work with, reason about, keep clean, and extend. They will get frustrated and move on, and a new group comes in, re-writes it from scratch, and s…
If anything, Linux isn't afraid to rewrite the parts that need to be rewritten, and that's one of its strengths.
Apache, Vim, and Postgres have been "rewritten." Nginx is an httpd written from scratch that sort of has the same features as Apache. Neovim exists. And newer database technologies that care about performance have been written.
Re: The collapse of complex software
#183Earlier quoted context omitted.
As a big fan of rewrites (but not as big a fan as some), I think Linux has avoided needing big rewrites with a lot of very clever modularity in its design. Many corporate software programs do not have that level of modularity. Modularity has performance costs, is slower to develop, and "looks ugly" on a block diagram, but it pays dividends for open source projects and projects that need upgrades over time. Individual…
Linux IS corporate. It has been corporate for a long time - the heaviest commits come from paid, professional developers.
Also, what happens is that rewrites happen progressively, in small steps.
Re: The collapse of complex software
#184This "software grows too complex" is certainly a culture issue, and not a software problem. It mostly comes from businesses throwing a bunch of under-skilled labor at the problem, and demanding more and more too quickly. Of course it will outgrow the ability of that team to work with, reason about, keep clean, and extend. They will get frustrated and move on, and a new group comes in, re-writes it from scratch, and s…
> emacs, ... don't put artificial corporate constraints The historical record disagrees. See for example RMS squashing better clang+emacs integration: https://lists.gnu.org/archive/html/emacs-devel/2014-01/msg01...
Re: The collapse of complex software
#185Earlier quoted context omitted.
> What's the "right" way to store person names? struct Screenname { Matches _; // TODO: ensure it is illegal to ask for users' real names // for now we'll just do the right thing unilaterally }
Works for email, phone numbers and addresses, too.
Re: The collapse of complex software
#186Earlier quoted context omitted.
Me too, and I definitely agree that it is time to move past thinking in "languages" to a more holistic view of programming systems. The fact that as of now, only ~1% of people can access programming and wield the magic of the computer is a tragedy akin to the comparable levels of literacy in the medieval era. At the present, there seems to be a minor renaissance of thought along these lines stemming back to the pione…
> The fact that as of now, only ~1% of people can access programming and wield the magic of the computer is a tragedy akin to the comparable levels of literacy in the medieval era. I don't know why programmers think this way. We don't expect everyone to be a doctor, a botanist, a novelist, or a musician but for some reason we think anyone can be a programmer. That's just not the case -- programming is a skill like an…
Anyways, there's a reason programming should be made more widely accessible - it develops thinking skills and rationality when you learn it, as Mindstorms pointed out. Between the anecdotes in the book and things like [0], I think it's a travesty that we aren't pursuing this to its fullest extent, and instead try to teach children Python or JavaScript, two decent languages for software development but not exactly forgiving with beginners.
[0] https://medium.com/@stevekrouse/goodbye-seymour-cb712757264f
Re: The collapse of complex software
#187> Simplicity of design sounds great in theory, but it might not win you many plaudits from your peers. A complex design means more teams to manage more parts of the system, more for the engineers to do, more meetings and planning sessions, maybe some more patents to file. A simple design might make it seem like you’re not really doing your job. “That’s it? We’re done? We can clock out?” And when promotion season come…
What made up fantasy world do you live in, and are they accepting immigrants?
Re: The collapse of complex software
#188Re: The collapse of complex software
#189Earlier quoted context omitted.
> The fact that as of now, only ~1% of people can access programming and wield the magic of the computer is a tragedy akin to the comparable levels of literacy in the medieval era. I don't know why programmers think this way. We don't expect everyone to be a doctor, a botanist, a novelist, or a musician but for some reason we think anyone can be a programmer. That's just not the case -- programming is a skill like an…
No, but we expect everybody to know reading, writing, and arithmetic. Programming may be more intrinsically difficult than these, but most of the reason it's so hard today is because of solvable problems that beginners run into, to the point of half of expertise is just knowing to avoid all these pitfalls. The downside of the open source developer ecosystem today is that putting it all together is typically a painful…
And like with these other things, you can make getting into them easier. With music, children start with simple instruments that no professional ever uses. And it's the same with programming, there are plenty of easier environments for children. But if you want to make programmers and you want to make musicians, eventually they have to use the real thing. My own son jumped straight into the deep end of Unity development knowing nothing because he wants to build something real. I neither encouraged or discouraged that environment and it's pretty unforgiving.
I don't think the solvable problems you speak of as are as solvable as you think they are. Also making software development out to be special both in terms of it's benefit to thinking skills and rationality and how it's merely some tools away from being professionally approachable to the masses is totally unfounded.