Форум программистов, компьютерный форум, киберфорум
CoderHuligan
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  

Реальная разработка на Tcl. Я полюбил его.

Запись от CoderHuligan размещена 30.09.2022 в 16:18
Показов 3437 Комментарии 4
Метки tcl

Хотя раньше только присматривался. Когда же начал писать реальный проект, то начал понимать в чем истина. Кто-то тут высказывался, мол, Си это все что нужно. Не спорю. На нем можно всё. Но какой ценой? Об этом эти люди не думают. видимо у них уйма свободного времени.. Реально сложные проекты писать на Си это значит убитца.
Реальные проекты сейчас пишут на скриптах, на динамических языках, типа java, Pithon, PHP и т.д. Но являются ли они скриптовыми по настоящему? Я говорю - что нет, не являются. Tcl же является. Хорошо, это не аргумент. Тогда начнем. Вот мне очень понравился данный текст, который вводит в мир тикля. Он называется "Что такое Tcl." Перевод сделан yandex переводчиком и слегка подправлен мной. Взят из официальной страницы.

Что такое Tcl

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

Гибкость, которую вы получаете, построив принципиально простую систему, доминирует над всеми другими видами гибкости ... Мы можем создавать то же самое программное обеспечение, что и сегодня, при помощи гораздо более простых компонентов. Это значительно более простые языки, инструменты, методы, подходы. Это действительно радикально проще.
-- Рич Хики, основной доклад Rails Conf 2012: простота имеет значение

Вы знаете - TCL/TK8.6 безумно велик. Я перестал использовать TCL/wish примерно в 2004 году - это была БОЛЬШАЯ ошибка - теперь я могу создавать графические интерфейсы, описанные чистым текстом. "Ничего не скрыто" это всё о тексте - мне просто нужны emacs и make. Почему, о, почему я вообще когда-либо нажимал на кнопку, чтобы запустить Xcode
-- Джо Армстронг , 2019-03-25

Что такое Tcl?

Tcl, или Tool Command Language, представляет собой многоцелевую библиотеку C с открытым исходным кодом, которая включает в себя мощный динамический язык сценариев. Вместе они обеспечивают идеальную кроссплатформенную среду разработки для любого программного проекта. Он десятилетиями служил важным системным компонентом в организациях, начиная от NASA и заканчивая Cisco Systems, и является обязательным языком в области EDA и поддерживает такие компании, как FlightAware и COMPANY: F5 Networks.

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

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

Библиотека

Tcl также является кроссплатформенной библиотекой C. Если вы изучали glib, APR, NSPR или qtcore, вы можете в конечном итоге использовать Tcl не из-за его возможностей написания сценариев, а для предоставления функций, которые вы искали в действительно переносимой библиотеке C.

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

Язык сценариев

Язык сценариев прост в освоении и интересен в использовании. Он состоит всего из трех основных элементов: скрипт состоит из команд, а команда, в свою очередь, состоит из слов. Синтаксис Tcl описан всего в дюжине правил. Нет зарезервированных слов и нет встроенного синтаксиса для управляющих структур или условных выражений. Встроенные команды предоставляют средства, которые обычно включаются в качестве синтаксических элементов в других языках. Эта абстракция достаточно проста, чтобы начать работать с ней всего за несколько минут, даже если вы новичок в программировании, но достаточно богата, чтобы удовлетворить даже самых требовательных инженеров-программистов. Ни один другой язык не обслуживает так умело пользователей на обоих концах спектра. Это делает его идеальным языком как для изучения искусства программирования, так и для реального выполнения задач.

Операции управления и ветвления, как и все остальное в программе Tcl, реализованы в виде команд. Например, if - это команда, которая в своей простейшей форме принимает выражение и тело кода для выполнения, если условие истинно. Сценарий Tcl может заменить if своей собственной реализацией. Как и в случае с Lisp, каждая программа, написанная на Tcl, по сути, становится языком, специфичным для конкретной области, для выполнения текущих задач. Tcl для написания сценариев, что Forth для стековых машин: строго минимальный язык, который объединяет концепции везде, где это возможно, что упрощает когнитивную нагрузку и обеспечивает максимальную гибкость.

Характеристики

Tcl предоставляет широкий спектр функций, необходимых для написания программ любого типа и в любом стиле программирования:

Кроссплатформенный скриптинг


Tcl предоставляет кроссплатформенный API и обрабатывает детали под капотом, что позволяет легко написать программу один раз и запустить ее без изменений на платформах Unix, OS X, Android или Windows.

Кроссплатформенная переносимая библиотека времени выполнения C Tcl

В отличие от Perl, библиотека Tcl на языке Си интуитивно понятна и удобна в использовании. Многие программисты выбирают Tcl в качестве языка сценариев, но другие выбирают его из-за библиотеки C, которая абстрагирует от специфичных для платформы деталей синхронных и асинхронных операций ввода-вывода, мьютексов, выделения памяти, форматирования строк, потоков, Unicode, циклов событий и очередей, уведомлений о событиях, динамических строк, арифметики произвольной точности, хэш-таблицы, загрузка общих объектов и регулярное выражение. Типы объектов Tcl_Obj обеспечивают автоматическое преобразование типов и подсчитываются по ссылкам для удобства очистки памяти. Библиотека Tcl C может быть особенно полезна для тех, кто заинтересован в изучении C, предоставляя фантастическую платформу для упрощения работы с ним, особенно в сочетании с библиотеками интеграции "на лету", такими как Critcl.

Кроссплатформенный, управляемый событиями, неблокирующий ввод-вывод

node.js недавно стал популяризировать этот стиль программирования, но эта модель ввода-вывода уже много лет является фундаментальным компонентом ядра Tcl.

Вычислительная текстовая модель

Модель Tcl - "всё есть строка", предлагает простой подход к программированию. Tcl распознает, что скрипт уже является текстом, а подстроки в скрипте используются непосредственно в качестве значений. Синтаксические правила позволяют сценариям Tcl использовать код как данные и ассимилировать лучшие черты языков оболочки при гораздо лучшем масштабировании для более крупных проектов. Являясь превосходной альтернативой как сценариям оболочки, так и другим языкам сценариев общего назначения, один лишь Tcl занимает золотую середину. Perl пытался, но столкнулся с болезненной сигиллизацией. Python не заразился этой болезнью, но он слишком тучный, как интерактивная оболочка. Lisp подошел близко, но его SEXP излишне сложны по сравнению со списками Tcl, его специальные операторы неуместны по сравнению с последовательным синтаксисом команд Tcl, а синтаксическое обеспечение Lisp для типа списка отходит от парадигмы текстовых вычислений.

Явное определение области видимости


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

Возможность композиции

Как и другие функциональные языки программирования, Tcl обладает высокой композиционностью. Каждая команда представляет собой список и, следовательно, может управляться на самом языке.

Динамичность

Tcl - один из самых динамичных языков. Не хотите никаких условных обозначений на вашем языке? Просто удалите команды if, for и while. Хотите изменить тело текущей функции в середине выполнения или изменить переменные и запустить команды в других фреймах стека? Пожалуйста. Используя эти функции, вы можете легко добавить в язык новую структуру управления. В Python невозможно динамически создавать переменные в области локальной функции, и подход заключается в том, чтобы этого не делать. В Tcl это легко сделать, и подход заключается в том, что именно вы решаете. Именно вы знаете, что вам нужно делать.

Инструментальность

От trace до namespace unknown, Tcl предоставляет множество встроенных механизмов для выполнения команд react и доступа к переменным. Ищете ли вы мощную отладку или экзотический поток управления, вы найдете нужные вам функции.

Структуры данных

Tcl предоставляет встроенные структуры данных, такие как списки, массивы и словари, а другие структуры данных также доступны через расширения. tdom выделяется как отличная реализация DOM, которая предоставляет как синтаксические анализаторы, так и форматеры XML и JSON. Уникальная особенность Tcl в его сплаве с внутренним дизайном, который гарантирует, что значение и его структура изоморфны, как для целей эффективности, так и для концептуальной чистоты. Таким образом, безстроковость производительности на уровне скрипта не является проблемой производительности.

Структуры управления


Используйте встроенные структуры управления, такие как if, while и foreach, или, при желании, напишите свои собственные.

Программирование сетей TCP/IP

socket, http, SSL, TLS, PKI, CGI и различные другие модули обеспечивают полную поддержку сетевого программирования.

Потоковость

Модуль Tcl true native threading признан исключительно хорошо спроектированным и простым в использовании. По сравнению с потоками Perl, которые официально задокументированы как "реализованные таким образом, что ими легко злоупотреблять. Мало кто знает, как правильно ими пользоваться, или сможет оказать вам помощь". Тоже самое с Python, который не является полностью потокобезопасным, Ruby, который также не является особенно потокобезопасным, и Lua, который не пытается раскрывать потоки операционной системы.

Регулярные выражения

гибридный движок DFA/NFA, написанный Генри Спенсером, который обеспечивает лучшую производительность, чем движки регулярных выражений Perl, Python, PHP и др.

Юникод

Поддержка Unicode была полностью интегрирована в tcl, будь то работа со строками и файлами или сопоставление регулярных выражений.

Преобразования кодировок

Легко преобразуйте текст из одной кодировки в другую.

Обработка двоичных данных

двоичное сканирование и двоичный формат упрощают обработку битов и работу с двоичными форматами данных.

Численные вычисления


Tcl предоставляет целые числа произвольного размера и числа с плавающей запятой типа C double.

Встроенный цикл событий


В отличие от Python и Ruby, где средства программирования, управляемого событиями, подключены (Twisted и EventMachine ), цикл событий встроен в сам Tcl, который доступен с помощью команд обработки событий, таких как after, fileevent, vwait и update.

Преодоление разрыва между значением и ссылкой


Поскольку на уровне сценария нет такой вещи, как ссылка, Tcl может свободно управлять значениями на внутреннем уровне. Стратегия копирования при записи встроена в дизайн Tcl, поэтому копирование огромных структур данных на уровне скриптов - это операция с экономией памяти. Tcl создает реальные копии в памяти только по мере необходимости для обеспечения целостности данных программы в случае изменения одной из логических копий структуры данных.

Сбор мусора вне цикла

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

Множество интерпретаторов

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

Безопасные интерпретаторы

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

Виртуальная файловая система

Функциональность VFS полностью интегрирована в подсистему ввода-вывода Tcl. Это уникальная особенность среди языков программирования, позволяющая практически все выразить в терминах самого распространенного в мире пользовательского интерфейса: иерархии файловой системы.

Отраженные каналы

Применяйте API для работы с файловыми потоками практически ко всему.

Стековые каналы

Легко компоновать каналы для преобразования контента.

Расширяемость

В Tcl все структуры управления реализованы в виде команд, и все команды могут быть заменены определяемыми пользователем процедурами. Новые команды могут быть написаны на C, Fortran или других языках и загружены в работающий интерпретатор.

Возможность встраивания

Tcl с самого начала был разработан как встраиваемый язык для использования везде, где требовались сценарии. Это один из немногих зрелых языков, который можно безопасно встроить в многопоточное приложение.

Встроенная поддержка C

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

Объектная система

TclOO, фреймворк для создания объектных систем и объектная система сама по себе, встроена в Tcl.

Встроенная база данных

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

Сопрограммы


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

Дополнительные команды


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

Инструментарий графического интерфейса пользователя

Пакет Tk был разработан для Tcl и лучше всего работает с Tcl, он был широко принят другими языками, но нет ничего лучше, чем использовать его напрямую с Tcl. Посмотрите, что такое Тk.

Модульное тестирование

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

Простое распространение

starkits и starpacks делают расапространение приложения Tcl таким же простым, как загрузка одного исполняемого файла.

Информационная технология в коробке


Исходный код Tcl считается образцовым для тех, кто изучает C. В нем представлены иллюстрации многих фундаментальных и общих концепций информатики. Он тщательно написан, и концепции объединяются таким образом, что с ними легко экспериментировать на уровне сценариев и через C API. Если вы хардкорный специалист, вы, вероятно, получите удовольствие от Tcl. Если вы новичок в информатике, вы не могли бы выбрать лучшую платформу для изучения основ.

Сильные стороны

Предметно-ориентированные языки

Что Tcl делает лучше, чем любой другой, так это предоставляет компоненты и среду, в рамках которых можно создать специфичный для предметной области язык, соответствующий поставленной задаче. Это изменит ваше представление о программировании. Речь идет не о лексическом и синтаксическом анализе, а о создании небольших языков с использованием синтаксиса самого Tcl. Для осознания последствий этой силы может потребоваться некоторое время, но эти затраты окупаются. Этот метод позволяет получить код, который является более выразительным, более читаемым и более кратким. Tk - это пример. Контраст между использованием его непосредственно из Tcl и использованием его через оболочку, такую как Tkinter, иллюстрирует возможность расширения самого Tcl в любую проблемную область.

Безопасность

Tcl предоставляет средства для ограничения использования ресурсов и ограничения функциональности по мере необходимости.

Быстрая разработка

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

Повторное использование кода

Код Tcl может быть организован в пакеты для повторного использования.

Производительность

Различные компоненты Tcl были признаны лучшими в своем классе. Два примера - это регулярные выражения и внутренняя хеш-таблица Tcl.

Мульти-парадигма

Tcl удобно объединяет стили из различных парадигм программирования. TclOO может использоваться как для объектно-ориентированного программирования на основе классов, так и для объектно-ориентированного программирования на основе прототипов. Также доступны различные другие объектные системы, в том числе stooop, Tcl, XOTcl, snit. Функциональные программисты также найдут много интересного в Tcl.

