Хорошо бы было привести примеры IDE, в которых это реализовано. В Lazarus и Visual Studio такого я не нашёл. Поищите, пожалуйста, IDE, в которых такая возможность реализована.
Да все это “Страдания юного Вертера”.
{$region xxx}
...
{$endregion}
И все проблемы…
То, что фича не первой необходимости можно видеть по её отсутствию в популярных IDE. Можно, конечно, возразить, что целых 2 лишние строчки добавляют регионы. Но, с другой стороны, это плата за гибкость регионов (которые можно ставить как хочешь и где хочешь), чтобы не позволяла делать предложенная фича - она бы была жёстко привязана к interface/implementation/initialization/finalization
. Вообще, регионов не должно быть слишком много в коде, как говорил мой знакомый.
Разработчики запрещают кучу Issue по улучшению IDE, предлагая взамен использовать Pull Requests. Можно посмотреть на это как с отрицательной, так и с положительной стороны. Я посмотрю со второй - думаю, они подталкивают нас развиваться.
Тогда должны быть развитые namespace
Полагаю, все в разы прозаичнее. Вряд ли хватает рук реализовывать даже задачи первой необходимости (вроде багов с лямбдами, о которых раз за разом рассказывает @Admin), а уж на всякие дополнения вроде сворачиваемых интерфейсов с имплементейшенами точно времени нет. Пул-реквесты - общепринятый способ контрибутить в проекты с целью их развития. Суть: “У тебя много свободного времени? Сядь и напиши. А мы посмотрим, оценим, порефакторим с целью приведения сего добра к принятому виду, и примем в продакшен.”. Так работают все open-source проекты, и этот - не исключение.
@Admin, в C# 8.0 планируется добавить расширение всего и вся.
Планируется ли у Вас подобное, или нет? Это, сейчас, разумеется, не особо нужно, просто интересны Ваши планы на развитие PascalABC.NET.
Кошмар какой-то. Интерфейсы с реализацией. Скоро множественное наследование введут. И испоганят язык окончательно.
Хороший вопрос.
Давайте я расскажу про наши планы.
-
В ближайшее время выйдет модифицированный модуль GraphWPF с более мягкой графикой при большом количестве примитивов (без скачков и замедлений)
-
Одно из основных направлений работы - устранение значительного количества багов в лямбдах, выявленных нашими замечательными тестировщиками. Там их накопилось вместе с улучшениями достаточно много - вагон и маленькая тележка.
-
Создание платформы для разработки 2D-игр. Это нам нужно для обучения наших школьников.
-
Из запланированных языковых изменений - доработка pattern matching - в частности для сопоставления с константами и кортежами, срезы матриц, срезы массивов и строк на запись, новые средства автоклассов, распространение конструкции match на выражения (switch expressions в C# 8.0).
-
Из “незаметных” языковых изменений - ускорение работы со встроенными множствами и, возможно, замена их реализации на HashSet.
-
По поводу того, что в C# 8.0. Мы внимательно присматриваемся к возможности создания traiats (интерфейсов с частичной реализацией). Но пока не думаем про их реализацию. Надо посмотреть примеры их использования в будущем C# и как они будут там реализованы.
Так они уже через HashSet
реализовано. Вы имеете в виду сделать set of T
синонимом HashSet<T>
?
Примерно это
Означает ли это возможность появления среза в левой части оператора присваивания?
Конечно означает
Наконец-то мы переплюнем знаменитое бейсиковское Mid(s,3,5) = Mid(s,7,5)
(идущее с 60-х годов прошлого века) и приблизимся к Фортрановскому a(3:7:2) = b(::3)
Ага. А потом ещё добавить list comprehensions, и получится Питон с синтаксисом Паскаля, преферансом и блудницами
Я понимаю, что это сказано с иронией, но всё же, стоит отметить, что это уже (где-то давно, где-то недавно) есть в Скале, Котлине, Джаве и Хаскеле.
Дурной пример заразителен…
У нас были проблемы с константами - помнят все. Сейчас с ними, кажется, всё нормально. Но, константам нельзя присваивать значения-результаты функций. Я предлагаю сделать особый вид констант: constexpr
-константы, которые могут равняться результату работы constexpr
-функции. Ссылка на статью скажет больше, чем могу сказать я. Как представляю себе это всё я:
function F(): integer; constexpr := 12 * 3;
constexpr
x = F();
begin
end.
Ну, теперь, Ваше слово, разработчики и остальные участники форума.
А посмотрите, как это сделано во Free Pascal. C++ - это всё-таки другой язык, очень сложный к тому же, и компиляторы для него - архисложные.
И - почему всё же не писать
const x = 12 * 3;
?
Ну, я это привёл как пример. А остальные, что скажут на счёт этой фичи?