Editing
Magnifica Humanitas: A Plain-Language Overview
(section)
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Perl Guilds, the Virtuous Programmer Initiative, and ''Magnifica Humanitas'' == The work being undertaken through '''Perl-Guilds.net''' and the '''Virtuous Programmer Initiative''' was not created as a commentary on ''Magnifica Humanitas''. Much of its central framework was already being developed independently: the recovery of the programmer's virtues as '''Practical Wisdom''', '''Spiritedness''', and '''Good Order'''; the complementary importance of '''Diligence''', '''Patience''', and '''Humility'''; the treatment of programming as a craft; the dignity of the worker; the responsibilities of masters toward apprentices; the importance of maintainable work; and the desire to help programmers earn a sustainable livelihood through useful service. The appearance of ''Magnifica Humanitas'' therefore does not require the Virtuous Programmer Initiative to become something fundamentally different. It provides a larger contemporary framework within which much of this work already makes sense. The alignment can be seen in several places. === The programmer is a person before he is a producer === Perl Guilds begins from a view of the programmer as a '''craftsman''', not merely as a unit of technical output. An apprentice is not less human than a master. A programmer whose skills have temporarily fallen out of fashion is not obsolete. A maintainer who spends days understanding an old system has not necessarily accomplished less than somebody who produces thousands of lines of new code. A programmer supporting a family through ordinary consulting work may be doing something every bit as worthy as a programmer associated with a fashionable technological breakthrough. This is closely aligned with the anthropology expressed in ''Magnifica Humanitas'': human dignity is not earned through productivity, technical capability, intelligence, market value, or social prestige. That principle becomes particularly important in an age of artificial intelligence. If a machine can generate code more quickly than a human being, it does not follow that the human programmer has become less valuable. If automation reduces the amount of labor required for a task, the person whose labor was previously required does not thereby become a human surplus. The Virtuous Programmer Initiative therefore resists defining a programmer primarily by output. The programmer is a person who can judge, choose, promise, teach, serve, accept responsibility, develop virtue, enter relationships, and direct technical powers toward good or bad ends. Those are not secondary properties surrounding the supposedly more important fact that he writes code. They are central to what human craftsmanship is. === Technology exists for people === The Perl community has always been deeply concerned with tools. Perl itself is a tool. CPAN is an enormous collection of tools. Compilers, editors, test frameworks, build systems, package managers, databases, web frameworks, GUI libraries, source-control systems, cloud services, and artificial intelligence all extend what programmers can accomplish. The Virtuous Programmer Initiative does not reject these tools. Neither does ''Magnifica Humanitas'' reject technological development. The important question is one of '''order'''. The tool must remain ordered toward the good of the person. This is directly connected with the virtue we call '''Good Order'''. Good Order is not merely tidy formatting or architectural neatness. It asks whether relationships among tools, people, institutions, responsibilities, and ends have been arranged properly. A build system should serve the programmer. An application should serve the user. Automation should serve human work. An institution should serve the community for which it exists. Artificial intelligence should assist human judgment rather than provide an excuse to abandon judgment. A business should earn money by providing something of genuine value rather than treating users as raw material. When those relationships are reversed, technological order becomes disorder even if the underlying machinery is technically impressive. === Practical Wisdom asks what the technology is for === The first of the proposed Perl virtues, '''Practical Wisdom or Prudence''', has a particularly strong connection with the technological concerns raised in ''Magnifica Humanitas''. Prudence does not simply ask: <blockquote> “Can this be built?” </blockquote> It also asks: <blockquote> “Should it be built this way, for these people, under these conditions, toward this end?” </blockquote> This is especially important in software because programmers routinely encounter technically interesting possibilities which may not deserve implementation. A programmer can automate a process that ought to remain under human judgment. A business can collect data merely because collection is technically possible. A developer can introduce an artificial-intelligence system into a workflow without asking whether doing so makes the people involved more capable or merely more dependent. A maintainer can rewrite a stable system because the new design is intellectually appealing even though users need reliability more than novelty. Practical Wisdom requires attention to the real problem, the real user, the likely consequences, and the actual good being pursued. That is why the Virtuous Programmer Initiative treats judgment as more important than cleverness. === Spiritedness gives us the courage to repair what is wrong === '''Spiritedness''' is the energy which makes a programmer care that something is broken, neglected, unjust, dangerous, wasteful, hostile to users, or needlessly difficult. The Virtuous Programmer is not indifferent. He may become angry when a system wastes people's time. He may be dissatisfied when a project excludes newcomers unnecessarily. He may care deeply when software treats users deceptively. He may object when technical workers are expected to carry impossible workloads while being treated as interchangeable parts. He may become frustrated when institutions place procedure above the people the procedure was intended to serve. Properly ordered, this energy becomes the willingness to repair. This also corresponds to the concern in ''Magnifica Humanitas'' that technological development be actively directed toward human flourishing rather than simply allowed to follow whatever incentives happen to dominate the market. The opposite of impatience is not apathy. The Virtuous Programmer should care enough to improve what is broken, but should do so with Patience, justice, and respect for other people. === Good Order means building things others can inhabit === A well-ordered program can be inherited. A well-ordered project can survive the departure of its original author. A well-ordered community can welcome apprentices without depending upon secret knowledge. A well-ordered business can provide value to customers while supporting the people who perform the work. A well-ordered technological system leaves meaningful responsibility with human beings. This is why maintainability, documentation, testing, clear interfaces, predictable releases, licensing, source control, and responsible governance are moral questions as well as technical ones. They concern what we leave for other people. The Virtuous Programmer Initiative therefore treats '''Good Order''' as stewardship. A master programmer should leave behind more than clever code. He should leave something another person can understand, maintain, repair, and perhaps improve. That is closely related to the concern in ''Magnifica Humanitas'' for social conditions in which human beings retain agency, responsibility, participation, and freedom. === Subsidiarity and the independent craftsman === The idea of '''subsidiarity''' has particular importance for Perl Guilds. Perl-Guilds.net exists in part to encourage independent programmers, small consultancies, specialists, maintainers, and other craftsmen who may work outside large technological institutions. The principle of subsidiarity suggests that larger structures should support smaller actors when support is needed, but should not unnecessarily absorb work which individuals, families, local communities, small businesses, or voluntary associations can perform competently themselves. This has a direct technological application. Not every useful application needs to become a centralized cloud platform. Not every service needs to require a permanent network connection. Not every piece of data needs to be transferred to a large remote provider. Not every programmer needs to become an employee of an enormous technology company in order to perform valuable work. Not every customer needs to surrender control over his tools and information merely because centralized systems are technically possible. The Perl Lazarus Project provides one practical example. A capable desktop application can perform work locally when that work belongs naturally on the user's computer, while communicating with remote services when centralized resources are genuinely appropriate. The question is not “desktop versus cloud” as an ideology. It is: <blockquote> '''Where should this work properly be done?''' </blockquote> That is a question of Practical Wisdom and subsidiarity. === Solidarity means the independent programmer is not alone === Subsidiarity does not mean radical individualism. Perl Guilds does not imagine the independent programmer as an isolated genius who owes nothing to anyone. The craftsman depends upon others constantly. He uses languages written by others. He installs modules maintained by others. He reads documentation written by others. He inherits operating systems, compilers, protocols, libraries, examples, standards, and accumulated technical knowledge. He may rely upon customers, fellow programmers, reviewers, mentors, maintainers, publishers, hosting providers, and communities. The virtue of '''Humility''' acknowledges this dependence. The principle of '''solidarity''' adds that the craftsman should also contribute to the good of others. This can take many forms: * answering a newcomer's question; * maintaining a CPAN distribution; * reporting a defect accurately; * contributing a patch; * writing documentation; * sharing a working example; * paying for a commercial tool when its author reasonably asks commercial users to support it; * teaching an apprentice; * referring work to another programmer; * reviewing somebody else's code; * preserving knowledge that might otherwise disappear; * and helping another craftsman remain economically viable. The guild idea should therefore never become a closed caste. A healthy guild preserves knowledge, forms new craftsmen, supports independent work, and creates relationships in which people can help one another flourish. === Apprenticeship protects the human transmission of knowledge === Artificial intelligence makes apprenticeship more important, not less. A new programmer can now ask an AI system to produce code that would once have required considerably more experience. That can be useful. It can also create the illusion of competence without understanding. The Virtuous Programmer Initiative therefore emphasizes the traditional progression from apprentice to journeyman to master. These words describe differences in experience, judgment, responsibility, and skill. They do not describe differences in human dignity. An apprentice learns not merely syntax but judgment. A journeyman learns to carry work independently and encounter problems outside the controlled environment of instruction. A master learns to bring significant work to completion, accept responsibility for it, and help form others. AI can assist at every stage. It cannot replace the human relationship through which judgment, responsibility, professional habits, and virtue are formed. An apprentice ultimately needs to learn why a solution is correct, when it is appropriate, what assumptions it contains, how it may fail, and who will bear the consequences. Those are human questions. === A just livelihood is part of the project === Perl Guilds also exists because programmers need to eat. They have families. They require homes. They need medical care, rest, education, savings, tools, and stability. The idea that programming is a craft includes the possibility that a person should be able to earn a '''just and sustainable livelihood''' through that craft. There is therefore nothing shameful about profit. A programmer may sell software. He may charge for consulting. He may provide commercial support. He may operate a hosted service. He may write a book. He may license a specialized tool. He may charge for customization, migration, training, maintenance, or integration. The moral question is not whether money changes hands. The question is whether exchange remains ordered toward justice and genuine service. Does the customer receive something of value? Are promises kept? Are workers compensated fairly? Are licenses respected? Are users manipulated into dependence unnecessarily? Does the business model encourage deception or exploitation? Can the work support the programmer's legitimate obligations to family and community? This places the economic aspirations of Perl Guilds within the same broad concern for the dignity of work expressed in ''Magnifica Humanitas''. The goal is not merely to maximize revenue. The goal is to make useful technical craftsmanship economically sustainable. === AI should increase human capability, not erase human responsibility === The Virtuous Programmer Initiative is not hostile to artificial intelligence. AI can be extraordinarily useful. It can help explain unfamiliar code. It can prepare drafts. It can suggest tests. It can help generate documentation. It can produce first versions of GUI layouts. It can assist with debugging. It can help a programmer explore alternatives faster than he could alone. The Perl Lazarus work already demonstrates some of these possibilities. But AI remains a tool. The programmer remains responsible for understanding what is produced, determining whether it is appropriate, testing it, correcting it, and deciding whether it should be used at all. This is one of the clearest points of convergence with ''Magnifica Humanitas''. The Virtuous Programmer should seek: <blockquote> '''automation without abdication.''' </blockquote> We can delegate computation. We can delegate repetitive manipulation. We can delegate the production of drafts. We cannot delegate moral responsibility simply by placing an algorithm between ourselves and the consequences. === The Perl community itself is worth cultivating === Finally, the Virtuous Programmer Initiative is not merely about improving individual programmers. It is about cultivating a community in which good programming can continue to exist. Perl has accumulated decades of knowledge, modules, practices, personalities, mistakes, successes, humor, and craftsmanship. That inheritance is valuable because of the people and useful work it enables. Preserving Perl therefore does not mean placing the language in a museum. It means creating conditions under which another generation can use it productively. That includes: * welcoming apprentices; * preserving working knowledge; * maintaining useful modules; * documenting difficult systems; * creating new commercial opportunities; * demonstrating modern applications; * encouraging independent craftsmen; * producing books and essays; * building tools; * exploring artificial intelligence without surrendering judgment; * and reminding the community that technical excellence is ultimately for the good of persons. This is why the Virtuous Programmer Initiative begins with virtue rather than merely technique. Technique tells us '''how'''. Virtue helps us judge '''when''', '''why''', '''for whom''', and '''toward what end'''.
Summary:
Please note that all contributions to Perl Guilds - Getting Medieval with Perl may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Perl Guilds - Getting Medieval with Perl:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Log in
associated-pages
Page
Discussion
English
Views
Read
Edit
Edit source
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Page information