Jsx707
и под линукс собирается
У меня пока не собирается под Linux. Потому что некоторые компоненты обращаются к Windows API и поэтому я пока что на всякий случай сделал проверку при старте движка в компоненте INIT который обращается к PlatformInfo чтобы узнать текущую ОС и если там Linux , Unix , MacOS, FreeBSD то будет сообщение о том , что данная платформа на данный момент не поддерживается
Алексей
Для меня этот вопрос звучит как "сколько раз нужно заниматься сексом?"
Такой вопрос встаёт😊 когда нужен результат 😅. Зачатие например
Andrii
Ребят, такой вопрос Если что-то реализовано на одном языке, то тоже самое можно реализовать и на другом? Не важно сколько больше усилий понадобиться
Это называется полнота по Тьюрингу, ну и в целом теоретически не всегда. Например, есть языки типа Agda, где гаранитруется, что выполнение фунции завершится для любых входных данных за конечное время. Обычно это реализуется через структурную рекурсию, когда на рекурсивный выхзов накладывается то ограничение, то как минимум один из параметров рекурсии долже быть структурно меньше входящего аргумента, откуча тривиально следует конечность вычислений. Либо можем прокидывать существуемый только на стадии компиляции объект, который будет структурно уменьшаться, что и будет доказательством того, что вычисления выполнятся за конечное время. Да, существуют директивы компилятора, которые могут отключить такую проверку, но в целом такое есть. Понятно, что есть проблема остановки машины Тьюринга, и если мы можем доказать, что код на ЯП выполнится за конечно время, то он неполный по Тьюрингу, а значит мы можем запрограммировать не любой код, а только тот, для которого имеется доказательство того, что он выполнится за конечное время.
Jsx707
Это называется полнота по Тьюрингу, ну и в целом теоретически не всегда. Например, есть языки типа Agda, где гаранитруется, что выполнение фунции завершится для любых входных данных за конечное время. Обычно это реализуется через структурную рекурсию, когда на рекурсивный выхзов накладывается то ограничение, то как минимум один из параметров рекурсии долже быть структурно меньше входящего аргумента, откуча тривиально следует конечность вычислений. Либо можем прокидывать существуемый только на стадии компиляции объект, который будет структурно уменьшаться, что и будет доказательством того, что вычисления выполнятся за конечное время. Да, существуют директивы компилятора, которые могут отключить такую проверку, но в целом такое есть. Понятно, что есть проблема остановки машины Тьюринга, и если мы можем доказать, что код на ЯП выполнится за конечно время, то он неполный по Тьюрингу, а значит мы можем запрограммировать не любой код, а только тот, для которого имеется доказательство того, что он выполнится за конечное время.
Я отвечал уже на данный вопрос кстати. Я привёл в пример библиотеки как например GLFW, SFML, QT(пусть и фреймворк), я сказал, что в оригинале они написаны на C/C++, однако доступна реализация и на других языках программирования. Её можно реализовать за счёт неких прослоек, то есть если мы переносим GLFW с C на Java, то тут всё просто через Java мы просто дёргаем функции которые реализованы на C. Иными словами просто в Java все функции и ТД имеют такие же имена как и в коде на C и аргументы почти те же. Мы их просто вызываем ,то есть Java это просто прослойка, которая в свою очередь вызывает уже код написанный на Си.
Jsx707
К тому же Java имеет совместимость с Си/C++
Иаков
хотя havok наверно лучше
Помню это название, я его видел, когда запускал sonic generation
Иаков
Ну я после года, подгорел
То есть, каждый день обучаясь, так и перегорел?
Jsx707
Я упомянул, что полностью проект переписывать на другой язык программирования в большинстве своём - плохая затея. Ибо дорого, долго и ТД. Однако можно переписать лишь отдельные части или просто делать новые дополнения на другом языке предусмотрев то как они будут взаимодействовать между собой
Jsx707
Но смотря ещё о каком проекте и о каких яп он тебе говорит. Просто сказать "нет" тут нельзя.
Jsx707
То есть, каждый день обучаясь, так и перегорел?
Перегорел он по-моему потому что пытался разбить проект на несколько файлов. Потом ещё с SQL боролся очень долго.
Andrii
Я упомянул, что полностью проект переписывать на другой язык программирования в большинстве своём - плохая затея. Ибо дорого, долго и ТД. Однако можно переписать лишь отдельные части или просто делать новые дополнения на другом языке предусмотрев то как они будут взаимодействовать между собой
Зависит от... Один банк потратил $2 млрд на то, чтобы переписать софт с COBOL на Java и в итоге отказался от этой затеи. Но клиент Ethereum, например, переписали с Go на Rust и получился Parity, более быстрый и стабильный. Так что тут много вопросов
Алексей
То есть, каждый день обучаясь, так и перегорел?
Да, я по 12 часов херачил с офигенным удовольствием
Jsx707
Ну кстати вот Unix изначально была написана на Assembly, но потом наш старый добрый Деннис сказал, что по-моему это вот какая-то херня..... Потому что нужно постоянно даже чтобы сообщение вывести расписывать всё на десятки строчек кода. И поддерживать проект сложно и создал Си. Ну и решил переписать систему почти с нуля! Не знаю насколько это веская причина, возможно потому что в дальнейшем проект будет удобнее поддерживать и программы под Unix будет писать удобнее
Jsx707
Да, я по 12 часов херачил с офигенным удовольствием
Кстати, ты научился создавать многофайловые проекты ?
Иаков
Перегорел он по-моему потому что пытался разбить проект на несколько файлов. Потом ещё с SQL боролся очень долго.
C++ проект? Но в любом случае, разделение на файлы более правильно, тип, Проектирование, солиды и прочий клин код, не?
Алексей
Кстати, ты научился создавать многофайловые проекты ?
Нет у меня домашка для меня глубокая была. Побитовые операции, указатели, ссылки. Сейчас подправляю файлы и в отпуске закрываю структуры и вернусь к этому вопросу
Jsx707
То есть, каждый день обучаясь, так и перегорел?
Я вот на долгое время бросал программирование , но вот как на зло чем бы я не пользовался работало по-моему мнению Х*ЁВО и возникло желание написать своё и как можно в меньшей степени зависеть от уже готового. Ну свой Steam , CS:GO, Battle Net, EGS я конечно не написал , но к программированию вернулся
Евгений
Я могу разделить деятельность только по дням
Ну, очевидно, все зависит от объема задач. Я сейчас по часу тоже не делю, как уже сказал
Jsx707
Unix это название семейства OS, которые часто писались с нуля. Первая версия была всё-таки смесью asm и Си.
Ну ясное дело, что семейство. Но первая версия стоила насколько я помню очень и очень и ОЧЕНЬ дорого. Ну и ясное дело,что это смесь ибо возможно ли вообще написать систему без использования asm?
Andrii
На плюсах же получится, там же и низкий уровень есть... Не?
Написать-то можно, только не зря Линус бдит, чтобы не строчки С++ кода не проникло в ядро :)
Jsx707
А, тебя больше цепляет фронт часть, визуальная составляющая?
Меня больше цепляет то , как организован проект, как он работает, насколько он гибкий и какие у него возможности. Будем честны, посмотрите на EGS. И я не буду скрывать - выглядит как полная херня, это ужасно, просто ужасно! Функционал - нулевой, интерфейс - нулевой. Жрёт - как будто я уже игру запустил. Другое дело Steam. К нему вопросов у меня мало, работает и жрёт нормально. Battle net - аналогично EGS.
Иаков
Egs? Эт что?
А, эпики?
Jsx707
На плюсах же получится, там же и низкий уровень есть... Не?
Можно, но наверное принято, что самую низкоуровневую часть лучше писать на Си
Jsx707
Из ОС написанных полностью на C++ это Serenity OS
Andrii
Типо, очень много памяти есть будет? Лучше на си?
Проблема не в памяти, а то, что C++ имеет тенденцию прятать очень многое что происходит, и это не очень хорошая идея. Ядро пишется на двусвязных списках и кольцевых буферах. А всякие вектора, где неявно происходит realloc и инвалидируются итераторы от лукавого.
Jsx707
Ну.. Значит, тебя заботит клиент... Как работает программа клиент. На плюсах кстати их тоже пишут, там qt есть и еще что-то
QT отличный вариант. Но EGS блять вообще использует SDL вроде как...... Созданную для игр......
Jsx707
Проблема не в памяти, а то, что C++ имеет тенденцию прятать очень многое что происходит, и это не очень хорошая идея. Ядро пишется на двусвязных списках и кольцевых буферах. А всякие вектора, где неявно происходит realloc и инвалидируются итераторы от лукавого.
Блин.... Точно. Я забыл упомянуть , я просто о Си уже... Ну забыл ибо уж очень я полюбил классы , пространства имён и ТД. Короче. В Си хоть и много писанины и многое нужно реализовывать самому, однако при этом больше тонкостей для работы с памятью, железом , видеопамятью и ТД, ведь в ядре всё реализовывается с нуля. В C++ же много что уходит под капот и он больше подходит уже для написания более высокоуровневых вещей и системного и прикладного ПО
Jsx707
Ориджин вот что работает как говно
Orogin тоже. Ещё эта падла порой качает медленно. EGS вообще видимо не умеет определять скорость ..... Я даже не знаю как это описать, но у тебя за 5 секунд счётчик будет скакать туда-сюда. Сперва 1 мб/сек, потом 7, потом 5, потом 20 и всё это за 5 секунд
Jsx707
Ну я преувеличил конечно
Bogdan
Но оно же по сути как торрент работает
Иаков
QT отличный вариант. Но EGS блять вообще использует SDL вроде как...... Созданную для игр......
Sdl, либа? Ну, то-то меня напрягает, что когда egs запускаю, у меня используется дискретная видяха.. Процента 2-5, но используется
Jsx707
Ну... стиль программирования на C++ и на Си очень сильно отличается просто. И сишный более безопасный, не зря всякие Unreal Engine не используют STL а используют свои библиотеки контейнеров. Для меня C++ достаточно переусложнённый язык, который почти не оказал влияние на индустрию.
Меня как в языках программирования так и в человеческих языках раздражает возможность сказать или выполнить одну задачу 15 разными способами...... Что в C++ вполне себе можно. Ибо они оставляют кучу Легаси которое тянется уже хз сколько релизов
Иаков
Ну, аналоги для плюсов щас раст и готовится карбон... Интересно, получится ли плюсам умереть, или он как пыха, джава будет?
Хотя, насчет джавы я загнул. Она не устаревшая, наоборот, развивается и востребована, в Энтерпрайзе точно и в новых проектах тоже
Andrii
Ну, аналоги для плюсов щас раст и готовится карбон... Интересно, получится ли плюсам умереть, или он как пыха, джава будет?
Конечно будет жить. Эту идею спешно продали в конце 90-х и написали овердофига софта на нём.
Jsx707
Кстати , Andrii. Хочу сказать, что недавно я решил попробовать в своём движке систему ввод-вывода инфы в консоль всё-таки реализовать на FASM и сделать обёртку на C++. Суть в том, что информации в консоль будет выводится очень много особенно в режиме отладки, её будет крайне много и она будет идти непрерывно почти и в целях экономии ресурсов я хотел написать всё на ассемблере. Как ты относишься к данной идее?)
Jsx707
Ну в принципе ты прав , я и отказался. Я сделал свою библиотеку для ввода и вывода, конечно там не аналог iostream и ТД , она тоже использует iostream просто больше настроек для ввода и вывода
Иаков
Kotlin...
Котлин? Он больше под андроид. Но и в бэк тоже проникает. Сама джава тоже востребована, особенно в интерпрайзе
Сидредин
Котлин? Он больше под андроид. Но и в бэк тоже проникает. Сама джава тоже востребована, особенно в интерпрайзе
почему под андроид? Почему думаешь, что котлин не востребован в интерпрайзе?
Иаков
почему под андроид? Почему думаешь, что котлин не востребован в интерпрайзе?
Он там есть, не сомневаюсь, но джава там более популярна. Слышал, что чистого Котлина там нет, часто связка джава + котлин
Jsx707
почему под андроид? Почему думаешь, что котлин не востребован в интерпрайзе?
Суть в том, что сами создатели даже этого ЯП - JetBrains сами заявляли, что ориентируются больше на Android. Та и оно и видно, ведь Desktop-приложений больше на Java
Иаков
В Enterprise больше легаси
Но и новые проекты на нем создают
Иаков
В Enterprise больше легаси
Ну, в Энтерпрайзе
Иаков
В Enterprise больше легаси
Хотя... В любом случае, Интерпрайз интереснее простого Бэка, там же большая система, много интеграций, сложность больше и зп больше
Jsx707
Так котлин - это же тот же Java, только более удобный
Не отрицаю, но создатели больше на Android ориентировались, я сам помню. Та и Google его именно для Android сделал основным. А так , я со всем согласен.
Иаков
Так котлин - это же тот же Java, только более удобный
Угу, а джава - тот же шарп, только неудобный
Сидредин
Угум-с
зачем?
Bogdan
Раст прикольный но он даже на 10% плюсы не заменил
Andrii
Хотя... В любом случае, Интерпрайз интереснее простого Бэка, там же большая система, много интеграций, сложность больше и зп больше
Ой, писать софт для одной конторы по сути... Со всеми её заморочками и огранчениями... Не знаю...
Иаков
😂😂😂😂😂😂. Нормально
)) Там хотябы теже геттеры и сеттеры, в джаве нужно методы писать и приватные поля, а в шарпе есть короткие и полные свойства