GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.10 (40)<< < Пред. | След. > >>   Поиск:  
 Автор Тема: На: Кароч решил я снова заняться программированием
гость
185.170.114.*
На: Кароч решил я снова заняться программированием
Добавлено: 08 июл 22 15:29
Цитата:
Автор: Tester64

А сколько народа было "в команде" у авторов nginx, Linux и GIT?
Не очень красиво сравнивать себя с гениями, такими как Эйнштейн, или Линукс, таких как они один на миллион, а нормальным людям нужна команда, помощь. Вы же не хотите чтобы вас воспринимали как психбольного.

Ну или выдайте нагора что то гениальное, поставьте перед фактом, тогда вопросов не будет, а просто болтать что вы как Эйнштейн и можете всё сам, это шиза.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 08 июл 22 16:46
Цитата:
Автор: гость

Не очень красиво сравнивать себя с гениями, такими как Эйнштейн, или Линукс, таких как они один на миллион, а нормальным людям нужна команда, помощь. Вы же не хотите чтобы вас воспринимали как психбольного.

Ну или выдайте нагора что то гениальное, поставьте перед фактом, тогда вопросов не будет, а просто болтать что вы как Эйнштейн и можете всё сам, это шиза.

С чего это они - "гении"? Поищи сколько патентов зарегистрировано в США из того было "создано в подвале". А узнай сколько патентов и IT-стартапов скупают богатые корпорации В ГОД - Самсунг, Гугл, Эпл, Майкросовфт. В каждом втором (если не первом) "купленном" IT стартапе минимум по одному "гению"! Просто их ИМЯ не становится столь популярным как у Линукса или автора nginx!

А кто создал С++? PHP? JS? Руби? Вспомнишь фамилии?

Насколько я помню, Паскаль был создан "учителем информатики". Или это про С++.

Попробуй поспрашивать у них что-нибудь "гениальное нагора"! )))

Кстати, история автора nginx всплыла лишь недавно, когда Яндекс хотела через суды УКРАСТЬ ее у своего бывшего сотрудника! При том что сам пользуюсь им уже больше 10 лет. Я знал про контору которая создает и поддерживает этот софт, но не знал что сервер изначально разработал владелец фирмы В ОДИНОЧКУ как ПЕТ-ПРОЕКТ!

А может знаешь кто и для чего придумал первую версию Node.js"??? Узнай! Это интересно...
[Ответ][Цитата]
гость
185.170.114.*
На: Кароч решил я снова заняться программированием
Добавлено: 09 июл 22 4:56
Цитата:
Автор: Tester64


С чего это они - "гении"? Поищи сколько патентов зарегистрировано в США из того было "создано в подвале". А узнай сколько патентов и IT-стартапов скупают богатые корпорации В ГОД - Самсунг, Гугл, Эпл, Майкросовфт. В каждом втором (если не первом) "купленном" IT стартапе минимум по одному "гению"! Просто их ИМЯ не становится столь популярным как у Линукса или автора nginx!

А кто создал С++? PHP? JS? Руби? Вспомнишь фамилии?

Насколько я помню, Паскаль был создан "учителем информатики". Или это про С++.

Попробуй поспрашивать у них что-нибудь "гениальное нагора"! )))

Кстати, история автора nginx всплыла лишь недавно, когда Яндекс хотела через суды УКРАСТЬ ее у своего бывшего сотрудника! При том что сам пользуюсь им уже больше 10 лет. Я знал про контору которая создает и поддерживает этот софт, но не знал что сервер изначально разработал владелец фирмы В ОДИНОЧКУ как ПЕТ-ПРОЕКТ!

А может знаешь кто и для чего придумал первую версию Node.js"??? Узнай! Это интересно...
Постфактум, уважаемый, ПОСТФАКТУМ. Запомните это слово.

Не зря говорят "Дураку пол дела не показывают", а общество — ДУРАК, оно так рефлексирует, как тупая истеричная баба. Ещё говорят "фокусник секретов не раскрывает", по той же причине. Это всё про то что "гений" — сущность социальная, она пребывает в коллективном разуме этого дурака и нужно следовать определённым правилам, чтобы этот образ взращивать и не запятнать, это тупо политика.

Общество всегда воспринимает успех как — СВЕРШИВШИЙСЯ ФАКТ, как своего рода "дворянство", "статус", как то что было присуще человеку всегда, а вот сейчас открылось. Общество не терпит процесса и деталей, не терпит когда кто такой же как все, растёт в статусе, а жаждет только магии результата, покажешь детали, магия может исчезнуть.

Так что родите чудо и вас превознесут, скажут что вы — гений с рождения, совсем другой чем все, но а пока вы — дерьмо как все остальные, ваше место на бирже труда, за гроши, с постоянным унижением от вышестоящих, прямым или косвенным с помощью "мягкой силы".
[Ответ][Цитата]
гость
185.170.114.*
На: Кароч решил я снова заняться программированием
Добавлено: 09 июл 22 4:59
Цитата:
Автор: Tester64


А кто создал С++? PHP? JS? Руби? Вспомнишь фамилии?
С++ - Бъёрн Страструп, это я знаю без гугла, про остальных не в курсе.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 09 июл 22 5:44
Цитата:
Автор: гость

С++ - Бъёрн Страструп, это я знаю без гугла, про остальных не в курсе.
За КАЖДЫМ из языков обычно стоит только ОДИН разработчик. (я проводил исследования по "истории языков") Крайне редко это небольшой коллектив небольшого научного центра, лаборатории, студенческой группы или стартапа. Уже позже в каждый из этих проектов вливаются другие разработчики и получается большая команда.

Были и случаи когда "начальную идею", созданную (по вашим словам) "гением", потом перебирали до неузнаваемости, взяв лишь основу, идею или первый рабочий код (как подтверждение того что "в этом направлении вообще имеет смысл работать, хоть и не такими методами"). От начальных принципов языка Бейсик уже НИЧЕГО не осталось в VisualBasik кроме названия некоторых базовых процедур. Подозреваю что та-же участь преследовала ВСЕ старые версии языков.

Сильно надеюсь, что и моя работа сможет когда-нибудь стать подобным "прототипом" для создания чего-то более... грандиозного!

Сегодня закончил прототип очередного блока - дня 4-5 к этому шел - "интеррактивный отчет для упрощения разрботки и отладки" - морально отдохну пол-дня-день и поставлю перед собой следующую "МИКРО-цель" на пути к ИИ. При такой работе разработка больше похожа на "рутину", чем на "извергание гениальных идей". Просто решение сложной инженерной задачи методом нарезки ее на миллион простых задач... Моя "гениальность" заключается скорее в "упорстве" при работе над этой (довольно нудной) задачей и не отказ от проекта как только понял что это нарушает большинство правил "написанных кровью" в корпоративном секторе (например тот-же eval).
[Ответ][Цитата]
гость
93.95.230.*
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 13:13
Цитата:
Автор: daner



Иван, если у вас возникают проблемы с QT, как в плане инсталяции (хотя с убунту эта проблема должна быть снята), так и в плане освоения, возможно вам будет проще использовать внутренний html сервер и браузер как UI. Тем более, я краем глаза видел, что вы сокеты у себя использовали (не знаю для чего), значит справитесь. это может быть в разы проще, чем освоение QT.
Собственно имея сетевой интерфейс, UI системы (qt, html, и т.д.) можно будет менять в любое время. плюс, сразу получите удаленный доступ (даже через телефон).
Сервер на плюсах дело не шутошное.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 14:03
Изменено: 11 июл 22 14:40
Цитата:
Автор: гость

Сервер на плюсах дело не шутошное.


легко.
Простой сервер, вообще легко писать, на чем угодно, что работает с сокетами.

Вообще создаётся впечатление, что у многих не правильное представление о современном С++. Типа, этакий продвинутый С, как он был лет двадцать пять назад. Но это не так. Пожалуй, это не так даже тогда, когда он таким был, но уже было полно, довольно "стандартных", библиотек типа boost или qt, а сегодня так и подавно.

Для любителей поизвращаться, есть даже сборщик мусора, вот только он нафик не нужен и им никто не пользуется. Мне вот даже в голову не приходит, так сразу, чего нет в С++ (в той или иной форме), но есть в других языках.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 18:58
Цитата:
Автор: daner
Мне вот даже в голову не приходит, так сразу, чего нет в С++ (в той или иной форме), но есть в других языках.

Быстрый перезапуск после мелкой перекомпиляции, система удобных колбэков, метапрограммирования, удобных GUI... Ну и миллион производных от уже перечисленного!

Знаю что скажите что "никому и не нужно" (не первый раз веду подобные диалоги из раздела "священных войн"), но это только потому что вы не сталкивались с задачами, где это ну очень сильно ускоряет РАЗРАБОТКУ/отладку.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 19:35
Цитата:
Автор: Tester64


Быстрый перезапуск после мелкой перекомпиляции, система удобных колбэков, метапрограммирования, удобных GUI... Ну и миллион производных от уже перечисленного!

Знаю что скажите что "никому и не нужно" (не первый раз веду подобные диалоги из раздела "священных войн"), но это только потому что вы не сталкивались с задачами, где это ну очень сильно ускоряет РАЗРАБОТКУ/отладку.



нет не угадали. я скажу что все это есть.
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 20:24
Изменено: 11 июл 22 20:27
Цитата:
Автор: daner

нет не угадали. я скажу что все это есть.

Не находил!

1) Быстрый перезапуск после мелкой перекомпиляции.
Это моя "больная" тема! Слишком много нервов сжег на "ожидании пока запустится после замены мелочей типа b+1 на b-1. На Java доходило до 40-50 секунд под андроид. Поэтому когда изучал С++ смотрел на это очень внимательно!

Когда-то работал на gcc (давно было - лень искать - мог в аббревиатуре ошибиться - опенсорсный/бесплатный мультиОСный компилятор). Даже на небольшую консольную программу тратил не меньше 5-6 секунд. На сложную - могло уходить и больше минуты. Сборка из "прекомпилированых" модулей помогает не сильно, ибо конечный результат все равно надо ужать в "исполняемый бинарник".

Перезапуск JS проекта занимает 1-2 секунды максимум (если очень не оптимизирован), а если использовать еще и мои наработки, то на перезапуск одного модуля уходит 50-100 мсек.

Замеры делал лет 10 назад на "средних" машинах тех времен = может уже быстрее, но JS все равно на ПОРЯДКИ быстрее запускается после замены кода.

2) система удобных колбэков
Я про УДОБНЫЕ! Передать функцию в виде указателя - это... немного не то!

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

4) удобных GUI
Я пока не встречал НИЧЕГО более мощного чем HTML. По простоте и по сложности. Одно CSS чего стоит.

5) добавлю еще "инструменты отладки". Не знаю как с этим у С++, но консоль отладки в браузере - это ОЧЕНЬ мощный инструмент (используемый большинством хорошо если на 5%)
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 20:38
Изменено: 11 июл 22 21:15
6) и добавлю конечно отсутствие "жесткой типизации".

Понимаю что объяснять прелести подобного СИшнику - это как эскимосу пояснять что в Африке люди вполне успешно живут совсем без снега. Или основы Танго тому кто всю жизнь танцевал только вальс.

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

...у С++ есть своя "ниша", в которой он - ХОРОШ!, но не нужно пытаться ОПЯТЬ вернуть ему "ПЕРВЕНСВТВО среди языков" как было во времена "С++, Паскаля и Бейсика".

Года 1.5 назад попытался написать на Node перехват всех движений мышки. Перерыл ВСЕ что было доступно! Вывод - нужно писать плагин на С++. Нода не смотря на все свои "безграничные возможности" оказалась не способной написать примитивный win-hook. Но...
Если у меня будет модуль для hook, то все остальное я все равно предпочту написать на JS как на самом УЮТНОМ языке для разработки "управляющих программ". Даже если он при этом будет не "достаточно шустрым".
[Ответ][Цитата]
daner
Сообщений: 4593
На: Кароч решил я снова заняться программированием
Добавлено: 11 июл 22 23:54
Цитата:
Автор: Tester64

Не находил!

1) Быстрый перезапуск после мелкой перекомпиляции.
Это моя "больная" тема! Слишком много нервов сжег на "ожидании пока запустится после замены мелочей типа b+1 на b-1. На Java доходило до 40-50 секунд под андроид. Поэтому когда изучал С++ смотрел на это очень внимательно!

Когда-то работал на gcc (давно было - лень искать - мог в аббревиатуре ошибиться - опенсорсный/бесплатный мультиОСный компилятор). Даже на небольшую консольную программу тратил не меньше 5-6 секунд. На сложную - могло уходить и больше минуты. Сборка из "прекомпилированых" модулей помогает не сильно, ибо конечный результат все равно надо ужать в "исполняемый бинарник".

Перезапуск JS проекта занимает 1-2 секунды максимум (если очень не оптимизирован), а если использовать еще и мои наработки, то на перезапуск одного модуля уходит 50-100 мсек.

Замеры делал лет 10 назад на "средних" машинах тех времен = может уже быстрее, но JS все равно на ПОРЯДКИ быстрее запускается после замены кода.



Ну относительно скорости компиляции не поспоришь. но тут вопрос в другом. Если реально надо перекомпилировать и запустить какую-то часть (я думал вы про автоматическую перекомпиляцию части модулей), то проблем нет. DLL очень даже динамически можно выгрузить, перекомпилировать и загрузить.
Собственно и разработка ведётся именно через динамические библиотеки, которые не требуют для своей компиляции перекомпилировать остальные независимые библиотеки.

Но как бы там ни было, признаю, что да есть проблема с медленной компиляцией.

Цитата:

2) система удобных колбэков
Я про УДОБНЫЕ! Передать функцию в виде указателя - это... немного не то!


ну лично я и с указателями на функцию больших проблем не вижу, но все таки если мы говорим про современный С++, то там есть тип function. Например, у вас есть функция, в которую надо передать callback который принимает стринг по копированию и интеджер по ссылки, а возвращает true/false. Ну и что бы совсем удобно было, обработку прямо при вызове сделаем.



void MyFunctionWithCallback( std::function<bool(std::string, int&)> callback)
{
int i=0;
......
if( callback )
auto result = callback("Hello, World", i);
......
}

void OtherFunction()
{
......
int j=0;
......
MyFunctionWithCallback(
[&](std::string text, int& i) -> bool
{
std::cout<<"Log: "<< text<<std::endl;
i = j;
}
);
}



Ну и чем это не удобно?

Цитата:

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


Да, конечно полной рефлексии нет. Но из личного опыта, она нужна ТОЛЬКО при разработки каких-то кодо-аналитических унструментов. Иначе, это просто глупый дизайн.
Тем более, что метапрограммирование, не обязательно подразумевает изменения налету. Если вы пишите программу, которая генерирует целевой код, то это и есть метапрог. И тут проблем практически у любого языка нет. Обрабатываешь исходники перед компиляцией (препроцессинг) и все. В С и старом С++ очень Макросы помогали (я их и сейчас люблю, но ... я в меньшинстве). В QT на метапрограммировании весь механизм сигналов сидит. В boost целая библиотека для метапрог. была... есть. Сейчас, механизм шаблонов раздули так, что огого! А это ведь все из метапрограммирования. Ну и как я уже писал, если исходники есть, то... парсить их никто не мешает. А то что исходники можно таскать в бинарнике, ну так, это хоть и извращение, но возможное.

Цитата:

4) удобных GUI
Я пока не встречал НИЧЕГО более мощного чем HTML. По простоте и по сложности. Одно CSS чего стоит.


Ну HTML это не полноценный язык. Это язык разметки. В QT например, есть QML. Тоже на XML основан и тоже все эти стилевые припоны имеются. Но это как-то уже не совсем C++, хотя можно и на прямую элементами GUI манипулировать. У Java или JS тоже "своего" GUI нет. Ну так и что?

Цитата:

5) добавлю еще "инструменты отладки". Не знаю как с этим у С++, но консоль отладки в браузере - это ОЧЕНЬ мощный инструмент (используемый большинством хорошо если на 5%)


Разные инструменты есть, для разной отладки. Конечно не мало важным остается то, как код скомпилирован (рефлексии то нет). Но в принципе, если в Debug моде (т.е. с таблицой символов), то можно и пошагово запустить, можно и профайлер задействовать.

Цитата:

6) и добавлю конечно отсутствие "жесткой типизации".

Понимаю что объяснять прелести подобного СИшнику - это как эскимосу пояснять что в Африке люди вполне успешно живут совсем без снега. Или основы Танго тому кто всю жизнь танцевал только вальс.

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


Ну вот тут вот в С++ полная свобода выбора.

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

Скажем, такой пример будет вполне себе корректным

 

class B{

int y=10; //жестко задаем тип

template<class TYPE>
TYPE GetX(){ ..... }; // TYPE будет определен где-то потом

auto MyFunction() // тип возврата будет определен компилятором самостоятельно
{
auto x = GetX<int>(); // задаем тип для фунцкии GetX а тип х будет определен самостоятельно.
decltype(y) z = x; // тип z возьмем такой же как в х.
return z+y
}
};


а хочешь, без типов работай. прямо с байтами напрямую и касть их в какой хочешь тип.
это правда не приветствуется при нормальном дизайне, но иногда приходится прибегать.
void* никто не отменял.

Но если и этого мало, то есть std::any который вообще хранит любой тип и делает типа безопасный кастинг. Ну прямо как в интерпретируемых языках.



std::any a = 1;

a = "Hello";

std::cout<< a.type().name();

if( a.has_value() ){ ... }

std::any_cast<int>(a);




Цитата:

...у С++ есть своя "ниша", в которой он - ХОРОШ!, но не нужно пытаться ОПЯТЬ вернуть ему "ПЕРВЕНСВТВО среди языков" как было во времена "С++, Паскаля и Бейсика".


Не знаю, что вы подразумеваете под первенством. Если популярность, то конечно надо пытаться!

У С++ есть один большой минус. У него высокий порог вхождения. Другими словами, нужно больше выучить, что бы начать писать уверенно и комфортно. Но если им владеешь, то проблем написать хоть что, нет. В других языках другие проблемы. Например в Java, можно начинать писать прямо с дет сада, вот только если вы решите, оптимизировать ваш код, даже в мелочах, вы должны быть экстрапрофи, намного более опытным гуру, чем при оптимизации C++.

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

Цитата:

Года 1.5 назад попытался написать на Node перехват всех движений мышки. Перерыл ВСЕ что было доступно! Вывод - нужно писать плагин на С++. Нода не смотря на все свои "безграничные возможности" оказалась не способной написать примитивный win-hook. Но...
Если у меня будет модуль для hook, то все остальное я все равно предпочту написать на JS как на самом УЮТНОМ языке для разработки "управляющих программ". Даже если он при этом будет не "достаточно шустрым".


комфортность приходит с опытом. не думаю, что python уступает JS в простоте, например.
мне и на С++ комфортно, хоть что писать. я реально считаю его наиболее удобным, особенно в больших проектах.

Все дело в том, что вы спорите о каком-то первенстве. А я говорил о том, что в современном С++ нет ничего такого ужасного и сложного, и который используют не только ради каких-то низко уровневых операций. С++ современный и очень комфортный для серездных и крупных проектов.

[Ответ][Цитата]
гость
188.170.174.*
На: Кароч решил я снова заняться программированием
Добавлено: 12 июл 22 2:38
Мне происходящее напоминает ситуацию, когда собралась толпа мужиков и все начали спорить, какими молотками забивать гвозди. Маленькими, или большими, из ст45 или 50?, а может кувалдой, да нет микроскопом лучше.. ДА НЕТ ЖЕ БЛЯДЬ, ЭТО ВСЁ КАМЕННЫЙ ВЕК, ЕБАНУТЫЕ, ГВОЗДЕЗАБИВНОЙ ПИСТОЛЕТ РУЛИТ... У нас только топор есть.. А может не гвозди будем забивать а саморезы крутить?.. ПРЕДЛАГАЮ БЕЗ ЕДИНОГО ГВОЗДЯ..

ну итд итп..
[Ответ][Цитата]
Tester64
Сообщений: 1910
На: Кароч решил я снова заняться программированием
+1
Добавлено: 12 июл 22 2:47
Изменено: 12 июл 22 4:24
Цитата:
Автор: daner

Если реально надо перекомпилировать и запустить какую-то часть (я думал вы про автоматическую перекомпиляцию части модулей), то проблем нет. DLL очень даже динамически можно выгрузить, перекомпилировать и загрузить.
Собственно и разработка ведётся именно через динамические библиотеки, которые не требуют для своей компиляции перекомпилировать остальные независимые библиотеки.

Но как бы там ни было, признаю, что да есть проблема с медленной компиляцией.

Как бы там ни было, перекомпилировать маленькую ДЛЛ и перелинковать ее или просто пере-трансллителировать(не знаю ка эту операцию назвать - пропарсиь js в коды в памяти через транслятор), или даже "обновить" один из модулей большого проекта с одной функцией простой подменой кода функции - тяжело сравнивать скорости! Прирост минимум раз в 50-100...

Цитата:
Автор: daner
ну лично я и с указателями на функцию больших проблем не вижу, но все таки если мы говорим про современный С++, то там есть тип function...
Подобное и в старых было.(20+ лет назад) Только передавалась ссылка на функцию, которая "оборачивалась" в "интерфейс" у принимателя (примерно как в ДЛЛ). Позже появились "интерфейсы" как в Java. Активно подобным еще в Паскале пользовался, но... это... "не то"!



function asdf(onRes){
...
onRes(123)
}

....

asdf(function(res){
ура получили res == 123
})



И это в "старом" написании
Сейчас в моде "функциональное" в виде (не пользуюсь)


asdf(res => {
ура получили res == 123
})


Цитата:
Автор: daner
Ну и чем это не удобно?

Кода как-бы в РАЗЫ больше! Тяжело "придумать примеров" по быстрому, но я знаю Java, Delphi/Pascal/Lazarus и немного C++ и УВЕРЕННО говорю что в JS с этим НА ПОРЯДОК проще работать!

Цитата:
Автор: daner
...по метапрограммироваю....


Да, конечно полной рефлексии нет. Но из личного опыта, она нужна ТОЛЬКО при разработки каких-то кодо-аналитических унструментов. Иначе, это просто глупый дизайн.
Тем более, что метапрограммирование, не обязательно подразумевает изменения налету. Если вы пишите программу, которая генерирует целевой код, то это и есть метапрог. И тут проблем практически у любого языка нет. Обрабатываешь исходники перед компиляцией (препроцессинг) и все. В С и старом С++ очень Макросы помогали (я их и сейчас люблю, но ... я в меньшинстве). В QT на метапрограммировании весь механизм сигналов сидит. В boost целая библиотека для метапрог. была... есть. Сейчас, механизм шаблонов раздули так, что огого! А это ведь все из метапрограммирования. Ну и как я уже писал, если исходники есть, то... парсить их никто не мешает. А то что исходники можно таскать в бинарнике, ну так, это хоть и извращение, но возможное.

Когда у вас нет этого "из коробки", то вы не пытаетесь "ДУМАТЬ в этом ключе"! Полистайте инфу про TypeScript! Это ЯЗЫК, созданный на основе такой "подмены кода НА ЛЕТУ". У него 2 режима - компиляция в JS и "выполнение на лету". Так-же есть библиотека, которая грузится в начале, и все ПОСЛЕДУЮЩИЕ методики "из новых" запускает "в старом режиме" - преобразование кода на лету".

Таких ЯЗЫКОВ наприсанных "внутри JS" МНОГО! Я пытаюсь оседлать эту волну и подменять код функций по неким правилам ВО ВРЕМЯ РАБОТЫ! (но это долго пояснять - я сейчас не готов, да и это лишь малая часть моего фреймворка, а я застрял сейчас в другой части)

Одна из вариаций - это ПОДМЕНА кода "на лету"! Учитывая "веб-ориентированность" JS, новый код можно "догрузить" с удаленного сервера. А удаленный сервер может "сгенерировать" его "под тебя лично". (мозг плавится от возможностей - чем-то уходим уже в сторону SkyNet из терминатора)

Цитата:
Автор: daner

Ну HTML это не полноценный язык. Это язык разметки. В QT например, есть QML. Тоже на XML основан и тоже все эти стилевые припоны имеются. Но это как-то уже не совсем C++, хотя можно и на прямую элементами GUI манипулировать. У Java или JS тоже "своего" GUI нет. Ну так и что?


А это и не язык! Это UI(user interface). В делфи были шикарные "формы", которые можно было двигать мышкой, а здесь - довольно простой язык разметки, который дает возможность рисовать ДАЖЕ 3Д! полистай примеры по одной из самых популярных библиотек https://threejs.org

Причем она активно использует даже видеокарту Nvidea через Хром/опера-браузер! Поговаривают что идут разработки для доступа из JS в CUDA для ускорения вычислений!

(Мечтаю разобраться) на этой технологии можно создавать AR/VR программы для работы в 3Д ОЧКАХ (через "смартфон в очках") - полноценное 3Д через "левый и правый глаз" и 3Д картинку накладываемую на них.

У меня пока "встроенная в материнку" видео (я - не "игроман") - поэтому и интересна ТЕОРИЯ того что вы используете. Как-нибудь позже может пораспрашиваю вас немного по "азам" CUDA (проще задать пару "глупых" вопросов с Да-Нет чем вычитывать тяжелеылы документации на десятки экранов в поисках "жаль что на такое оно пока не способно").

Цитата:
Автор: daner
Разные инструменты есть, для разной отладки. Конечно не мало важным остается то, как код скомпилирован (рефлексии то нет). Но в принципе, если в Debug моде (т.е. с таблицой символов), то можно и пошагово запустить, можно и профайлер задействовать.


Опять это из разряда того что "тяжело пояснить не показывая".
Если в двух словах... консоль в браузере является HTML страницей!!! Можно играться с цветами, размерами, выделением текста. Доступ к html вообще позволяет НА ЛЕТУ менять стили. Есть хром-плагины, расширяющие механизмы отладки на ПОРЯДКИ! (сам несколько таких плагинов написал)

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

Цитата:
Автор: daner
Ну вот тут вот в С++ полная свобода выбора.

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


Опять разговора слепого с глухим! )))
Типизацию нельзя просто "отменить" заменив "безтиповым типом". Этим "дышать" надо... (как гражданин РФ рассказывает про свою свободу фразой "показываешь паспорт полицейскому патрулю и иди дальше куда хочешь")

в первую очередь НЕ типизация - это встроенные механизмы АВТО-преобразования типов!



var a, b

a=1

b=2
console.log(a+b)

// а нет - должно быть дробным
b=2.45
console.log(a+b)

b=new Data() // засунули дату

// передумали... воткнули число внутри строки
b="2"

// все равно "сложилось"
console.log(a+b)


...это самый ПРОСТОЙ пример! В большом проекте куда больше гибкость!

Это как "рука нужна не только чтобы держать вилку и работать с тарелкой"... Захочешь - используй ее хоть чтобы кирпичи таскать, помой руку и пользуйся СНОВА вилкой. А хочешь - рукой с тарелки еду бери, даже если "так не принято" но очень хочется ибо БЫСТРЕЕ будет!

Просто прими за ФАКТ! В C++ есть лишь ИМИТАЦИЯ безтиповых переменных, а в JS это "заложено в философию языка". В "твоем мире" ("корпоративном") есть куча "стандартов оформления кода", где типизация помогает как находить ошибки, так и "понимать код через годы, когда надо мелочь добавить". В мире JS ("не корпоративном" а в "режиме ВЕЧНЫХ ПРОТОТИПОВ") важно чтобы "полет мысли" сдерживало как можно меньше запретов!

...Это не хорошо или плохо! (как "есть насекомых и собак в Азии") Это просто на уровне "традиций"! И... ответ на вопрос "чего нет в С++"

Цитата:
Автор: daner
Не знаю, что вы подразумеваете под первенством. Если популярность, то конечно надо пытаться!

У С++ есть один большой минус. У него высокий порог вхождения. Другими словами, нужно больше выучить, что бы начать писать уверенно и комфортно. Но если им владеешь, то проблем написать хоть что, нет. В других языках другие проблемы. Например в Java, можно начинать писать прямо с дет сада, вот только если вы решите, оптимизировать ваш код, даже в мелочах, вы должны быть экстрапрофи, намного более опытным гуру, чем при оптимизации C++.


Поезд ушел! )))
JS уже давно обогнал C++ по популярности! Вы сами ответили на "почему" - "высокий порог вхождения"! И "очень узкая специализация".

В школе после "обучающих программ которые нам мог загрузить только препод со спец-дискет" первая паскалевская ПОРТАБЛ программа была "вау-эффектом", которым я мог ПОХВАСТАТЬСЯ перед одноклассниками! Сейчас это заменилось HTML-страницей! Я могу ее "показать однокласснице на ЕЕ айфоне". А ведь есть и "подработка в веб-конторе еще школьником-студентом", и первый заказ на сайт-визитку через интернет-работу.

Популярность С++ будет ПАДАТЬ! А у JS еще далеко до "потолка".

А еще... у С++ крайне низкая "мульти-ОСность"! Qt - лишь кривая попытка исправить ситуацию "устаревшей архитектурой"...

Цитата:
Автор: daner
комфортность приходит с опытом. не думаю, что python уступает JS в простоте, например.
мне и на С++ комфортно, хоть что писать. я реально считаю его наиболее удобным, особенно в больших проектах.

Все дело в том, что вы спорите о каком-то первенстве. А я говорил о том, что в современном С++ нет ничего такого ужасного и сложного, и который используют не только ради каких-то низко уровневых операций. С++ современный и очень комфортный для серездных и крупных проектов.


НЕТ! Комфортность - это и есть "порог входа"! И наличие ИНСТРУМЕНТОВ! У С++ довольно СКУДНЫЕ инструменты (устаревшие на 10-20 лет), а в JS они каждый МЕСЯЦ добавляются и УСЛОЖНЯЮТСЯ.
[Ответ][Цитата]
гость
93.95.230.*
На: Кароч решил я снова заняться программированием
+1
Добавлено: 12 июл 22 3:59
Цитата:
Автор: daner



легко.
Простой сервер, вообще легко писать, на чем угодно, что работает с сокетами.

Вообще создаётся впечатление, что у многих не правильное представление о современном С++. Типа, этакий продвинутый С, как он был лет двадцать пять назад. Но это не так. Пожалуй, это не так даже тогда, когда он таким был, но уже было полно, довольно "стандартных", библиотек типа boost или qt, а сегодня так и подавно.

Для любителей поизвращаться, есть даже сборщик мусора, вот только он нафик не нужен и им никто не пользуется. Мне вот даже в голову не приходит, так сразу, чего нет в С++ (в той или иной форме), но есть в других языках.
Я не про то что плюсы чем то "хуже" жабы, или простигосподи пайтона, но вообще вебсервер это не цацкипецки, ну то есть не многим проще чем собственную базу данных написать.

Конечно какой то "хеловорлд" чтобы сокет слушал 80 порт и выплёвывал на запрос страницу на жабе с нуля можно написать за пол часа без подсказок. На С\С++ на чистых сокетах это уже коитус на пол дня — день, да и без интернета и стеоверфлоу всего не припомнить. А библиотеки если юзать… это не спортивно, тогда уж логичнее найти библиотеку с готовым серваком)))

Ну а чтобы ваш самопальный сервачок взаимодействовал со страницей не отличимо от какого нить апача или энгинкса, это на долго нужно уйти в аскезу, на год примерно и 10-20к строк кода.
[Ответ][Цитата]
 Стр.10 (40)1  ...  6  7  8  9  [10]  11  12  13  14  ...  40<< < Пред. | След. > >>