Tcl как обоснование ненужности поддержки компонентности в С++
От: FR  
Дата: 27.05.06 04:41
Оценка: 18 (1) :)
Здравствуйте, VladD2, Вы писали:


D>> Конечно! Но Qt дополняет язык, в него вводятся новые возможности, недоступные ранее, он становится именно ОО — объекты получают события, и для программиста это очевидно, а не так как в стандартном С++, где событие это вызов метода. Да, нужен дополнительный moc-компилятор, но что с того — обычное метапрограммирование. Еще раз оговорюсь — не знаю как это реализовано в немерле.

D>> И foreach там есть

VD>Вот только заслуги С++ тут нет. Тут есть борьба с его проблемами внешними средствами.


VD>К тому же это все детский лепет. Даже C# не нужны подпорки чтобы создать полноценную компонентную систему построения GUI. А уж Nemerle и подавно.


Вот tcl'у тоже не нужны никакие подпорки чтобы строить очень даже компонентный GUI, и при том делать это проще чем в C#, интересно из-за этого С# становится отстоем? (хотя нет тогда C# должен был быть отстоем еще до своего появления на свет).

03.06.06 17:25: Ветка выделена из темы Синтаксический сахар или C++ vs. Nemerle :)
Автор: Чистяков Влад aka VladD2
Дата: 24.05.06
— VladD2
Re: Tcl как обоснование ненужности поддержки компонентности в С++
От: IT Россия linq2db.com
Дата: 27.05.06 05:54
Оценка:
Здравствуйте, FR, Вы писали:

FR>Вот tcl'у тоже не нужны никакие подпорки чтобы строить очень даже компонентный GUI, и при том делать это проще чем в C#,


Можешь продемонстрировать кусочек?
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Tcl как обоснование ненужности поддержки компонентности в С++
От: FR  
Дата: 27.05.06 08:20
Оценка:
Здравствуйте, IT, Вы писали:

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


FR>>Вот tcl'у тоже не нужны никакие подпорки чтобы строить очень даже компонентный GUI, и при том делать это проще чем в C#,


IT>Можешь продемонстрировать кусочек?


Tcl мне не родной, меня лично его синтаксис (как и лисп) убивает, но на питоне на базе tcl'ной tk могу.
Только что именно нужно?
Re: Tcl как обоснование ненужности поддержки компонентности в С++
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.06 12:09
Оценка:
Здравствуйте, FR, Вы писали:

FR>Вот tcl'у тоже не нужны никакие подпорки чтобы строить очень даже компонентный GUI, и при том делать это проще чем в C#, интересно из-за этого С# становится отстоем? (хотя нет тогда C# должен был быть отстоем еще до своего появления на свет).


Нет, конечно, ведь проще только языком. И качество тоже значительно ниже.

Да и причем тут tcl? tcl это одельный язык специально заточеный для конкретных нужд. Он в другой весовой катерогрии (скрпт). И возможности его сильно ограничены. C++ и C# же — это универсальные языки первый из которых в чистом виде не пригоден для компонентной разработке и потому требует подпорок вроде COM, QT и т.п., а второй без проблем справляется с этой задаче срествами поддержки компонентной разработки.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Tcl как обоснование ненужности поддержки компонентности в С++
От: FR  
Дата: 27.05.06 13:16
Оценка:
Здравствуйте, VladD2, Вы писали:

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


FR>>Вот tcl'у тоже не нужны никакие подпорки чтобы строить очень даже компонентный GUI, и при том делать это проще чем в C#, интересно из-за этого С# становится отстоем? (хотя нет тогда C# должен был быть отстоем еще до своего появления на свет).


VD>Нет, конечно, ведь проще только языком. И качество тоже значительно ниже.


VD>Да и причем тут tcl? tcl это одельный язык специально заточеный для конкретных нужд. Он в другой весовой катерогрии (скрпт). И возможности его сильно ограничены. C++ и C# же — это универсальные языки первый из которых в чистом виде не пригоден для компонентной разработке и потому требует подпорок вроде COM, QT и т.п., а второй без проблем справляется с этой задаче срествами поддержки компонентной разработки.


Ну так я тоже про ту же самую мысль, почему C# с этим прекрасно справляется?, потому что его тоже под это специально заточили. А C++ возник слишком рано, тогда такие задачи еще не были майнстримом.
И вообще если уж охота было сравнивать Nemerle с другими языками в области метапрограммирования, то идеальный кандидат никак ни C++, по моему это Forth.
Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: Андрей Хропов Россия  
Дата: 27.05.06 15:00
Оценка: 22 (1)
Здравствуйте, FR, Вы писали:

FR>Ну так я тоже про ту же самую мысль, почему C# с этим прекрасно справляется?, потому что его тоже под это специально заточили. А C++ возник слишком рано, тогда такие задачи еще не были майнстримом.

Проблема мне кажется несколько в другом, а именно — то, что С++ развивался постепенными добавками к C, сохраняя при этом совместимость, поэтому в нем реализация ОО парадигмы тоже не классическая (все — объект)
, потом еще добавили шаблоны, потом началось метапрограммирование на них...
Полноценные модули не сделали, поскольку уже все привыкли к #include, а сделали namespace и т.д.

FR>И вообще если уж охота было сравнивать Nemerle с другими языками в области метапрограммирования, то идеальный кандидат никак ни C++, по моему это Forth.

Да можно и с Forth, конечно, как и с Lisp,

правда синтаксис у него конечно, это жесть

Вот сравните (Аккерман):
Это C/C++ (я написал):
int Akk( int a, int b )
{
    if( b == 0 )
        return Akk(a - 1, 1);
    else if( a == 0 )
        return b + 1;
    else
        return Akk(a - 1, Akk(a, b - 1));
}

Это Forth (взято здесь):
: -ack ( y x -- n )
   ?dup if
     swap ?dup
      if
         1- over recurse swap 1- recurse
      else
         1- 1 swap recurse
      then
   else
      1+
   then ;

Это Lisp (взято здесь):
(define (ack m n)
    (cond ((= m 0) (+ n 1))
          ((= n 0) (ack (- m 1) 1))
      (true    (ack (- m 1) (ack m (- n 1))))))

А это Немерле (взято здесь
Автор: WolfHound
Дата: 22.05.06
):
def Akk(a : int, b : int)
{
  |(_, 0) => Akk(a - 1, 1)
  |(0, _) => b + 1
  |(_, _) => Akk(a - 1, Akk(a, b - 1))
}

C++ я думаю, поймут все .
Хотя я не специалист в Немерле мне понятна последняя программа,
можно разобраться с некотороыми усилиями в Lisp,
а вот Forth...

Это правда не метапрограммирование, а так...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: FR  
Дата: 27.05.06 15:54
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

АХ>Здравствуйте, FR, Вы писали:


FR>>Ну так я тоже про ту же самую мысль, почему C# с этим прекрасно справляется?, потому что его тоже под это специально заточили. А C++ возник слишком рано, тогда такие задачи еще не были майнстримом.

АХ>Проблема мне кажется несколько в другом, а именно — то, что С++ развивался постепенными добавками к C, сохраняя при этом совместимость, поэтому в нем реализация ОО парадигмы тоже не классическая (все — объект)
АХ>, потом еще добавили шаблоны, потом началось метапрограммирование на них...
АХ>Полноценные модули не сделали, поскольку уже все привыкли к #include, а сделали namespace и т.д.

Угу эвлоюция, без потери совместимости.

FR>>И вообще если уж охота было сравнивать Nemerle с другими языками в области метапрограммирования, то идеальный кандидат никак ни C++, по моему это Forth.

АХ>Да можно и с Forth, конечно, как и с Lisp,

АХ>правда синтаксис у него конечно, это жесть


АХ>C++ я думаю, поймут все .

АХ>Хотя я не специалист в Немерле мне понятна последняя программа,
АХ>можно разобраться с некотороыми усилиями в Lisp,
АХ>а вот Forth...

На самом деле в форте разобратся (для императивщика) проще чем в лиспе, но нужна привычка, раньше я влет разбирался, но сейчас похоже отвык, испортился другими языками

АХ>Это правда не метапрограммирование, а так...


Вот если брать именно мета, то forth вполне достойный конкурент Nemerle.
Re[5]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: WolfHound  
Дата: 27.05.06 16:06
Оценка:
Здравствуйте, FR, Вы писали:

FR>Вот если брать именно мета, то forth вполне достойный конкурент Nemerle.

