Live data from Hacker News

Is Programming Poetry?

medium.com

51–54 of 54 posts

Re: Is Programming Poetry?

#51
post #4

No (I don't agree with the poetry definition put forth), but programming is LIKE poetry is some ways. Here's one way: analogies in poetry are like libraries in programming; an analogy (like a library function call) can convey a mountain of meaning.

Why don't you agree with the poetry definition put forth? Do you have a counterexample or alternative definition?

Re: Is Programming Poetry?

#52
Immediately made me think of: http://steve-yegge.blogspot.co.uk/2006/03/execution-in-kingd...

  For the lack of a nail,
      throw new HorseshoeNailNotFoundException("no nails!");
  
  For the lack of a horseshoe,
      EquestrianDoctor.getLocalInstance().getHorseDispatcher().shoot();
  
  For the lack of a horse,
      RidersGuild.getRiderNotificationSubscriberList().getBroadcaster().run(
        new BroadcastMessage(StableFactory.getNullHorseInstance()));
  
  For the lack of a rider,
      MessageDeliverySubsystem.getLogger().logDeliveryFailure(
        MessageFactory.getAbstractMessageInstance(
          new MessageMedium(MessageType.VERBAL),
          new MessageTransport(MessageTransportType.MOUNTED_RIDER),
          new MessageSessionDestination(BattleManager.getRoutingInfo(
                                          BattleLocation.NEAREST))),
        MessageFailureReasonCode.UNKNOWN_RIDER_FAILURE);
  
  For the lack of a message,
      ((BattleNotificationSender)
        BattleResourceMediator.getMediatorInstance().getResource(
          BattleParticipant.PROXY_PARTICIPANT,
          BattleResource.BATTLE_NOTIFICATION_SENDER)).sendNotification(
            ((BattleNotificationBuilder)
              (BattleResourceMediator.getMediatorInstance().getResource(
              BattleOrganizer.getBattleParticipant(Battle.Participant.GOOD_GUYS),
              BattleResource.BATTLE_NOTIFICATION_BUILDER))).buildNotification(
                BattleOrganizer.getBattleState(BattleResult.BATTLE_LOST),
                BattleManager.getChainOfCommand().getCommandChainNotifier()));
  
  For the lack of a battle,
      try {
          synchronized(BattleInformationRouterLock.getLockInstance()) {
            BattleInformationRouterLock.getLockInstance().wait();
          }
      } catch (InterruptedException ix) {
        if (BattleSessionManager.getBattleStatus(
             BattleResource.getLocalizedBattleResource(Locale.getDefault()),
             BattleContext.createContext(
               Kingdom.getMasterBattleCoordinatorInstance(
                 new TweedleBeetlePuddlePaddleBattle()).populate(
                   RegionManager.getArmpitProvince(Armpit.LEFTMOST)))) ==
            BattleStatus.LOST) {
          if (LOGGER.isLoggable(Level.TOTALLY_SCREWED)) {
            LOGGER.logScrewage(BattleLogger.createBattleLogMessage(
              BattleStatusFormatter.format(BattleStatus.LOST_WAR,
                                           Locale.getDefault())));
          }
        }
      }
  
  For the lack of a war,
      new ServiceExecutionJoinPoint(
        DistributedQueryAnalyzer.forwardQueryResult(
          NotificationSchemaManager.getAbstractSchemaMapper(
            new PublishSubscribeNotificationSchema()).getSchemaProxy().
              executePublishSubscribeQueryPlan(
                NotificationSchema.ALERT,
                new NotificationSchemaPriority(SchemaPriority.MAX_PRIORITY),
                new PublisherMessage(MessageFactory.getAbstractMessage(
                  MessageType.WRITTEN,
                  new MessageTransport(MessageTransportType.WOUNDED_SURVIVOR),
                  new MessageSessionDestination(
                    DestinationManager.getNullDestinationForQueryPlan()))),
                DistributedWarMachine.getPartyRoleManager().getRegisteredParties(
                  PartyRoleManager.PARTY_KING ||
                  PartyRoleManager.PARTY_GENERAL ||
                  PartyRoleManager.PARTY_AMBASSADOR)).getQueryResult(),
          PriorityMessageDispatcher.getPriorityDispatchInstance())).
        waitForService();
  
  All for the lack of a horseshoe nail.

Re: Is Programming Poetry?

#53
post #7

Fell in love with this one years ago, and still love it... #!/usr/bin/perl APPEAL: listen (please, please); open yourself, wide; join (you, me), connect (us,together), tell me. do something if distressed; @dawn, dance; @evening, sing; read (books,$poems,stories) until peaceful; study if able; write me if-you-please; sort your feelings, reset goals, seek (friends, family, anyone); do*not*die (like this) if sin abounds…

Thanks for the shoutout, manlio. --Sharon Hopkins

Love your coding style. ;)

Re: Is Programming Poetry?

#54
post #45

Earlier quoted context omitted.

Wow, thank you for that link. Never saw it before. Perlis really did deliver on his intention to give us a "pou sto to last the student for 40 years, not a handbook for tomorrow’s employment." Every time I've encountered a new language or framework (Java, Ruby, Rails, whatever), I've been grateful to him. He also delivered on his intention to keep us "on the computer early and often." I didn't get much sleep that sem…

That's wonderful to hear. Thanks for the update. Edit: I had to look up pou sto . Turns out it's Archimedes' "place to stand" from which he could move the earth. In other words, the best possible foundation. A high aspiration for a programming language course.

Full disclosure: I had to look up pou sto also. I guess there are still some downsides to not majoring in the classics.
Post reply on HN