HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > спор
xwider
Страницы (3): « 1 [2] 3 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


nemyax
Много чем. Компактность, простота, нормальный синтаксис (правда, первое, что я делал - заменил комментарии на С-стайл, так что моя лува не совсем канонiчная), отсутствие маразма с отступами, легкая встраиваемость в любую систему, отсутствие процедуры инсталляции. Лува это именно скриптовый язык для частных целей, а петон - разросшийся монстр, активно лоббируемый "уч0ными", которым проще отгавкаться фразой "ну напиши скрипт", чем оторвать задницу, разморозить мозги и таки сделать свой софт юзабельным.

Но разве я сказал, что петон надо вытеснять лувой? Все эти конструкторы а ля "сделай сам" надо вытеснять продуманными архитектурами на плюсах. А в качестве довеска "для любознательных" (т.е. кому функционала не хватило) лува подходит куда лучше.

Цитата:
nemyax писал:
ни даже быстродействия

А ты lua.dll в релизе компилил?

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127532

Старое сообщение 13-11-2013 11:54
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX

а можешь вот такой же дем про фортран сделать, интересно, что именно в нём не нравится как в узкоспециализированном яп.

ну а на python уже давно у меня выбор пал, из за того что на нём вот эта штука есть -- её и графики рисую и из результатов счёта мультфильмы делаю. она и с LaTeXом прексрано связывается.потому и думал, может и управление на него повесить, хотя я сегодня, внезапно обнаружил, что некоторые параметры можно менять не плавно, а скачком и разряд прекрасно к этому адаптируется, никаких нефизичных разбалтываний не возникает, так что может слишком большие заморочки на тему управления мне и не понадобятся.

__________________
http://www.moddb.com/mods/monorail-quest

Отредактировано thambs 13-11-2013 в 12:10

Сообщить модератору | | IP: Записан
Сообщение: 127535

Старое сообщение 13-11-2013 12:01
- За что?
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4151

Рейтинг



Цитата:
XaeroX писал:
А ты lua.dll в релизе компилил?

Я на ней даже не говнокодил (как и ни на чём другом, кроме петона и ерланга). Поэтому и спрашивал не с целью подколоть, а из любопытства.

Сообщить модератору | | IP: Записан
Сообщение: 127537

Старое сообщение 13-11-2013 12:06
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
а можешь вот такой же дем про фортран сделать, интересно, что именно в нём не нравится как в узкоспециализированном яп.

Не нравится главным образом морально устаревший синтаксис. С одной стороны - не язык ассемблера, но с другой - и не язык высокого уровня. Что-то среднее.
Все остальные беды проистекают из этого.
Скоро все маститые фортранщики умрут (от старости), и все забудут про этот ЯП, как про кошмарный сон. Все библиотеки/функции давно реализованы на С (те же Numeric Recipes).

Цитата:
thambs писал:
ну а на python уже давно у меня выбор пал, из за того что на нём вот эта штука есть -- её и графики рисую и из результатов счёта мультфильмы делаю

Ну вот а я как раз и пишу свой софт для этих целей.
Мне не совсем понятно, зачем там петон вообще. Вроде ничего не мешало сделать на плюсах. Ан нет. Есть два вивера, например, VMD и PyMol, первый труъ-сишный (с прикрученным Tcl как скриптовым языком), второй на петоне, и второй по функционалу (именно как гуй) куда удобнее. Причём видно, что это не петона достоинство, а людей, писавших софт. Что это, какое-то глобальное умственное помешательство? Или они скажут, что петон легче плюсов? Это не так, синтаксис можно освоить любой при желании, а приёмы программирования везде одинаковые. Под петон больше чужих библиотек? И это не так. Петон кроссплатформенный? Qt. На си надо следить за освобождением памяти и нулевыми указателями? Ну, с быдлокодерами мне вообще говорить не о чем.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127539

Старое сообщение 13-11-2013 12:48
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



>С одной стороны - не язык ассемблера, но с другой - и не язык высокого уровня. Что-то среднее.

ээ, а можно пример. у меня совершенно противоположное впечатление сложилось. ну когда в том же фортране что бы получить, например, целочисленный логарифм по основанию 2 я просто вызываю функцию exponent, а в ц для этого надо вручную выковыривать нужные байты floatного представления (в 11м стандарте вроде уже добавили такую функцию).

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

__________________
http://www.moddb.com/mods/monorail-quest

Отредактировано thambs 13-11-2013 в 13:22

Сообщить модератору | | IP: Записан
Сообщение: 127541

Старое сообщение 13-11-2013 13:02
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
ну когда в том же фортране что бы получить, например, целочисленный логарифм по основанию 2 я просто вызываю функцию exponent, а в ц для этого надо вручную выковыривать нужные байты floatного представления

Я не знаю, что тут сказать.
Фортран - это язык для компов с магнитными лентами и перфокартами.
С задачами тех лет он справлялся.
Сейчас его пытаются довести до уровня си и даже си++, но я не понимаю, кому это надо. Видимо, такие же фанаты, как и мы со своими ксашами и волатилами.
Перечислять достоинства С перед фортраном - это всё равно что объяснять, чем мерседес S600 лучше мопеда на 49 кубиков. Т.е. список преимуществ составить можно, а нужно ли?

Цитата:
thambs писал:
в 11м стандарте вроде уже добавили такую функцию

Может, авторы стандарта С и посходили с ума (всё возможно), но изначально в стандарте какие-либо функции отсутствовали в принципе. Как таковые. Это в фортране "в новой версии введены функции...", а в С - есть ЯП и есть функции. Их либо надо писать самому, либо заюзать библиотеку типа CRT. А можно не юзать стандартные функции вообще, и будет рабочая программа (например, запуск-вызов функции винапи-завершение).
В этом смысле не вижу препятствий написать функцию, выдирающую нужные байты флоат-представления. Один раз написал и юзай на здоровье. Кстати, это будет логарифм по основанию 10, разве нет? а логарифм по основанию 2 легко вычисляется двоичным сдвигом.

Добавлено 13-11-2013 в 19:39:

Цитата:
thambs писал:
ну или то что нельзя красиво бреакнуть цикл на несколько уровней вверх

Зачем красиво бреакнуть некрасивую конструкцию?
Есть же goto для таких случаев, даже Кармак юзал такой способ.
А вообще глубоко вложенных циклов лучше избегать.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127545

Старое сообщение 13-11-2013 13:39
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



>некрасивую конструкцию
поясни что с ними не так, мне этот момент не понятен. ну, например, 4 уровня -- это плохо?
>С задачами тех лет он справлялся. Сейчас его пытаются довести до уровня си и даже си++, но я не понимаю, кому это надо
так задачи для моделистов с тёх лет качественно, разьве изменились? параллельность добавилась и всё.

__________________
http://www.moddb.com/mods/monorail-quest

Отредактировано thambs 15-11-2013 в 09:41

Сообщить модератору | | IP: Записан
Сообщение: 127619

Старое сообщение 15-11-2013 09:28
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


thambs
Считается, что высокий уровень вложения циклов - это признак плохого стиля программирования. Как правило, это можно решить созданием отдельных функций. Тогда и проблем с брейками не будет.
Пример:

C++ Source Code:
1
Vector a[100];
2
Vector b[100];
3
for ( int i = 0; i < 100; ++i )
4
  for ( int j = 0; j < 3; ++j )
5
    b[ i ][ j ] += a[ i ][ j ];

Легко решается перегрузкой оператора += у класса Vector, и имеем:
C++ Source Code:
Vector a[100];
Vector b[100];
for ( int i = 0; i < 100; ++i )
  b[ i ] += a[ i ];

Проще и нагляднее.
Конечно, перегрузку операторов нежелательно использовать у классов, где значение оператора будет не очевидно интуитивно, но это уже другая история.
Если же красота кода мало заботит, то goto - прекрасный оператор для выхода из цикла любой вложенности. При этом этот оператор соответствует нативным машинным командам, т.е. не является сколько-нибудь вычислительно затратным.

Добавлено 15-11-2013 в 16:44:

Цитата:
thambs писал:
так задачи для моделистов с тёх лет качественно, разьве изменились? параллельность добавилась и всё.

Приёмы программирования изменились. Сейчас важно не только писать быстрый код, но и писать его быстро. Для этого и пригождаются всякие классы, шаблоны, операторы и прочие изыски плюсов.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127620

Старое сообщение 15-11-2013 09:44
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX

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

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 127621

Старое сообщение 15-11-2013 11:36
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Цитата:
thambs писал:
а есть библиотеки классов, реализующие размерности величин, так чтоб аж компилятор матерился, когда сантиметры с граммами сложить пытаешься?

Это легко сделать самому.
Этот код компилится:
C++ Source Code:
float d = 1.0f;
float w = 2.0f;
printf( "%f", d + w );


C++ Source Code:
1
class distance_t {
2
public:
3
  distance_t( float value ) : data( value ) {}
4
  distance_t operator +( distance_t &other ) { return data + other.data; }
5
private:
6
  float data;
7
};
8
class weight_t {
9
public:
10
  weight_t( float value ) : data( value ) {}
11
  weight_t operator +( weight_t &other ) { return data + other.data; }
12
private:
13
  float data;
14
};
15
 
16
distance_t d = 1.0f;
17
weight_t w = 2.0f;
18
printf( "%f", d + w );

А этот - нет.
Причём ошибка весьма внятная:
Цитата:
1> error C2679: binary '+' : no operator found which takes a right-hand operand of type 'main::weight_t' (or there is no acceptable conversion)
1> could be 'main::distance_t main::distance_t::operator +(main::distance_t &)'
1> while trying to match the argument list '(main::distance_t, main::weight_t)'

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

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127622

Старое сообщение 15-11-2013 11:47
-
nemyax
Нёмыч

Дата регистрации: Jul 2011
Проживает: (void)
Сообщений: 4151

Рейтинг



Цитата:
XaeroX писал:
Считается, что высокий уровень вложения циклов - это признак плохого стиля программирования. Как правило, это можно решить созданием отдельных функций.

Что будет работать быстрее?

Сообщить модератору | | IP: Записан
Сообщение: 127623

Старое сообщение 15-11-2013 11:52
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


nemyax
С хорошим компилятором - одинаково.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127624

Старое сообщение 15-11-2013 11:54
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX

эт, ясно, а так что бы размерности умножались друг на друга и возводились в степень? это, вроде, тогда надо в каждый класс вводить член хранящий степень длины, массы и времени. что то заморочено получается. ну или, по крайней мере, для всех производных величин. или там можно всё выкинуть сразу на этапе компиляции?

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 127625

Старое сообщение 15-11-2013 12:11
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34588
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


thambs
Проще определить новый класс, скажем, area_t или squareDistance_t.
И возвращать его как результат умножения двух distance_t (релизовав так же через оператор).
Да, получается весьма геморно, ну так это потому, что компьютеру ещё со времен фон Неймана глубоко плевать, расстояние у тебя во флоате хранится или площадь.

__________________

Сообщить модератору | | IP: Записан
Сообщение: 127626

Старое сообщение 15-11-2013 12:18
-
thambs
мразь конченная

Дата регистрации: Mar 2006
Проживает: -
Сообщений: 6417

Рейтинг



XaeroX
ну не то что геморно а в общем виде нереализуемо. хотя, в виде некоторого препроцессинга, ещё до передачи компилятору, такую проверку, вроде можно сделать. может уже и есть где ни будь.

__________________
http://www.moddb.com/mods/monorail-quest

Сообщить модератору | | IP: Записан
Сообщение: 127627

Старое сообщение 15-11-2013 12:23
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 23:15. Новая тема    Ответить
Страницы (3): « 1 [2] 3 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > спор
xwider
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024