Сергей-4030: Все сообщения за 13 Сентября 2011 года

 
ПнВтСрЧтПтСбВс
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30

Сергей-4030

исключающий третье
★★
[size=50]digger> Что касается не производительности,а собственно программирования - не перевариваю я недоязыки, неудобно на них писать действительно сложные вещи.

И много уже написали действительно сложных вещей? Не поделитесь?

PS До смешного доходит. Java, которая со всех "языковых" характеристик безусловно превосходит плюсы, объявляется "недоязыком". Ладно бы критиковать производительность. Там все не так плохо, (как теперь уже знает по опыту господин Реконструктор :lol:), но кое-какие слабые места остаются. Правда чтобы знать, что это за места, надо быть более-менее в курсе технологии. А что-то мне подсказывает, что digger, как и все предыдущие критики, про Java знает в основном из комиксов.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
digger> Сильно крупный проект, который никогда не прекращается по своей природе, что - не скажу :).

Да уж понятно. А как насчет проектов на Java? Вы заметили, весь "наш" лагерь - Мишка, Рома, я и остальные - работали над большими проектами как в плюсах, так и на Java. А вы работали с большими проектами в Java? Сколько раз повторять-то можно, мы про C++ знаем если не все, то очень многое (последние веяния, может, не знаем, потому что отошли). А вы про Java знаете только то, что Реконструктор пишет в своих фантазиях.

digger>В Жабе например раздражает указание классов в каждом операторе и гипертофированно-классовая структура, там где они нафиг не нужны.

В смысде - вы к ним не привыкли, это вы имеете в виду? Хэдеры сишных модулей куда более массивны и вообще, прямо говоря, решение довольно неизящное. Они попросту хуже "гипертрофированной классовой структуры" Java со всех сторон.

digger>Также отсутствие пойнтеров и платформно-зависимых типов, неудобно на ней парсить файл, например.

Недавно мы вот с Реконструктором файлы парсили, и у меня (на Java) лучше получилось. Не странно ли?

digger>Недоязык - потому что нет рукопашной связи между кодом и результатом, скрипт это.На С вот переменная,вот ее место в стеке, код непосредственно связан с машинным кодом.Переносимость обеспечивается наличием компилятора и правильным написанием.

А вы знаете, что такое JIT компиляция? Что за глупости "нет рукопашной связи"? Во-первых, класс задач, где действительно нужна "связь с машинным кодом" очень узок, ограничивается, по сути, драйверами устройств. И практика показывает, что именно туда плюсы и вытесняются мало-помалу. Во-вторых, про переносимость даже не начинайте. Сравнивать переносимость плюсов и Java могут только совсем уж безбашенные юмористы типа Задорнова и Реконструктора. Вы просто не въезжаете. Вы такого не видели никогда в своем плюсном мире - берем хороший такой проект, с развитым UI, с хорошей серверной частью, работающий на PC, копируем файлы на Мак (не перекомпилируем даже) - и вуаля, все тут же работает. На плюсах до такого плыть и плыть.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
digger> printf vs sys.print.out

Никто вам не запрещает написать что-то свое. У меня скажем есть App.info("tralala"). Что, на минуточку, лучше, чем писать в стандартный вывод.

Сергей-4030>> Недавно мы вот с Реконструктором файлы парсили, и у меня (на Java) лучше получилось. Не странно ли?
digger> В С кусок файла засасывается в буфер и оттуда непосредственно читаются данные.

Во-во. Офигенный пример того, как легко и просто в плюсах можно получить огромные дурацкие проблемы. Впрочем, Миша уже сказал.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
digger> Вы копируете его на установленную там жабную виртуальную машину, так нечестно :). Понятно,что такая переносимость лучше.

Я не понял, что значит нечестно? За те 20 минут, пока я качаю и устанавливаю JVM для Мака, вы успеете поменять UI с виндосных виджетов на маковские, найти/поправить все несовместимости, перекомпилировать исходники и переписать деплойер/установщик?
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
digger> Дело не в скорости,а в непосредственном чтении из памяти,а не по одной переменной из файла.

Что есть "непосредственное чтение из памяти"?

digger>Как вы будете МZ header или другую структуру например загружать в Жабу?

Вот так:

public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
String mz = readAndCheck(in, "MZ");
lastBlock = in.readShort(in);
...
}

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

Поскольку, как Миша уже сказал, ввод-вывод буферизован, это все будет на самом деле "непосредственное чтение из памяти". При это - следите за руками - этот метод ЛУЧШЕ, чем чтение структуры, поскольку гибче и мощнее.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
pokos> Ясен пень. Чтобы начать решать, недостаточно даже сообщения первого, что он видит сколько-то голубей в окрестностях скамейки. Не определил он эту окрестность, да и вообще, в глазах у него может двоиться от злоупотребления.

Тяжело вам. Как вы в магазине просите "два кг сахара", например? Это ж целая проблема с вашим подходом. Я как подумаю, сколько слов вы употребляете чтоб булшита не было - с катушек можно сойти. Что такое "сахар", что продавец понимает под этим словом, что вы, что такое масса и вес, как измерять массу... елы-палы, вам небось времени не хватает поесть и покушать.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
Сергей-4030>> Тяжело вам. Как вы в магазине просите "два кг сахара", например?
pokos> Ты меня с математиком путаешь, друг.
pokos> Задача была про математиков, поэтому и подход к ней соответствующий. Подход к сахару иной, сахар - это не математики.

То есть, я так понимаю, в магазине вы осознаете, что надо принимать в расчет контекст, ага? :) Проблемы с пониманием контекста начинаются только с дошкольными арифметическими задачками? ;)
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
digger> Я имею в виду пользовательский буфер, из которого программа читает по пойнтеру.За многократное чтение отдельных байт из файла используя функцию (невзирая на внутреннюю буферизацию), я лично расстреливал на месте.

Ага, ага. Такой подход может привести к 3 последствиям - один просто плохой, другой очень плохой и третий - полный 3.14ец. Итак, читаем прямо блоком, естественно, валидацию не делаем (ибо если делать, то никакого выигрыша вообще нет - точно так же, как в приведенном мной методе сериализации, проверяем каждое поле). И вот наступил час Ч, когда файл испортился, чтение затыкается и дает неправильные результаты, человеку, который разбирается достаточно легко найти проблему. Он страдает пять часов, находит проблему, ставит валидацию (т.е. ваше "преимущество" лаконичности потеряно). Это плохой случай. Очень плохой - QA получает проблему при чтении, проблема совершенно несвязана с собственно чтением (понятно - блок типа прочитался, но потом при работе в нем такие данные, что дальнейшими действиями по неправильным пойнтерам засрался весь сегмент и начали происходить странные вещи). Разработчик пробует воспроизвести - не воспроизводится (ибо сбой не постоянный). Разработчик очень упорный, он думает, тестирует, проводит неделю за компом и находит ключ. Ставит валидацию - проблема решена. Это очень плохой вариант. А если разработчик ставит - "не воспроизводится" и забивает - вот это вот мы переходим к полному 3.14ецу. Ибо теперь мы передаем продукт клиенту, клиент ставит его на не очень хорошие компы/линии и то, что у нас в лабе бывало раз в три года, у него бывает раз в месяц. И в один нехороший месяц прочиталась такая фигня, что убила всю систему и данные. Фирма разоряется, все разработчики свободны. ;)
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
pokos> моей профессиональной обязанностью вляется постановка задач подчинённым,

Вы один такой, берегите себя. А то кто ж будет ставить задачи подчиненным.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
Vale> Для доступа к библиотеке comedi из программы на C++ мне нужно, чтобы процесс исполнялся от имени группы iocard (юзер user - член этой группы).

Что значит "выполнялся от имени группы"?
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
pokos> Да, именно так. И прекрасно осознал контекст в условиях "задачи", как оказалось. Не подвёл меня мой фильтр!

На самом деле, как оказалось, не осознали. И похоже, не то, что ваньку валяете, а именно что не врубаетесь. Ну чего ж, бывает-с. Не врубаетесь - это проблема целиком ваша, никому от этого не хуже.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
Сергей-4030>> На самом деле, как оказалось, не осознали.
pokos> По себе не суди.

В данном случае это была не субъективная оценка, а объективная. Ваши рассуждения показали, что или вы незнакомы с контекстом подобных задачек, или просто не понимаете, что контекст надо принимать во внимание. Ваши дальнейшие рассуждения показали, что не понимаете. Ничего личного.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
Сергей-4030>> ...Ваши рассуждения показали, что или вы незнакомы с контекстом подобных задачек, или просто не понимаете, что контекст надо принимать во внимание.
pokos> Ваши рассуждения показали, что я принимаю во внимание гораздо больше контекста, чем того хочется вам.

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

В доступной для вас форме рассмотрим на примере. Скажем, компания из пяти строителей ведет какие-то работы. Один из них говорит - "эта стена слишком толстая, мы не можем ее пробить, так что мы должны вести кабель вокруг". Трое соглашаются - они понимают контекст, понимают, что имеется в виду "в рамках нашего бюджета и для наших задач не имеет смысла заниматься пробитием стены". Пятый начинает говорить - да как же так, а если взять гаубицу, а если найти инопланетян и выведать секрет лучевого оружия - то спокойно проделаем дыру. Так вот, для вас - этот последний не понимает контекст. Он, конечно, может называть это "принимать во внимание больше контекста", но тем не менее, простой факт в том, что он не понимает контекст и/или не понимает концепции.
 13.0.782.22013.0.782.220

Сергей-4030

исключающий третье
★★
pokos> В данной же "задаче" всё строго наоборот. Трое говорят, что они знают, как пробить, а пятый понимает, что заниматься пустым делом ни к чему, у него есть контекст, который не видят эти трое. И вдруг получается, что пятый был прав. Причём, стену вообще не нужно было пробивать, и без этого обошлось.

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

ЗЫ Ваш "конекст", впрочем, можно выразить одним словом - "зелен виноград".
 13.0.782.22013.0.782.220

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