информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор 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




Rambler's Top100
Рейтинг@Mail.ru


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