Re[4]: MS, Windows и стратегический внедрёж ;-)
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.02.05 14:18
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нет, но сам факт того, что МС притягивает к себе такие проблемы (типа

C>японского премьера, которого компьютер наглухо закрыл в автомобиле) —
C>весьма интересен.

Я тут недавно случайно наблюдал... Один орел приехал на иномарке, закрыл машину и ушел. Машина на сингнализации... отперается с блелка. Так вот прошло пол часа-час. Ему понадобилась машина. Он к ней... А черт — сказал он — а машина то не открывается. Компьютера думаю там нет в помине. Но сам факт забавен. Причем не ясно, то ли у брелка батарейка села, то ли что-то глючит. Если последнее, то 150 баксов за эвакуатор и в ремонт. В общем, кайф сплошной от электроники.
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Системность
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.02.05 14:18
Оценка:
Здравствуйте, serg_mo, Вы писали:

СГ>>Короче говоря, в языках Java и C# просто нету возможности создавать системно необходимые типы данных.


_>А что это за типы данных такие?


Например, есть такие native int — число равное машинному слову. В принципе может поднять эффективность на платформах где оно не вписывается в один из целочисленных типов.
... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Системность
От: serg_mo  
Дата: 15.02.05 17:15
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Например, есть такие native int — число равное машинному слову. В принципе может поднять эффективность на платформах где оно не вписывается в один из целочисленных типов.


Ага, т. е. системные типы данных — это типы данных, которые имеют поддержку со стороны аппаратуры.

Сергей в своем посте привел примеры размещения переменных на стеке и в динамической области памяти. Честно говоря, я не совсем понимаю, почему явная возможность указания того, как распределять объект — на стеке или в динамической области — должно давать преимущество Оберону в embedded systems. В чем проигрыш, например, Java, которая позволяет размещать объекты _только_ в динамической области?
... << RSDN@Home 1.1.3 stable >>
Re[18]: Системность
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 15.02.05 17:42
Оценка:
Здравствуйте, serg_mo, Вы писали:


_>Сергей в своем посте привел примеры размещения переменных на стеке и в динамической области памяти. Честно говоря, я не совсем понимаю, почему явная возможность указания того, как распределять объект — на стеке или в динамической области — должно давать преимущество Оберону в embedded systems. В чем проигрыш, например, Java, которая позволяет размещать объекты _только_ в динамической области?

В скорости и нагрузке на GC. При использовании стека GC просто не подключается (правда нужно учитывать финнализаторы, но если их нет то и проблем нет)
Отсутствие вяве структу плохо влияет на скорость массивов в том числе хэш таблиц сортированных списков итд.
http://gzip.rsdn.ru/Forum/?mid=592884
Автор: Serginio1
Дата: 02.04.04

http://gzip.rsdn.ru/Forum/?mid=592884
Автор: Serginio1
Дата: 02.04.04
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[19]: Системность
От: serg_mo  
Дата: 16.02.05 11:41
Оценка:
Здравствуйте, Serginio1, Вы писали:

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


S> В скорости и нагрузке на GC. При использовании стека GC просто не подключается (правда нужно учитывать финнализаторы, но если их нет то и проблем нет)

S> Отсутствие вяве структу плохо влияет на скорость массивов в том числе хэш таблиц сортированных списков итд.
S> http://gzip.rsdn.ru/Forum/?mid=592884
Автор: Serginio1
Дата: 02.04.04

S> http://gzip.rsdn.ru/Forum/?mid=592884
Автор: Serginio1
Дата: 02.04.04


И все? Хм... Как-то несолидно. С тем же успехом можно сказать, что язык, компилируемый в байт-код, нельзя назвать системным, т. к. он проигрывает в скорости скомпилированным в машинный код программам.

ИМХО, должны быть какие-то более весомые аргументы.
... << RSDN@Home 1.1.3 stable >>
Re[20]: Системность
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 16.02.05 11:49
Оценка:
Здравствуйте, serg_mo, Вы писали:

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


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


S>> В скорости и нагрузке на GC. При использовании стека GC просто не подключается (правда нужно учитывать финнализаторы, но если их нет то и проблем нет)

S>> Отсутствие вяве структу плохо влияет на скорость массивов в том числе хэш таблиц сортированных списков итд.
S>> http://gzip.rsdn.ru/Forum/?mid=592884
Автор: Serginio1
Дата: 02.04.04

S>> http://gzip.rsdn.ru/Forum/?mid=592884
Автор: Serginio1
Дата: 02.04.04


_>И все? Хм... Как-то несолидно. С тем же успехом можно сказать, что язык, компилируемый в байт-код, нельзя назвать системным, т. к. он проигрывает в скорости скомпилированным в машинный код программам.


_>ИМХО, должны быть какие-то более весомые аргументы.


Не совсем. Сейчас у Явы уже давно свой JIT в Net он изначально существует. И основная причина нападок нативных программистов как раз касается скорости. Введение в Net валуе типов резко сократило разность по скорости. Кроме всего прочего при применении больших модифицирующихся массивов (списков ) вступает райт бариер который начинает существенно торморзить как в Net так и Java (в десятки раз сильно напрягая GC)
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re[5]: Оберон vs все остальное
От: mister-AK Россия  
Дата: 16.02.05 13:53
Оценка:
Здравствуйте, Сантехник, Вы писали:

С>Здравствуйте, Трурль, Вы писали:


Т>>Трудно проидумать что-либо более уродливое, чем C#.


С>Объясни, если не трудно, что именно тебе в нем кажется уродливым.


навскидку:
1. приведение типов по колличеству написания скобочек проигрывает делфям в 1,5 раза
2. количество атрибутов private/protected/public стремиться к колличеству полей в классе
3. определен тип или переменная в классе сходу заметно?
Re[6]: Оберон vs все остальное
От: Cyberax Марс  
Дата: 16.02.05 13:57
Оценка:
mister-AK пишет:

> Т>>Трудно проидумать что-либо более уродливое, чем C#.

> С>Объясни, если не трудно, что именно тебе в нем кажется уродливым.
> навскидку:
> 1. приведение типов по колличеству написания скобочек проигрывает
> делфям в 1,5 раза

Фигня...

> 2. количество атрибутов private/protected/public стремиться к

> колличеству полей в классе

Ага, "настоящие парни" делают все поля public...

> 3. определен тип или переменная в классе сходу заметно?


Да.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[5]: Оберон vs С#
От: mister-AK Россия  
Дата: 16.02.05 14:01
Оценка:
Здравствуйте, Silver_s, Вы писали:

S_>А может лучше так? C# такое на ура проглотит, главное не окосеть самому.



S_>
S_>public delegate Action Action(Action Action);
S_>class Insane
S_>{
S_>    Action Action(Action Action)
S_>    {
S_>        Action(Action);
S_>        return Action;
S_>    }
S_>    public void Call()
S_>    {
S_>        Action(new Action(Action));
S_>    }
S_>}
S_>


44:12 в пользу паскалеобразности
Re[7]: Оберон vs все остальное
От: mister-AK Россия  
Дата: 16.02.05 15:13
Оценка:
Здравствуйте, Cyberax, Вы писали:

я писал:
>> 1. приведение типов по колличеству написания скобочек проигрывает
>> делфям в 1,5 раза

C>Фигня...


шарп-фанат?

>> 2. количество атрибутов private/protected/public стремиться к

>> колличеству полей в классе

C>Ага, "настоящие парни" делают все поля public...


угу, смешно

>> 3. определен тип или переменная в классе сходу заметно?


C>Да.


субъектив
Re[8]: Оберон vs все остальное
От: Cyberax Марс  
Дата: 16.02.05 15:23
Оценка:
mister-AK пишет:

> я писал:

>>> 1. приведение типов по колличеству написания скобочек проигрывает
>>> делфям в 1,5 раза
> C>Фигня...
> шарп-фанат?

С++-фанат, но вполне осознаю, что Java/C# — замечательные инструменты
для многих задач.

>>> 2. количество атрибутов private/protected/public стремиться к

>>> колличеству полей в классе
> C>Ага, "настоящие парни" делают все поля public...
> угу, смешно

Какой вопрос — такой ответ.

>>> 3. определен тип или переменная в классе сходу заметно?

> C>Да.
> субъектив

Какой вопрос — такой ответ.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[9]: Оберон vs все остальное
От: mister-AK Россия  
Дата: 16.02.05 15:28
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>mister-AK пишет:


>> я писал:

>>>> 1. приведение типов по колличеству написания скобочек проигрывает
>>>> делфям в 1,5 раза
>> C>Фигня...
>> шарп-фанат?

C>С++-фанат, но вполне осознаю, что Java/C# — замечательные инструменты

C>для многих задач.

угу, заметно, что фанат.. один фиг что плюсов, что шарпов, что дельфов... вполне осознанно к этому понятию не применимо

>>>> 2. количество атрибутов private/protected/public стремиться к

>>>> колличеству полей в классе
>> C>Ага, "настоящие парни" делают все поля public...
>> угу, смешно

C>Какой вопрос — такой ответ.

вопрос задавал не я, попутал ты малёк
Re[6]: Оберон vs все остальное
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.02.05 06:00
Оценка:
Здравствуйте, mister-AK, Вы писали:

MA>навскидку:

MA>1. приведение типов по колличеству написания скобочек проигрывает делфям в 1,5 раза
Оччень интересно.
(int)i

супротив
int(i)

Может, у меня проблемы с устным счетом?
MA>2. количество атрибутов private/protected/public стремиться к колличеству полей в классе
Это верно. Тут уж выбирать — либо размечать атрибуты зонами (как в Delphi), либо приписывать к каждому мемберу. Предпочли второе, т.к. с учетом присутствия тел методов отслеживать текущую область видимости становится крайне неудобно.
MA>3. определен тип или переменная в классе сходу заметно?
Вот этого я не понял. Это про трудности отличения
private int _someIdentifier=0;

от
public class SomeIdentifier
{
}

? Странно. Ни разу с такой проблемой не сталкивался.
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[7]: Оберон vs все остальное
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 17.02.05 11:14
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, mister-AK, Вы писали:


MA>>навскидку:

MA>>1. приведение типов по колличеству написания скобочек проигрывает делфям в 1,5 раза
S>Оччень интересно.
S>
S>(int)i 
S>

S>супротив
S>
S>int(i)
S>

S>Может, у меня проблемы с устным счетом?
  ((MyClass) obj).xxx


супротив

       MyClass(obj).xxx


Согласенн нужно тебе немного подучить арифметику
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
и солнце б утром не вставало, когда бы не было меня
Re: Оберон vs все остальное
От: Кодт Россия  
Дата: 18.02.05 00:21
Оценка: 51 (2) :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Загадка. Слабо на Си или Си++ написать тип функции принимающей в качестве аргумента и возвращающей переменную ее собственного типа?


СГ>На Component Pascal это элементарно:

СГ>
СГ>TYPE
СГ>  Action = PROCEDURE (a: Action): Action;
СГ>


Решение для С++, правда, требующее класса-хелпера.
#include <iostream>
using namespace std;

struct action_wrapper
{
  typedef action_wrapper (*func_type) (action_wrapper a, int x);

  func_type func; // обёрнутое данное

  action_wrapper(func_type f) : func(f) {} // приведение функции к обёртке
  operator func_type() const { return func; } // приведение обёртки к функции
};
typedef action_wrapper::func_type action; // вынесем, для удобства, в глобальное пространство имён

// это - глобальные функции
action_wrapper foo(action_wrapper a, int x);
action_wrapper bar(action_wrapper a, int x);
action_wrapper buz(action_wrapper a, int x);

// реализацию сделаем какую-нибудь кудрявую, чтобы не было шансов для инлайна
action_wrapper foo(action_wrapper a, int x)
{
  cout << "foo(" << x << ")" << endl;
  return x%2 ? a : bar;
}
action_wrapper bar(action_wrapper a, int x)
{
  cout << "bar(" << x << ")" << endl;
  return foo(buz,x);
}
action_wrapper buz(action_wrapper a, int x)
{
  cout << "buz(" << x << ")" << endl;
  return a(foo,x);
}

int main()
{
  cout << "--- цепочка ---" << endl;
  buz(foo,1)(bar,2)(buz,3);

  cout << "--- автомат ---" << endl;
  action f = foo, g = bar;
  for(int i=1; i<10; ++i)
  {
    g = f(g,i);
    f = g;
  }
  return 0;
}

Заметь, мне не пришлось рожать классы для каждой функции — ровно один класс на тип. И шаблонов здесь тоже нет. И трюков с реинтерпретацией.
А ещё заметь, что sizeof(action_wrapper) == sizeof(FUNCPTR), то есть никаких накладных расходов!
Перекуём баги на фичи!
Re[9]: Оберон vs все остальное
От: Кодт Россия  
Дата: 18.02.05 00:25
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

C>>Кстати, а как твоим функциям передавать КОНТЕКСТ вычислений? Или как обычно, через глобальные переменные?


СГ>Да.


СГ>Только глобальные переменные в модульных языках — это вовсе не тоже самое что глобальные переменные в не модульных языках. В модульных языках все переменные находятся внутри модулей, а модули загружаются в память и выгружаются из нее динамически во время работы программы — то есть никакие они (переменные) вовсе не "глобальные" в строгом смысле этого слова.


Значит, реентерабельность, а тем более параллелизм идут лесом.

СГ>Впрочем, если возникает необходимость в нескольких контекстах вычисления одновременно, то Вы правы, тут уже надо использовать ООП, и смысл в именно такой функции какую просил я значительно снижается — ведь можно использовать для того же самого другие средства уже свойственные только ООП.


Старое доброе процедурное программирование никто не отменял. Контекст передаётся как параметр. Если уж так хочется без ООП.
Перекуём баги на фичи!
Re[11]: Оберон vs все остальное
От: Кодт Россия  
Дата: 18.02.05 00:26
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

C>>Плевать, два потока, исполняющие один код я запустить уже не смогу.

C>>А контекст нужно передавать ВСЕГДА (в 99.99% случаев), иногда только
C>>можно для целей оптимизации использовать глобальные переменные.

СГ>А если система встроенная и там потоков нет?


Достаточно прерываний.
Перекуём баги на фичи!
Re[12]: Оберон vs все остальное
От: Кодт Россия  
Дата: 18.02.05 00:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Кстати, на С такая функция будет выглядеть так:

C>void* func(void* someFunc)
C>{
C>    return someFunc;
C>}

C>...
C>void funcPtr=func(&func);
C>assert(funcPtr==&func);

C>Хотя нетипобезопасно получается, но во встроенных системах (если уж о них разговор) это обычно не так важно.

Поправочка. В общем случае void* и void(*)() неприводимы друг к другу.
typedef void(*voidfunc)();

typedef voidfunc(*automate)(voidfunc);

voidfunc foo(voidfunc f) { return rand()%2 ? f : bar; }
voidfunc bar(voidfunc f) { return rand()%2 ? f : foo; }

int main()
{
  automate f = foo, g = bar;
  for(int i=0; i<10; ++i) f=(automate)(g(f)), g=f;
}
Перекуём баги на фичи!
Re[6]: Оберон vs все остальное
От: Сантехник Беларусь  
Дата: 21.02.05 07:15
Оценка:
Здравствуйте, mister-AK, Вы писали:

Т>>>Трудно проидумать что-либо более уродливое, чем C#.


С>>Объясни, если не трудно, что именно тебе в нем кажется уродливым.


MA>навскидку:

MA>1. приведение типов по колличеству написания скобочек проигрывает делфям в 1,5 раза



MA>2. количество атрибутов private/protected/public стремиться к колличеству полей в классе


Ага, намного удобнее лазить по простыням C++ кода, выискивая, в каком visibility scope объявлено поле.

MA>3. определен тип или переменная в классе сходу заметно?


Никаких проблем. Особенно учитывая способности современных IDE подсвечивать и "интеллисенсить" всю необходимую
инфу на лету.

Резюмируя: Не кажется, что этих аргументов, тем более сугубо "имховых", недостаточно, чтобы называть язык "уродливым"?
... << RSDN@Home 1.1.4 beta 3 rev. 264>>
Re[16]: Оберон vs все остальное
От: XopoSHiy Россия http://cleancodegame.github.io/
Дата: 21.02.05 12:05
Оценка: +1
Здравствуйте, Кодёнок, Вы писали:


СГ>>Да ладно Вам фантазировать, ничего вылавливать не надо, все пишется в 1 экземпляре в одном модуле.


Кё>Это опыт работы с Дельфи...


У плохого танцора всегда Дельфи виновата
В Дельфи есть стандартные контейнеры. Даже если бы и не было, можно было бы написать.
Точно также как и в обероне, я уверен, можно написать набор стандартных контейнеров о которых вы молвите.
Отсутствие generic-ов в Языке причиняет некоторые неудобства — это факт, но и без них можно достаточно легко обходится стандартными контейнерами.
---
http://twitter.com/xoposhiy
http://xoposhiy.moikrug.ru
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.