Ну повтори на forth'е примеры из этой
Автор: WolfHound
Дата: 26.05.06
ветки. Посмотрим насколько они будут понятны.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: FR  
Дата: 27.05.06 16:16
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


FR>>Вот если брать именно мета, то forth вполне достойный конкурент Nemerle.

WH>Ну повтори на forth'е примеры из этой
Автор: WolfHound
Дата: 26.05.06
ветки. Посмотрим насколько они будут понятны.


Давай я тебя через 12 лет попрошу что ни-будь написать на Nemerle
(вернее через 12 лет после того как ты перестал писать на Nemerle)
Хотя может и попробую, но ничего ни обещаю.
Re[3]: Tcl как обоснование ненужности поддержки компонентности в С++
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.06 16:18
Оценка:
Здравствуйте, FR, Вы писали:

FR>Ну так я тоже про ту же самую мысль, почему C# с этим прекрасно справляется?, потому что его тоже под это специально заточили. А C++ возник слишком рано, тогда такие задачи еще не были майнстримом.

FR>И вообще если уж охота было сравнивать Nemerle с другими языками в области метапрограммирования, то идеальный кандидат никак ни C++, по моему это Forth.

Тебе это интересно? Сравнивай. Я на Форте писать принципильно не желаю. И думаю, что 99% программистов тоже.

И вообще, что вы мне пытаетесь указывать с чем и что мне сравнивать? Если у вас другое мнение, то милости просим изложить его в статье. А свои предпочтения оставьте для себя. Мне они не интересны.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: VladD2 Российская Империя www.nemerle.org
Дата: 27.05.06 16:22
Оценка: :)
Здравствуйте, FR, Вы писали:

FR>Давай я тебя через 12 лет попрошу что ни-будь написать на Nemerle


Договорились если обещашь не просить эти 12 лет писат на Форте других. ОК?

FR>(вернее через 12 лет после того как ты перестал писать на Nemerle)


А кто тебе, кстати, такое сказал? Может через 12 лет ты будешь все рассказывать, что сразу увидел в Немерле божью искру, а разные Вольфхаунты тебе мозги пудрили.
... << RSDN@Home 1.2.0 alpha rev. 637>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: Demiurg  
Дата: 27.05.06 16:38
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

АХ>C++ я думаю, поймут все .

АХ>Хотя я не специалист в Немерле мне понятна последняя программа,
АХ>можно разобраться с некотороыми усилиями в Lisp,
АХ>а вот Forth...

Пролог забыл Попробуй.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: FR  
Дата: 27.05.06 17:21
Оценка:
Здравствуйте, VladD2, Вы писали:

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


FR>>Давай я тебя через 12 лет попрошу что ни-будь написать на Nemerle


VD>Договорились если обещашь не просить эти 12 лет писат на Форте других. ОК?


Так я не просил вроде никого это делать.

FR>>(вернее через 12 лет после того как ты перестал писать на Nemerle)


VD>А кто тебе, кстати, такое сказал? Может через 12 лет ты будешь все рассказывать, что сразу увидел в Немерле божью искру, а разные Вольфхаунты тебе мозги пудрили.




Ты бы спроcил меня двенадцать лет назад про форт, да я тогда был готов за него всех в землю закопать
Кстати я тогда и на лиспе немного писал и никакие скобки не смущали, а сейчас китайская грамота
Я думаю ты сам через несколько лет забудешь про N и будешь какой ни-будь X двигать
Re[5]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: FR  
Дата: 27.05.06 17:21
Оценка:
Здравствуйте, Demiurg, Вы писали:

D>Здравствуйте, Андрей Хропов, Вы писали:


АХ>>C++ я думаю, поймут все .

АХ>>Хотя я не специалист в Немерле мне понятна последняя программа,
АХ>>можно разобраться с некотороыми усилиями в Lisp,
АХ>>а вот Forth...

D> Пролог забыл Попробуй.


В прологе вообще не поймешь где мета, где не мета, по моему там все мета, но другое мета
Re[4]: Tcl как обоснование ненужности поддержки компонентности в С++
От: FR  
Дата: 27.05.06 17:21
Оценка:
Здравствуйте, VladD2, Вы писали:

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


