Есть ли в планах?

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Есть ли в планах?

Сообщение stix »

Здравствуйте.
1) Есть ли в планах добавить в компилятор перегрузку функций? Очень не хватает (сейчас приходится добавлять всякие суффиксы Ex, Ex2...)

По свойствам:
2) Есть ли в планах сделать автоматическую реализацию property.
Пример

Код: Выделить всё

public objinterface IExample
  property Prop : string read write;
end;

interface Example
  var _prop : string;  // Здесь завели переменную, только для использования в проперти
  property Prop : string absolute _prop; 
end.

// Предлагаю добавить некоторый синтаксический сахар, вроде
interface Example
  property Prop : string auto; // Здеcь добавляем какое-либо ключевое слово, вроде auto и получаем автоматическую реализацию, т.е. компилятор сам создает скрытое поле var $__prop__$ : string, которое будет использовано свойством
end.

// аналог можно посмотреть в C# 3.0 - очень удобная штука!
// class Example { private string _prop; public string Prop { get { return _prop; } set { _prop = value; } } }
// class Example { public string Prop { get; set; } } // 3.0 -> автоматическая реализация
3) Есть ли в планах сделать реализацию свойств чуть шире объявления. Поясню:

Код: Выделить всё

public objinterface IExample
  property Prop : string read;  // Объявляем только чтение
end;

interface Example
  var _prop : string;  
  property Prop : string absolute _prop; // Реализуем и чтение и запись (законно - ведь контракт на чтение не нарушен! Т.е. если будем работать ч/з ссылку на objinterface то будем только читать, если ч/з ссылку на vipinterface, то писать и читать)
end.

// Т.е. сделать реализацию подобно тому, как это сделано в том же C#
// interface IExample
//{
//   string Prop { get; } // Только чтение
//}
   
//class Example : IExample
//{
//   private string _prop;
//   public string Prop { get { return _prop } set { _prop = value; } } // Чтение и запись
//}
4) Есть ли в планах добавить в библиотеку языка стандартные контейнеры -> списки, стеки, сеты, хэш таблицы (ведь все это можно реализовать с помощью интерфейсов)? Очень не хватает!

Вроде пока все что вспомнил :)
Спасибо, что прочитали!
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

На ближайшие полгода планы более-менее свёрстаны. Этих доработок там нет.
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

Фёдор Терсин
Можно посмотреть что в планах? Нельзя ли в планы на следующие полгода добавить указанные выше доработки?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

планы могут сдвигаться, может возникать что-то срочное, а если мы сейчас заявим, что, допустим, в феврале сделаем что-то, но это перенесётся, это будет выглядеть не хорошо, правда?

пока по указанным доработкам не накопилось достаточное количество заявок, что бы их делать в ущерб другому
да и сами доработки сомнительны

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

3 целесообразность близка к нулю - полезной функциональности нет, только ограничения

4 реализовывать это именно через объекты неразумно из-за производительности. да и почему именно их, а не какие-то другие объекты? так что видится другой подход - глобальная оптимизация и оборачивание объектами стандартной функциональности
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

3 целесообразность близка к нулю - полезной функциональности нет, только ограничения
по вашему в майкрософт работают недальновидные люди, раз включили подобный функционал в C#.NET
Кстати, очень удобная штука, вы наверное просто не поняли о чем речь
реализовывать это именно через объекты неразумно из-за производительности. да и почему именно их, а не какие-то другие объекты? так что видится другой подход - глобальная оптимизация и оборачивание объектами стандартной функциональности
Не понял. О какой "глобальной оптимизации" (и чего) идет речь?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

нет, я думаю, что необходимость подобного практически отсутсвует

речь об оптимизации интерпретатора, в т.ч. в части работы с объектами
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

речь об оптимизации интерпретатора, в т.ч. в части работы с объектами
Хорошо пусть так. Но как это увязывается с
Есть ли в планах добавить в библиотеку языка стандартные контейнеры -> списки, стеки, сеты, хэш таблицы
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

потому что если их делать на основе объектов - будет это работать не быстро
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

Фёдор Терсин
А что с объектами сейчас не так? Я вот активно пытаюсь использовать ОО подход вместо процедурного? Это не есть зе бэст практик?

И какой подход вместо объектов вы предлагаете использовать для реализации контейнеров? Процедурный?
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

это смотря что вы делаете. если речь о вычислениях в памяти с многочисленными вызовами объектов, то работать будет не быстро

а что вообще вам надо от контейнеров, списков и пр? чем не устраивает банальная таблица в памяти? или так, до кучи, для красоты, для полной эмуляции STL и какого-нибудь java.utils?
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

Фёдор Терсин
Boost еще забыли! Дело не в красоте, а в необходимости. Для меня программа - это алгоритмы + структуры данных. Структуры данных пока хромают. Описывать все через локальные таблицы муторно и неудобно, нужны более удобные в использовании конструкции.
Мне вот очень не хватает банального списка с возможностью вставки, удаления, поиска. Можно конечно извернуться и через локальные таблицы навернуть, только вот удобства и сопровождения будет ноль. Я бы вам вообще предложил открыть здесь голосование со списком доработок и уже по рейтингу решать, что должно быть добавлено в первую очередь, а что в последнюю.
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

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

голосование - немного не то. тут нужен открытый список с возможностью подачи голосов за существующие элементы. но эту тему лучше обсуждать на другой ветке, там где про форум предложения собирают.
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

Фёдор Терсин
но ведь в любом случае список работает с какой-то структурой
эту структуру надо локально описывать. или глобально. так что большой разницы нет
Да, тот же список можно реализовать через table struct. Я это могу сделать уже сейчас. НО я говорю о единообразии разработки, об отказе от велосипедостроения, об абстракции наконец.
Т.е. вы напишите какой-то контейнер, запрячите все его кишки реализации в vip фейс, а наружу будет торчать только obj фейс. И поставите все это хоз-во в каком-то Struct.res. Счастья то будет :-)

Код: Выделить всё

objInterface IList
  AddItem(...);
  DeleteItem(...);
  SearchItem(...);
end;

vipInterfcae List implements IList;
...
end;

interface List
  ...Здесь вся кухня
end;
эээх
голосование - немного не то. тут нужен открытый список с возможностью подачи голосов за существующие элементы. но эту тему лучше обсуждать на другой ветке, там где про форум предложения собирают.
Голосование нужно сделать обязательно - форум это позволяет. Выносите тему в другой раздел, создавайте голосование + обсуждение буду рад поучаствовать! Думаю полезно будет всем и разработчикам и партнерам и заказчикам!
cruger
топ-софт
Сообщения: 566
Зарегистрирован: Пт, 21/09/2007 15:19
Имя Фамилия: Фёдор Терсин
Откуда: Галактика Софт
Контактная информация:

Сообщение cruger »

ну а какой смысл городить огород, если уже есть таблицы в памяти, которые обеспечивают тот же функционал?
и списки, и хэши, и индексы можно сделать, и произвольный поиск...
stix
заказчик
Сообщения: 95
Зарегистрирован: Чт, 25/09/2008 07:45
Имя Фамилия: Марат Ахметзянов
Откуда: ОАО "Северо-Западные Магистральные Нефтепроводы"

Сообщение stix »

Фёдор Терсин
выше я все написал. Давайте вынесем это на голосование, все станет сразу ясно - нужно или нет
Ответить