Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.140.242.165] |
|
Страницы: (50) « Первая ... 47 48 [49] 50 ( Перейти к последнему сообщению ) |
Сообщ.
#721
,
|
|
|
Кать, от кого защищаться то? Еще раз говорю (для тех, кто в танке) - я своими собственными глазами видел репозитории кроссплатформенного (как в плане аппаратуры, так и ОС) кода на много-много тысяч строк на С++. И сам такой код писал и поддерживал. По этому мне ни от кого защищаться нет необходимости. А вот от вас с AndNot пока слышим только заявления либо о невозможности написания переносимого кода, либо о существовании неких HLA, которые такую переносимость якобы обеспечивают. По поводу последнего - покажите мне хотя бы один более-менее объемный (ну хобя-бы 100-200 килосрток) кроссплатформенный проект, писанный полностью на HLA. На счет производительности - оптимизация (если в этом есть необходимость) выполняется для каждой платформы в отдельности. Такое тоже возможно. Добавлено Кать, а что именно мы там должны были увидеть? |
Сообщ.
#722
,
|
|
|
Цитата По поводу последнего - покажите мне хотя бы один более-менее объемный (ну хобя-бы 100-200 килосрток) кроссплатформенный проект, писанный полностью на HLA. Вы первый для мака мне покажите Добавлено Покажите мне код, который будет компилироваться для мака и для виндовс не изменяя ни одной строчки, тогда поверю в кроссплатформенность на с++. |
Сообщ.
#723
,
|
|
|
Цитата Катенька @ Покажите мне код, который будет компилироваться для мака и для виндовс не изменяя ни одной строчки, тогда поверю в кроссплатформенность на с++. Меняю кросплатформенный код на МАК Вмысле ты мне МАК, а я тебе код |
Сообщ.
#724
,
|
|
|
Цитата Катенька @ Покажите мне код, который будет компилироваться для мака и для виндовс не изменяя ни одной строчки, тогда поверю в кроссплатформенность на с++. Trolltech QT |
Сообщ.
#725
,
|
|
|
Flex Ferrum, а можно по прямее ссылку , а то что-то своей архитектуры там не нахожу
|
Сообщ.
#726
,
|
|
|
Цитата Катенька @ Flex Ferrum, а можно по прямее ссылку , а то что-то своей архитектуры там не нахожу http://trolltech.com/developer/downloads/qt/mac Добавлено Выбираешь любое из зеркал. |
Сообщ.
#727
,
|
|
|
как будет писюк под рукой, попробую.
Добавлено Flex Ferrum, спасибо Добавлено wind Цитата почему Там речь о реализации локального обмена данными через сокеты в unix, к теме обсуждения имеющая весьма опосредованное отношение. |
Сообщ.
#728
,
|
|
|
Цитата Катенька @ Цитата Там речь о реализации локального обмена данными через сокеты в unix, к теме обсуждения имеющая весьма опосредованное отношение. почему А потому что к АПИ как таковому это не имеет отношение. Это детали реализации самого стека. |
Сообщ.
#729
,
|
|
|
Цитата archimed7592 @ Не уверен, что получится. Прямое взаимодействие с драйверами в разных системах реализовано по разному, так что абстрагироваться не получится Можно через прослойку: драйвер->система->системо-зависимая библиотека->программа. Но это уже куча посредников, простейший вызов функции драйвера будет происходить через тонны кода. Простой пример: даже используя АПИ винды, простейшее чтение данных с СОМ-порта обходится в несколько тысяч тактов, при том, что собственно драйвер затрачивает несколько тактов, остальное - накладки посредников. А абстрагируясь от АПИ, с помощью либ, ты увеличиваешь длительность затрат еще на несколько тысяч тактов. Да, на современных тачках это не заметно, пока комп не загружен до предела, но после - начинаешь поминать создателей этой системы нехорошими словами.Используя в качестве абстракции драйвер самого ps/2 порта можно написать абсолютно кроссплатформенный драйвер мыши. Кстати портировал я дрова PS/2, от винды, в ДОС. Точнее взял от туда саму работу с железом, поскольку больше негде было узнать, как работать с wheel-мышками(они только появились). Так могу только выругаться, сколько там кода лишнего А все потому, что Си не очень удачно подходит для низкоуровневых дров, хотя тот драйвер можно было переделать под другую систему, но только теоретически, поскольку взаимодействие драйвера и системы везде разное, а в нем оно было прошито довольно жестко, разбросано по всему коду(особенности ЯВУ). Так стоит ли из-за мнимой портабельности писать такой ужас? Цитата archimed7592 @ archimed7592, это не язык С++, это сторонние либы. А небыло бы их? Тогда как выкручивался бы? Но опять же, у тебя прямая зависимость от этих либ. Ну не посчитают их создатели нужным включить поддержку линукса, и ты хоть застрелись - ну ничего не поделаешь И опять же. А сами то либы как пишутся? Отдельно, под каждую систему. В них присутствует код для каждой поддерживаемой системы. И это и есть кроссплатформенность? А что бы ты делал без них?Как же это библиотекам QtNetwork, wxNet, Boost.Asio, libcurl, libwww и многим другим удаётся работать под несколькими платформами Цитата archimed7592 @ В методах работы с ними. Они очень сильно отличаются. Винда изначально поддерживала юниксовскую модель взаимодействия с сокетами. Но в силу внутренних различий эта модель оказалась очень неудачной, для винды. Поэтому были внедрены свои, чисто виндозные модели (WSAEvent Select, Overlapped (events), Overlapped (completion port)), которые наиболее удобны и производительны именно под виндой, особенно Overlapped (completion port). Но в никсах все осталось как и прежде, та же простенькая модель взаимодействия, довольно эффективная для них.Вот скажи мне, в чём принципиальная разница между сокетом под виндой и сокетом под линухом? Цитата Flex Ferrum @ А это и есть плата за кроссплатформенность. Данные модели, по пропускной способности, под виндой, отстают от Overlapped (completion port) в десятки, если не сотни, раз. К тому же синхронная модель - мягко говоря немного неудобна.Ну, наверное - сихронно. Либо через WSASelect... На событиях свет клином не сошелся... Цитата Flex Ferrum @ Во первых, я им не пользуюсь, это был лишь пример. А во вторых, чисто ради интереса, а ты всегда очениваешь код по количеству строк? По поводу последнего - покажите мне хотя бы один более-менее объемный (ну хобя-бы 100-200 килосрток) кроссплатформенный проект, писанный полностью на HLA. |
Сообщ.
#730
,
|
|
|
Цитата AndNot @ А это и есть плата за кроссплатформенность. Данные модели, по пропускной способности, под виндой, отстают от Overlapped (completion port) в десятки, если не сотни, раз. К тому же синхронная модель - мягко говоря немного неудобна. AndNot, вот если примененное кроссплатформенное решение не будет устраивать по производительности - тогда (и только тогда) будут применены средства, специфичные для конкретной платформы. Но не раньше. Предварительная оптимизация - корень всех зол. Цитата AndNot @ Во первых, я им не пользуюсь, это был лишь пример. А во вторых, чисто ради интереса, а ты всегда очениваешь код по количеству строк? Нет не всегда. Но в ряде случаев (и в этом - тоже) это вполне допустимая оценка. Цитата AndNot @ archimed7592, это не язык С++, это сторонние либы. А небыло бы их? Тогда как выкручивался бы? Три-четыре класса на С++, и всех делов то... |
Сообщ.
#731
,
|
|
|
Цитата Flex Ferrum @ А как подобное оченивать? Тоже по количеству строк? Нет не всегда. Но в ряде случаев (и в этом - тоже) это вполне допустимая оценка. Добавлено Цитата Flex Ferrum @ Но для этого тебе придется знать те платформы, под которые ты пишешь Три-четыре класса на С++, и всех делов то... Прикреплённый файлemulmmx.rar (9.09 Кбайт, скачиваний: 107) |
Сообщ.
#732
,
|
|
|
Цитата AndNot @ А небыло бы их? А не было бы API, как бы ты пикселы на экране рисовал? Не аргумент, короче . Цитата AndNot @ Не уверен, что получится. Ассемблерщик, ты когда-нибудь пробовал фантазировать? Цитата AndNot @ В методах работы с ними. Вот они, золотые слова . А ты не задумывался, что разные методы распития алкогольных нпитков не делают из них(напитков) что-то принципиально другое? Цитата AndNot @ А во вторых, чисто ради интереса, а ты всегда очениваешь код по количеству строк? Видишь ли, когда кол-во строк "немного" возрастает, то для его поддержки нужны львиные усилия, а когда он ещё и на ассемблере - лучше застрелиться(IMHO). Добавлено Цитата Катенька @ Покажите мне код, который будет компилироваться для мака и для виндовс не изменяя ни одной строчки, тогда поверю в кроссплатформенность на с++. #include <ostream> #include <iostream> int main() { std::cout << "Hello world!" << std::endl; } |
Сообщ.
#733
,
|
|
|
Цитата Flex Ferrum @ А как же "запас прочности"? Или профи этим пренебрегают? Так что важнее, заложить в программу максимум оптимального кода, чтобы в дальнейшем сократить модификацию, или побыстрее сдать проект, рискуя в скором времени капитально его переделывать(если окажется не таким каким планировали)?AndNot, вот если примененное кроссплатформенное решение не будет устраивать по производительности - тогда (и только тогда) будут применены средства, специфичные для конкретной платформы. Но не раньше. Не спорю. Порой теряю много времени, стараясь создать такой модуль, чтобы больше никогда не изменять его, а это далеко не всегда легко, угробишь уйму времени, пока продумаешь его интерфейс, задачи и собственно реализацию Цитата archimed7592 @ Еще как делают В зависимости от способов потребления, порядка очередности, набора, etc. можно получать очень разнообразные эффекты А уж результате тем более будут разными - начиная от катаний, по асфальту, на коньках и заканчивая походом в ментовку(впрочем чаще откупаешься) А ты не задумывался, что разные методы распития алкогольных нпитков не делают из них(напитков) что-то принципиально другое? Цитата archimed7592 @ Рисовал Или ты думаешь, что это невозможно? Но я вообще то про либы говорил АПИ никаким боком не тянет на кроссплатформенность.Цитата (AndNot @ Сегодня, 15:03) А небыло бы их? А не было бы API, как бы ты пикселы на экране рисовал? Вообще я все это клоню к тому, что кроссплатформенность языков очень ограничена (в пределах 'Hello World'). Ее обеспечивают либы, которые, зачастую, не входят в стандартный набор языка. Именно они позволяют абстрагироваться от конкретной платформы. Но сами они строятся из набора одинаковых функций, по одной на поддерживаемую платформу. Естественно я все упростил, но в общих чертах так оно и есть. Так о какой кроссплатформенности языка идет речь, если под каждую платформу нужны свои функции, не входящие в стандарт языка? Или под ней понимается возможность компилятора собирать код под любые платформы? |
Сообщ.
#734
,
|
|
|
Цитата AndNot @ А как же "запас прочности"? Запас прочности можно получить и на высокоуровневых оптимизациях(и те делать нужно только после того, когда в них появилась острая необходимость). Цитата AndNot @ Так что важнее Важнее затратить на проект минимум ресурсов. Ресуры бывают(в порядке убывания "ценности" ресурса): 1. Время 2. Деньги Цитата AndNot @ Еще как делают Госоподи боже. Ладно, что такое сокет? Двунаправленная труба по которой течёт информация. Что ещё нужно для сетевой программы? Цитата AndNot @ Или ты думаешь, что это невозможно? Ни в коем случае. Цитата AndNot @ Но я вообще то про либы говорил АПИ никаким боком не тянет на кроссплатформенность. Я лишь хотел обратить внимание на то, что без готовых либ/АПИ/чего-нибудь прикладные программы соответствующего уровня не пишут(вне зависимости от языка). Цитата AndNot @ Или под ней понимается возможность компилятора собирать код под любые платформы? Под ней понимается возможность написать программу, работающую везде("много где") и одинакого. На ассемблере такое невозможно в принципе(я говорю именно про язык ассемблера). |
Сообщ.
#735
,
|
|
|
Цитата AndNot @ А как же "запас прочности"? Или профи этим пренебрегают? Профи еще при проектировании системы определяют такие параметры, как "рабочая" и "пиковая" нагрузка на систему. И исходя из этого проектируют и разрабатывают. Цитата AndNot @ Вообще я все это клоню к тому, что кроссплатформенность языков очень ограничена (в пределах 'Hello World'). Ее обеспечивают либы, которые, зачастую, не входят в стандартный набор языка. Ты никогда не задумывался о смысле словосочетания "стандартная библиотека"? Она, видимо, на то и стандартная, чтобы платформы, соответствующие этому стандарту, эту библиотеку предоставляли. Это касается как CRTL, так и, например, POSIX. По этому говорить "а вдруг ее там не будет" - это, гм... Не будет - ну и нафиг такую платформу. Либо заказчик выкладывает очень круглую сумму за то, чтобы программа на такой "специфической" платформе заработала. Но это уже совсем другая история. |