FR>>Ну так я тоже про ту же самую мысль, почему C# с этим прекрасно справляется?, потому что его тоже под это специально заточили. А C++ возник слишком рано, тогда такие задачи еще не были майнстримом.

FR>>И вообще если уж охота было сравнивать Nemerle с другими языками в области метапрограммирования, то идеальный кандидат никак ни C++, по моему это Forth.

VD>Тебе это интересно? Сравнивай. Я на Форте писать принципильно не желаю. И думаю, что 99% программистов тоже.


Было интересно, сейчас уже не очень.
Но сравнение было бы интересно.

VD>И вообще, что вы мне пытаетесь указывать с чем и что мне сравнивать? Если у вас другое мнение, то милости просим изложить его в статье. А свои предпочтения оставьте для себя. Мне они не интересны.


Хорошо. Может и попытаюсь вспомнить форт и сравнить.
Re[6]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: Demiurg  
Дата: 27.05.06 17:30
Оценка:
Здравствуйте, FR, Вы писали:

D>> Пролог забыл Попробуй.


FR>В прологе вообще не поймешь где мета, где не мета, по моему там все мета, но другое мета


Я вообще не понимаю где там мета
Там прикольно, написал прогу на С, потом аналогичную на прологе. На С строк 700, на прологе 24. Нюанс! Писал на С и мало думал Писал на прологе и думал много
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Tcl как обоснование ненужности поддержки компонентности в С++
От: IT Россия linq2db.com
Дата: 27.05.06 17:36
Оценка: -1 :)
Здравствуйте, FR, Вы писали:

FR>>>Вот tcl'у тоже не нужны никакие подпорки чтобы строить очень даже компонентный GUI, и при том делать это проще чем в C#,


IT>>Можешь продемонстрировать кусочек?


FR>Tcl мне не родной, меня лично его синтаксис (как и лисп) убивает, но на питоне на базе tcl'ной tk могу.

FR>Только что именно нужно?

Демонстрация лёгкого построения ГУИ. Рабочий код приводить совсем не обязательно, генерируемый радакторами код тоже. Просто хотя бы идею обозначить.

Для примера, для такого простого диалога, поддерживающего валидацию и подсветку изменённых полей



код на C# может выглядеть следующим образом:

public partial class EditPersonForm : BizEntityForm
{
    public EditPersonForm(Person person)
    {
        InitializeComponent();
        binder.Object = person;
    }
}

Остальное — это редактор форм и библиотеки. Вот мне и интересно, насколько проще это можно сделать на Tcl.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Tcl как обоснование ненужности поддержки компонентности в С++
От: Demiurg  
Дата: 27.05.06 17:45
Оценка: +2
Здравствуйте, IT, Вы писали:

IT>код на C# может выглядеть следующим образом:


IT>
IT>public partial class EditPersonForm : BizEntityForm
IT>{
IT>    public EditPersonForm(Person person)
IT>    {
IT>        InitializeComponent();
IT>        binder.Object = person;
IT>    }
IT>}
IT>


Это все? ИИ уже придумали...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Re[14] + Аккерман на C/C++, Forth, Lisp и Nemerle
От: FR  
Дата: 27.05.06 17:47
Оценка:
Здравствуйте, Demiurg, Вы писали:

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


D>>> Пролог забыл Попробуй.


FR>>В прологе вообще не поймешь где мета, где не мета, по моему там все мета, но другое мета


D> Я вообще не понимаю где там мета


Там же как и в любой динамике?

D> Там прикольно, написал прогу на С, потом аналогичную на прологе. На С строк 700, на прологе 24. Нюанс! Писал на С и мало думал Писал на прологе и думал много


Угу и в конечном счете может оказатся что на си и проще и быстрее
Re[4]: Tcl как обоснование ненужности поддержки компонентности в С++
От: FR  
Дата: 27.05.06 17:47
Оценка:
Здравствуйте, IT, Вы писали:


IT>Остальное — это редактор форм и библиотеки. Вот мне и интересно, насколько проще это можно сделать на Tcl.


Если обозначить только идею, то тоже будет пара строк подключающих или готовый из билиотеки или сгенерированый RAD'остью код. Только боюсь и в Delphi и в любой другой среде с радостями будет что-то похожее.

Инетреснее сравнить рукописный код какого ни-будь простого диалога.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.