- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
/*Вариант - вручную*/
#include <iostream>
#include <map>
#include <string>
#include <utility>
int main(int argc, char* argv[]) {
std::map<std::string, std::pair<int, int> > files;
files["0.txt"] = std::make_pair(0, 7);
files["1.txt"] = std::make_pair(8, 41);
files["2.txt"] = std::make_pair(42, 50);
std::map<std::string, std::pair<int, int> >::const_iterator begin = files.begin();
std::map<std::string, std::pair<int, int> >::const_iterator end = files.end();
int num = 21;
for (; begin != end; ++begin) {
if (num >= (*begin).second.first && num <= (*begin).second.second) {
std::cout << "Found in " + (*begin).first + "\n";
break;
}
}
return 0;
}
/*Вариант - STL+BOOST*/
#include <algorithm>
#include <functional>
#include <iostream>
#include <map>
#include <string>
#include <utility>
#include <boost/bind.hpp>
int main(int argc, char* argv[]) {
typedef std::map<std::string, std::pair<int, int> > map_type;
map_type files;
files["0.txt"] = std::make_pair(0, 7);
files["1.txt"] = std::make_pair(8, 41);
files["2.txt"] = std::make_pair(42, 50);
int num = 21;
map_type::const_iterator elem;
elem = std::find_if(
files.begin(),
files.end(),
boost::bind(
std::logical_and<bool>(),
boost::bind(
std::less_equal<int>(),
boost::bind(
&map_type::value_type::second_type::first,
boost::bind(
&map_type::value_type::second,
_1)
),
num),
boost::bind(
std::greater_equal<int>(),
boost::bind(
&map_type::value_type::second_type::second,
boost::bind(
&map_type::value_type::second,
_1)
),
num)));
if (elem != files.end())
std::cout << "Found in " + (*elem).first + "\n";
return 0;
}
Смысл в том, чтобы с данным значением(пример 21) пройтись по таблице и найти в каком элементе данное число(21) находится в диапазоне std::pair<int, int>...
Сначала написал вручную, но т.к. нужно было сделать с помощью STL, получилось сие чудо.
xXx_totalwar 13.05.2010 16:56 # +4
примерно на 800 каментов неудачный =))))
rudvil 14.05.2010 15:44 # 0
Говногость 14.05.2010 15:47 # +4
rudvil 14.05.2010 15:48 # +1
unfunk 13.05.2010 17:25 # +2
rudvil 14.05.2010 15:45 # 0
unfunk 14.05.2010 16:36 # +4
rudvil 14.05.2010 18:43 # 0
TarasB 13.05.2010 17:53 # +7
cfdev 13.05.2010 19:24 # 0
xXx_totalwar 13.05.2010 19:27 # +3
absolut 13.05.2010 21:11 # 0
xXx_totalwar 13.05.2010 21:18 # +2
absolut 13.05.2010 21:25 # +1
xXx_totalwar 13.05.2010 21:28 # 0
если язык правильно спроектирован, то встроенные средства дают базис для разработки, а в херово спроектированных приходится функциональность добирать костыликами
TarasB 13.05.2010 21:33 # +5
TarasB 13.05.2010 21:34 # −1
xXx_totalwar 13.05.2010 21:36 # 0
уже стопицот раз объясняли что с++ абсолютно негибкий и нелогичный. у него даже нет средств расширения языка, чтоб хоть как-то это говно поправить
zitzy 13.05.2010 21:58 # −1
haskell 13.05.2010 22:01 # −2
Нет?
Ну так и не будут за них платить.
zitzy 13.05.2010 22:12 # 0
haskell 13.05.2010 22:15 # −2
zitzy 13.05.2010 22:17 # 0
cfdev 13.05.2010 22:27 # 0
так с кучейбиблиотек можно "очень гибко" писать на си или асме. но долго.
xXx_totalwar 14.05.2010 05:48 # 0
да о какой гибкости и удобстве речь то идет?
это что зомбирование с++'ом?
Говногость 14.05.2010 15:10 # 0
pushkoff 14.05.2010 14:51 # 0
xXx_totalwar 14.05.2010 14:57 # +4
Paul Graham
pushkoff 14.05.2010 15:08 # 0
xXx_totalwar 14.05.2010 15:11 # +1
иначе мне не понятно почему эта тема постоянно всплывает
cfdev 14.05.2010 15:13 # 0
поэтому все срочно должны писать жутко оптимизированно, кто так не делает - тот дурак.
pushkoff 14.05.2010 15:14 # 0
cfdev 14.05.2010 15:16 # 0
pushkoff 14.05.2010 15:21 # 0
xXx_totalwar 14.05.2010 15:25 # 0
pushkoff 14.05.2010 15:29 # 0
в казуале 25-40...
zitzy 14.05.2010 16:41 # −4
xXx_totalwar 14.05.2010 16:47 # 0
а на чем удобней не тебе судить
zitzy 14.05.2010 16:51 # −3
xXx_totalwar 14.05.2010 15:21 # +1
xXx_totalwar 14.05.2010 15:17 # 0
неужели мания преследования святого STL спать не дает?
Говногость 14.05.2010 15:36 # +3
Не реагируйте просто ни накого. Меньше будет бесполлезных комментов на говнокоде. Сами пользуйтесь, а другим не говорите. Всё равно не все способны понять вашу точку зрения. Те кто способны - с вами спорить не будут, а те кто не способены - будут всё время перечить. И да. Возможно вы не правы. А возможно они правы. Это что-то меняет? Нет...
Просто не останавливайтесь на одном языке. Изучайте все, выбирайте наиболее подходящий для данной конкретной задачи.
Спорить о приемуществах языка на другими бесполезно.
Часто язык выбирается поставленной задачей. Тоесть один больше подходит для одного, а другой для другого. Лучших нет. Закон сохранения гласит: "Потерял в одном, поимел в другом".
xXx_totalwar 14.05.2010 15:45 # 0
pushkoff 14.05.2010 15:47 # +1
xXx_totalwar 14.05.2010 15:52 # 0
так это была лишь констатация факта
pushkoff 14.05.2010 15:58 # 0
xXx_totalwar 14.05.2010 16:01 # 0
однако как хорошо завуалировано, что решения эти, что называется, сделаны бездумно и в лоб.
И это Стандартная библиотека? что же ждать от нестандартных?
pushkoff 14.05.2010 17:06 # 0
xXx_totalwar 14.05.2010 17:09 # 0
pushkoff 14.05.2010 17:14 # 0
xXx_totalwar 14.05.2010 17:19 # 0
хватит, вдоволь гомном накормили уже - даже такой простейшей вещи как алгебраические типы нет (причем слито по этому пункту показательно), чтож про остальное говорить
pushkoff 14.05.2010 17:21 # 0
xXx_totalwar 14.05.2010 17:27 # 0
nil 15.05.2010 23:31 # 0
xXx_totalwar 16.05.2010 13:11 # 0
если уж приходится вылизывать код под лупой, то куда приятней это делать в чистом си или в каком-нибудь макроассемблере
nil 16.05.2010 13:25 # 0
А с чего все началось, что у меня на телефоне большая часть прог написана на питоне.
Я негодуе! Я щитаю, что на C/C++ было бы быстрее!
xXx_totalwar 16.05.2010 13:28 # 0
nil 16.05.2010 13:32 # 0
На меня эта история повлияла драматичнейшим образом, отныне ни одного лишнего байта памяти, ни одного лишнего такта! Кто знает, где завтра будет работать твой код, вдруг на кофемолке уже, а не на кофеварке?!
cfdev 14.05.2010 15:09 # +2
absolut 14.05.2010 15:12 # +2
cfdev 14.05.2010 15:49 # 0
TarasB 14.05.2010 17:00 # +1
pushkoff 14.05.2010 14:50 # 0
xXx_totalwar 14.05.2010 14:54 # 0
слегка поправил
absolut 14.05.2010 15:09 # +1
pushkoff 14.05.2010 15:09 # 0
xXx_totalwar 14.05.2010 15:48 # 0
констатировать факт - абсолютно другое.
есть какие-либо свидетельства гениальности архитектурных решений STL ?
pushkoff 14.05.2010 15:57 # 0
xXx_totalwar 15.05.2010 09:32 # 0
иди почитай что твой бог Степанов про ооп думает (небезосновательно)
http://neostalinist.livejournal.com/113278.html
>>Чтобы иметь дело с реальными проблемами, вам нужны многосортные алгебры -- семейства интерфейсов, которые простираются на многие типы.
>>Java сохраняет весь тот хлам, который я никогда не использую на C++ -- наследование, виртуальные функции -- объектно-ориентированное барахло -- и удалила вещи, которые я нахожу полезными.
в чем-то этот засранец прав
>>Оно начинается с классов
в чем-то не прав))
cfdev 15.05.2010 14:18 # 0
xXx_totalwar 15.05.2010 14:20 # +2
pushkoff 15.05.2010 19:59 # 0
cfdev 15.05.2010 22:17 # +1
pushkoff 16.05.2010 16:05 # 0
вот есть срач по поводу использования СТЛ в играх http://www.gamedev.ru/flame/forum/?id=85560
xXx_totalwar 16.05.2010 16:32 # 0
>Есть мапа, в нее заталкиваем обьектик каждъй (per-frame ofc), мапа по вертекс
>шейдеру. Елемент - другая мапа, по пиксель шейдеру. Чей елемент - толи вектор,
>толи опять мапа уже обьекта.
absolut 14.05.2010 16:07 # 0
И где факты ?
> есть какие-либо свидетельства гениальности архитектурных решений STL ?
Для начала то, что это СТАНДАРТНАЯ библиотека.
xXx_totalwar 14.05.2010 16:10 # +3
и это автоматически прививает иммунитет от говнокода, так?
absolut 14.05.2010 16:15 # −2
http://govnokod.ru/3218#comment26166
xXx_totalwar 14.05.2010 16:19 # 0
тем более такие 'факты' идут на йух
absolut 14.05.2010 16:28 # −2
xXx_totalwar 14.05.2010 16:30 # 0
absolut 14.05.2010 16:32 # −1
xXx_totalwar 14.05.2010 16:33 # 0
pushkoff 14.05.2010 14:49 # 0
xXx_totalwar 14.05.2010 14:53 # +3
pushkoff 14.05.2010 15:02 # −1
ах да, вы же живете в век Core i7 и 8Gb планок памяти... а вы не забыли что закон Мура для процов уже 2 года не действует? а программы становятся сложнее, а мобильные платформы все больше забивают рынок...
xXx_totalwar 14.05.2010 15:09 # +1
бритвы Оккама на них не хватает
>пиши свою
спс уж проживу без своих великов (тем более для плюсцов)
>вы же живете в век Core i7 и 8Gb
а вы все еще в девятнадцатом? когда возвратитесь машинку времени одолжите на выходные
>мобильные платформы все больше забивают рынок.
абсолютно монопенисуально на этот рынок
pushkoff 14.05.2010 15:11 # 0
xXx_totalwar 14.05.2010 15:15 # +1
есть лишь слепая вера в мифическую серебрянопульность с++ которую следует развеять
pushkoff 14.05.2010 15:16 # −5
xXx_totalwar 14.05.2010 15:20 # +1
а теперь расскажите про светлое будущее, написанное на с++
pushkoff 14.05.2010 15:24 # 0
xXx_totalwar 14.05.2010 15:27 # 0
все строго аналогично и в обратную сторону
реализуйте-ка алгебраические типы на 'святом с++'
pushkoff 14.05.2010 15:30 # −2
xXx_totalwar 14.05.2010 15:33 # +1
pushkoff 14.05.2010 15:36 # 0
xXx_totalwar 14.05.2010 15:39 # 0
но то, что гонор убавили - это хорошо
cfdev 14.05.2010 16:00 # +2
вот например в геймдеве, я делаю простенький декларативный движок (или как модно называть goal-oriented programming), т.е., я не code monkey и я не пишу вручную в каждом событии обновления типа "передвинуть объект туда-то". У каждой сущности есть поведение, поведение сстоит из действий (класс Action). У действий много разных характеристик: линейный таймаут, функция таймаута, линейная скорость, функция скорости, таргет-точка в пространстве или таргет-динамически изменяющееся Position у IPosable, куча всяких условий. И цимес в том, что некоторые моменты взаимоисключающие. Например, линейный таймаут (простое float-значение) не может быть сразу вместе с функцией таймаута. У типа действия Sleep не может быть таргета. Приходится использовать кучу флагов, все характеристики в одну кучу. Наследование здесь неприменимо, ибо будет каша и много ненужнхы сущностей.
С алгебраич. типами данных было проще намного. В общем, в этом плане C# (на чём пишу) и с++ - убогие такие язычки. Но на C# писать "убого" намного удобнее и без лишних телодвижений. В с++ много отвлекаешься на посторонние вещи и логика ускользает. В итоге и пишет пушкофф не особо обременённые АИ всякие танчики для мобилок.
xXx_totalwar 14.05.2010 16:04 # +2
сейчас же будет безапелляционная заявка о 'серебрянопульности ' высшего языка жрецов геймдева c++
cfdev 14.05.2010 16:26 # +2
Вот опять тот же таймаут.
текущее действие может быть 1) бесконечным (нет перехода к след. действию, пока не "заставят") 2) одномоментным (цель достигнута - идём дальше) 2) прерываемым, тогда нужно указать количество миллисекунд, при которых "терпение" уходит.
Алгебраически это было бы что-то типа так:
data Timeout = Infinite | Single | Concrete ms
а в убогом с++ надо извращаться через интегеры и делать конвеншонз типа: 0 это одномоментный, -1 это бесконечный, а больше нуля - тогда прерываемый, столько-то миллисекунд. Детский сад.
А теперь добавим сюда, что таймаут может быть плюс к тому же ещё и хитрой функцией. В с++ как там с лямбдами? Как вфигачить в существую архитектуру наравне с ms (можно сразу делать без ms, но лямбд-то нет!)? Флаги, флаги, флаги... Или десятки подклассов.
Говно.
xXx_totalwar 14.05.2010 16:34 # +4
pushkoff 14.05.2010 17:11 # −4
xXx_totalwar 14.05.2010 17:12 # +2
pushkoff 14.05.2010 17:15 # 0
pushkoff 14.05.2010 17:12 # −1
с ним удобнее... причем движков на С единицы, и они менее удобны...
xXx_totalwar 14.05.2010 17:25 # 0
я худею, вот это аргументация!
ооп головного мозга опасно прогрессирует
pushkoff 14.05.2010 17:27 # 0
xXx_totalwar 14.05.2010 17:33 # 0
это еще один стеб (или опять потенциальный слив?)
то, что в си++ гордо назвали ООП по сути кривовато спижженая версия ооп симулы (заметим, ооп и тут было не ахти)
pushkoff 14.05.2010 17:37 # 0
xXx_totalwar 14.05.2010 17:48 # 0
- оно мне нравится... есть еще вопросы??
еще раз Пола Грэма перечитай и пристыдись
pushkoff 14.05.2010 17:49 # 0
xXx_totalwar 14.05.2010 17:58 # 0
с c# опять мимо, ибо такое же говно, прочитай уже Грэма, спустись с плюсового пантеона, это уже начинает жалко выглядеть
pushkoff 14.05.2010 18:00 # 0
xXx_totalwar 14.05.2010 18:05 # 0
pushkoff 14.05.2010 18:26 # 0
cfdev 14.05.2010 17:45 # +2
> с ним удобнее...
в каком месте? рендеринг это чисто процедурная парадигма.
pushkoff 14.05.2010 17:46 # 0
pushkoff 14.05.2010 17:34 # 0
data Timeout = Infinite | Single | Concrete ms
> а в убогом с++ надо извращаться через интегеры и делать конвеншонз типа: 0 это одномоментный, -1 это бесконечный, а
> больше нуля - тогда прерываемый, столько-то миллисекунд.
enum в помощь... но я бы реализовал через абстрактный класс таймера, если типы таймеров могут различаться в рантайме или шаблон если тип определен заранее...
xXx_totalwar 14.05.2010 17:41 # +1
ахаха) что не пост, то слив:
не разобравшись в теме выдать 'гениальную' идею - плюсисты строго следуют своим курсом
хоть бы в вике почитал для начала что есть АТД http://en.wikipedia.org/wiki/Algebraic_data_type
pushkoff 14.05.2010 17:45 # 0
xXx_totalwar 14.05.2010 17:54 # 0
pushkoff 14.05.2010 17:55 # 0
cfdev 14.05.2010 17:48 # 0
я же говорю, кучи флагов. я должен флаги эти все вручную описывать. Имена им придумывать. variant-значения все в одну кучу хранятся. или через union'ы - куча потенциальных ошибок.
> но я бы реализовал через абстрактный класс
я же говорю, кучи подклассов. кучи ненужных сущностей. время впустую.
не годится с++ для полноценной логики. в нормальных языках этой одной строчкой реализуется.
pushkoff 14.05.2010 17:51 # 0
cfdev 14.05.2010 18:32 # +2
таймер - нужная сущность. но вот стопицот подклассов таймера, чтобы реализовать то, что реализуется в нормальных языках одной-двумя строчками в пределах ОДНОГО типа - это лишние, ненужные сущности.
pushkoff 14.05.2010 18:36 # 0
cfdev 14.05.2010 19:17 # 0
покажи реализацию "data Timeout = Infinite | Single | Concrete ms" на c++.
pushkoff 14.05.2010 19:19 # 0
guest 11.09.2012 16:47 # 0
можно попрекать плюсы отсутствием в них функциональщины (хотя новый стандарт внес дофига разных плюшек), и изо всех сил орать что С++ говно. только аналогично можно в любом языке найти недостатки. пхп - говно. питон - говно (ибо многозадачности толковой нет) и прочее-прочее тоже говно. и живете вы в говне и сами говнюки. и троллите всех, что б все тоже жили в говне. капец умнички.
каждый язык под свою задачу. многие задачи (включая твой алгебраический тип) можно громоздко или менее громоздко (от квалификации программиста зависит) реализовать на с++. вопрос - надо ли? может можно найти другой вариант? то что ты пользуешься кучей флагов и не можешь включить мозг, что б придумать, как сделать проще - минус тебе, а не языку. я могу экскаватором пытаться выкопать ямко для картошки и кричать, какое экскаватор говно, даже картошку им не посадить.
советую всем читающим этот феерический троллинг тупо забить на товарищей cfdev и xXx_totalwar
guest 17.05.2010 09:50 # 0
pushkoff 17.05.2010 12:14 # 0
ropuJIJIa 31.08.2023 02:04 # 0
pushkoff 14.05.2010 15:26 # 0
xXx_totalwar 14.05.2010 15:29 # 0
да, это действительно крайне популярный документ
pushkoff 14.05.2010 15:32 # 0
http://research.scee.net/files/presentations/gcapaustralia09/Pitfalls_of_Object_Oriented_Programming_ GCAP_09.pdf
удалите пробел перед GCAP, он вставляется автоматически
Говногость 14.05.2010 15:13 # +3
Неа. Закон мура гласит, что-то типа каждый год удвоение числа логических эллементов. Действует он. Сейчас штампуют всё больше ядер.
pushkoff 14.05.2010 15:15 # −4
Говногость 14.05.2010 15:39 # +5
Как это? Много ядер - много профита при правильном использовании. Хотя на С++ это приходится делать вручную...
pushkoff 14.05.2010 15:41 # −2
cfdev 14.05.2010 18:08 # +2
ну это в убогих языках типа с++. в языках, где данные immutable, синхронизация вообще не нужна (только доступ к файловой системе там, все дела). вот кстати напомнили, в чём ещё сосёт с++ - в распараллелировании.
xXx_totalwar 14.05.2010 18:15 # +2
любой бенч erlang VS с++ заканчивается полным фиаско последнего
xXx_totalwar 14.05.2010 18:21 # 0
guest 11.09.2012 16:52 # 0
плюсы - для своих задач. тем более лет им уже сколько. новомодные тенденции очень медленно в них просачиваются, что б сохранить совместимость с тоннами написанного кода. хотя б из уважения к сотням тысяч программистов не кидался какахами. ерланг крут в свой области, но только и исключительно в ней. и кстати, толковой доки по VM эрланга вообще в природе не существует. что это, повод кричат что эрланг - говно?
pushkoff 14.05.2010 18:27 # 0
xXx_totalwar 14.05.2010 18:30 # 0
какая это по счету отмазка в Кодексе Си-Плюсиста?
pushkoff 14.05.2010 18:35 # 0
pushkoff 14.05.2010 18:31 # 0
она там неявная, то есть обязательная... естественно не без подводных камней...
если ты хочешь сказать что ее там проще использовать, то я с тобой полностью согласен... С++ - довольно низкоуровневый язык для таких задач, но опять таки не без профита...
xXx_totalwar 14.05.2010 18:38 # 0
смотрим на бенч апач против yaws
pushkoff 14.05.2010 18:39 # 0
xXx_totalwar 14.05.2010 18:42 # 0
http://www.sics.se/~joe/apachevsyaws.html
pushkoff 14.05.2010 18:43 # 0
xXx_totalwar 14.05.2010 18:47 # 0
ну сравни, я не против
pushkoff 14.05.2010 18:49 # 0
я уверен что yaws не дотягивает по возможностям до апача и является менее защищенным и устойчивым к сбоям...
xXx_totalwar 14.05.2010 18:53 # 0
в общем утомил ты уже всех, пиши свои игрульки на плюсцах, только не ори про silver bullet
pushkoff 14.05.2010 19:05 # 0
cfdev 14.05.2010 19:13 # 0
в каком месте он сложен? алогичен, неортогонален - да, сложен - нет.
что сложного в ручном перебирании кирпичиков и считании, что это ООП и круто? вот какой-нибудь ОКАМЛ - "сложен", да.
pushkoff 14.05.2010 19:17 # 0
мне важны функции апдейта таймера, проверки срабатывания, создание, ну и еще фич каких нибудь...
cfdev 14.05.2010 19:22 # 0
мне важны функции апдейта таймера, проверки срабатывания, создание, ну и еще фич каких нибудь...
не понял, что вы хотите.
в моей реализации в том-то и дело, что никакие функции и "фичи" не нужны. программист декларирует поведение объектов (можно хоть в XML описать), а далее система сама расчитывает как объекты будут взаимодействовать (двигаться и т. п.). и я говорил не про таймеры, а про таймаут, это только одна из характеристик, что вы на ней зациклились.
pushkoff 14.05.2010 19:29 # 0
где описываются Infinite | Single | Concrete?
как проверить на срабатывание?
cfdev 14.05.2010 19:38 # +1
"data Timeout = Infinite | Single | Concrete ms"
- это и описание типа, и определение конструкторов.
Infinite, Single - это как бы и подклассы Timeout, и сразу же энумы и конструкторы, а Concrete ms какбы конструктор с аргументом, а ms это уже как бы сразу и поле объекта.
Как сделать то же на С++? На C# выходят тонны мусора.
pushkoff 14.05.2010 19:42 # −2
cfdev 18.05.2010 20:04 # 0
pushkoff 19.05.2010 20:01 # −2
guest 11.09.2012 16:55 # 0
если делать в лоб (например через всякие boost),то выйдут тонны мусора. или пиши на функциональном языке, или думай на императивном. если думать на функциональном (в терминах АТД), а писать на императивном - тогда и получаются крики что язык - говно. или инструмент поменяй или способ работы с ним. пока что говно - это твой мозг
xXx_totalwar 14.05.2010 19:14 # 0
нет, ну так меня довести мало кто может
носом ткнуть в твой пост?
pushkoff 14.05.2010 19:18 # 0
ткните пожалуста...
xXx_totalwar 14.05.2010 19:22 # 0
http://govnokod.ru/3218#comment26180
только не думай увиливать и сказочки рассказывать, что это все проделки злобных хацкеров
pushkoff 14.05.2010 19:25 # 0
xXx_totalwar 14.05.2010 19:27 # 0
сохрани хоть какое-то подобие чести
pushkoff 14.05.2010 19:35 # −2
да и судя по вашим попыткам, вера в серебрянопульность ваших технологий у вас больше... я неоднократно упоминал про то что для динамических языков есть свои задачи и я ими пользуюсь...
xXx_totalwar 14.05.2010 19:38 # 0
пользуйтесь своими динамическими языками, мне это уже давно не интересно
pushkoff 14.05.2010 19:44 # 0
cfdev 14.05.2010 19:12 # 0
с какой стати? в таких языках конкретный объект локален ВСЕГДА только для одного потока. синхронизировать там попросту нечего.
pushkoff 14.05.2010 19:15 # 0
cfdev 14.05.2010 19:24 # 0
а я тебе говорю, что в таких языках и разделяемых данных нет. сколько ещё раз повторить?
xXx_totalwar 14.05.2010 19:25 # 0
pushkoff 14.05.2010 19:29 # 0
haskell 14.05.2010 19:40 # 0
pushkoff 14.05.2010 19:46 # 0
haskell 14.05.2010 19:54 # 0
pushkoff 14.05.2010 20:05 # +1
когда-то давно, когда я учился в универе, профессор Святный нам сказал, что только в идеальном случае задача T выполнится на n процессорах за время T/n... но таких случаев не бывает, так как сбор результатов и синхронизация всегда требует времени... у любой реально существующей задачи есть предел при котором увеличение количества процессоров в 2 раза не приведет к увеличению производительности...
cfdev 14.05.2010 21:04 # 0
pushkoff 14.05.2010 23:54 # +1
guest 11.09.2012 17:01 # 0
функциональный язык с императивным на задачах, под который функциональный специально разрабатывался. вот же ж тролли. а erlang otp и vm ты будешь всем геймерам на машины ставить, что б у них проги на ерланге летали? или на мобилки запихивать? или на все shared hosting'и?
если популяризировать ерланг такими методами, то от него вообще все отвернуться. мне он очень нравится как язык, но в данном случае мне за него стыдно.
guest 11.09.2012 17:38 # 0
gEKA6PbCKuu_nemyx 22.12.2021 12:21 # 0
Support 24.12.2021 10:38 # 0
xXx_totalwar 14.05.2010 18:13 # +4
СКОЛЬКО?!
pushkoff 14.05.2010 18:27 # −1
xXx_totalwar 14.05.2010 18:29 # 0
с кем мы общаемся. мало того что ядра в процентах измеряет, так еще с намеком на бред
pushkoff 14.05.2010 18:33 # +1
xXx_totalwar 14.05.2010 18:36 # 0
оправдываться не стоит, уже нечего оправдывать, просран авторитет
pushkoff 14.05.2010 18:37 # 0
cfdev 14.05.2010 19:30 # 0
это на какую?
pushkoff 14.05.2010 19:40 # 0
если в задаче не нужно синхронизировать результат то С++ тоже не будет синхронизации... но опять таки, есть совсем не гипотетический процессор у которого есть кеш который процессору прийдется синхронизировать (хоть это будет и неявный оверхед), а как известно, работа с памятью является довольно тяжелой операцией (прув я уже выкладывал)...
Говногость 14.05.2010 15:42 # +2
Про производительность Мур ничего не говорил. Там говорилось именно о числе элементов. Это потом его кто-то перефразировал... В рамках одного ядра извратитель закона Мура был не прав. Действительно производительность не растёт. Но при верном распределении нагрузки на ядра - растёт. Большинство задач имеет многоядерные решения, хотя и не все.
OMuKPOH 26.12.2021 00:07 # 0
guest 17.05.2010 09:32 # 0
xXx_totalwar 17.05.2010 10:08 # 0
- С++ не в состоянии решить никаких, представленных перед ним задач
- Так и задумано
и на какой болт такой язык нужен?
pushkoff 17.05.2010 12:15 # 0
как бе количество программ написанных на С++ говорит об обратном...
xXx_totalwar 17.05.2010 13:13 # +1
pushkoff 17.05.2010 15:13 # 0
xXx_totalwar 17.05.2010 15:36 # +1
что я слышу! неужели нотки разума проскочили через потенциальный барьер фанатизма? доктор, это чудо.
>>он просто не имеет альтернатив
в природе нет задач которые лучше решать на с++ и только на нем, выбор есть всегда (разумеется это неверно в случае ограниченности развития, которое остановилось на с++, но фанатиков в чем-то убеждать гиблое дело)
pushkoff 17.05.2010 15:44 # 0
к стати что за софт вы пишете??
xXx_totalwar 17.05.2010 16:18 # 0
пишем в основном на erlang
(highload разумеется), был бы с++ уже б повесился
pushkoff 17.05.2010 16:22 # 0
xXx_totalwar 17.05.2010 16:23 # 0
(и с какой стати должен делится конфиденциальной информацией..)
pushkoff 17.05.2010 16:27 # 0
xXx_totalwar 17.05.2010 16:32 # 0
поэтому я за выбор оптимального инструмента под задачу
cfdev 18.05.2010 20:07 # 0
http://tirania.org/tmp/xpqetp.png
pushkoff 19.05.2010 20:06 # 0
хотелось бы увидеть еще версию с питоном на этом http://www.top500.org/system/details/10184 .
первая строчка немного не из той оперы... для теста актуальны только 2 и 3, либо использование simd в C++...
guest 17.05.2010 16:11 # 0
Ну ёпта, те, кто пишет на c++ естественно знают, что у него местами чрезвычайно уродливый синтаксис, и не хватает кучи вкусного.
>в природе нет задач которые лучше решать на с++ и только на нем, выбор есть всегда
Да? И на чём предлагаешь писать игры? Перемешать питон, паскаль, си, асм и кодогенерацию на коммон лиспе в одном проекте? Уж лучше просто взять плюсы. В них по крайней мере при надобности можно отказаться от ненужного.
xXx_totalwar 17.05.2010 16:46 # 0
ну и шлепали бы на плюсах, но нет, подавай им Lua
pushkoff 17.05.2010 21:34 # 0
а еще модификация без перекомпиляции, подгрузка скриптов на лету и тп плюшки...
cfdev 18.05.2010 20:08 # 0
в моно это всё возможно! о да!
и легко эмбедится.
guest 18.05.2010 02:18 # −1
xXx_totalwar 18.05.2010 06:18 # +1
и между прочим, идиот, у луа мощная регистровая ВМ с JIT (написано на православных сях)
guest 18.05.2010 18:34 # 0
xXx_totalwar 18.05.2010 18:40 # 0
nil 24.05.2010 08:47 # 0
Сорри, не сдержался, прошу пардону!
pushkoff 18.05.2010 19:57 # 0
cfdev 18.05.2010 20:12 # 0
ага, это было очень заметно в обливионе. можно целую вечность ждать, пока скрипт не сообразит (в основном это завершения квестов/триггеры квестов).
Говногость 18.05.2010 20:14 # 0
guest 18.05.2010 19:46 # −1
xXx_totalwar 18.05.2010 19:50 # +1
я про это всегда и говорю: инструмент должен выбираться под задачу
Говногость 18.05.2010 20:03 # +1
Будующая Windows 8 написан на C# и драйвера для неё тоже будут на нём. Удволетворён? Нэ?
Теперь за драйверо писательство можно будет посадить обезъян. У нас будут дрова на все времена.
guest 19.05.2010 10:48 # +2
cfdev 18.05.2010 20:06 # 0
> как бе количество программ написанных на С++ говорит об обратном...
хаха, на коболе наверное миллиард программ написано. Я бы не сказал, что это йтакой замечательный язык. кристальное, чистейшее говнецо.
pushkoff 19.05.2010 20:00 # −2
guest 15.07.2011 12:26 # 0
rudvil 14.05.2010 19:23 # +3
cfdev 14.05.2010 19:30 # +6
koodeer 15.05.2010 03:22 # +4
И полезно. Во всяком случае для меня.
UncleAli 17.05.2010 14:14 # 0
pushkoff 17.05.2010 15:14 # 0
Говногость 17.05.2010 19:15 # 0