Russian Qt Forum
Ноябрь 23, 2024, 02:21 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 3 [4] 5   Вниз
  Печать  
Автор Тема: Изобретение велосипедов  (Прочитано 32574 раз)
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #45 : Ноябрь 24, 2014, 17:22 »

Ах да... ну добавить вишенку на вершину торта забыл... =)

Откомпилированный байт код можно запускать на любой машине с JRE.
И именно по этому, он не так быстр как нативный. Да.

НО!!! Мы не сравниваем яву и с++, мы сравниваем решения в коде, где для решения на яве должно получиться красивей, чем на С++.
Как здесь обещалось:
Цитировать
далеко ходить не надо. сравни работу с сокетом на плюсах (не qt) и на жабе. попробуй распарсить xml на плюсах. таких примеров куча.
это называется продуманность.

Вот эту продуманность и хотелось бы наконец увидеть. Пока в boost продуманности больше.
« Последнее редактирование: Ноябрь 24, 2014, 17:59 от Old » Записан
vulko
Гость
« Ответ #46 : Ноябрь 25, 2014, 00:23 »

Я не обещал никаких удобств! И ничего тебе не должен.
Я лишь констатировал тот факт, что они там есть.
Чем этот факт подкреплен?

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

Ещё интересно, такой http client, наверное не умеет сохранять куки. Да и вообще никакого куки менеджера в волшебном asio наверное нет?! М?
Конечно не умеет, asio это самый низкий уровень. Он работа с сокетами, а вы показали работу с протоколом http. Это разные вещи.

Кстати для работы с http на с++ есть куча годных библиотек, с поддержкой всех указанных вами кайфов. Например, это есть в Qt или в cpp-netlib. Последнее использует asio и реализует верхний уровень для http.
Вот пример простого клиента:
Код
C++ (Qt)
using namespace boost::network;
using namespace boost::network::http;
 
client::request request_("http://127.0.0.1:8000/");
request_ << header("Connection", "close");
client client_;
client::response response_ = client_.get(request_);
std::string body_ = body(response_);
 

Все обернуто высокоуровневыми интерфейсами. HttpRequest, HttpResponce, HttpClient. Все это имеет огромный функционал, начиная от поддержки всяких https, удобного логина, удобных POST/GET запросов, возможности легко впихнуть внутрь JSON и распарсить...
Куки поддерживает, причем сохраняет их автоматически для инстанса HttpClient. Можно их легко сохранять и подгружать.
Это все можно в cpp-netlib, cCURL, POCO C++ и еще 100500 разных библиотеках на C++, много из которых позволяют это делать очень удобно.


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

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

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

Цитировать
Причем, вы начали разговоры про красоту одного и убогость другого.
да, я не просто начал, я ещё и много аргументов привел. а какой у тебя аргумент?
для этого есть либа...
для того есть либа...
а в плюсах нет ни**я!
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #47 : Ноябрь 25, 2014, 00:31 »

Скорее слов вы привели много, к сожалению ничего не доказывающих.
А вот красивых решений на яве мы так и не увидили.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #48 : Ноябрь 25, 2014, 00:45 »

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

Ой, Old, оставьте, с кем вы спорите) Там дальше слов не уйдёт) Бесполезно ждать адеквата от того, кого учили понемножку: хоть как-нибудь, чему-нибудь..( Не удивлюсь, если он вас ещё в пятнах на солнце обвинит) 

 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #49 : Ноябрь 25, 2014, 00:59 »

Ой, Old, оставьте, с кем вы спорите) Там дальше слов не уйдёт) Бесполезно ждать адеквата от того, кого учили понемножку: хоть как-нибудь, чему-нибудь..( Не удивлюсь, если он вас ещё в пятнах на солнце обвинит)  
Да я уже ничего и не жду. Улыбающийся
Думаю, что других аргументов кроме "в библиотеке явы много всего и оно такое офигенное" мы не услышим.
Так же как и не увидим обещанного красивого и удобного ява-кода.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #50 : Ноябрь 25, 2014, 01:14 »

Ой, Old, оставьте, с кем вы спорите) Там дальше слов не уйдёт) Бесполезно ждать адеквата от того, кого учили понемножку: хоть как-нибудь, чему-нибудь..( Не удивлюсь, если он вас ещё в пятнах на солнце обвинит)  
Да я уже ничего и не жду. Улыбающийся
Думаю, что других аргументов кроме "в библиотеке явы много всего и оно такое офигенное" мы не услышим.
Так же как и не увидим обещанного красивого и удобного ява-кода.
Угу.. Уже предчувствую N-ую волну троллинга о том, что буст и stl писали одни самозванцы одним неприличным местом.. Но vulko, конечно, как эксперту, лучше знать) Жаль, что его забыли спросить( Плюсы явно много потеряли без его авторитетного мнения(       
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #51 : Ноябрь 25, 2014, 01:32 »

Дело вот в этом "только, когда". По-Вашему выходит что велосипед - случай редкий, даже исключительный, которого следует избегать. Нормальное состояние программиста - использование готовых, проверенных решений. А я считаю что до 90% (и более) работы программиста - изобретение велосипеда, и это нормально.
Нет, я говорю именно о концепте.. Это нечто больше чем просто в лоб переписывать какие то решения..
Когда я говорю о бусте, я в первую очередь подразумеваю именно саму ту идеологию, которая там заложена.. Ну помните пример с токенайзером, со спиритом и т.д..? Я именно об этом..

И потом я не согласен с этим:
Цитировать
А я считаю что до 90% (и более) работы программиста - изобретение велосипеда, и это нормально.
   
Нет, когда вы пишите конечный продукт (как уже отмечалось ранее в комментах) на велосипеды вы будете тратить больше времени и это будет сложнее в сопровождении.. И не факт, что ваши велосипеды будут эффективнее.. ну хорошо, будут, но это исключительные ситуации, о которых я и говорил..
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
vulko
Гость
« Ответ #52 : Ноябрь 25, 2014, 10:01 »

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

доказательства прямо перед твоими глазами. если ты их не видишь, это твои проблемы.

речь шла о плюсах и жабе. о разнице в них.

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

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

с баранами спорить бесполезно, так что успехов и не пукайте Подмигивающий
Записан
vulko
Гость
« Ответ #53 : Ноябрь 25, 2014, 10:13 »

Ой, Old, оставьте, с кем вы спорите) Там дальше слов не уйдёт) Бесполезно ждать адеквата от того, кого учили понемножку: хоть как-нибудь, чему-нибудь..( Не удивлюсь, если он вас ещё в пятнах на солнце обвинит)  
Да я уже ничего и не жду. Улыбающийся
Думаю, что других аргументов кроме "в библиотеке явы много всего и оно такое офигенное" мы не услышим.
Так же как и не увидим обещанного красивого и удобного ява-кода.
Угу.. Уже предчувствую N-ую волну троллинга о том, что буст и stl писали одни самозванцы одним неприличным местом.. Но vulko, конечно, как эксперту, лучше знать) Жаль, что его забыли спросить( Плюсы явно много потеряли без его авторитетного мнения(       

максимка, ты решил свое авторитетное мнение выразить по поводу жабы, с которой не знаком?))
Записан
vulko
Гость
« Ответ #54 : Ноябрь 25, 2014, 10:15 »

олд, и ещё. всё познается в сравнении.
ты можешь быть каким угодно специалистом в плюсах, но поскольку с жабой опыта нет, то и твои фразы типа в бусте все равно удобнее не имеют под собой никакого основания.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #55 : Ноябрь 25, 2014, 12:40 »

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

Найти все пересечения полигонов в сцене. Не рассматриваем более сложный случай пересечения "с запасом". Также полагаем полигон = треугольник (хоть это и не так). Но число исходных полигонов ограничено только размерами RAM, т.е. может быть сколь угодно большим. Поэтому задействовать все ядра обязательно, и, конечно, скорость критична. Пересечение 2-х полигонов есть отрезок. В результате мы должны иметь/знать для каждого полигона какие отрезки его пересекают. Что с ними дальше делать - то уже следующая подзадача. 

Какие бустовские классы/инструментарий Вы для этого привлечете? Какова здесь роль концепта, философии буста? Вообще что можно использовать чтобы облегчить себе жизнь (неважно буст или нет)
Записан
VPS
Гость
« Ответ #56 : Ноябрь 25, 2014, 15:07 »

Вот с помощью boost делаю так:
Код
C++ (Qt)
namespace pt = boost::property_tree;
 
pt::ptree xml;
pt::read_xml( "file.xml", xml );
 
string v = xml.get<string>( "producer.item.<xmlattr>.name" );
int v = xml.get<int>( "producer.item.v" );
double d = xml.data<double>( "producer.item.d" );
 

Причем файл уже проверен на валидность. Если где ошибка или чего-то нет - получим исключение.
Не хотим получать исключении при отсутствии поля, добавляем к параметрам метода get значение по умолчанию.

Код
Java
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
 
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
 
public class Solution
{
  public static void main(String[] args) throws ParserConfigurationException,
                                                IOException,
                                                SAXException,
                                                XPathExpressionException
  {
     String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                  "<!DOCTYPE avset-list>" +
                  "<avset-list ver=\"1.0\">" +
                     "<producer name=\"Fuck, Inc\">" +
                        "<item name=\"Good shit\">" +
                           "<v>79</v>" +
                           "<d>8,0</d>" +
                        "</item>" +
                     "</producer>" +
                  "</avset-list>";
 
     try(InputStream is = new ByteArrayInputStream(xml.getBytes()))
     {
        DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
 
        Document doc = documentBuilder.parse(is);
 
        XPath xpath = XPathFactory.newInstance().newXPath();
 
        Object elements[]  = {
           xpath.evaluate("/avset-list/producer/item/@name", doc),
           xpath.evaluate("/avset-list/producer/item/v", doc),
           xpath.evaluate("/avset-list/producer/item/d", doc)
        };
 
        for(Object element : elements)
        {
           System.out.println(element);
        }
     }
  }
}
 

П.С.: немного потренировался на java.  Улыбающийся
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #57 : Ноябрь 25, 2014, 15:13 »

П.С.: немного потренировался на java.  Улыбающийся
Вот же. Вот это и хотелось увидеть. Улыбающийся
Спасибо.

Это не намного удобней boost, но хоть не тот трешак. Улыбающийся
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #58 : Декабрь 04, 2014, 23:05 »

воскресим тему: http://s4.pikabu.ru/post_img/2014/12/04/11/1417719716_402585821.jpg
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #59 : Декабрь 05, 2014, 00:53 »


Помню случай из жизни.. Сидим мы как то на ДР одной прекрасной дамы: вино, водка, закуска, тосты: всё как полагается, одним словом.. Но, чувствую, мне там скучно (не в своей тарелке, вообщем) и единственный человек, с которым мне там было интересно, в чьей квартире всё это и происходило - прозжённый меломан, а в прошлом ещё и тот ещё оверклокер - т.е. у них там доходило до такого, что чуть ли не до скальпирования процессоров.. Короче, в этом плане, чел для меня просто Бог.. И вот, зашёл у меня с ним разговор о порно.. Ну и конечно, я не мог не упомянуть о Саше Грэй.. Ну и конечно, первая реакция была: Фи.. мля.. и всё такое..
Но когда, я сказал, что у неё в прошлом была своя индастриал группа.. Всё изменилось)       
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 2 3 [4] 5   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.356 секунд. Запросов: 23.