Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/134: Рейтинг темы: голосов - 134, средняя оценка - 4.62
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4

Общие вопросы и приёмы эффективного программирования на BASIC

27.03.2021, 15:34. Показов 33608. Ответов 391
Метки нет (Все метки)

Вот как создать кнопку:
PureBasic
1
2
3
4
5
6
7
8
9
10
Dim hwndButton As HWND = CreateWindow( _
    WC_BUTTON,
    "Текст кнопки", _
    WS_CHILD Or BS_BITMAP Or BS_PUSHBUTTON Or WS_CLIPSIBLINGS, _
    10, 10, 100, 50, _
    hwndMainForm, _
    Cast(HMENU, 1000), _
    hInst, _
    NULL _
)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2021, 15:34
Ответы с готовыми решениями:

Общие вопросы по языку 1с Visual Basic
Всем привет, много информации нашел, но путевого очень мало, подскажите, пожалуйста, где можно побольше прочитать о достоинстве этого...

Приемы взаимодействия Visual Basic и SQL
При создании приложений, оперирующих базами данных, нередко возникают проблемы, связанные с организацией взаимодействия языка...

Основные понятия и приемы программирования
Помогите ответить на вопросы по С#. 1)Создание объектов.Понятия ссылки. 2)Массивы:одномерные,многомерные,непрерывные,массивы объектов. ...

391
Эксперт по электронике
6994 / 3310 / 341
Регистрация: 28.10.2011
Сообщений: 12,991
Записей в блоге: 7
01.04.2021, 12:48
Цитата Сообщение от Замабувараев Посмотреть сообщение
1. Нельзя делать перегрузку операторов, хотя в рантайме перегрузка прекрасно существует: оператор «+» можно применять как для строк, так и для чисел.
2. Блок кода (If, Else и прочие For, While, Repeat) не образует локальный блок видимости: переменные, объявленные внутри такого блока, доступны извне.
Вам нужен бейсик или C++? Пишите на плюсах в чем проблема?
Если намек на FB, то он по синтаксису не проще плюсов. Разве что фигурных скобок нет.

Цитата Сообщение от Замабувараев Посмотреть сообщение
3. Глобальные переменные нельзя объявлять внутри функций.
Можно. Также можно константы, структуры и т. д.
PureBasic
1
2
3
4
5
6
7
8
9
10
Procedure Proc()
  Global x
  
  #Const = 0
  
  Structure st
    x.l
    y.l
  EndStructure
EndProcedure
Цитата Сообщение от Замабувараев Посмотреть сообщение
4. Функции от процедур отличаются только тем, что внутри себя содержат оператор возврата значения.
И что?

Цитата Сообщение от Замабувараев Посмотреть сообщение
5. Debug — это ключевое слово, а не процедура.
И что? Соврешенно не понятно что вы этим хотите сказать.

Цитата Сообщение от Замабувараев Посмотреть сообщение
6. Много разных способов объявления переменных: Shared, Glogal, Protected, Static и просто «по первому использованию».
Опять же что вам не понравилось?

Цитата Сообщение от Замабувараев Посмотреть сообщение
7. Объявления массивов обязательно предварять ключевым словом Dim, ведь скобок после имени переменной совершенно недостаточно, чтобы понять, что это массив.
Конечно недостаточно, ведь это может быть как вызов функции, так и объявление динамического массива, ассоциативного массива или двусвязного списка? Компилятор должен догадаться что от него требуется?

Цитата Сообщение от Замабувараев Посмотреть сообщение
8. Если параметр процедуры массив, то его необходимо предварять ключевым словом Array, потому что опять же скобок недостаточно для понимания, что это массив.
PureBasic
1
2
3
Procedure Proc(Array x(2), List y(), Map z())
  
EndProcedure
Убираем ключевые слова и как компилятор поймет что есть что?

Цитата Сообщение от Замабувараев Посмотреть сообщение
9. Объявление Shared‐массивов необходимо дублировать в главной области видимости.
Нет понятия Shared массив. Ключевое слово Shared для других целей предназначено.

Цитата Сообщение от Замабувараев Посмотреть сообщение
10. Когда вы используете переменные после объявления, то их тип указывать уже необязательно, однако это правило совершенно не работает для констант, которые всегда следует использовать с решёткой.
# это не тип переменной, а признак того что это константа. Что не так?

Цитата Сообщение от Замабувараев Посмотреть сообщение
12. Имена внешних функций нельзя использовать как есть, их всегда следует декорировать подчёркиванием.
Вы ошибаетесь. С подчеркиванием только WinAPI объявленные в библиотеках и сделано это чтобы исключить конфликт имен.

Цитата Сообщение от Замабувараев Посмотреть сообщение
3. Глобальные переменные нельзя объявлять внутри функций.
Давно недостатки считаете преимуществами?

Цитата Сообщение от Замабувараев Посмотреть сообщение
5. Отладка осуществляется отладчиком, например, GDB.
Изкоробки поддерживается как в PB или настраивать нужно? Чем это лучше чем отладчик в PB?

Цитата Сообщение от Замабувараев Посмотреть сообщение
6. Переменные объявляются через Dim.
Цитата Сообщение от Замабувараев Посмотреть сообщение
7. Объявления массивов обязательно предварять ключевым словом Dim, ведь скобок после имени переменной совершенно недостаточно, чтобы понять, что это массив.
Что в FB "скобок после имени переменной совершенно недостаточно, чтобы понять, что это массив"?

Цитата Сообщение от Замабувараев Посмотреть сообщение
8. Если параметр процедуры массив, то рядом с ним просто укзывают скобки.
А если двусвязный список или ассоциативный массив? Хотя нет, я вспомнил, FB их не поддерживает на уровне компилятора и нужно изобретать велосипеды на указателях.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Имена внешних функций используют как есть, без искажения.
В PB также.

Замабувараев, расскажите как в FB с кроссплатформенностью? Какие библиотеки есть? Как насчет кросплатформенной библиотеки GUI, сети и т. д.?
И вообще зачем вы сравниваете PB и FB? Хотите писать на FB - пишите, кто запрещает?

PS.
Развели оффтоп в теме про QB...
1
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
01.04.2021, 14:39
Цитата Сообщение от The trick Посмотреть сообщение
Так отказ может случится и с диском где у тебя весь твой софт лежит с настройками в папках с программами. Разницы нет.
Ещё какая разница. Софт лежит на HDD, а система на SSD, HDD перед смертью ещё помучается, они мгновенно не мрут
Системный диск работает постоянно, а диск с файлопомойкой только когда я к нему обращаюсь.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
01.04.2021, 15:16
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ещё какая разница. Софт лежит на HDD, а система на SSD, HDD перед смертью ещё помучается, они мгновенно не мрут
Ну тут от многих факторов зависит. Ресурс SSD на запись меньше, но на чтение он вполне может работать. Ну и современные SSD диски вроде как более надежны чем HDD.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
01.04.2021, 17:49
Цитата Сообщение от The trick Посмотреть сообщение
современные SSD диски вроде как более надежны чем HDD
Это вряд ли кто может подтвердить или опровергнуть по определённым причинам
Есть у меня на обслуживании рабочий комп на каком то из Пентиумов, работает ежедневно под wiXP (фото-видео-карточные игры, бабуля развлекается ), оперативка 512 МБ, и IDE HDD 80 ГБ., 2 раза менял батарейку на метеринке - вот и все неисправности.
Всему этому комплекту не менее 15 лет, HDD умирать не собирается, конденсаторы не пухнут
Есть у кого то такой древний SSD?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
01.04.2021, 18:54  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Развели оффтоп в теме про QB...
Это не офтоп, а живая дискуссия.

Вы запутались на что именно вы отвечаете:
Цитата Сообщение от locm Посмотреть сообщение
7. Объявления массивов обязательно предварять ключевым словом Dim, ведь скобок после имени переменной совершенно недостаточно, чтобы понять, что это массив.
Этот пассаж про PureBasic. Во фрибесике же объявления идут через Dim, независимо от того, массив это или нет. Я не понимаю, почему в PureBasic массивы выделяют в какую‐то отдельную категорию со своим синтаксисом объявления, а не используют универсальный синтаксис.
Цитата Сообщение от locm Посмотреть сообщение
3. Глобальные переменные нельзя объявлять внутри функций.
Цитата Сообщение от locm Посмотреть сообщение
Давно недостатки считаете преимуществами?
Это про FreeBASIC. Функция, которая кишки с потрохами не выпячивает наружу, — это преимущество. Недостаток — это как раз синтаксическая индульгенция на порчу пространства имён, протекающие абстракции и нарушение принципа сокрытия.

Цитата Сообщение от locm Посмотреть сообщение
Вам нужен бейсик или C++?
Вот практический пример, где пригодится перегрузка операторов.
Итак, нам нужно создать тип данных Rational (натуральная дробь). Чтобы с ним работать, необходимо определить базовые функции: сложение дробей, вычитание, деление, умножение. Логично и естественно для сложения использовать знак «+», для умножения звёздочку «*», например, «c = a + b», «c = a * b», и так далее. Для этого во фрибесике мы просто перегружаем операторы сложения и умножения.
Там, где нет перегрузки операторов, приходится городить монструозные конструкции вида с = RationalAdd(a, b) и c = RationalSubstract(a, b).
Как вы считаете, какой из этих двух вариантов нагляднее: c = a + b или с = RationalAdd(a, b)?
PureBasic поддерживает перегрузку операторов, например, «+» для чисел и строк, есть какая‐нибудь причина, почему это запрещено для собственных типов данных?

Цитата Сообщение от locm Посмотреть сообщение
Пишите на плюсах в чем проблема?
Мне не нужно переходить на другой язык программирования, потому что те же вещи доступны во фрибесике.

Цитата Сообщение от locm Посмотреть сообщение
С подчеркиванием только WinAPI объявленные в библиотеках
Как PureBasic определяет, что вот эта внешняя функция — это WinAPI, а вон та — не WinAPI? Почему для функций WinAPI необходим отдельный синтаксис с подчёркиваниями? Почему вызов других внешних функций не требует визуального мусора и не приводит к конфликту имён?

Цитата Сообщение от locm Посмотреть сообщение
Конечно недостаточно, ведь это может быть как вызов функции, так и объявление динамического массива
Что компилятор первым встретил, то и главнее. Если первым было объявление массива, значит этот набор букв означает массив, и такое имя уже не может иметь функция, следовательно ключевое слово для обозначения массива избыточно. Или PureBasic поощряет неоднозначность, когда массивы и функции имеют одинаковые имена?

Цитата Сообщение от locm Посмотреть сообщение
объявление динамического массива, ассоциативного массива или двусвязного списка? Компилятор должен догадаться что от него требуется?
Почему все эти списки нельзя объявлять по стандартной схеме в виде «ИмяПеременной.ТипДанных»? Я вижу в этом лишь просто раздувание кода компилятора. У вас есть какое‐то логическое обоснование индивидуального синтаксиса под каждую сущность, кроме превращения компилятора в BloatWare?

>кроссплатформенность
Какая‐то мифология. Сколько бы Я не смотрел на форумные темы, 90% из них — это как что‐нибудь решить через винапи. Во‐вторых, когда начинается разговор о быстродействии и эффективности, то быстро приходит понимание, что кроссплатформенность тут только вредит. Простой пример: встроенная функция выделения памяти работает только со стандартной кучей процесса, чтобы работать с дополнительными кучами, резервировать большие регионы, ставить защиту, необходимо выходить за рамки стандартной библиотеки.

Цитата Сообщение от locm Посмотреть сообщение
расскажите как в FB с кроссплатформенностью
Работает под DOS, Вшиндоуз, Линекс, МакОСь и через LLVM везде где есть бекенд LLVM.

Цитата Сообщение от locm Посмотреть сообщение
Какие библиотеки есть? Как насчет кросплатформенной библиотеки GUI, сети и т. д.?
Потенциально можно брать любую уже готовую библиотеку по своему вкусу, это головная боль не компилятора.

Цитата Сообщение от locm Посмотреть сообщение
Изкоробки [отладчик] поддерживается как в PB или настраивать нужно? Чем это лучше чем отладчик в PB?
Опять же отладка — это не забота компилятора, это забота отладчика. Компилятор лишь предоставляет отладочные символы (параметр компилятора -g). Если есть отладочные символы, то можно взять мощнейший GDB, в других случаях можно взять Ольгу или её современную инкарнацию x64 Debugger. Через LLVM потенциально можно отлаживать в Visual Studio.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
01.04.2021, 20:35
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Для чего тут установка?
На самом деле только для контроля лицензии. Так-то большинство плагинов это тупо dll + иногда папочка с данными
которую тоже надо перенести вместе с dll. Ну во всяком случае старые версии плагинов, новые 3-й версии я уже
хз что там наворотили, вроде бы это уже нифига не dll. Тут надо у Анатолия спросить он вроде ковырял vst 3.

Цитата Сообщение от The trick Посмотреть сообщение
Ну конечно ты взял самый простой синт, бесплатный к тому же. Не веришь мне, спроси у Квита, он уже выше про вст тоже самое написал.
Да новые синты/эффекты к сожалению так не сохранишь, они пихают свою регистрацию всюду, в реестр, в program data
и ещё бог знает куда. Причём подвязывают её к конкретной установленной винде. Так что только переустановка.
Ну это чисто защиты, хотя от вареза как мы видим они не особо спасают, но геморов при переустановке создают.

Добавлено через 35 минут
Цитата Сообщение от locm Посмотреть сообщение
Вам нужен бейсик или C++? Пишите на плюсах в чем проблема?
Проблема в том что парень хочет одному языку приделать идеологию другого, что немного странно.

Ну да перегрузку я бы и сам в бейсик не стал добавлять по очевидным причинам.
Как и кучу того, что в FB например засунули на правах "можем - засунем".
PB наверное единственный язык, который сохранил чистоту 3GL кода и очень аккуратно
были добавлены соотв. синтаксич фишки из паскаля, си.
И про пространства имён например если сравнить на FB - жопа, просто код не засунешь
только оборачивать в функцию. Хотя это просто оператор, который по факту указывает
формальное разбиение кода программы(для того чтобы разграничить доступ). Т.е. код
как выполняется так и должен выполняться, но на FB кони люди писали этот функционал.

Нет не страшно на самом деле, могу и в процедуры всё засунуть. Даже инициализации.
Как-то наверно даже строже всё выглядит в плане модульности. Но как-бы не особо приятно.
Не по асмовски сделано, неинтуитивно.

6. Переменные объявляются через Dim.
7. Массивы объявляются через Dim со скобками рядом с именем.
Ну да у разных ЯП синтаксис разный. На PB это упрощено.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Почему для функций WinAPI необходим отдельный синтаксис с подчёркиваниями?
Не помню такого. Вроде в демо версии только такое.

Цитата Сообщение от The trick Посмотреть сообщение
А с чего она должна аварийно поломаться?
При установке разного софта и дров. Я например ронял винду подключая к ней китайский разветвитель флешек.
Ставился кривой какой-то драйвер, работает работает, потом фигак BSOD.
Когда в системе много разных драйверов и устройств часто такое бывает.
Ну и когда засранная винда, понаставил например лишних прог для чужих нужд, понятное дело хочется её переставить.

Добавлено через 4 минуты
Цитата Сообщение от Замабувараев Посмотреть сообщение
Работает под DOS, Вшиндоуз, Линекс, МакОСь и через LLVM везде где есть бекенд LLVM.
Готовые сборки даже есть? Я вот видел только для винды, линукса и DOS. Ну под DOS там мало кто пишет.
В основном железячники, кому там COM\LPT быренько нужно со старья завести. На это проще QB взять
как Vodav сделал.

Добавлено через 10 минут
Цитата Сообщение от Замабувараев Посмотреть сообщение
с = RationalAdd(a, b) и c = RationalSubstract(a, b).
Как вы считаете, какой из этих двух вариантов нагляднее: c = a + b или с = RationalAdd(a, b)?
Да никакой. Математический наверное нагляднее был бы. Если речь про данный конкретный пример.
А причина простая - мы меянем синтаксис ЯП. Постоянство синтаксиса довольно простая и логичная вещь.
Это не конструктор, это язык. Старый, с оговоренными рамками, понятный. А когда начинается вся эта возьня
с кастомизацией, потом смотришь код и охреневаешь. Версий 10 назад с 0.22 там было всё хорошо,
потом влезли эти кони люди и начало трясти весь диалект, Стас помнит. Пришла куча сишников
и начали там всем заправлять. Ну и всё, нет нормального понятного и простого языка. Теперь исходники
хрен прочитаешь.
0
Модератор
10060 / 3905 / 885
Регистрация: 22.02.2013
Сообщений: 5,854
Записей в блоге: 79
01.04.2021, 21:28
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Я например ронял винду подключая к ней китайский разветвитель флешек.
У меня система 6 лет стоит - все отлично. Как вы умудряетесь что-то сломать - для меня загадка. Если драйвер сбоит - то его можно просто удалить.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Это вряд ли кто может подтвердить или опровергнуть по определённым причинам
Ну это как бы везде пишут об этом. По-моему гугл какую-то статистику публиковал - лень искать.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Есть у меня на обслуживании рабочий комп на каком то из Пентиумов, работает ежедневно под wiXP (фото-видео-карточные игры, бабуля развлекается ), оперативка 512 МБ, и IDE HDD 80 ГБ., 2 раза менял батарейку на метеринке - вот и все неисправности.
Всему этому комплекту не менее 15 лет, HDD умирать не собирается, конденсаторы не пухнут
Есть у кого то такой древний SSD?
Такого древнего нет, но я не уверен что тот комп гигабайты данных по харду гоняет. SSD в таком очень щадящем режиму думаю проработает не меньше, а то и больше. У меня SSD - 6й год стоит, все гуд. Прога пишет только 10% ресурса использовано:
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
01.04.2021, 21:44
Цитата Сообщение от The trick Посмотреть сообщение
Как вы умудряетесь что-то сломать - для меня загадка.
Просто неисправное оборудование. У меня тоже винда стоит по 4-5 лет в среднем, если её нормально
настраиваю и больше не ставлю никакой софт.

Добавлено через 4 минуты
Цитата Сообщение от Pro_grammer Посмотреть сообщение
конденсаторы не пухнут
На моих платах вспухли некоторые. Так-то вроде работают ещё.
Хотя уже тогда, году в 2005-м на 775-м были платы с твердотельниками.
Просто дороже стоили.

Добавлено через 31 секунду
Цитата Сообщение от Pro_grammer Посмотреть сообщение
конденсаторы не пухнут
На моих платах вспухли некоторые. Так-то вроде работают ещё.
Хотя уже тогда, году в 2005-м на 775-м были платы с твердотельниками.
Просто дороже стоили.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
01.04.2021, 21:45
Цитата Сообщение от Замабувараев Посмотреть сообщение
Как PureBasic определяет, что вот эта внешняя функция — это WinAPI, а вон та — не WinAPI? Почему для функций WinAPI необходим отдельный синтаксис с подчёркиваниями?
Ты не разобрался в этом вопросе.
PureBasic ни чего сам не определяет, так же как и FreeBasic. Все API, которые он "знает" описаны в соот. файлах .imp, например user32.imp. Там для имён применены псевдонимы, где имя совпадает, но добавлено подчеркивание. И это более универсально, т.к. если меня не устраивает встроенное решение я всегда могу подключиться непосредственно к библиотеке без конфликтов.
Для самостоятельного подключения API непосредственно из библиотеки DLL или .lib есть несколько инструментов, там можно обозвать API как угодно, используя прототипы.
В FB применены подключаемые файлы .bi, аналог header file, без которых FB не знает ни одной API. Почему это отстой? Потому, что ты должен помнить, в какой библиотеке что лежит и приинклюдить нужный файл .bi к своему коду.
пример на FB:
Code
1
2
#Include Once "windows.bi" ' без этого работать не будет!
MessageBox(0,"hhh!","hhh!",0)
Purebasic умеет определять встроенные API БЕЗ инклудов, достаточно написать имя с подчеркиванием.
на PB всего 1 строка:
Code
1
MessageBox_(0,"hhh!","hhh!",0)
0
Эксперт по электронике
6994 / 3310 / 341
Регистрация: 28.10.2011
Сообщений: 12,991
Записей в блоге: 7
01.04.2021, 22:22
Цитата Сообщение от Замабувараев Посмотреть сообщение
Я не понимаю, почему в PureBasic массивы выделяют в какую‐то отдельную категорию со своим синтаксисом объявления, а не используют универсальный синтаксис.
Потому что для объявления переменных dim не нужен. Это устарело как LET и REM. В случае массивов dim используется только чтобы не было путаницы и неоднозначности.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Как PureBasic определяет, что вот эта внешняя функция — это WinAPI, а вон та — не WinAPI?
Элементарно. Все прописано в библиотеках. Имена с подчеркиванием заданы там же.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Почему для функций WinAPI необходим отдельный синтаксис с подчёркиваниями?
Не забываем что PB кроссплатформенный и нет гарантии что в какой-то из платформ не встретится API функция с таким же именем как функция библиотеки или процедура.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Что компилятор первым встретил, то и главнее.
И потом ищем причину багов... "Еще вчера код нормально работал, добавил пару строк и ничего не работает!"

Цитата Сообщение от Замабувараев Посмотреть сообщение
Если первым было объявление массива, значит этот набор букв означает массив, и такое имя уже не может иметь функция, следовательно ключевое слово для обозначения массива избыточно.
Ошибаетесь. Допустим есть процедура
PureBasic
1
2
3
Procedure Proc(x(), y(), z())
  
EndProcedure
Компилятор однопроходовый и код процедуры выше вызова, а значит компилятору неизвестно что есть что. Вот скажите x(), y() и z() это динамический или ассоциативный массив или может двусвязный список? Компилятор должен точно знать.
А в структурах еще сложнее. Этот код совершенно понятен компилятору
PureBasic
1
2
3
4
5
Structure s
  Array x()
  Map y()
  List z()
EndStructure
А этот нет.
PureBasic
1
2
3
4
5
Structure s
  x()
  y()
  z()
EndStructure
Компилятор не знает что есть что. Может это вовсе функции в структуре, а не массивы или список.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Почему все эти списки нельзя объявлять по стандартной схеме в виде «ИмяПеременной.ТипДанных»?
Именно так и объявляются
PureBasic
1
2
List x.l()    ; Двусвязный список типа Long
Map y.POINT() ; Ассоциативный массив структур POINT
Цитата Сообщение от Замабувараев Посмотреть сообщение
Какая‐то мифология. Сколько бы Я не смотрел на форумные темы, 90% из них — это как что‐нибудь решить через винапи.
Можете думать что угодно, но у меня не одна программа собранная под Windows, Linux и MacOS. С GUI, сетью, звуком, файлами и т. д. Есть также работа с железом - COM и USB порты.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Во‐вторых, когда начинается разговор о быстродействии и эффективности, то быстро приходит понимание, что кроссплатформенность тут только вредит.
Вы о чем? Код компилируется в натив под каждую платформу. Например в PB для GUI в винде используется WinAPI, в линукс на выбор GTK2, GTK3 или QT. В MacOS - Cocoa. При этом функции PB одни и те же.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Простой пример: встроенная функция выделения памяти работает только со стандартной кучей процесса, чтобы работать с дополнительными кучами, резервировать большие регионы, ставить защиту, необходимо выходить за рамки стандартной библиотеки.
В PB для выделения памяти используется функция AllocateMemory или AllocateStructure для структур. Что и откуда выделяет знать не обязательно т. к. работает одинаково на всех платформах.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Работает под DOS, Вшиндоуз, Линекс, МакОСь
То что компилируется это понятно. А как насчет кроссплатформенной библиотеки функций. Без нее, переносить приложение с одной платформы на другую сложно.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Потенциально можно брать любую уже готовую библиотеку по своему вкусу, это головная боль не компилятора.
То есть в состав FB кроссплатформенная библиотека не входит? Тогда перечислите имеющиеся кросслатформенные библиотеки для FB.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Если есть отладочные символы, то можно взять мощнейший GDB, в других случаях можно взять Ольгу или её современную инкарнацию x64 Debugger.
Можно взять все что угодно, но в PB это все доступно из коробки и не нужно ничего брать, прикручивать и настраивать. В FB похоже что использовать отладчик могут только опытные программисты.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
В основном железячники, кому там COM\LPT быренько нужно со старья завести.
С COM портами (включая те что конвертеры USB - COM) можно можно нормально работать в современных ОС.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.04.2021, 11:24
Цитата Сообщение от Замабувараев Посмотреть сообщение
В конце концов, программируя процедурно, ваша программа упрётся в ограничения. Вам к структурам нужно будет прикрутить поведение, причём это поведение должно быть полиморфным: одна и та же функция должна принимать разные типы данных. Вам придётся в конце‐концов перекатиться на ООП: наследование, инкапсуляцию, полиморфизм, абстракцию, сокрытие. ООП — это методология разработки, в объектном стиле можно программировать даже на ассемблере, а COM — это ограниченное подмножество ООП.
Поэтому мой ответ на вопрос «Нужно ли программы уровня laba3.cpp и хелловорлд начинать с COM»: да, нужно, чтобы потом не написать с нуля другие свои программы.
К сожалению, на этом форуме все хелловорды пишут без COM..
Перекатываться на ООП точно не буду.. В нормальном мире функции-мухи отделены от котлет-данных. В ненормальном мире каждая котлета имеет свою муху в виде составной части. Хочет котлета или не хочет, муха будет её жрать и засирать..)) Я кстати не против инкапсуляции и полиморфизма, но это не прерогатива ООП. В процедурном стиле можно писать полиморфно и инкапсулированно не имея к тому же побочек ООП. Как-нибудь в своем блоге об этом черкану для разминки мозгов.. ООП - революця в процедурщине, но все как-то позабыли про то, что возможна и эволюция процедурного подхода - ППП Процедурно-Параметричское Программирование..
Придет время - останутся нормальные программы и нормальный код. Что станет с ненормальным кодом - мне неведомо..
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
02.04.2021, 12:43  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
В FB применены подключаемые файлы .bi
Включаемые файлы — это такие же обычные файлы исходного кода, они не создают отдельную синтаксическую категорию. Расширение *.bi — человеческая условность и мирская суета, компилятору безразлично, хоть вообще будет файл с голым именем без расширений.
Заголовочные файлы используют для отделения интерфейсной части от реализации. Без заголовочных файлов вам придётся бежать сквозь километры кода функций в поисках публичной части, а если ещё и функция имеет право засорять пространство имён, то бежать спотыкаясь.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Purebasic умеет определять встроенные API БЕЗ инклудов
Видимо, внутрь PureBasic вшит код со списком библиотек, которые он добавляет в глобальное пространство имён, чтобы их можно было вызывать без объявления. А что будет, если при очередном обновлении эти функции начнут конфликтовать с моими, друг с другом или какой‐нибудь подключаемой библиотекой?

Цитата Сообщение от locm Посмотреть сообщение
Не забываем что PB кроссплатформенный и нет гарантии что в какой-то из платформ не встретится API функция с таким же именем как функция библиотеки или процедура.
Итак, винапи сделали с подчёркиванием только потому, что на других платформах могут существовать функции с такими именами как у винапи? Во‐первых, это не несёт смысла, потому что винапи нет на других платформах, во‐вторых, на другой платформе может быть конфликт функций с подчёркиванием.

Цитата Сообщение от locm Посмотреть сообщение
Потому что для объявления переменных dim не нужен. Это устарело как LET и REM.
Варианты создания переменной «по первому использованию» неизбежно порождают ошибки вида «опечатка в названии переменной». Перепутали или пропустили буквы в какой‐нибудь Hello и HelIo — компилятор любезно создаст новую переменную с похожим именем, а вы даже не заметите.
В QuickBasic тоже было создание переменной по первому использованию, а в следующих версиях всё же пришлось ввести Option Explicit.

