Re[5]: Следующий язык программирования
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.09.05 15:10
Оценка:
Здравствуйте, AndrewVK, Вы писали:

ПК>>Полагаю, не совсем, т.к. лямбда это, все-таки, больше именно функция, а не блок кода.


AVK>А в чем разница?


Еще одна особенность блоков кода в Ruby, не знаю, есть ли таковая в Python. В Ruby содержимое блока может работать по разному, в зависимости от того, в контексте какого объекта блок запускается на выполнение:
# Это глобальный метод.
def say_something
    puts "Global say_something"
end

# Здесь должент быть задействован глобальный метод say_something.
def global_call_block( &blk )
    instance_eval( &blk )
end

class Test
    # Статический метод класса Test.
    def self.say_something
        puts "Test::say_something"
    end

    # Здесь должен быть вызван статический метод Test::say_something.
    def self.class_call_block( &blk )
        instance_eval( &blk )
    end

    # Не статический метод класса Test.
    def say_something
        puts "Test#say_somethig"
    end

    # Здесь должен быть вызван не статический метод Test#say_something.
    def object_call_block( &blk )
        instance_eval( &blk )
    end
end

# Вот этот блок будет вызывать say_something в зависимости от контекста.
block = Proc.new { say_something }

# Вызываем глобальный say_something.
global_call_block( &block )

# Вызываем статический Test::say_something.
Test::class_call_block( &block )

# Вызываем не статический Test::say_something.
Test.new.object_call_block( &block )


Один и тот же блок, но в зависимости от того, в каком контексте он выполняется (определяется методом instance_eval) он вызывает разные методы:
Global say_something
Test::say_something
Test#say_somethig
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Следующий язык программирования
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 26.09.05 15:21
Оценка:
Здравствуйте, eao197, Вы писали:

E>Еще одна особенность блоков кода в Ruby, не знаю, есть ли таковая в Python. В Ruby содержимое блока может работать по разному, в зависимости от того, в контексте какого объекта блок запускается на выполнение:


Ну вобщем понятно — рубийный блок кода ближе к шарповскому анонимному методу, нежели к классической функциональной лямбде.
... << RSDN@Home 1.2.0 alpha rev. 617>>
AVK Blog
Re[5]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 22:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


VD>>ВDB2, MSSQL, Oracle.


AVK>Тут согласен. Но это исключение.


VD>>IDEA, VS, Eclips.


AVK>Ага. И все, что характерно, сильно отличаются не только по фичам, но еще и по целевым языкам. А Eclipse как платформа вобще бесплатен.


ВDB2, MSSQL, Oracle тоже сильно отличаются по фичам и т.п. Просто тебе эти отличия по фигу на некотором уровне абстракции. Точно так же различия IDE пофигу для других людей.

VD>>Half Life 2, Doom 3, Хроники Ридека...


AVK>Тоже мимо. Не думаю что кто то среди них будет выбирать по производительности.


Кто-то обязательно. Ведь если у меня на машине пойдет (с приемлемой проивзодительностью) только, к примеру, ХЛ2, то и выбора то не останется.

VD>>Так что вопрос в том, что считать идентичностю продуктов.


AVK>Это когда они настолько похожи, что единственное, что волнует потребителя, это производительность.


Да небывает полностью одинаковых вещей (если они не копии). Бывает точка зрения при которой разница между ними не существенна. Точно так же как бывают асбтоятельства при которых важным файтором может оказаться скорость.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 22:32
Оценка:
Здравствуйте, EXO, Вы писали:

EXO>Потому как, по моим наблюдениями, быстродействие зависит

EXO>в первую очередь — от архитектуры системы,
EXO>во вторую — от алгоритма,

Это одно и тоже. Архитектура — это алгоритм на очень высоком уровне асбтракции. Но в целом согласен.

EXO>и уже в третью — от языка реализации...


Согласен. Но опять таки конечный продукт может оказаться медлненее из-за любого из факторов. Конечно архитектура и алгоритмы очень важны, но если с ними все впорядке, но система написана на Руби, а в ней море мат.вычислений, то не фак, что она будет приемлема для использовании на современной технике.

EXO>И очень часто хорошую архитектуру на "быстрых" языках делать неподьемно долго и дорого.

EXO>в результате — делается что попроще. выигрываются разы, проигрываются порядки.

Тоже согласен. Я бы даже сказал слишком часто. Но его рассуждения были не о том. А домыслы... они и есть досмыслы.

EXO>Дазумеется, если реализовывать один и тот же алгорим и одну архитектуру...

EXO>... но это просто глупость архитектора.

Да нет. Это не глупость. Но согласен, что трудозотраты для "быстрых" языков будут несоизмеримо больше, а вот реальный выигрышь не сильно. Ну, а реально скорее всего "быстрые" языки сядут на алгоритмах которые поленились оптимизировать программисты погрязшие в подробности "быстрых" языков.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, iZEN, Вы писали:

ZEN>А почему, собственно, mixins нельзя сделать "базовой фичей"?


В логике есть такое правило. В один списон можно ставить только сравнимые вещи/понятия. Так вот "сильная инкапсуляция" и "mixins" никак не могут входить в один список. Это понятия разных категорий. Инкапсуляция — это основа архитектуры. А mixins — это всего лишь приятный синтаксисческий сахар.

iZEN>>>2) Независимым от платформы — компиляция в промежуточный код.

iZEN>>>3) Иметь простую виртуальную машину для выполнения кода (грубо: модель процессора со стэковой архитектурой).
VD>>А почему не сложную (грубо: на базе комбинаторной логики и каких-нить сверток графов)?
ZEN>А вот это уже вопрос портабельности такой машины на многие платформы начиная от коммуникаторов и заканчивая кластерами сервером.

А вот это уже проблема реализации. Сложная машина может быть написана на переносимых языках и легко портироваться на другие платформы.

В общем, я к тому, что не нужно мешать в одну кучу переносимость и архитектурные вопросы. Это опять понятия разных категорий.

ZEN> В принципе, чем проще машина, тем легче сделать её одинаковой для разных устройств.


Например, машина VB6 проще машины Явы или дотнета. Но зависимость от ОС убивает переносимость напроч.

ZEN>Уточню: миксины против наследования. Это имеет смысл.


Имеет. Но будучи перечисленными среди базовых вщей вроде инкапсуляции выглядят как навязчивая идея.

ZEN>Компонентное программирование — это частный случай "смешивания кода", когда компонент представлен из нескольких объектов, работающих в агрегате (компоненте).


Я бы все же сказал, что миксины — это языковая фича позволяющая упростить реализацию. А компоненты — архитектура позволяющая заполучить аткие вещи как составное ПО и визуальные дизайнеры.

VD>>К тому же есть более общие навязчивые идеи. Например, идея расширяемых языков и метапрограммирования позволит сделать и миксины, и foreach, и черта лысого. И все это без изменения самого языка!

ZEN>Язык Forth не "пошёл" в массы из-за своего идиотского синтаксиса (обратная польская нотация).

Значит нужно делать средства расширения для более удобных языков с более традиционным синтаксисом.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Ты просил — вероятность принятия индустрией нового языка, за которым не стоят монстры

ЗХ>Я ответил

Тут вот иногда народ спрашивает сколько приложений на вашем компьютере менеджед и расстраивается когда народ называет 1-3 приложения. А сколько у тебя приложений на Руби, Питоне или не дай бог на ПХП с Перлом?

Боюсь столько же скольсо у меня. Максимум где-нить в каталоге скриптик заволялся.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>а) (моя формулировка) "может ли сегодня появиться (и каким он будет) язык-"прорыв", который изменит наши представления о программировании?"


Да, такие изменения постоянно присходят.
Нет, изменения появляются малыми крупицами и только лишь агрегируются успешными языками.


ЗХ>б) (формулировка ПК) "каков должен быть сегодня новый язык, чтобы найти себе массовую популярность без поддержки лидером рынка?"


Простым и открытым к изменениям. Короче он должен впитывать удачные решения при этом не приводя к появлению неразрешимых противоречий и граблей.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Odi$$ey, Вы писали:


OE>ok, программируя на Oracle Forms Developer в принципе не возможно достичь того трафика между клиентом и oracle-сервером, как на C++/OCI. Если клиенты за модемами с паршивенькими линиями это может быть решающим фактором в выборе продукта.


Странно, а я как раз видел решение на формсах работающее ченез модем.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка: 4 (1) +1 :)
Здравствуйте, henson, Вы писали:

Это из серии у кого чего болит.

H>Лично мне пока хотелось иметь такие вещи:

H>1) XML диалект для описания объектной модели приложения с инструментом для динамической генерации исходников на C# и Java (хотя бы), а также структуры базы данных, чтобы окончательно отделить логику приложения от исходных текстов программы

XSLT к твоим услугам.

H>2) XML диалект для унифицированного описания GUI приложения, чтобы отделить интерфейс от логики и исходных текстов приложения

H>3) Везде перейти от абсолютного позиционирования элементов GUI к относительному

Avalon к твоим услугам.

H>4) Перейти к системам контроля версий (CVS) оперирующими не файлами, а объектами приложения


Это нафиг не упало. Но сделать можно.

H>5) Библиотеки функций и алгоритмов в Интернет/Интранет, ставишь в исходном коде ссылку и все, получается как WebService, но на уровне исходных текстов


Это есть начиная с VS 2002.

H>В общем основное IMHO — это что сейчас необходимо совершенствование не самих языков, а средств проектирования и разработки приложений, пора уже идти дальше UML и RUP, пора закрыть вопросы, связанных с форматированием кода, все должно быть автоматически: нужное количество табуляций и пробелов, положение { и } и т.п.


Это есть если установить ReSharper или VS2005.

Ты спал что ли последние 5 лет?
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Пацак, Вы писали:

ZEN>>б) смешивание (mixins);


П>Кстати любопытно: интересная ведь концепция, но почти нигде не получила распространения. Интерфейсы — пожалуйста, mixins — фигушки. Интересно, почему?


В исследовательских языках фича уже чуть ли не стандартная. Главное чтобы язык был ОО. Когда концепция обкатается внедрят ее в какой-нить C#.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, eao197, Вы писали:

E>В Ruby применяется активнейшим образом, начиная от самых базовых классов и стандартной библиотеки.


Пример можно? А то ведь у миксинов много внутренних идеологических проблем.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Как следует из опыта, поддержка корпорацией вовсе не означает, что язык не умрет. Свежий пример -- VB, имевший большую базу пользователей, и убитый большой корпорацией.


Хотел бы я так умереть.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Ну во первых он не умер, а развился в VB.NET. В данном случае больше подходит аналогия с MC++.


Гы. Он тоже не умер, а...
А вот хорошим примером яыляется Фокс. Только и он ведь формально не умер. Просто пир для него выключели, и на развитие забили.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Alxndr, Вы писали:

A>Прошу прощения, а разве "развился" не понимает по собой хоть какой-то обратной совместимости?

A>Что общего у VB6 и VB.NET? Синтаксис?

99%. А что? Другое дело, что изменилась компонентная модель. А это действительно привело к тому, что реальные приложения переносить трудно.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Следующий язык программирования
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.09.05 23:25
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Это и называется умер. Можешь спросить у тех, кто писал на VB, и теперь не может скомпилировать свои продукты новой студией, и не может использовать идиомы из VB в VB.Net.


Почитай описание к действительно новой студии. Для ВБ6 обещается 9Х% переносимости. Даже новый визерд-конвертер создали. И проблема не в языке, а в компонетах. Другие они, вот и пернос осложнен. Попробуй перенести QT приложение на ATL. Что тяжело? Ну, значит С++ сдох. Логично?

ПК>В чем аналогия? MC++ тоже умер: C++/CLI развитием MC++ тоже не является, хотя при его создании и использовался опыт, полученный в результате MC++.


Он не умер. Он не жил. C++/CLI просто вторая попытка. И почему ты считашь, что удачная я лично не знаю. Боюсь жить он будет не лучше.

ПК>Нужно смотреть case by case. Общие отрицательные черты -- слишком сильные связи.


Ну, есть и прямые проблемы вроде брилиантового наследования и т.п. С миксинами тоже проблем хоть отбавляй. Единственное удачное решение я видел в Скале. Там они очень неплохо вмонтированы в ООП.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[8]: Следующий язык программирования
От: IT Россия linq2db.com
Дата: 27.09.05 00:36
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А похоже, придется, так как заказчик грозит C# и не уверен, что я смогу его от этого отговорить,


Мда, похоже тяжёлый случай.

PD>а в программе нужно все эффективно делать и минуту + 57 Мбайт тратить на чтение каталога я не могу. Вот и все.


