The PostRailsMonkey Manifesto
I just found the following; some points hit the nail on the head but several are way off or needlessly controversial... any help debunking them?
Manifestoes from other Rails factions and some technical details.
The PostRailsMonkey Manifesto:
- Rails is mature.
- flexibility is dead, it's so Web 1.0.
- those who seek maintainability in static typing are stupid.
- AJAX failed; really, it didn't scale.
- acts_as_fool gives a new meaning to Java.
- David Heinemeier Hansson once said those who believe that CRUD will enable DB independence are stupid. I also think that.
- find_by_name_and_sex_and_address_and_birthday_and_age scales.
- ActiveSupport signifies the end of performance.
- those who want to find meaning in programming are actually drones who think they are cool.
- David Heinemeier Hansson is hotter than Sergey Brin.
Allow me to address all the above at once:
require 'lgenerator' generator = Generator.new do |g| g.start :body body.do {|e| e[:pointnum] = 0 } body.is :title, :points title.is "The ", :movement, " Manifesto:\n" movement.is do |e| r = ([:movement_prefix] * (1 + rand(3))) + [:rails_or_component, :movement_suffix] ret = e.expand(r) e[:movement] ||= ret ret end movement_prefix.is any(%w[Neo Para Sur Pata Super Meta Post Anti Non Cyber]) movement_suffix.is "Coder" | "Developer" | "Maintainer" | "Monkey" | "Believer" rails_or_component.is any(%w[Rails RAILS ROR Ror ActionController ActiveRecord ActiveSupport]) points.is {[:point] * (4 + rand(6))} point.is {|e| [e[:pointnum] += 1, ". ", :statement, "\n"]} statement.define do is :big_thing, " ", "is dead" | "is gone" | "failed", "; " | ", ", :is_dead_explanation | [:qualifier, " ", :is_dead_explanation], "." is :big_thing, " is ", :pointless, "." is :big_thing, " cannot exist" | " is unstable" | " is fragile" | " will collapse", "." is :big_thing, " is nothing more than ", :mere_thing, "." is "there is no ", :nonbearable, "." is :those_who, " ", :do_silly_thing, " are ", :neg_qual_pl, "." is :those_who, " ", :do_silly_thing, " are ", "" | [:qualifier, " "], :what_people_are, "." is :we, " are ", "" | ["only" | "just" | "simply", " "], :what_people_are, "." is :big_guy, " is ", :what_big_guy_is, "." is :big_guy, " ", :what_big_guy_does, "." is [:big_guy, " says that " | " once said "] | ["according to ", :big_guy, ", "], :statement, " ", ["And I ", "believe it." | "agree." | "concur."] | "I agree." | "I concur." | "I also think that." 13.times { is :tech_statement } # increased weight end qualifier.is "actually" | "in fact" | "definitely" | "most certainly" | "probably" we.is "we" | [:movement, "s"] those_who.is "those who" | ["the ", :what_people_are_2, " who"] pointless.is "inconsequential" | "pointless" |"a myth" | "an illusion" | "a foolish dream" | "a fantasy" | "unattainable" | "delusional" | "not worth it" do_silly_thing.is ["believe that ", :silly_belief] | ["seek " | (:adverb | " seek ") | "look for ", :ideal_attr] | ["want to find " | "seek ", :ideal_attr, " in ", :big_thing] | :use_or_do_non_rails # continued ...
adverb.is "actively" | "constantly" | "primarily" | "proactively" | "only" | "always" | "never" | "simply" | "just" silly_belief.define do is :big_thing, " will save ", :big_thing is :big_thing, " will enable ", :big_thing is :big_thing, " is ", :beneficial is "there's a meaning to ", :big_thing end beneficial.is "transcendent" | "liberating" | "independent" | "free" | "unlimited" | "beneficial" neg_qual_pl.is "fools" | "idiots" | "unDRY" | "sick" | "doomed" | "stupid" | "mistaken" | "liars" | "unworthy" | "silly" | "crazy" what_big_guy_does.define do is "owns me ", "shit" | "nothing" | "everything" is "surpasses" | "went beyond" | "goes beyond" | "outperformed", " ", :non_ror_big_guy is "made ", :non_ror_big_guy, " irrelevant" is "invented" | "redefined", " ", :big_thing is :kills_or_deprecates, " ", :big_thing | :non_rails_sw end what_big_entity_does.define do is "made ", :non_rails_sw, " irrelevant" is :kills_or_deprecates, " ", :big_thing | :non_rails_sw end what_big_guy_is.is "God" | "DRY" | "HOT" | "right" | "cool" | [:pos_pers_comparison, :non_ror_big_guy] pos_pers_comparison.is "smarter than " | "greater than " | "more humble than " | "more DRY than " | "hotter than " | "sexier than " non_ror_big_guy.is "God" | "Ghandi" | "Larry Page" | "Sergey Brin" | "Bill Gates" big_thing.is any(%w[performance scalability flexibility vendor-independence reliability fault-tolerance technology programming design unit\ testing maintainability DB\ independence CRUD static\ typing duck-typing AJAX]) mere_thing.is "noise" | ["the background noise of ", :big_thing] | "a stupid game" | "a bad joke" | "an obscene jest" big_guy.is "DHH" | "Fowler" | "David Hansson" | "David Heinemeier\ Hasselhoff" | "David Heinemeier Hansson" | "Steve Jobs" big_entity.is "37signals" | "Apple" nonbearable.is any(["end to the ", :endless_thing], *%w[escape free\ lunch spoon hope recovery Maxwell's\ Demon]) endless_thing.is :endless_thing2 | ["continuum of ", :endless_thing2] endless_thing2.is "monotony" | "recursion" | "redundancy" | "typing" is_dead_explanation.define do is [:big_thing, " killed it"] | "it didn't scale" | "it crashed" | "it failed" is "it's unDRY" | "it's so Web 1.0" | "it's so 90s" is "it was ", :pointless end what_people_are.define do is :neg_qual_pl is :what_people_are_2 | [:what_people_are_2, " who think they are ", :human_adj] is "victims of " | "enslaved by " | "subjugated by ", :big_thing end what_people_are_2.is "automata" | "drones" | "codemonkeys" | "sheeps" | "puppets" human_adj.is "conscious" | "free" | "intelligent" | "self-aware" | "cool" | "in" ideal_attr.is "coherency" | "consistency" | "symmetry" | "meaning" | "truth" | "peace" | "knowledge" | "performance" | "scalability" | "maintainability" | "reliability" non_rails_sw.is "J2EE" | "Java" | "C++" | "PHP" | "C#" | "Django" | "Grails" use_or_do_non_rails.is ["use ", :non_rails_sw] | [("wrote " | "designed " | "engineered " | "developed " | "conceived " | "created " | "made "), :non_rails_sw] tech_statement.define do is :rails_concept | :rails_or_component, " ", :is_the_shit, "." is :rails_concept | :rails_or_component, " ", :is_the_shit, " because it " | ", for it ", ["redefined ", :big_thing] | ["made ", :big_thing, " ", "possible" | "fun" | "practical" | "easy"], "." 5.times{ is :rails_or_concept_redefs_stuff } # increase weight is :rails_or_component, " ", :is_ready, "." is :rails_concepts, " ", :are_the_shit, "." is :rails_concepts, " ", :are_ready, "." is :non_rails_sw, " is ", :abstract_negative_qual, "." is :non_rails_sw, " is ", :mere_thing , " compared to ", :rails_or_component, "." is "as for " | "if you ask me about " | "I've been told about " | "I've heard about ", :non_rails_sw, ", ", :is_dead_explanation, "." is :mac_stuff, " ", :is_the_shit, "." end rails_concept.is "connection pooling" | "CRUD" | "DRY" | "has_many" | "has_many_and_belongs_to" | "has_many_and_belongs_to" | "belongs_to" | "url_for" | "link_to_remote" | "render_to_string" | "RJS" | "ERB" | "Mongrel" | "caching" | :find_by_something | :rails_testing | :acts_as_something | :validates_something rails_testing.is "functional" | "integration" | "acceptance" | "unit", " testing" rails_concepts.is "partials" | "associations" | "helpers" | "views" | "models" | "controllers" | "plugins" acts_as_something.is "acts_as_ferret" | "acts_as_authenticated" | ["acts_as_", :neg_qual] neg_qual.is any(%w[fool idiot asshole]) validates_something.is "validates_uniqueness_of" | "validates_length_of" | "validates_format_of" rails_or_concept_redefs_stuff.is :rails_concept | :rails_or_component, " ", :kills_or_deprecates, " ", :big_thing | :non_rails_sw, "." find_by_something.is{ fields = %w[name birthday cat_name phone_number address age sex].sort_by{rand} "find_by_" + fields[0, 1 + rand(fields.size)].join("_and_") } kills_or_deprecates.is "redefines" | "casts a shade of doubt over" | "deprecated" | "will kill" | "killed" | "enables" | "allows me to ignore" | "will save" | "signifies the end of" | "gives a new meaning to" mac_stuff.is "OSX" | "iPhone" | "TextMate" | "Safari" | "Dashboard" is_the_shit.is "is the shit" | "rules" | "rocks" | "owns" | "scales" | "allows to serve #{5+rand(20)}M hits a day" are_the_shit.is "are the shit" | "rule" | "rock" | "own" | "scale" | "can help support #{10+rand(40)}M requests a day" is_ready.is "is enterprise-ready" | "is stable" | "is mature" | ["is an improvement over ", :non_rails_sw] | "is ready" | "delivers" | ["is as mature as ", :non_rails_sw] are_ready.is "are enterprise-ready" | "are stable" | "are ready" | "deliver" abstract_negative_qual.is any(%w[futile pointless overrated weak\ sauce uncool so\ Web\ 1.0]) end seed = (ARGV[0] || rand(100000000)).to_i $stderr.puts "Seed: #{seed}" srand(seed) generator.static_check puts generator.generate
lgenerator - Dr Nic (2007-03-26 (Mon) 09:37:35)
What/where is 'lgenerator'?
mfp 2007-03-26 (Mon) 16:49:02
Just an implementation of the above pseudo-BNF DSL, left as an exercise to the reader ;) (and also on my HD awaiting some minor cleanup before I show it).
UserID 2007-03-29 (Thr) 14:04:21
Who came up with the original manifesto? do you have a link to that? all google links point to your post. I'm confused. Is this some kind of sophisticated inside joke?
mfp 2007-03-29 (Thr) 15:33:46
a copy without an original...
lamby 2007-03-29 (Thr) 20:35:19
Would have been easier in polygen.
Terribly Believable - Ryan Mulligan (2007-03-26 (Mon) 22:55:21)
Wow. I believed that for a while. Though the manifesto comments lack continuity of some sort.
sean 2007-03-27 (Tue) 00:23:53
So.... Is the point that Rails-monkey critiques could be generated by a computer, or that critiquing Rails-monkeys is like shooting fish in such a small barrel that even a simple program will hit pretty often?
mfp 2007-03-29 (Thr) 04:06:45
Do I need a point? What about "there's so little information in most of the rants and enumerated lists you find in the blogsphere that they can be approximated by even a simple program", plus "we're so good at finding meaning where there was none", entailing the followup question "was there meaning there to begin with?" <=> "is meaning intrinsic or given by the observer", c.f. GEB.
No Title - Anonymous (2007-03-29 (Thr) 17:11:48)
Nice, but the code sucks, eh?
- 209 http://www.puday.com/lazyboy-recliner.php
- 111 http://programming.reddit.com/new
- 78 http://planetruby.0x42.net
- 60 http://programming.reddit.com
- 59 http://programming.reddit.com/?offset=25
- 48 http://anarchaia.org
- 35 http://programming.reddit.com/?offset=26
- 30 http://www.artima.com/forums/flat.jsp?forum=123&thread=200149
- 26 http://www.jamesbritt.com
- 19 http://www.anarchaia.org
Keyword(s):[blog] [ruby] [frontpage] [rails] [manifesto] [language] [generator] [BNF]
References:[The Neo-Rails controversy and a language generator]