информационная безопасность
без паники и всерьез
 подробно о проекте
Где водятся OGRыСтрашный баг в WindowsВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Chainalysis раскрыла взлом собственных... 
 SMS of Death для Android 
 Исследователи Anthropic продемонстрировали... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / humor
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
"Отче наш" на Java 24.09.03 16:46  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Вот оригинальный вариант, который мне был заслан одним из друзей, само собой программистом на Java :)

import org.religion.*;
 
public class LordsPrayer
{
    public void pray()
    {
        // Our Father, who art in heaven,
        //
        God ourFather = Heaven.getGodInstance();
 
        // Hallowed be thy Name.
        //
        ourFather.getName().setHallowed( true );
 
        // Thy kingdom come.
        //
        ourFather.getKingdom().setWelcome( true );
 
        // Thy will be done in earth
        // As it is in heaven.
        //
        boolean isWillDone = Heaven.isWillDone( ourFather );
        Earth.setWillDone( ourFather, isWillDone );
 
        // Give us this day our daily bread.
        //
        Bread dailyBread = ourFather.getBread( new Date() );
 
        // And forgive us our trespassess,
        // As we forgive those who trespass against us.
        //
        synchronized
        {
            ourFather.forgive( this.getTrespasses() );
            this.forgive( this.getTrespassers() );
        }
 
        // And lead us not into temptation;
        // But deliver us from evil:
        //
        ourFather.removeTemptationListener( this );
        ourFather.deliverFrom( Evil, this );
 
        // For thine is the kingdom, and the power,
        // and the glory, for ever.
        //
        for (;;)
        {
            Kingdom.setOwner( ourFather );
            Power.setOwner( ourFather );
            Glory.setOwner( ourFather );
        }
 
        // Amen.
        //
        finalize();
    }
}
 
/**
@author Ganesh Prasad
*/

---
Мои предложения по улучшению 24.09.03 16:51  
Автор: Ktirf <Æ Rusakov> Статус: Elderman
<"чистая" ссылка>
Мне очень понравилась идея, но реализация местами подкачала. Мысли по поводу приведены дальше :)

>
> import org.religion.*;
>  
> public class LordsPrayer
> {
>     public void pray()
>     {
> 	// Our Father, who art in heaven,
> 	//
> 	God ourFather = Heaven.getGodInstance();
>  
> 	// Hallowed be thy Name.
> 	//
> 	ourFather.getName().setHallowed( true );
>  
> 	// Thy kingdom come.
> 	//
> 	ourFather.getKingdom().setWelcome( true );

---
Здесь не слишком удачно, но не придумаю, что лучше. По крайней мере
setWelcome здесь не смотрится. Хотя...

>  
> 	// Thy will be done in earth
> 	// As it is in heaven.
> 	//
> 	boolean isWillDone = Heaven.isWillDone( ourFather );
> 	Earth.setWillDone( ourFather, isWillDone );

---
Для приличия нужно поставить assertion на то, что isWillDone == true.

> 	// Give us this day our daily bread.
[skipped]
> 	// And lead us not into temptation;
> 	// But deliver us from evil:
> 	//
> 	ourFather.removeTemptationListener( this );
> 	ourFather.deliverFrom( Evil, this );
>  
> 	// For thine is the kingdom, and the power,
> 	// and the glory, for ever.
> 	//
> 	for (;;)
> 	{
> 	    Kingdom.setOwner( ourFather );
> 	    Power.setOwner( ourFather );
> 	    Glory.setOwner( ourFather );
> 	}

---
Неправильно. Смысл этих слов в молитве не в том, чтобы постоянно делать
setOwner - это непроизводительно, ненужно и не соответствует реальной
семантике - а в том, чтобы установить и заморозить ссылку на владельца
этих объектов. Хотя с точки зрения "буквы" бесконечный цикл здесь вроде
выглядит нормально, но допущена грубая ошибка: молитва не длится вечно,
вечным является Его царство!
Также не совсем понятно происхождение объектов Kingdom, Power, Glory: из
пакета org.religion? Ну первые два ладно, а последний - странно...

> 	// Amen.
> 	//
> 	finalize();

---
Опять неправильно. "Аминь" соответствует коммиту транзакции, а не
файналайзу молитвы :) Это становится очевидно, если вспомнить, что
нередко внутри молитвы встречается несколько "Аминь" (например когда она
произносится священником в храме).

>     }
> }

---
1





Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach