Объедко-ориентированный ЯП
От: Фанатик Ад http://vk.com/id10256428
Дата: 23.12.10 22:01
Оценка:
Тут вот неожиданно подумалось об ООП доведённом до абсурда.
Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).
Сильно это усложнит жизнь?
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Объедко-ориентированный ЯП
От: z00n  
Дата: 24.12.10 00:03
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Тут вот неожиданно подумалось об ООП доведённом до абсурда.

Ф>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).
Ф>Сильно это усложнит жизнь?

Многое из этого реализовано в Newspeak — и это, если верить Брахе — скорее облегчает жизнь.
http://newspeaklanguage.org/
Cutting out static
Re[2]: Объедко-ориентированный ЯП
От: Фанатик Ад http://vk.com/id10256428
Дата: 24.12.10 02:02
Оценка:
Здравствуйте, z00n, Вы писали:

Z>Многое из этого реализовано в Newspeak


Зато в нём реализована динамическая типизация, та и вдобавок message-based. Короче плохой пример.

Z>Cutting out static


А вот эта ссылка откровенно порадовала — не я один об этом подумал.

И таки интересно, с вот таким синтаксисом

[spoiler]
namespace HellowWorldProgram 
interface
{
use System.Console;
    type Program = class(System.Program)
    {
    public
        func Main( ):void override;
    }
}

namespace HellowWorldProgram 
implementation
{
    func Program.Main( ) : void
    {
    Console.Constructor ( ).WriteLine  ("Hellow World");
    }
}

[/spoiler]
что-нибудь существует?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: Объедко-ориентированный ЯП
От: hardcase Пират http://nemerle.org
Дата: 24.12.10 07:06
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>И таки интересно, с вот таким синтаксисом

Ф>что-нибудь существует?

Delphi?
/* иЗвиНите зА неРовнЫй поЧерК */
Re: Объедко-ориентированный ЯП
От: Ziaw Россия  
Дата: 24.12.10 09:20
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Тут вот неожиданно подумалось об ООП доведённом до абсурда.

Ф>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).
Ф>Сильно это усложнит жизнь?

Имея вменяемый DI контейнер не сильно.

Это легко проверить. Выкидываем из немерлового парсера C# слово static и пробуем писать на C#, компилируя его немерлом.
Re: Объедко-ориентированный ЯП
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 24.12.10 11:35
Оценка: +3
Здравствуйте, Фанатик, Вы писали:

Ф>Тут вот неожиданно подумалось об ООП доведённом до абсурда.

Ф>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).
Ф>Сильно это усложнит жизнь?

Точка входа по сути это статический метод. Надо будет как-то выкрутиться из этого (как минимум создать какой-нить класс и дернуть метод). Ну а потом какие проблемы? Что мешает создать один экземпляр класса глобальных переменных? И поместить в него все статические функции?
Re[2]: Объедко-ориентированный ЯП
От: Фанатик Ад http://vk.com/id10256428
Дата: 24.12.10 12:18
Оценка:
Здравствуйте, Mystic, Вы писали:

Ф>>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).


M>Точка входа по сути это статический метод. Надо будет как-то выкрутиться из этого (как минимум создать какой-нить класс и дернуть метод). Ну а потом какие проблемы? Что мешает создать один экземпляр класса глобальных переменных?


Что понимается под экземпляром класса глобальных переменных?

M> И поместить в него все статические функции?


Вы часом не забыли, что статических функций (т.е. методов) в этом языке нет?
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: Объедко-ориентированный ЯП
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 24.12.10 12:45
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Что понимается под экземпляром класса глобальных переменных?


Например, вместо
static int obj_counter = 0;


пишем такое

class global_variables_t
{
  public:
    int obj_counter;

  global_variables_t(): obj_counter(0) {}
};


Потом создаем этот класс при инициализации и юзаем в свое удовольствие

M>> И поместить в него все статические функции?


Ф>Вы часом не забыли, что статических функций (т.е. методов) в этом языке нет?


Ну они уже же будут не статические? Если их добавить в класс global_variables_t. Или заюзать примерно так:

class static_method_collection_t
{
  public:
    static_method_collection_t() {}

    void static_method_one();
};

//// Code
static_method_collection_t dummy;
dummy.static_method_one();


Проще говоря, мы можем ручками реализовать static за исключением того, что контроль за единственностью статических экземпляров возложим на программиста.
Re[4]: Объедко-ориентированный ЯП
От: Фанатик Ад http://vk.com/id10256428
Дата: 24.12.10 13:21
Оценка: :)
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, Фанатик, Вы писали:


Ф>>Что понимается под экземпляром класса глобальных переменных?


M>Проще говоря, мы можем ручками реализовать static за исключением того, что контроль за единственностью статических экземпляров возложим на программиста.


Это не статические члены, пусть программеры их реализовывают на здоровье.
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Объедко-ориентированный ЯП
От: Undying Россия  
Дата: 26.12.10 11:12
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Тут вот неожиданно подумалось об ООП доведённом до абсурда.

Ф>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).

И как в этом мегаязыке будет выглядеть вызов универсальных методов, например, что мы будем писать вместо Math.Max(a, b)?

Ф>Сильно это усложнит жизнь?


Очень сильно, т.к. резко ограничит возможности переиспользования кода.
Re[2]: Объедко-ориентированный ЯП
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 26.12.10 11:37
Оценка:
U>И как в этом мегаязыке будет выглядеть вызов универсальных методов, например, что мы будем писать вместо Math.Max(a, b)?