Портабельный

Tcl работает на мэйнфреймах IBM и AS/400, Windows NT, 95, 98, ME, XP, Windows/CE, (на десятке тоже. Прим. моё) OS/2, Novell Netware, суперкомпьютерах Cray, виртуальных машинах Digital, Tandem Guardian, HP MPE/ix, Mac OS и на всех версиях Unix, а также на десяткахдля небольших операционных систем, таких как Acorn RISCOS, Amiga и Atari ST.

Джо Мистачкин 2006-06-08: Основываясь на моих предыдущих исследованиях (когда у меня был доступ к реальному оборудованию), современные версии Tcl не были перенесены на HP MPE / ix. Пожалуйста, поправьте меня, если это неточно.

Открытый исходный код

Любой желающий может бесплатно загрузить и просмотреть исходный код Tcl. Сам Tcl разрабатывается и поддерживается программистами по всему миру.

Поддержка интернационализации и локализации


Все значения представляют собой строки символов Юникода, поэтому большинство существующих систем записи могут быть обработаны. Преобразование Unicode из или в практически любую кодировку также просто. См. i18n - писать для всего мира или другой Tcl!.

Инвариантность версий


Это важно, но трудно объяснить. Tcl поддерживается таким образом, чтобы способствовать прямой и обратной совместимости на всех уровнях. Механизм заглушек помогает гарантировать доступность совместимых версий команд, даже когда разные версии Tcl загружают один и тот же файл. Это оказывается чрезвычайно полезной повседневной работой.

Цитаты


Я придерживаюсь Tcl, потому что он выполняет работу быстрее и надежнее, чем все остальное, что я использую... цитируя Брайана Оукли: "Я предпочитаю выбирать свои инструменты по тому, что они могут делать, а не по тому, насколько они популярны".
Стив Ландерс, Чат Tcl, 2014-05-09

Tcl - это не столько язык программирования в традиционном смысле. Это набор примитивов для передачи данных и управления областью выполнения.
Джон Ролл

И это больше, чем просто удобство. Более простая нотация означает, что выполняемая задача не скрыта механизмом ее выполнения. Поскольку наш предел того, что мы можем запрограммировать, в основном является пределом того, что мы можем понять, с простотой приходит мощь. Абстракция побеждает.
Кевин Кенни, Чат Tcl, 2013-09-30

Утинная типизация, как правило, делает ошибки типа менее разрушительными, а хороший динамический язык делает разработку с использованием тестов более практичной.
Кевин Кенни, Чат Tcl, 2013-09-30

Один из аспектов ОВОС, который заслуживает рассмотрения, заключается в том, как он в некотором смысле сохранил Tcl "чистым". Часть EIAS, о которой мало упоминается, заключается в том, что строки Tcl являются неизменяемыми. Это означает, что пространство значений Tcl является чисто функциональным в смысле Haskell. Все побочные эффекты ограничены теневым миром команд, переменных и других объектов второго класса. Это означает, что Tcl теперь обладает некоторыми очень мощными чисто функциональными структурами данных, которые несколько лучше, чем те, которые доступны на других языках. Например, я не могу придумать другой популярный язык, который предоставляет O(1) чисто функциональные словари и списки (массивы) из коробки (или даже в библиотеке). Не говоря уже об эффективных юникодах и двоичных строках
NEM, ОВОС 2010-12-15

Кто использует Tcl

посмотрите, кто использует Tcl

Отзывы

Если это не свидетельство мастерства Tcl, я не знаю, что это.
myvzw.com и Tcl

IMHO цикл событий Tcl намного проще в использовании, чем twisted, хотя код twisted на python обладает некоторыми действительно приятными функциями (отложенные значения) и хорошей основой для написания конкретных вещей, таких как сетевые серверы.
Майкл Шленкер, цикл событий Tcl и обработка потоков, comp.lang.tcl, 2007-03-26

Примеры внедрения

Ульрих Альбрехт: Еще одна история с тем же подтекстом: пару лет назад я работал в техническом университете Ахена (Германия) над системой моделирования и планирования траектории движения робота, включая быстрое обнаружение столкновений.Основная функциональность была включена в иерархию классов C ++, описывающую части и кинематику робота, с добавлением множества библиотек C из других источников. Код должен был выполняться на реальном контроллере робота (PPC-машине под управлением vxworks), SGI Irix (MIPS), Sun Solaris (SPARC), Linux (Intel) и, в конечном итоге, MS Windows (Intel), поэтому мы не могли включать какие-либо специфические для платформы вещи. Однако, за исключением vxworks, где все двигалось по-настоящему, мы подумали, что у нас должен быть графический интерфейс с виртуализацией и визуализацией робота и его окружения. Tcl/Tk выглядел хорошо, потому что это был единственный пакет, который был настолько портабедьным, гибким и расширяемым, насколько нам было нужно. Я написал OpenGL-виджет для Tk и командную оболочку Tcl-to-C++ для каждого класса C++, который мне нужно было создавать и контролировать во время выполнения, и в итоге у меня появился инициирующий робота wish, которому я мог скармливать всевозможные сценарии и взаимодействовать с ними. Я действительно могу сказать, что 1. переносимость не была большой проблемой, потому что основные библиотеки C/C++ не зависели от ОС, а Tcl/Tk, а также OpenGL были правильно портированы, 2. тоже с производительностью, потому что критические части были хорошими, грязно скомпилированными на C/C++, 3. удобство использования было очень хорошим, из-за надежного интерактивного Tcl-интерпретатора, который мы могли использовать бесплатно, 4. Tk-часть работала и выглядела намного лучше и более совместимой с ОС, чем все, что я видел с тех пор в Java...
Мы даже запускаем этот материал в MS Internet Explorer (используя Tk-плагин) для демонстрационных целей.
Чуть не забыл: перенос кода на MS Windows не был проблемой - это были make-файлы, которые чуть не свели нас с ума.

Наследие

См. Tcl heritage

Tcl изначально разрабатывался как многоразовый командный язык для инструментов экспериментального автоматизированного проектирования (САПР). Интерпретатор был реализован как библиотека C, которая может быть связана с любым приложением. Поскольку в интерпретатор Tcl очень легко добавлять новые функции, это идеальный встраиваемый язык сценариев. (Подробнее об истории см. Хронологию Tcl.)

Tcl можно грубо описать как помесь следующего:

LISP/Scheme
Но с меньшим количеством родства.
C
Но не такой низкоуровневый и нумероцентричный.
оболочки
Но разработан, чтобы быть более универсальным и поддерживаемым.

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

О сценариях Tcl

Программы Tcl иногда называют "скриптами", потому что одной из целей разработки Tcl является использование в качестве языка сценариев в более крупной системе, но Tcl включает в себя такие функции, как компиляция байтов и расширяемость, которые делают его пригодным для написания оригинальных систем самих по себе. Кроме того, доступные компоненты, такие как expect, twapi, Tclx, tls и другие, делают Tcl хорошим языком для сборки больших систем из разных частей.
...
Метки tcl
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 4
Комментарии
  1. Старый комментарий
    Много слов и ни единого примера кода с пояснениями. Из-за это мало что понятно.
    Запись от locm размещена 30.09.2022 в 17:34 locm вне форума
  2. Старый комментарий
    Аватар для CoderHuligan
    Цитата Сообщение от locm
    Много слов и ни единого примера кода с пояснениями. Из-за это мало что понятно.
    Примеры с пояснениями будут в следующих постах. Вообще я хочу объяснить некоторые вещи, которые мало кто понимает в этом языке, но которые мне открылись.
    Запись от CoderHuligan размещена 30.09.2022 в 18:30 CoderHuligan вне форума
  3. Старый комментарий
    Аватар для XLAT
    итак, ждём морской бой на tcl ...
    Запись от XLAT размещена 01.10.2022 в 11:16 XLAT вне форума
  4. Старый комментарий
    Аватар для CoderHuligan
    Цитата Сообщение от XLAT
    итак, ждём морской бой на tcl ...
    Я сейчас на Tcl создаю программу-проигрыватель текстовых файлов в коде Морзе. Всю черновую работу уже сделал. Проигрывает вполне нормально. Осталось гуи прикрутить. Это несколько дней работы. Потом оберну враппером и сделаю exe. Если получится, конечно.
    Морской бой - да, хочу сделать. Просто в раздумьях: полностью переписывать его на Tcl, или сделать в потоковом режиме, когда два процесса обмениваются сообщениями. Последний случай сложнее для понимания, но и во многом проще в реализации конкретно на Tcl.
    Запись от CoderHuligan размещена 01.10.2022 в 11:54 CoderHuligan вне форума
 
Новые блоги и статьи
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений. . . .
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения Продолжаю серию постов о дискретно-событийной модели рабочего. . .
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
Модель здравосохранения 18. Чем здоровее работник, тем быстрее выгорает
anaschu 24.05.2026
Имитационная модель корпоративного здравоохранения: что показывает математика Сегодня в модели рабочего коллектива на AnyLogic появились три новые механики — выгорание через накопленную усталость,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru