Re[11]: Чем так привлекателен C++ ?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 30.08.02 01:16
Оценка:
Здравствуйте VladD2, Вы писали:

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


ГВ>>Во-первых, не один Страус. Там ещё и комитет ANSI есть.

ГВ>>А во-вторых — ИМХО, Страус больше апеллирует к интеллектуальности, а MS — к её отсутствию. Типа: "Вот вам рецепт и всем срочно радоваться!" Вторая позиция понятна для продавцов, но... программисты, ИМХО, всё-таки больше тяготеют к первому.

VD>Да к маразму старческому (не по годам) этот Страуструп апеллирует.


Ладно, давай без личностей ;)

VD>А MS решает проблемы кторые перед ней стаят.


Путём создания волны новых? Кстати, у тебя интересная, почти фрейдистская описка: последнее слово должно быть "стаВят" или "стОят"? Если "ставят", то хрен они что исправили в том же компиляторе C++, а если "стоят", то это её проблемы, пусть себе решает на здоровье. Нет. я не против маркетинга, я просто стараюсь ему не подчиняться.

VD>Этот орел как то ляпнул, что мол GC интересная и хорошая идея, но мол, ее легко можно реализовать средствами языка. Вот Мишка.Нэт попробывал риалзоват... вошло как у тебя, много кода и совершенно не применимо на практике. :(


Значит, не особо нуждались, раз не стали применять. ;) (ИМХО)

VD>Хочет решать проблемы средствами самого языка? Пожалуйста... только пусть этот язык расширят, чтобы можно было делать то что нужно. И не через одно место автогеном, а просто и лаконично.


Да пусть его хоть в рамках определения реализуют! Тогда только будет ясно, что именно в него надо добавлять.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[9]: Чем так привлекателен C++ ?
От: Silver_s Ниоткуда  
Дата: 30.08.02 06:52
Оценка:
Здравствуйте Mishka.NET, Вы писали:

IT>>Архитектурно реализуется перехваткой обращений к методам объекта, благо там и так прокси разнообразные просто кишат Ну а в C# есть... даже не в C# а в .NET, пожалуй.. поддержка этого дела. Ты можешь создать объект, а потом заставить другой объект вклиниваться в вызовы методов первого. В "Inside C#" Арчера есть немного об этом.

M.NET>Ну-ка ткни пальцем где такое написано, я это уже давно ищу — не знал что в .NET это есть.

Есть конечно.
Вот это чем не аспекты-перехватчики?
http://www.rsdn.ru/forum/message.asp?mid=85528&only
Автор: Silver_s
Дата: 15.08.02
Re[9]: Чем так привлекателен C++ ?
От: Аноним  
Дата: 30.08.02 06:59
Оценка:
Здравствуйте VladD2, Вы писали:

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


ГВ>>И то верно — он никого не причёсывает, все сами "причёсываются". ;)


VD>Интересно, когда Страус все причесывает своими кривыми идеями, то это нормально и называется "стандартизация", ну, если MS стандарты клепать начинает, то это называется "причесывание всех под одну гребенку" и "угнетение невинно обиженных". :)))


Подобные заявления означают, что ты вообще ничего не понимаешь в том, как происходила стандартизация C++ и больше говорят о тебе, чем о Страуструпе. Ты бы почитал что-нибудь.
Re[10]: Чем так привлекателен C++ ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.08.02 11:44
Оценка:
Здравствуйте <Аноним>, Вы писали:

А>Подобные заявления означают, что ты вообще ничего не понимаешь в том, как происходила стандартизация C++ и больше говорят о тебе, чем о Страуструпе. Ты бы почитал что-нибудь.


Ты бы прежде чем народ обкакивать представился бы что ли, а то некрасиво получается однако.

... Янус v1.0alpha (только для тестовых целей)
AVK Blog
Re[10]: Чем так привлекателен C++ ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.08.02 11:46
Оценка:
Здравствуйте <Аноним>, Вы писали:

А>Подобные заявления означают, что ты вообще ничего не понимаешь в том, как происходила стандартизация C++ и больше говорят о тебе, чем о Страуструпе. Ты бы почитал что-нибудь.


Ты бы прежде чем народ обкакивать представился бы что ли, а то некрасиво получается однако.

... Янус v1.0alpha (только для тестовых целей)
AVK Blog
Re[9]: Чем так привлекателен C++ ?
От: iZEN СССР  
Дата: 30.08.02 12:03
Оценка:
Здравствуйте Mishka.NET, Вы писали:

M.NET>Здравствуйте Igor Trofimov, Вы писали:


IT>>Ты написал объект и он работает в middletier звене каком-то. А другой кто-то (может, MS, а может Вася) написал...хм...как называется-то? аспект? — и теперь есть возможность применения на административном уровне к твоему объекту некоторой функциональности. Админ это может настроить.


M.NET>На самом деле не админ, а программер. Создаём аспект, говорим в нём, что если кто-то, например, вызвал метод с такой сигнатурой, то надо выполнить такой-то код. Или, куда интереснее, если произошло исключение в таких-то методах, то выполнить то-то и то-то. То бишь — один чел пишет прогу не думая об обработке исключений, security и пр. А другие пишут к его коду соответствующие аспекты.


IT>>COM+ короче.

M.NET>COM+ поддерживает только зачатки аспектной ориентации.

Я так понял, спор уже зашёл о run-time-поддержке выполнения с подгрузкой нового кода на лету без остановки и перекомпиляции всего приложения и даже системы.
Интересный момент. В C# такое возможно на уровне классов? В Java -- да, в С/C++ -- нет.

Небольшой пример для Java: интерфейс и "пусковик" пишутся и компилируются на самой ранней стадии, а вот классы, реализующие интерфейс, пишутся значительно позднее и могут подключаться к работающей системе на лету, тем самым реализуется в run-time нужный аспект.
public interface Figure {
   ...
   void paint();
}


Классы, написанные и откомпилированные позднее:
public class Oval implements Figure {
   ...//Реальный код
   public void paint() {
      ...//Реальный код
   }
}

public class Rectangle implements Figure {
   ...//Реальный код
   public void paint() {
      ...//Реальный код
   }
}

Запускаем любой код, реализующий интерфейс Figure:
import java.util.Properties;
import java.io.*;

public class FigureLauncher {
   private FigureLauncher() {//Синглетон
      super();
   }
   public static void main(String args[]) {
      try {
         String fileproperties = args[0];
         InputStream propStream = new FileInputStream(fileproperties);
         Properties properties = new Properties();
         properties.load(propStream);
         String launchableClassName = properties.getProperty("launchableclass");
         Class serviceClass = Class.forName(launchableClassName);
         Object serviceObject = serviceClass.newInstance();
         //Работаем с объектом:
         (Figure)serviceObject....//...
         (Figure)serviceObject.paint();
      } catch (Exception e) {
         System.out.println("Ошибка:");
         e.printStackTrace();
      }
   }
}

Файл настроек пусковика (структуру можно усложнить):
#FigureLaunch.prooperties
launchableclass=Rectangle


IT>>Архитектурно реализуется перехваткой обращений к методам объекта, благо там и так прокси разнообразные просто кишат ;) Ну а в C# есть... даже не в C# а в .NET, пожалуй.. поддержка этого дела. Ты можешь создать объект, а потом заставить другой объект вклиниваться в вызовы методов первого. В "Inside C#" Арчера есть немного об этом.

M.NET>Ну-ка ткни пальцем где такое написано, я это уже давно ищу — не знал что в .NET это есть.
Re[10]: Чем так привлекателен C++ ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.08.02 12:08
Оценка:
Здравствуйте iZEN, Вы писали:

ZEN>Я так понял, спор уже зашёл о run-time-поддержке выполнения с подгрузкой нового кода на лету без остановки и перекомпиляции всего приложения и даже системы.

ZEN>Интересный момент. В C# такое возможно на уровне классов? В Java -- да, в С/C++ -- нет.
В шарпе такое намного проще, ввиду того что компиляторы в виде классов есть в рантайме, умеют компилировать в память, стандартный класслоадер умеет shadow copy files, а Reflection.Emit позволяет формировать сборки в памяти вобще без компиляторов.

IT>>>Архитектурно реализуется перехваткой обращений к методам объекта, благо там и так прокси разнообразные просто кишат Ну а в C# есть... даже не в C# а в .NET, пожалуй.. поддержка этого дела. Ты можешь создать объект, а потом заставить другой объект вклиниваться в вызовы методов первого. В "Inside C#" Арчера есть немного об этом.

M.NET>>Ну-ка ткни пальцем где такое написано, я это уже давно ищу — не знал что в .NET это есть.
Посмотри в ремоутинге.

... Янус v1.0alpha (только для тестовых целей)
AVK Blog
Re[12]: Чем так привлекателен C++ ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.08.02 12:21
Оценка:
Здравствуйте Геннадий Васильев, Вы писали:

VD>>Да к маразму старческому (не по годам) этот Страуструп апеллирует.


ГВ>Ладно, давай без личностей


Так ты первый заговорил о велиичии личностей "Страус больше апеллирует к интеллектуальности".

ГВ>Путём создания волны новых? Кстати, у тебя интересная, почти фрейдистская описка: последнее слово должно быть "стаВят" или "стОят"? Если "ставят", то хрен они что исправили в том же компиляторе C++, а если "стоят", то это её проблемы, пусть себе решает на здоровье. Нет. я не против маркетинга, я просто стараюсь ему не подчиняться.


Второе (стоят). Ты подчиняешся догмам, хотя сам понимаешь, что что-то нужно менять.

ГВ>Значит, не особо нуждались, раз не стали применять. (ИМХО)


Просто реализовать удобный GC без поддержки компилятора невозможно. А Страуструп просто языком молол без соображения. У него похоже догмы еще глубже сидят. Ну, возможно пора давать дорогу молодым.

ГВ>Да пусть его хоть в рамках определения реализуют! Тогда только будет ясно, что именно в него надо добавлять.


А мне трехэтажные кострукции не нужны. Они расширяют язык не туда. Нужно решать проблемы людей, а они придумывают ерунду которая все равно не решает всех проблем, но создает огромные проблемы у разработчиков компиляторов.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Чем так привлекателен C++ ?
От: iZEN СССР  
Дата: 30.08.02 12:40
Оценка:
Оппс...Поспешил. Синтаксическая ошибка.
<...>
     Class serviceClass = Class.forName(launchableClassName);
     Object serviceObject = serviceClass.newInstance();
     //Работаем с объектом:
     (Figure)serviceObject....//...<<--Синтаксическая ошибка.
     (Figure)serviceObject.paint();<<--Синтаксическая ошибка.
<...>

Исправляю:
<...>
     Class serviceClass = Class.forName(launchableClassName);
     Object serviceObject = serviceClass.newInstance();
     //Работаем с объектом:
     ((Figure)serviceObject)....//...<<-- уже правильно
     ((Figure)serviceObject).paint();//<<-- уже правильно
<...>

Так ещё лучше:
<...>
     Class serviceClass = Class.forName(launchableClassName);
     Object serviceObject = serviceClass.newInstance();
     //Работаем с объектом:
     Figure f = (Figure)serviceObject;//Преобразуем ссылку к нужному типу
     f....//...
     f.paint();
<...>
Re[10]: Чем так привлекателен C++ ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.08.02 12:46
Оценка:
Здравствуйте Аноним, Вы писали:

А>Подобные заявления означают, что ты вообще ничего не понимаешь в том, как происходила стандартизация C++ и больше говорят о тебе, чем о Страуструпе. Ты бы почитал что-нибудь.


Я я что-нибудь почитал. Но стандарт от этого прямее не стал. Да и у MS многое стандартизовано. Тот же .NET. Да и для меня нет разницы между стандартами дефакто и бумажными. Первые мне даже больше нарвятся. Они к жизни ближе. Я когда писал на С, всегда предпочитал вариант Ричи, чем ансишный.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Чем так привлекателен C++ ?
От: iZEN СССР  
Дата: 30.08.02 12:47
Оценка:
Здравствуйте VladD2, Вы писали:

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

Согласен. Можно посмотреть на CORBA: такая огромная спецификация, а чтобы разрабатывать под неё придётся знать всё...:)
Re[10]: Чем так привлекателен C++ ?
От: Mishka.NET Норвегия  
Дата: 30.08.02 12:49
Оценка:
Здравствуйте iZEN, Вы писали:

ZEN>Я так понял, спор уже зашёл о run-time-поддержке выполнения с подгрузкой нового кода на лету без остановки и перекомпиляции всего приложения и даже системы.

ZEN>Интересный момент. В C# такое возможно на уровне классов? В Java -- да, в С/C++ -- нет.

Нет, спор идёт о другом (конкретно аспектах). То, что ты имеешь в виду называется Reflection. Этот механизм присутствует и в Java и в .NET.
Re[11]: Чем так привлекателен C++ ?
От: achp  
Дата: 30.08.02 12:52
Оценка:
Здравствуйте VladD2, Вы писали:

VD>Я когда писал на С, всегда предпочитал вариант Ричи, чем ансишный.


Ты такое больше не пиши! А то слабонервные могут в обморок упасть. И твоя совесть будет мучиться из-за шишек на их головах.

Расскажи-ка мне про преимущества Си Кернигана и Ритчи на примере следующего фрагмента:

double sqrt(x)
double x;
{
/* какой-то код */
}

main()
{
    double z = sqrt(2);
}
Re[11]: Чем так привлекателен C++ ?
От: iZEN СССР  
Дата: 30.08.02 12:55
Оценка:
Здравствуйте AndrewVK, Вы писали:

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


ZEN>>Я так понял, спор уже зашёл о run-time-поддержке выполнения с подгрузкой нового кода на лету без остановки и перекомпиляции всего приложения и даже системы.

ZEN>>Интересный момент. В C# такое возможно на уровне классов? В Java -- да, в С/C++ -- нет.
AVK>В шарпе такое намного проще, ввиду того что компиляторы в виде классов есть в рантайме, умеют компилировать в память, стандартный класслоадер умеет shadow copy files, а Reflection.Emit позволяет формировать сборки в памяти вобще без компиляторов.

В Java такое тоже возможно (сам компилятор написан на Java): хоть из массива, хоть из потока, хоть с COM-порта.
Re[12]: Чем так привлекателен C++ ?
От: Mishka Норвегия  
Дата: 30.08.02 12:59
Оценка:
Здравствуйте iZEN, Вы писали:

ZEN>В Java такое тоже возможно (сам компилятор написан на Java): хоть из массива, хоть из потока, хоть с COM-порта.


А знаешь, что стандартная Java не поддерживает? Компиляцию динамически созданного кода в native код процессора.
Re[12]: Чем так привлекателен C++ ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 30.08.02 13:02
Оценка:
Здравствуйте iZEN, Вы писали:

ZEN>В Java такое тоже возможно (сам компилятор написан на Java): хоть из массива, хоть из потока, хоть с COM-порта.

Возможно, но никакого API под это нет, нужно писать свой класслоадер.

... Янус версия 1.0 alpha 2
AVK Blog
Re[13]: Чем так привлекателен C++ ?
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 30.08.02 15:24
Оценка:
Здравствуйте VladD2, Вы писали:

VD>>>Да к маразму старческому (не по годам) этот Страуструп апеллирует.

ГВ>>Ладно, давай без личностей ;)
VD>Так ты первый заговорил о велиичии личностей "Страус больше апеллирует к интеллектуальности".

Ну, если бы не он был автором и "ведущим кем-то там" по разработке языка, то я упомянул бы другого. Я аргументировал только его подходом, а не личными качествами (маразмом там, старостью, генальностью и пр.) Аналогично и про MS. Возможно, фраза была несколько неудачно построена... :(

ГВ>>Путём создания волны новых? Кстати, у тебя интересная, почти фрейдистская описка: последнее слово должно быть "стаВят" или "стОят"? Если "ставят", то хрен они что исправили в том же компиляторе C++, а если "стоят", то это её проблемы, пусть себе решает на здоровье. Нет. я не против маркетинга, я просто стараюсь ему не подчиняться.


VD>Второе (стоят). Ты подчиняешся догмам, хотя сам понимаешь, что что-то нужно менять.


Опять к личностям. OK. Тогда назови хоть одну из тех догм, которым я, по твоему мнению, подчиняюсь.

ГВ>>Значит, не особо нуждались, раз не стали применять. ;) (ИМХО)


VD>Просто реализовать удобный GC без поддержки компилятора невозможно.


В общем, согласен, особенно если непосредственно в язык введены идиомы работы с памятью.

VD>А Страуструп просто языком молол без соображения. У него похоже догмы еще глубже сидят. Ну, возможно пора давать дорогу молодым.


От блин! :) Vlad, давай больше Страуса вообще не будем упоминать. И Гейтса лично тоже. :)

ГВ>>Да пусть его хоть в рамках определения реализуют! Тогда только будет ясно, что именно в него надо добавлять.


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


Ты хочешь сказать, что что-то может решить все проблемы? Этакий философский камень? ;)
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[14]: Чем так привлекателен C++ ?
От: VladD2 Российская Империя www.nemerle.org
Дата: 30.08.02 15:57
Оценка:
Здравствуйте Геннадий Васильев, Вы писали:

ГВ>Ну, если бы не он был автором и "ведущим кем-то там" по разработке языка, то я упомянул бы другого. Я аргументировал только его подходом, а не личными качествами (маразмом там, старостью, генальностью и пр.) Аналогично и про MS. Возможно, фраза была несколько неудачно построена...


Правильно интеллектуальность не качество.

ГВ>Опять к личностям. OK. Тогда назови хоть одну из тех догм, которым я, по твоему мнению, подчиняюсь.


"С++ законченый язык. Его средствами можно реализовать хоть черта лысого, а занчит менять в нем ничего не нужно."

ГВ>От блин! Vlad, давай больше Страуса вообще не будем упоминать. И Гейтса лично тоже.


Ну, тогда и на MS нечего клепать.

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


ГВ>Ты хочешь сказать, что что-то может решить все проблемы? Этакий философский камень?


Я хочу сказать, что если проблемы есть, то их нужно решать, а не городить огород на ровном месте и не объяснять, что мол, а мне и так нравится.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Чем так привлекателен C++ ?
От: iZEN СССР  
Дата: 30.08.02 17:02
Оценка:
Здравствуйте Mishka, Вы писали:

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


ZEN>>В Java такое тоже возможно (сам компилятор написан на Java): хоть из массива, хоть из потока, хоть с COM-порта.


M>А знаешь, что стандартная Java не поддерживает? Компиляцию динамически созданного кода в native код процессора.


Это не проблема написать на Java, например, Pascal-компилятор для DOS/Windows (теория компиляторов знакома, надеюсь?). Но вот вопрос: зачем это нужно, когда многие вещи в самой Java делаются проще и быстрее(JIT) чем во многих старых компилируемых языках (операции по управлению памятью для строк, например). Так что возражения типа "в нативном коде быстрее будет" не принимаются -- просто это из другой области.
Re[13]: Чем так привлекателен C++ ?
От: iZEN СССР  
Дата: 30.08.02 17:06
Оценка:
Здравствуйте AndrewVK, Вы писали:

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


ZEN>>В Java такое тоже возможно (сам компилятор написан на Java): хоть из массива, хоть из потока, хоть с COM-порта.

AVK>Возможно, но никакого API под это нет, нужно писать свой класслоадер.

Для COM-порта есть JavaAPI.
Свой класслоадер наследуешь от абстрактного класса java.lang.ClassLoader, переопрееляешь пару-тройку методов и всё. :))
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.