Цитата Сообщение от locm Посмотреть сообщение
Компилятор однопроходовый и код процедуры выше вызова, а значит компилятору неизвестно что есть что
Ну и что, что однопроходный. Нам нет нужны просматривать файл дважды. Компилятор в состоянии добавить нераспознанную лексему в особый список и ехать компилировать дальше. Когда встретится тип этой лексемы, компилятор удалит её из списка и поместит в список лексем с известным типом. Если к концу файла остались неопределённые лексемы, то компилятор выведет на консоль строку с сообщением.

Цитата Сообщение от locm Посмотреть сообщение
И потом ищем причину багов... "Еще вчера код нормально работал, добавил пару строк и ничего не работает!"
Аналогично для функций PureBasic, портящих пространство имён.

Цитата Сообщение от locm Посмотреть сообщение
Map y()
  List z()
Почему рядом с ними скобки? В чём практическая польза такой мимикрии под массив и вызов функции без аргументов?

Цитата Сообщение от locm Посмотреть сообщение
Код компилируется в натив под каждую платформу
Ну и что, что он для конкретного процессора. Это не поможет, если он вызывает неэффективный код. Например, для чтения файла вы будете читать его в буфер, а могли бы просто отобразить файл в память.

Цитата Сообщение от locm Посмотреть сообщение
Что и откуда выделяет знать не обязательно т. к. работает одинаково на всех платформах.
Стандартная куча процесса использует блокировку для синхронизации между потоками. Это замедляет выделение памяти. А могли бы использовать собственные кучи памяти, где такой блокировки нет.
Я вижу, что PureBasic создаёт и уничтожает память в промышленных масштабах на конвейерных лентах: память теребят присваивая строк, конкатенации. Строки на стэке функции не поддерживаются, хотя Я не вижу никаких платформоспецифических причин для такого ограничения.

Цитата Сообщение от locm Посмотреть сообщение
То есть в состав FB кроссплатформенная библиотека не входит?
Рантайм весь кроссплатформенный.

Цитата Сообщение от locm Посмотреть сообщение
Тогда перечислите имеющиеся кросслатформенные библиотеки для FB.
Нет никаких «библиотек для FB». Видимо, это под PureBasic надо специально затачивать библиотеки чтоб пользоваться, поэтому вы не задумываясь применяете такую же парадигму и для FB.
Есть просто библиотеки с функциями. Берёте любую понравившуюся, функции которой можно вызывать из Си, и используете, их не надо затачивать под FB.

Цитата Сообщение от locm Посмотреть сообщение
Можно взять все что угодно, но в PB это все доступно из коробки и не нужно ничего брать, прикручивать и настраивать. В FB похоже что использовать отладчик могут только опытные программисты.
А метод отладки в PureBasic «Debug переменная» — это и не отладка даже, это псевдоним для функций Print, вывод на консоль.
Отладчик с графическим интерфейсом «FB debugger» лежит тут https://www.freebasic.net/foru... =8&t=13935

Цитата Сообщение от locm Посмотреть сообщение
сетью
Довольно скудненький функционал PureBasic. Я так понял, что работает в блокирующем режиме. А где асинхронный ввод‐вывод? Где пул рабочих потоков?
Также и с файлами. Нет отображённых в память файлов, нет асинхронного ввода‐вывода.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
02.04.2021, 12:57
Цитата Сообщение от Замабувараев Посмотреть сообщение
А что будет, если при очередном обновлении эти функции начнут конфликтовать с моими
В любом ЯП есть зарезервированные слова, которые нельзя использовать в качестве переменных и т.п.
Просто считай, что имя API +_ это зарезервированное слово. Простое правило - не называй функции так, как названы API + подчеркивание, это трудно запомнить? Тем более, что компилятор укажет на твою оплошность, если повторно объявить одну и туже функцию.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
02.04.2021, 13:02
Цитата Сообщение от Замабувараев Посмотреть сообщение
«Debug переменная» — это и не отладка даже
Конечно нет
Отладчик там совсем дугой:

Есть в комплекте FB хоть что-то похожее на эту мощь?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
02.04.2021, 14:01  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Почему это отстой? Потому, что ты должен помнить, в какой библиотеке что лежит и приинклюдить нужный файл .bi к своему коду.
Это не отстой, а правильное поведение. Файл должен ссылаться только на те декларации и библиотеки, которые ему нужны. Иначе компилятор будет проверять список из ста библиотек для каждого файла в проекте на наличие там таких функций: имея в проекте сто файлов хитрым арифметическим подсчётом получаем открытие каждой библиотеки по сто раз.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
02.04.2021, 15:13
Цитата Сообщение от Замабувараев Посмотреть сообщение
Иначе компилятор будет проверять список из ста библиотек для каждого файла в проекте на наличие там таких функций
Ну вот так вы и пишете поисковики
А нормальные люди знают про индексацию. Да и вообще, PureBasic славится двухпроходным компилятором, который один из самых быстрых.
1
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
02.04.2021, 15:31
Вставлю свои пять копеек. FB не стал высокоуровневым по причине добавления ООП фишек. Высокоуровневым язык делает доступность из коропки работу с АДТ. Если допустим язык не имеет средств работы со списками, регулярными выражениями - если в нем надо своими ручками пилить на указателях, то это си в бейсиковом обличье. И библиотеки тут являются костылями. FB сильно напоминает си, как тут уже замечали. От бейсика там по сути мало чего осталось. Не понимаю зачем это было нужно создавать очередной си с классами.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
02.04.2021, 17:15  [ТС]
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Ну вот так вы и пишете поисковики
Ну так это же ваш PureBasic так делает. Чтобы разрулить зависимости файла он должен прочитать все эти сто библиотек, которые неявно добавлены в пространство имён. И так происходит для каждого файла: опять придётся читать все сто библиотек, чтобы разрулить зависимости.
Цитата Сообщение от Pro_grammer Посмотреть сообщение
Да и вообще, PureBasic славится двухпроходным компилятором, который один из самых быстрых.
Количество проходов по файлу не влияет на то, сколько для каждого файла придётся читать неявно добавленных библиотек.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
FB не стал высокоуровневым по причине добавления ООП фишек
ООП — это высокоуровневые фишки, они есть во фрибесике. Однако непонятно, почему вы считаете, что после добавления высокоуровневого ООП фрибесик не стал высокоуровневым. Вы противоречите сами себе и либо опечатались, либо запутались.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Если допустим язык не имеет средств работы со списками
Вы опять пытаетесь запихнуть в язык то, что должно быть в библиотеке. Язык программирования — это набор лексем и возможность составления из этих лексем своих типов данных. Тип данных «список» должна конструировать и предоставлять какая‐нибудь библиотека, которая вам нравится, а не язык программирования.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
FB сильно напоминает си, как тут уже замечали
По интернетам давно ходила байка: «FreeBASIC — это такой мужчина, но с СИ‐ськами».
Похожесть на си — это хорошо, потому что позволяет использовать си‐библиотеки напрямую, без промежуточного кода.
Цитата Сообщение от CoderHuligan Посмотреть сообщение
От бейсика там по сути мало чего осталось
Единственное, что отобрали у Бейсика – возможность накодить спагетти-кода с неявными переходами.
Вам дали нормальные функции, указатели, перегрузку операторов для собственных типов данных, средства ООП, а вы опять хотите объявить двести глобальных переменных и юзать их по всему коду, не заметить, что для каких-то локальных дел (например, в циклах) разные участки кода используют одну и ту же переменную, перепрыгивать из одного участка в другой и потом ночами напролёт дебуажить это с повизгиванием «Почему у меня ничего не работает?!»
Лучше сразу писать по-нормальному, чем потом с незначительным усложнением программы бегать и обмазываться миноксидилом, отращивая волосы для вырывания.
0
 Аватар для Pro_grammer
6807 / 2839 / 527
Регистрация: 24.04.2011
Сообщений: 5,308
Записей в блоге: 10
02.04.2021, 17:52
Цитата Сообщение от CoderHuligan Посмотреть сообщение
От бейсика там по сути мало чего осталось. Не понимаю зачем это было нужно создавать очередной си
FB не плохо выполняет свою первоначальную задачу - почти полноценная замена Qbasic под Винду. Реально помогает не выбросить огромные залежи древнего кода на помойку, а адаптировать под современные машины.
Создание же нормальных и современных гуёвых программ под Винду превращает в сплошной гемор.

Добавлено через 32 минуты
Цитата Сообщение от Замабувараев Посмотреть сообщение
Количество проходов по файлу не влияет
Надо было сделать акцент на второй части моей фразы - один из самых быстрых, тогда бы в твоей голове сложилась правильная картинка, а не домыслы
Или хотя бы подумать над тем, что основная масса программистов на С++ принимает долгую компиляцию как должное.
1
Эксперт по электронике
6994 / 3310 / 341
Регистрация: 28.10.2011
Сообщений: 12,991
Записей в блоге: 7
02.04.2021, 17:54
Цитата Сообщение от Замабувараев Посмотреть сообщение
Видимо, внутрь PureBasic вшит код со списком библиотек
Список функций не является секретом (см. "General Libraries", "2D Games & Multimedia Libraries" и "3D Games & Multimedia Libraries") https://www.purebasic.com/documentation/

Цитата Сообщение от Замабувараев Посмотреть сообщение
Итак, винапи сделали с подчёркиванием только потому, что на других платформах могут существовать функции с такими именами как у винапи? Во‐первых, это не несёт смысла, потому что винапи нет на других платформах
Где я написал WinAPI? API и WinAPI это не одно и тоже.
Может для вас будет открытием, API есть не только в винде (не путать с WinAPI).

Цитата Сообщение от Замабувараев Посмотреть сообщение
Перепутали или пропустили буквы в какой‐нибудь Hello и HelIo — компилятор любезно создаст новую переменную с похожим именем
https://www.purebasic.com/docu... tives.html

Цитата Сообщение от Замабувараев Посмотреть сообщение
Аналогично для функций PureBasic, портящих пространство имён.
Вы вообще о чем? Какие-то надуманные доводы! Что пытаетесь доказать?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Почему рядом с ними скобки?
Потому что такой синтаксис.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Это не поможет, если он вызывает неэффективный код.
Пишите на асме самый эффективный код, кто запрещает?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Стандартная куча процесса использует блокировку для синхронизации между потоками.
То есть вы знаете как устроена куча в Windows, Linux и MacOS?
Можно ссылки на авторитетные источники?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Это замедляет выделение памяти.
Если вы выделяете память 100000000000 раз в секунду, пересмотрите алгоритм. И никакого замедления не будет.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Я вижу, что PureBasic создаёт и уничтожает память в промышленных масштабах на конвейерных лентах
Где видите? Ссылку на источник информации как всегда забыли...
PureBasic сам по себе ничего не выделяет. Как написали программу так она и работает.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Строки на стэке функции не поддерживаются
И правильно что не поддерживаются, иначе легко получить переполнение стека. Как себе представляете хранение строки произвольной длины в стеке?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Рантайм весь кроссплатформенный.
Рантайм у нас что? Операторы языка и все?

Цитата Сообщение от Замабувараев Посмотреть сообщение
Нет никаких «библиотек для FB».
Понятно. Значит про нормальною кроссплатформенность можно забыть.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Видимо, это под PureBasic надо специально затачивать библиотеки чтоб пользоваться, поэтому вы не задумываясь применяете такую же парадигму и для FB.
Вы пишите серьезно или решили по троллить?
Еще раз. В PB есть стандартная кроссплатформенная библиотека содержащая больше 1500 функций. см. "General Libraries", "2D Games & Multimedia Libraries" и "3D Games & Multimedia Libraries") https://www.purebasic.com/documentation/

Цитата Сообщение от Замабувараев Посмотреть сообщение
Есть просто библиотеки с функциями.
Речь не просто про библиотеки, а про коссплатформенные библиотеки для всех поддерживаемых платформ.
Вот к примеру этот код для PB создает окно с прогресс-баром и таймером.
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
If OpenWindow(0, 0, 0, 400, 100, "Пример таймера", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  ProgressBarGadget(0, 10, 10, 380, 20, 0, 100)
  AddWindowTimer(0, 123, 250) ; добавление таймера #123 к окну #0, с периодом 250 мс.
  
  Value = 0
  Repeat
    Event = WaitWindowEvent()
    
    If Event = #PB_Event_Timer And EventTimer() = 123
      Value = (Value + 5) % 100
      SetGadgetState(0, Value)
    EndIf    
    
  Until Event = #PB_Event_CloseWindow
EndIf
Код без изменений собирается для всех поддерживаемых платформ (Windows, Linux и MacOS). А в FB также или придется искать библиотеки под каждую платформу в отдельности?

Цитата Сообщение от Замабувараев Посмотреть сообщение
А метод отладки в PureBasic «Debug переменная»
Опять троллинг!? Изучайте https://www.purebasic.com/docu... tools.html

Цитата Сообщение от Замабувараев Посмотреть сообщение
Отладчик с графическим интерфейсом «FB debugger» лежит тут
То есть предлагаете самостоятельно прикручивать его к FB? В PB отладчик входит в дистрибутив и является частью IDE.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Довольно скудненький функционал PureBasic. Я так понял, что работает в блокирующем режиме. А где асинхронный ввод‐вывод? Где пул рабочих потоков?
Также и с файлами. Нет отображённых в память файлов, нет асинхронного ввода‐вывода.
Прежде чем критиковать покажите код на FB реализующий перечисленное для Windows, Linux и MacOS.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Есть в комплекте FB хоть что-то похожее на эту мощь?
В официальном дистрибутиве FB только компилятор. Остальное это сторонние решения и их нужно самому прикручивать...

Цитата Сообщение от Замабувараев Посмотреть сообщение
Иначе компилятор будет проверять список из ста библиотек для каждого файла в проекте на наличие там таких функций: имея в проекте сто файлов хитрым арифметическим подсчётом получаем открытие каждой библиотеки по сто раз.
Про кеширование в памяти не слышали? Список можно загрузить в память и использовать в дальнейшем. Библиотеки не обязательно должны быть в виде исходников. Они могут быть скомпилированными (статические библиотеки) что значительно ускоряет процесс сборки.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Ну так это же ваш PureBasic так делает.
Ничего подобного. Хоть немного изучите предмет обсуждения.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Вы опять пытаетесь запихнуть в язык то, что должно быть в библиотеке. Язык программирования — это набор лексем и возможность составления из этих лексем своих типов данных.
Это про язык типа Си. Посмотрите на современные ЯВУ. Из них по максимуму выпиливают все низкоуровневое типа указателей.
Например в С# или питоне не нужно подключать стандартные файлы библиотек.

Цитата Сообщение от Pro_grammer Посмотреть сообщение
Создание же нормальных и современных гуёвых программ под Винду превращает в сплошной гемор.
А под другие платформы, в еще больший гемор.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.04.2021, 17:54

Стоит ли изучать как устроена ЭВМ для эффективного программирования
Всем дробового времени суток (пятница!!!) Стоит ли изучать как устроен ЭВМ для эффективного программирования на плюсах ?

Подскажите ссылки на приемы программирования для Embedded
Народ! Подскажите пожалуйста ссылки, на приемы и упражнения по программированию, с разьяснениями по встраеваемому ПО. Заранее благодарю!

Нужны сайты про C#, приемы, рецепты, трюки программирования
Не советуйте msdn или книгу. Справочник должен быть похож на другие стандартные справочники как у delphi, которых полно в инете, а к C#...

Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике
интересны приемы программирования на C# те о которых не пишут в книгах, которые узнаются на практике. какие OpenSource проекты можете...

Общие вопросы.
Доброго времени суток! После изучения Паскаля, решил перейти на изучение С/С++, прочитал много мануалов для новичков, но накопились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
80
Ответ Создать тему
Новые блоги и статьи
[golang] Конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов.
alhaos 10.06.2026
Задача Реализовать конкурентный fetcher с ограничением максимального количества одновременных HTTP запросов. Сигнатура func Fetch(urls string, maxConcurrent int) Result Пример urls :=. . .
[golang] Состояние гонки (race condition)
alhaos 10.06.2026
Состояние гонки (race condition) Состояние гонки (Race Condition) — это ошибка, возникающая при одновременном доступе нескольких горутин к одним и тем же данным без должной синхронизации. При этом. . .
Взрослые отношения, и почему они не получаются
kumehtar 09.06.2026
Когда в детстве ребёнок не получает от родителей чего-то важного, он лишается не просто приятных переживаний, а основы для формирования определённых внутренних качеств и навыков. Если ребёнок не. . .
[golang] Worker Pool
alhaos 09.06.2026
Worker Pool Worker Pool — паттерн конкурентной обработки задач в Go. Суть: фиксированное количество горутин-воркеров читают задачи из общего канала и пишут результаты в общий канал результатов. . . .
[golang] Pipeline
alhaos 08.06.2026
Pipeline Pipeline — паттерн конкурентной обработки данных в Go. Суть: данные проходят через цепочку независимых стадий, каждая из которых работает в своей горутине и общается с соседями через. . .
Свет внутри себя
kumehtar 07.06.2026
Пусть это будет здесь lIs4oanZS9Y
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу. До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru