Что, господа суровые С++ программисты, поспорим быстродействием с отстойной Джавой? ;)

 
1 23 24 25 26 27 28 29
US Сергей-4030 #07.02.2011 22:18  @tarasv#07.02.2011 22:15
+
+1
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
tarasv> Вот чем всегда веселили чистые сишники так это уверенностью в том что они влегкую уложатся в совершенно фантастические сроки (читай бюджет).
tarasv> ЗЫ: Джаву и разработали во много для того чтобы укладываться в соврешенно фантастические для С/С++ сроки разработки ;)

Собственно, как раз в этом топике Реконструктором и вашим покорным слугой была проведена наглядная иллюстрация тезиса. ;)
 8.0.552.2378.0.552.237
IL digger #07.02.2011 22:24  @Сергей-4030#07.02.2011 22:18
+
-
edit
 

digger

аксакал

На практике выходит,что если нет постановки задачи,то ресурсы те же, но примочек больше.Не далее как вчера наблюдал в одном почтенном заведении текстовый УИ и зеленый экран, девушка с ним работала не медленнее,чем с современными графическими интерфейсами.На написание такового и было потрачено минимум времени еще в каменном веке, и ест оно ресурсов мало,так как терминал.
 3.6.83.6.8
+
-
edit
 

Balancer

администратор
★★★★★
digger> На написание такового и было потрачено минимум времени

И опять всё сводится к интерфейсам... Для Java это, как раз, дело десятое.

Вообще, ты точно споришь о вкусе апельсинов, покушав их? Сколько ты проектов на Java написал? Хотя бы под себя заточенных?
 

tarasv

опытный

digger> Не далее как вчера наблюдал в одном почтенном заведении текстовый УИ и зеленый экран,

И при чем здесь С/С++ vs Java? Программы с GUI на Java очень редкий зверь, Роман вспомнил Eclipse я могу добавить IDEA и инсталлятор Оракла - все остальное многообразие в основном на плюсах и написанно. А на практике, для написания UI (GUI там совершенно не нужен, но блин куда от него теперь деться) поточного ввода данных, швейцарский ножик C/C++ c CLX или любой другой терминальной библиотекой вдрызг проигрывает хорошо заточенному на это дело топору типа Clipper или FoxPro.
 3.6.133.6.13
EE Татарин #07.02.2011 23:28  @tarasv#07.02.2011 20:41
+
-
edit
 

Татарин

координатор
★★★★☆
tarasv> Тоесть дело не столько в иструменте, как думают тут многие чистые сишники, ресурсожрущей хрени на плюсах написаны горы, а в том что идеология разработки бизнес приложений с минимальными коррективами, а иногда и напрямую переносится на разработку приложений для мобильных устройств.
Инструмент формирует способ мышления и диапазон возможностей.
Тем паче, что он сейчас повсеместно используется для начального обучения.

Понятно, что С(++) позволяет написать говнокод любой требуемой степени отстойности. Инструмент-то - гибкий.
Но там всё-таки нужно уделять внимание вещам, которые абсолютно скрыты от для программиста на Яве. Например, требуемая программе память: невозможно же этим на Яве управлять - кроме проги есть вещи-в-себе, как то - ВМ, которая ещё и оптимизирует в процессе, сборщик мусора, который неизвестно когда примется за свою работу и сколько ещё времени будет держать память.
Так что подход воспитывается только один: "мало? Добавь ещё планок, они нынче подешевели!" Другое - уже немыслимо для человека, который уже долго сидит на яве и т.д.
Инструмент - воспитывает. Он изначально задуман таким, ограничивающим программиста: еду там не дают, пока руки не помоешь, а в носу поковыряться принципиально невозможно.
Он и ограничивает, всё честно. И воспитывает, и следит.

А при таких делах подобные проблемы как бы весьма ожидаемы.

tarasv> Результат естественно будет далеко не блестящий. Обратный путь тоже не работает - проект бизнес приложения написанного по идеологи встроенного скорее всего будет провальным по бюджету и времени реализации без заметных плюсов по сравнению с обычным для бизнес приложений подходом.
Перейти с С++ на Яву (выбрать из множества путей один) - можно, и это занимает меньше времени, чем обратно (научить многообразию). Пример первого - я сам (да как и многие тут как бы уже давно писали к моменту появления Явы), пример второго у меня перед глазами.
...А неубитые медведи делили чьи-то шкуры с шумом. Боюсь, мы поздно осознали, к чему всё это приведёт.  9.0.597.849.0.597.84
EE Татарин #07.02.2011 23:33  @tarasv#07.02.2011 23:21
+
-
edit
 

Татарин

координатор
★★★★☆
digger>> Не далее как вчера наблюдал в одном почтенном заведении текстовый УИ и зеленый экран,
tarasv> ... швейцарский ножик C/C++ c CLX или любой другой терминальной библиотекой вдрызг проигрывает хорошо заточенному на это дело топору типа Clipper или FoxPro.
Я-я. И есть серьезные основания полагать, что тот текстовый ЮИ именно на чем-то подобном и был сделан. :)
В некоторых банках ещё пару лет можно было такие клиенты встретить... сейчас-то большинство на веб перешли: клиент-сервер легче реализуется.
...А неубитые медведи делили чьи-то шкуры с шумом. Боюсь, мы поздно осознали, к чему всё это приведёт.  9.0.597.849.0.597.84
US Mishka #08.02.2011 06:03  @Татарин#07.02.2011 19:02
+
-
edit
 

Mishka

модератор
★★★

Татарин> Огромное число микроконтроллеров - гарвардская архитектура, но это, конечно, недостаточно далеко от (хотя и эти отличия некоторых удивляют).

Хм, Гарвардская уже везде нонче. Тот же Интель. Ну и IBM-370 уже была по ней частично. Хотя и 360 серия уже существенно не фон неймовская. Тот же канальный процессор, водопровод, выполнение части задач на адресном устройстве (знаменитый быстрый способ инкремента регистра для 24 битных значений). Тот же Барроуз уже другой. В реальной жизни фон неймовской уже и не осталось ИМХО.

Татарин> ПЛИС - вот это действительно даже близко не фон Нейман. Но применяют их очень узко, только как замену ASIC, примеры реального использования всей их мощи и гибкости - единичны. Не в последнюю очередь потому, что нет культуры их применения: про них рассказывают инженерам-электронщикам, и электронщики на них решают свои, инженерно-электронные задачи.

Ну, ПЛИСки сродни математическим. Только у математических вычислений вообще задержка нулевая. :lol:

Татарин> Самое раздолье - это спецвычислители для какой-нить конкретной задачи, навроде кодирования видео или изготовления 3д-картинки. ВОт там (поскольку совместимости не требуется, а требуется скорость и дешевизна) бывают решения неожиданные и очень интересные. Всё-таки CUDA - это уже вовсе не фон Нейман.

CUDA, это по большей части SIMD. Даже и не MIMD. Вот Cell был настоящий MIMD. И эта квалификация существует уже очень давно. Странно, нам давали на спецкурсах на 4-м курсе всё это.

Задачи под это всё дело (не под MIMD) должны быть специфические. Правда, MISD очень редкая архитектура. Но в качестве одновременно работающих разных фильтров очень неплоха. Скажем, в анализе сетевых данных для поиска паттернов часто просто идеальна. Но тоже случаи специфические.
 3.6.133.6.13
US Mishka #08.02.2011 06:05  @Татарин#07.02.2011 19:04
+
-
edit
 

Mishka

модератор
★★★

Сергей-4030>> Я тогда не понял юмора с XML.
Татарин> Я тоже.

Я тоже. К этому и вёл. :)
 3.6.133.6.13
BG Реконструктор #19.05.2011 22:45
+
-3
-
edit
 
tarasv> Вот чем всегда веселили чистые сишники так это уверенностью в том что они влегкую уложатся в совершенно фантастические сроки (читай бюджет).
tarasv> ЗЫ: Джаву и разработали во много для того чтобы укладываться в соврешенно фантастические для С/С++ сроки разработки ;)

Чем больше времени проходит, тем яснее становится тенденция что на написание написание программного кода уходит все меньшая доля общих ресурсов. В современной IT индустрии на кодерство (или того, что может сойти за него) уходит не более 20% процентов рабочего времени. Вот например на XML-базированое описание GUI Андроида я трачу очень много времени, намного больше чем на написание java-кода. Также очень много времени уходит на идиотский американ-стайл менеджмент, который изобилует полностью бессмысленными мийтингами, заполнением каких-то безумных таблиц за выполненную работу и т.д.
 4.0.14.0.1
US Сергей-4030 #19.05.2011 23:03  @Реконструктор#19.05.2011 22:45
+
+3
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
Реконструктор>... идиотский американ-стайл менеджмент, который изобилует полностью бессмысленными мийтингами, заполнением каких-то безумных таблиц за выполненную работу и т.д.

Казалось бы за чем дело стало - напиши все без бессмысленных митингов, безумных таблиц и всего такого. Напиши, скажем, систему проектирования, или еще чего. :lol: Но почему-то вместо написания продукта Реконструктор предпочитает жаловаться на менеджмент.

PS Реконструктор, не вам судить дизайн и менеджмент, вот это уж точно. Это показала практика.
 11.0.696.6811.0.696.68
RU Balancer #20.05.2011 00:41  @Реконструктор#19.05.2011 22:45
+
-
edit
 

Balancer

администратор
★★★★★
Чего это ты из под Linux пишешь? Ты же всегда был Linux-ненавистником, ЕМНИП :)
 
BG Реконструктор #20.05.2011 10:44  @Balancer#20.05.2011 00:41
+
-
edit
 
Balancer> Чего это ты из под Linux пишешь? Ты же всегда был Linux-ненавистником, ЕМНИП :)

Linux уже давно не тот. ;) Если бы не игры, с окнами можно уже завязывать.

ПС Надо признать, что для разработки большинства типов ПО, он как бы более натуральная система.
 4.0.14.0.1
DE alexsolo #20.06.2011 14:19  @Реконструктор#20.05.2011 10:44
+
-
edit
 

alexsolo

новичок
Еще одно интересно решение на си (размер исходника: 831 байт, 17 секунд для нахождения количества решений для n=16)

http://pastebin.com/FCxAjh38

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

typedef unsigned long ulong;
static const ulong ulong_bit = sizeof(ulong) * CHAR_BIT;

static inline ulong search(ulong lb, ulong cb, ulong rb, ulong cnt) {
if (~0ul == cb)
cnt += 1;
else{
ulong bs;
for (bs = lb | cb | rb; ~0ul != bs;) {
ulong b = ~bs & (bs+1);
bs |= b;
cnt = search((lb | b) << 1, cb | b, (rb | b) >> 1, cnt);
}
}
return cnt;
}

static inline ulong nQs(ulong m) { return search(0, ~0ul >> m, 0, 0); }

int main(int argc, char* argv[]) {
ulong a = argc < 2 ? ulong_bit : atol(argv[1]);
ulong n = a < ulong_bit ? a : ulong_bit;
ulong i;
for (i=1; i<=n; ++i) printf("%li: %li total solutions\n", i, nQs(i));
return 0;
}
 14.0.794.014.0.794.0
DE alexsolo #29.08.2011 14:42  @alexsolo#20.06.2011 14:19
+
-
edit
 

alexsolo

новичок
Новости с полей :)

1. Алгоритмы рулят!

A Story about the N-Queens Problem: From Exponential to (Almost) Constant Time

Математика. Комбинаторика и переборные задачи. A Story about the N-Queens Problem: From Exponential to (Almost) Constant Time. // algolist.ru
 

The final version of the algorithm is capable of solving the n-queens problem in a linear time. On an IBM RS6000, it takes around 55s to find a solution to the problem size of 3,000,000.

2. Еще код на си (размер исходника: 140 байт (!!!), 24 секунды для нахождения всех решений для n=16, sorry не уникальных)

[C] t(a,b,c){int d=0,e=a&~b&~c,f=1;if(a)for(f=0;d=(e-=d)&-e;f+=t(a-d,(b+d)*2, (c+d) - Pastebin.com

PASTEBIN  |  #1 paste tool since 2002 create new pastetoolsapiarchivefaq PASTEBIN create new paste     trending pastes sign uploginmy alertsmy settingsmy profile Don't like ads? PRO users don't see any ads ;-) Public Pastes UntitledPHP | 2 sec agoUntitled9 sec agoUntitled4 sec agoUntitled4 sec agoUntitled9 sec agoUntitled10 sec agoUntitled16 sec agoUntitledPHP | 36 sec ago By: a guest on Aug 29th, 2011  |  syntax: C  |  size: 0.14 KB  |  hits: 40  |  expires: Never download  |  raw  |  embed  |  report abuse  |  print Text below is selected. // Дальше — pastebin.com
 
code text
  1. t(a,b,c){int d=0,e=a&~b&~c,f=1;if(a)for(f=0;d=(e-=d)&-e;f+=t(a-d,(b+d)*2,
  2. (c+d)/2));return f;}main(q){q=16;printf("%d\n",t(~(~0<<q),0,0));}


PS. Недаром после такого java называют bloated :)
 15.0.861.015.0.861.0
RU Balancer #29.08.2011 16:45  @alexsolo#29.08.2011 14:42
+
-
edit
 

Balancer

администратор
★★★★★
alexsolo> PS. Недаром после такого java называют bloated

Вот только задача на Java была решена 3,5 года назад.



Именно поэтому она сегодня и занимает первое место по популярности. А после драки кулаками махать много кто может… :)
 
+
-
edit
 

Mishka

модератор
★★★

alexsolo> 1. Алгоритмы рулят!

Только выигрышь уже ушёл. :) Надо было решить задачку за месяц (или сколько там по договорённости было?). Тебя разбомбили. :)

alexsolo> 2. Еще код на си (размер исходника: 140 байт (!!!), 24 секунды для нахождения всех решений для n=16, sorry не уникальных)

Попробуй записать для произвольного N. И да, можно было записать в одну строчку и сэкономить ещё байт или два.
 6.06.0
US Сергей-4030 #29.08.2011 21:55  @Татарин#07.02.2011 23:28
+
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
Татарин> Так что подход воспитывается только один: "мало? Добавь ещё планок, они нынче подешевели!" Другое - уже немыслимо для человека, который уже долго сидит на яве и т.д.

Это не так. Во всех серьезных проектах, которые я видел, к проблемам утечек относятся очень строго. Другое дело, что не имеет смысла экономить на копейках. Но утечка - это не то же самое. Одно дело считать байтики (сплошь и рядом не имеет смысла). Другое дело - иметь утечки.

ЗЫ Всякие weak references и прочее - суровые будни серьезных программистов. :)

ЗЗЫ На практике в C++ проектах сплошь и рядом нужен GC. Всякие там картинки загруженные считать и т.п. и т.д. В большом проекте - почти всегда нужно. И вот тогда начинается бодяга с подсчетом ссылок на объект и всякое такое. Как правило "местная" реализация бывает куда хуже, медленнее и менее надежная, чем в Java.
 13.0.782.21513.0.782.215
US Сергей-4030 #29.08.2011 22:37  @alexsolo#29.08.2011 14:42
+
+1
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
alexsolo> 2. Еще код на си (размер исходника: 140 байт (!!!), 24 секунды для нахождения всех решений для n=16, sorry не уникальных)

В дополнение к предыдущим ораторам. Вы, к сожалению, впадаете в ту же ошибку, что и Реконструктор. Вы полагаете, что если неработающая C++ программа что-нибудь не делает значительно быстрее, чем работающая Java программа это что-нибудь наоборот делает, то это значит что если написать работающую программу на C++, чтобы она это "что-нибудь" наконец сделала, то сделает она это "что-нибудь" тоже значительно быстрее, чем решение на Java. В частности, Реконструктор вывалил такой неработающий вариант, который задачу не решал и объявил, что теперь уж понятно, что Java suxx. Но к сожалению, этот принцип обычно не работает, извините.

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

alexsolo>PS. Недаром после такого java называют bloated

Как вот только что показала практика, мнение тех, кто как-то там называет Java, никакого значения не имеет.
 13.0.782.21513.0.782.215
US Mishka #29.08.2011 23:27  @Сергей-4030#29.08.2011 21:55
+
-
edit
 

Mishka

модератор
★★★

Сергей-4030> ЗЗЫ На практике в C++ проектах сплошь и рядом нужен GC. Всякие там картинки загруженные считать и т.п. и т.д.

В новом C++ уже ушли всякие auto_ptr-ы, появились unique_ptr, shared_ptr. Это пока C++0X, но уже в стандарте, вроде, включено. Стандарт должен скоро выйти (если не вышел).
 6.06.0
US Сергей-4030 #30.08.2011 04:42  @Mishka#29.08.2011 23:27
+
-
edit
 

Сергей-4030

исключающий третье
★★
админ. бан
Сергей-4030>> ЗЗЫ На практике в C++ проектах сплошь и рядом нужен GC. Всякие там картинки загруженные считать и т.п. и т.д.
Mishka> В новом C++ уже ушли всякие auto_ptr-ы, появились unique_ptr, shared_ptr. Это пока C++0X, но уже в стандарте, вроде, включено. Стандарт должен скоро выйти (если не вышел).

Все движутся в одном направлении. :) Поддержка автоматического сбора неиспользованных ссылок, в том или другом исполнении, полезна, поэтому она мало-помалу везде появляется, вне зависимости от религиозных представлений тех или других программистов. :)
 13.0.782.10713.0.782.107
BG Реконструктор #30.08.2011 14:50
+
-
edit
 

Последние действия над темой
1 23 24 25 26 27 28 29

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru