Hasty Briefsbeta

Bilingual

Perlisisms

5 hours ago
  • #Computing Insights
  • #Software Development
  • #Programming Philosophy
  • Programming concepts are subjective; what is constant to one may be variable to another.
  • Data structures create binding early, while functions delay it, advocating for late data structuring.
  • Syntactic sugar can lead to excessive semicolon use, metaphorically causing 'cancer' in code.
  • Programs are rarely standalone; they are often parts of larger systems and may not fit perfectly.
  • Large data manipulation typically occurs through a limited set of methods.
  • Symmetry reduces complexity and should be sought in all aspects of programming.
  • Writing incorrect programs is easier than understanding correct ones.
  • Low-level languages force programmers to focus on irrelevant details.
  • It's more effective to have many functions operate on a single data structure than few on multiple ones.
  • Early standardization and accumulation of idioms are key to expertise, akin to Shakespeare's idiom list.
  • Procedures with many parameters likely indicate missed parameters or poor design.
  • Recursion is fundamental to computation, trading descriptive power for time efficiency.
  • Identical programs, when microcoded, become unique, highlighting implementation differences.
  • Programs eventually become overly ornate (rococo) and then obsolete.
  • Top-down design is ideal, except for initial attempts.
  • Every program serves at least two purposes: intended and unintended.
  • If someone nods while you explain your program, they might not be understanding; engage them.
  • A program without loops or structured variables is not worth writing.
  • A programming language is valuable only if it changes how you think about programming.
  • Modularity can lead to misunderstandings; hiding information requires clear communication checks.
  • Optimization can hinder the evolution and adaptability of a system.
  • A strong command language is essential for a good system.
  • Understanding a program requires empathizing with both the machine and the program itself.
  • Learning programming from childhood might improve adult comprehension of programs.
  • Complex information is best understood dynamically, through movement or flow, rather than statically.
  • Some programming ideas are poorly expressible in all existing languages.
  • Once you know how to write a program, delegate the actual coding to someone else.
  • Measuring programming progress is difficult; some projects, like cathedrals, take centuries.
  • Adding cycles to control graphs, not just nodes, can rejuvenate systems like a face-lift.
  • Programming solutions are often special cases of more general principles, recognized too quickly.
  • Simplicity arises from dealing with complexity, not preceding it.
  • Programmers are judged by thorough case analysis, not just ingenuity or logic.
  • The 'eleventh commandment' humorously questions whether computing is ordained or forbidden.
  • Strings, as stark data structures, hide information and cause process duplication.
  • Great programmers, like Michelangelo, have innate talent that resists conventional teaching.
  • Using a program to prove mathematical theorems doesn't change mathematics; it may show the theorem's unimportance.
  • The most important computer is the human mind, seeking external emulation; standardizing real computers would be disastrous.
  • Structured programming aligns with the logical law of the excluded middle.
  • A picture is worth many words, but not all word sets can be described with pictures.
  • Error-free programs are elusive; only the 'third' unspecified method works.
  • Some languages absorb change but resist progress.
  • A programmer's perspective can be gauged by their view on FORTRAN's continued relevance.
  • In software, early success (the early bird) can create problems (makes the worm).
  • The fetch-execute cycle may be the only universal in computing.
  • Computation aims to emulate synthetic abilities, not understand analytic ones.
  • Programming, like punning, involves wordplay and creativity.
  • There is no such thing as a free variable, echoing economic principles.
  • "Alice in Wonderland" is the best programming book for laymen, as it is for many topics.
  • Abandoning assembly language was a sinful loss of efficiency, though LISP machines allow liberation from constraints.
  • Understanding knowledge-based systems will come with experience, albeit with singed fingertips.
  • Home computers won't change homes but might revive social spots like saloons.
  • Systems have infinite subsystems, leading to perpetual restarts.
  • Good ideas often get lost in semantic gaps during implementation.
  • Beware of Turing tar-pits where anything is possible but nothing interesting is easy.
  • LISP programmers understand value but ignore cost.
  • Software is perfectible yet arbitrarily changeable, creating constant tension.
  • Changing specifications to fit programs is easier than the reverse.
  • Complexity can be ignored, suffered, avoided, or removed, with geniuses achieving the latter.
  • Programming languages lack the flexibility of English, where any word can be verbed.
  • Simplicity can hinder the pursuit of unattainable goals.
  • Errors in programming lead to rebirth and improvement.
  • Invariants in computing are temporary and ephemeral.
  • Programs that 'learn' often reflect our learning, not theirs.
  • Technique justifies means and survives even when goals fail.
  • Computers process numbers, not symbols; understanding is measured by arithmetization.
  • Making variables is easy, but controlling constancy duration is tricky.
  • The distinction between 'algorithm' and 'program' consumes unnecessary psychic energy.
  • Data structures imply independent processing; languages should support both.
  • Superb programming languages emerge unpredictably, roughly every five years.
  • Programmers from different language tribes need a universal sign language, like Indians did.
  • Documentation is like term insurance, rarely relied upon but satisfying to have.
  • An adequate bootstrap is paradoxical and contradictory.
  • A language's strengths, not weaknesses, dictate its change gradient, trapping it in its origins.
  • Software may be meant to be discarded, like soap bubbles.
  • The computing field constantly needs new cliches for comfort.
  • Users, not creators, should parameterize procedures.
  • Man-computer-algorithm interactions are unbalanced, like musical chairs.
  • If a computer speaks English, it's likely Japanese-made, humorously noting language origins.
  • A year in AI can make one believe in God.
  • Prolonged computer use turns mathematicians into clerks and vice versa.
  • Turning obvious ideas into useful programs is frustrating.
  • Programs can achieve near-impossible feats, like proving Fermat's next-to-last theorem.
  • The difference between a Turing machine and a modern computer is like climbing Everest vs. building a hotel on top.
  • Research labs work on what others will think of tomorrow.
  • Despite APL's appeal, FORTRAN gets investment, even in China.
  • The procedure-to-data ratio in active databases can't be made arbitrarily small.
  • Pico computers would fit in a semantic niche smaller than micro.
  • Computers aren't to blame for inadequate equations like Maxwell's.
  • Hand calculators can make one forget arithmetic without teaching computing.
  • Computation has advanced technology, making 'the tree flower'.
  • Computers are versatile, like Lon Chaney's machine of a thousand faces.
  • Computers pollute by producing indistinguishable outputs and wastes.
  • Those wanting a language that does exactly what they wish should be given a lollipop, as it's unrealistic.
  • Interfaces tidy systems but don't accelerate growth; functions do.
  • Be responsible for your good ideas.
  • Computers expose opportunities rather than impose order.
  • Professors who narrowly define computer science deserve compassion for their students.
  • Mean time to failure in computing keeps decreasing.
  • In symbiosis, humans must adjust; machines can't.
  • As long as programs exist, there will always be more to program.
  • Handle failure by improving; handle success by realizing you may have solved the wrong problem.
  • Formal methods can't bridge informal to formal reasoning.
  • Purely applicative languages are not very applicable in practice.
  • A system's value is proven by its existence.
  • Complexity can only be made aware of, not fully communicated.
  • Strings are unreliable for conveying sense but are our only communication currency.
  • PL/I's nature is debated: is it Bactrian (two-humped) or Dromedary (one-humped)?
  • When programmers meet to critique, both may fall silent, indicating mutual understanding or difficulty.
  • VLSI allows packing immense computing power, like 100 ENIACS in a square centimeter.
  • Editing involves rewording and refining.
  • The Roman Empire's collapse is humorously linked to office automation in Latin.
  • Computer Science is embarrassed by the computer's limitations.
  • Connecting neuroscience and psychology will come from software study.
  • Natural language is unnatural within computers.
  • Programming is conceptually obvious but practically impossible for most.
  • Certainty in knowledge comes from programming, not just learning, writing, or teaching.
  • Modern education resists teaching programming due to its demands for planning, discipline, and self-criticism.
  • Imagining a society with only computer-robots as menials requires great imagination.
  • Programming is an unnatural act, contrary to human instincts.
  • Adapting old programs to new machines often means making new machines behave like old ones.