Max — можно рассматривать как метод над списком:
(a,b).Max()


Max — можно рассматривать как метод первого элемента:
a.Max(b)



Max — можно рассматривать как бинарный оператор:
a max b
Re[3]: Объедко-ориентированный ЯП
От: Undying Россия  
Дата: 26.12.10 12:15
Оценка:
Здравствуйте, DarkGray, Вы писали:

U>>И как в этом мегаязыке будет выглядеть вызов универсальных методов, например, что мы будем писать вместо Math.Max(a, b)?


DG>Max — можно рассматривать как метод над списком:

DG>Max — можно рассматривать как метод первого элемента:
DG>Max — можно рассматривать как бинарный оператор:

Т.е. extension'ы мы не считаем статическими методами? Или каким способом мы будем добавлять в тип универсальные методы?
Re[3]: Объедко-ориентированный ЯП
От: Undying Россия  
Дата: 26.12.10 12:20
Оценка:
Здравствуйте, DarkGray, Вы писали:

U>>И как в этом мегаязыке будет выглядеть вызов универсальных методов, например, что мы будем писать вместо Math.Max(a, b)?


DG>Max — можно рассматривать как метод над списком:

DG>Max — можно рассматривать как метод первого элемента:
DG>Max — можно рассматривать как бинарный оператор:

Еще вопрос. Методом экземпляра чего можно рассматривать string.Format?
Re: Объедко-ориентированный ЯП
От: Пацак Россия  
Дата: 26.12.10 12:32
Оценка: -1
Здравствуйте, Фанатик, Вы писали:

Ф>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).


А зачем? Имхо это совсем не то направление, в котором надо стремиться.

http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html
Ку...
Re[4]: Объедко-ориентированный ЯП
От: Пацак Россия  
Дата: 26.12.10 12:38
Оценка: +1 -1
Здравствуйте, Undying, Вы писали:

U>Т.е. extension'ы мы не считаем статическими методами? Или каким способом мы будем добавлять в тип универсальные методы?


Number c = new MyNumberComparator().max(a, b);


U>Еще вопрос. Методом экземпляра чего можно рассматривать string.Format?


String s2 = new StringFormatter(pattern).format(s1, arg1, arg2, arg3);


Да не, извратиться-то всегда как-нибудь можно. Вопрос только — зачем?
Ку...
Re[5]: Объедко-ориентированный ЯП
От: Undying Россия  
Дата: 26.12.10 12:46
Оценка:
Здравствуйте, Пацак, Вы писали:

U>>Еще вопрос. Методом экземпляра чего можно рассматривать string.Format?


П>
П>String s2 = new StringFormatter(pattern).format(s1, arg1, arg2, arg3);
П>


Т.е. пришлось плодить лишние сущности, а, значит, делать решение сложнее.

П>Да не, извратиться-то всегда как-нибудь можно. Вопрос только — зачем?


+1
Re[4]: Объедко-ориентированный ЯП
От: Фанатик Ад http://vk.com/id10256428
Дата: 26.12.10 12:54
Оценка:
Здравствуйте, Undying, Вы писали:

U>Здравствуйте, DarkGray, Вы писали:


U>>>И как в этом мегаязыке будет выглядеть вызов универсальных методов, например, что мы будем писать вместо Math.Max(a, b)?


DG>>Max — можно рассматривать как метод над списком:

DG>>Max — можно рассматривать как метод первого элемента:
DG>>Max — можно рассматривать как бинарный оператор:

U>Еще вопрос. Методом экземпляра чего можно рассматривать string.Format?



Дотнетовский string.Format? Если да, то:
  public static string Format ( string format,    Object arg0 )
 //Replaces the format item in a specified String with the text equivalent of the value of a specified Object instance.

Строка специфицирована ("..in a specified String..."), т.е.


        func a(str :string, arg0 :Object ) : void
        {
            str.Format(arg0, program.Formater);
        }
Всё сказанное выше — личное мнение, если не указано обратное.
Re: Объедко-ориентированный ЯП
От: LaptevVV Россия  
Дата: 26.12.10 13:00
Оценка: :)
Здравствуйте, Фанатик, Вы писали:

Ф>Тут вот неожиданно подумалось об ООП доведённом до абсурда.

Ф>Что если в некоем императивном языке не будет возможности описывать функции, статические классы, статические методы, глобаные переменные (вне определения класса).
Ф>Сильно это усложнит жизнь?
Дык вот в Компонентном паскале нет ни статических методов, ни статических классов, ни глобальных переменных — и нормально живут...
Ибо МОДУЛИ!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Объедко-ориентированный ЯП
От: Undying Россия  
Дата: 26.12.10 13:09
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Дотнетовский string.Format? Если да, то:


Т.е. на практике это будет выглядитеь так:

"Произошла непредвиденная ошибка ".Format("'{0}'. Программа будет перезапущена", error.Message);


Такой код это точно не извращение?

Да, кстати, сразу возник вопрос, к файлам ресурсов мы как обращаться будем без статических переменных? Всюду контекст протаскивать? А оно нам надо?
Re[5]: Объедко-ориентированный ЯП
От: vdimas Россия  
Дата: 26.12.10 13:21
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Это не статические члены, пусть программеры их реализовывают на здоровье.


А это уже вовсе не принципиально, есть ли автоматическая возможность юзать глобальный контекст, или же создать его вручную.

Опять же, от статических ф-ий ты все-равно не избавишься, коль они будут нужны. Ну будут делать типы 0-й длины для этих же целей, что поменяется по-сути?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.