Код этот сможешь показать?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Следующий язык программирования
От: Pavel Dvorkin Россия  
Дата: 27.09.05 01:09
Оценка:
Здравствуйте, IT, Вы писали:

PD>>А похоже, придется, так как заказчик грозит C# и не уверен, что я смогу его от этого отговорить,


IT> Мда, похоже тяжёлый случай.


Клиент всегда прав

PD>>а в программе нужно все эффективно делать и минуту + 57 Мбайт тратить на чтение каталога я не могу. Вот и все.


IT>Код этот сможешь показать?


Пишу с другого компьютера, под рукой DevStudio нет. Так что по памяти...

DirectoryInfo di = new DirectoryInfo("путь");
FileInfo[] fi = di.GetFiles();

в каталоге "путь" 100,000 файлов.
With best regards
Pavel Dvorkin
Re[10]: Следующий язык программирования
От: IT Россия linq2db.com
Дата: 27.09.05 01:32
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Пишу с другого компьютера, под рукой DevStudio нет. Так что по памяти...


PD>DirectoryInfo di = new DirectoryInfo("путь");

PD>FileInfo[] fi = di.GetFiles();

PD>в каталоге "путь" 100,000 файлов.


А сама машина при записи в этот каталог не тормозит?

Тем не менее C# здесь ни при чём. Просто так тупо реализована библиотека. В C++, кстати, вообще нет подобной функциональности, приходится пользоваться системными вызовами. То же самое можно сделать и на C#.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: Следующий язык программирования
От: Pavel Dvorkin Россия  
Дата: 27.09.05 05:09
Оценка:
Здравствуйте, IT, Вы писали:


IT> А сама машина при записи в этот каталог не тормозит?


А смотря что делаешь. Если его в FAR попробовать открыть — тормозит еще как. Потому что FAR тоже пытается весь каталог прочитать. Но ему-то действительно надо, иначе нельзя.А вот если


int main(int argc, char* argv[])
{
    WIN32_FIND_DATA wfd;
    HANDLE h = FindFirstFile("D:\\MyDir\\*.*", &wfd);
    for(int i = 0; i < 100; i++)
        FindNextFile(h, &wfd);
    return 0;
}


то это срабатывает мгновенно, и памяти программа по TaskManger — Mem Usage занимает 672 Кб.

Насчет записи в этот каталог — не знаю, не проверял, но при чем здесь запись ? Мне и с чтением проблем хватает


IT>Тем не менее C# здесь ни при чём. Просто так тупо реализована библиотека.


Золотые слова! Первое, с чем я готов на 101% согласиться. И странно было бы, если я заявил иначе — создали мол, язык, в котором все неэффективно реализовано. Такой язык на помойку сразу. Ничего я против C# не имею. И с моего любимого С++ можно такой компилятор написать, что все взвоют.
А вот почему библиотека или, проще говоря среда в целом столь неудачно реализована — в этом-то и вопрос. И неважно, о чем идет речь — об этой GetFiles или о другом чем-то.


>В C++, кстати, вообще нет подобной функциональности, приходится пользоваться системными вызовами.


Что такое системные вызовы в данном контексте, я не понял. В C++ этого нет вообще, а есть функции в библиотеке RTL (findfirst/next) или можно напрямую вызвать Win32 функции FindFirst/NextFile. Естественно, в самом языке этого нет — так можно и создание окна потребовать в язык ввести . То, что при программировании для Win32 на С++ делается вызовами RTL, здесь делается вызовами методов Net Framework. Во всяком случае, мне кажется, что это однородные понятия. Или я не прав ?
То же самое можно сделать и на C#.
With best regards
Pavel Dvorkin
Re[5]: Следующий язык программирования
От: Pavel Dvorkin Россия  
Дата: 27.09.05 05:30
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>было X — появились Java и C# — все поняли, что Y ?

ЗХ>(теоретически, Y == "использование байткода"?)

Так-таки все приняли это ? Сомневаюсь. Кстати, идее промежуточного языка сто лет в обед — еще в ОС ИПМ для БЭСМ-6 был АЛМО. Правда, без JIT

ЗХ>Но вопрос не в том. Вопрос в том — что должно появиться, чтобы "все поняли, что...")


Хороший вопрос. Знать бы точно ответ
With best regards
Pavel Dvorkin
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.