The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

01.12.2014 22:00  Проект CoreOS представил Rocket, конкурирующий с Docker инструментарий управления контейнерами

Проект CoreOS, развивающий основанное идеях контейнерной изоляции серверное окружение, анонсировал создание нового инструментария для управления созданием, запуском и выполнением изолированных контейнеров - Rocket, выступающего в качестве более безопасной, переносимой и адаптированной для серверного применения альтернативы Docker. Rocket нацелен на манипуляцию контейнерами, построенными в соответствии со спецификацией App Container, также предложенной проектом CoreOS и нацеленной на создание универсального переносимого формата контейнеров.

Наиболее существенные отличия Rocket от Docker заключаются в использовании иной модели выполнения, позволяющей достигнуть значительно более высокого уровня защищённости. В Docker все операции проводятся с участием одного централизованного фонового процесса, что создаёт серьезные потенциальные проблемы с безопасностью, устранить которые можно лишь путём полной переработки организации работы. Также утверждается, что последнее время Docker отклонился от первоначальных задач и стал развивать функции, выходящие за рамки средств управления контейнерами, превращаясь в излишне усложнённую платформу.

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

Выделяются три основные стадии запуска контейнера:

  • Нулевая стадия, обработка которой производится силами утилиты rkt без привлечения дополнительных средств. На данной стадии производится начальная подготовка контейнера: генерация UUID и манифеста, создания файловой системы для контейнера, настройка директорий для выполнения следующих стадий, копирование исполняемого файла первой стадии в ФС контейнера, извлечение заданных ACI (App Container Image), распаковка образов и копирование приложений в директории третьей стадии;
  • Первая стадия, работа которой обеспечивается отдельным исполняемым файлом, имеющим полномочия настройки cgroups, запуска процессов и выполнения операций под пользователем root. На данной стадии осуществляется создание исполняемой группы на основе ФС, подготовленной в нулевой стадии, установка cgroups, пространств имён и точек монтирования. Настройка производится через генерацию unit-файлов systemd и использование systemd-nspawn для организации работы окружения;
  • Вторая стадия, на которой производится непосредственный запуск приложения в подготовленном контейнере. В частности, на данной стадии выполняется процесс инициализации содержимого контейнера, описанный в манифесте запуска приложения (Application Manifest).

Основные компоненты Rocket:

  • App Container Image - определяет образ, содержащий все необходимые элементы для запуска контейнера приложения. Для защиты применяется проверка по цифровой подписи и опционально шифрование, что позволяет использовать для распространения образов публичные сети хранения и BitTorrent;
  • App Container Runtime - определяет окружение для запуска контейнера приложения;
  • App Container Discovery - федеративный протокол для поиска и загрузки образов контейнеров приложений.

Для создания контейнеров и организации их изолированного выполнения применяются те же штатные механизмы ядра Linux, что в Docker - пространства имён (namespaces) и группы управления (cgroups). При этом, для управления контейнером используются средства запуска изолированных окружений, предоставляемые системным менеджером systemd. Для управления предложена новая консольная утилита rkt, предоставляющая набор команд, похожий на docker. Как и Docker, код Rocket написан на языке Go и поставляется под лицензией Apache 2.0.

Следование универсальной спецификации App Container, определяющей окружающие контейнер службы, позволяет создавать независимые собственные реализации, совместимые с Rocket. Более того, в будущем, когда App Container достигнет зрелости, планируется подготовить реализацию данной спецификации для Docker, что позволит обеспечить переносимость обоих проектов.

  1. Главная ссылка к новости (https://coreos.com/blog/rocket...)
  2. OpenNews: Первый стабильный выпуск серверной Linux-системы CoreOS
  3. OpenNews: Red Hat представил Atomic, концепцию модульной ОС на базе изолированных контейнеров
  4. OpenNews: Выпуск cистемы управления контейнерной виртуализацией Docker 1.3
  5. OpenNews: Canonical и Docker развивают LXD, гипервизор для изолированных контейнеров (дополнено)
  6. OpenNews: Обновление Docker 1.3.2 с устранением критических уязвимостей
Лицензия: CC-BY
Тип: Программы
Ключевые слова: coreos, roket
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (-), 22:20, 01/12/2014 [ответить] [показать ветку] [···]    [к модератору]
  • –1 +/
    Ну и кто кого уже? :)
     
     
  • 2.3, Аноним (-), 22:38, 01/12/2014 [^] [ответить]    [к модератору]
  • +2 +/
    Хрен их разберет. Куча систем, ни одна нормально не поддерживается в популярных дистрах, все позиционируются как безопасные и переносимые в отличии друг от друга.
     
     
  • 3.5, Bizdelnick (?), 22:47, 01/12/2014 [^] [ответить]     [к модератору]
  • –2 +/
    Ага aptitude versions docker io Пакет docker io ... весь текст скрыт [показать]
     
  • 3.7, Аноним (-), 23:17, 01/12/2014 [^] [ответить]     [к модератору]  
  • +3 +/
    На презентации RH7 Тоттон больше получаса распинался о полной коммерческой подде... весь текст скрыт [показать]
     
  • 3.14, Michael Shigorin (ok), 00:11, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    docker изначально почему-то не вызывал особого доверия, а стопка детских дырок э... весь текст скрыт [показать]
     
     
  • 4.21, Аноним (-), 06:11, 02/12/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    Я думал на GO можно писать без дырок.
     
     
  • 5.34, Xaionaro (ok), 08:28, 02/12/2014 [^] [ответить]    [к модератору]  
  • +6 +/
    > Я думал на GO можно писать без дырок.

    Я бы скорее сказал, что на всём можно писать с дырками.

     
  • 1.2, th3m3 (ok), 22:37, 01/12/2014 [ответить] [показать ветку] [···]     [к модератору]  
  • –3 +/
    Реально то какая польза от всех этих докеров Я почитал про эти контейнеры Спло... весь текст скрыт [показать]
     
     
  • 2.6, Аноним (-), 23:05, 01/12/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    Вы в конце 2014 года узнали о контейнерах Так сказать, после первой успешной SQ... весь текст скрыт [показать]
     
     
  • 3.9, vitalif (ok), 23:32, 01/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    Ну для борьбы с этим, положим, контейнеры - overkill, обычного чрута достаточно ... весь текст скрыт [показать]
     
     
  • 4.11, Аноним (-), 23:45, 01/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Вы знаете модное слово overkill, но не знаете что с точки зрения безопасности chroot бесполезен? lmgtfy://Breaking Out of a Chroot
     
     
  • 5.16, Michael Shigorin (ok), 00:13, 02/12/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    Не бесполезен, но рута в чруте лучше считать эквивалентом рута в хосте Как выра... весь текст скрыт [показать]
     
  • 5.24, Аноним (-), 07:32, 02/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    Почему админы в РФ упорто считают срадствами безопасной изоляции, то средства ви... весь текст скрыт [показать]
     
     
  • 6.30, Аноним (-), 08:12, 02/12/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    Гарантирует что атакующий не сможет исчерпать всю память или файловые дескриптор... весь текст скрыт [показать]
     
     
  • 7.37, grec (?), 09:37, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    RES_CPU - CPU time in milliseconds RES_FSIZE - Maximum file size in by... весь текст скрыт [показать]
     
  • 6.39, Аноним (-), 09:45, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    chroot Разработан в 1982 Изоляция ФС - частичная Copy on write - нет Дисковые к... весь текст скрыт [показать]
     
     
  • 7.41, Аноним (-), 09:47, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    http://en.wikipedia.org/wiki/Operating_systemБ─⌠level_virtualization
    парсер лох
     
  • 7.44, anonymous (??), 09:58, 02/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    gt оверквотинг удален Посмотрите посты выше Большая часть этих механизмов в c... весь текст скрыт [показать]
     
     
  • 8.46, Аноним (-), 10:09, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    Не вижу. Покажите.
     
  • 5.64, vitalif (ok), 15:37, 02/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Это под рутом. Но имея рута, ты вылезешь и из LXC. А без рута ты и chroot не покинешь.
     
  • 4.12, Аноним (-), 23:48, 01/12/2014 [^] [ответить]    [к модератору]  
  • +/
    Особенно интересно узнать как chroot помешает атакующему открыть 25/110/etc порты и рассылать спам.


     
     
  • 5.25, Аноним (-), 07:38, 02/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Особенно интересно узнать как chroot помешает атакующему открыть 25/110/etc порты и рассылать
    > спам.

    Правильной настройкой iptables.

     
     
  • 6.56, Аноним (-), 11:07, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    Я верю что с помощью большого количества костылей можно превратить детскую коляску в танк, но зачем? Есть же готовые решения.
     
  • 5.65, vitalif (ok), 15:39, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    Что значит открыть Как открытие поможет рассылке спама И как к спаму вообщ... весь текст скрыт [показать]
     
  • 4.15, Michael Shigorin (ok), 00:12, 02/12/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    chroot -- не средство безопасности Как минимум в openvz это сильно не так ... весь текст скрыт [показать]
     
     
  • 5.23, Аноним (-), 06:41, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    > chroot -- не средство безопасности.

    А что тогда?

     
     
  • 6.26, Аноним (-), 07:42, 02/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    https en wikibooks org wiki Grsecurity Appendix Grsecurity_and_PaX_Configurati... весь текст скрыт [показать]
     
     
  • 7.29, Xaionaro (ok), 08:11, 02/12/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Не понял я, это был сарказм или вы серьёзно, но на всякий случай отвечу Если вы... весь текст скрыт [показать]
     
     
  • 8.50, Аноним (-), 10:40, 02/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    Это слёзы Укреплённые технологии chroot и jail сегодня дают больше гарантий б... весь текст скрыт [показать]
     
     
  • 9.52, Аноним (-), 10:47, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    > дают больше гарантий

    ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПОСТАВЛЯЕТСЯ "КАК ЕСТЬ" ЕЕ ПОСТАВЩИКИ ОТКАЗЫВАЮТСЯ ОТ ВСЕХ ГАРАНТИЙ
    Осильте лицензию уже.

     
  • 8.58, bOOster (ok), 11:47, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    И все эти костыли в купе + еще современные плюшки как то виртуализация IP стека дает в итоге FreeBSDшный JAIL :)
     
  • 7.35, Аноним (-), 09:16, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    При чем тут grsecurity Это совершенно независимый набор патчей затыкающих кучку... весь текст скрыт [показать]
     
     
  • 8.42, grec (?), 09:53, 02/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Причем тут независимость? Разговор не об этом, а об контейнерах vs grsec/selinux/tomoyo/apparmor с точки зрения безопасности.
     
     
  • 9.43, Xaionaro (ok), 09:57, 02/12/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    В контейнерной виртуализации вас никто не ограничивает в применяемых технологиях... весь текст скрыт [показать]
     
     
  • 10.47, Аноним (-), 10:20, 02/12/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    Большинство так и делает:

    grsec + виртуализация
    grsec + RBAC
    ...
    grsec + chroot
    ...
    grsec + ваши контейнеры

     
     
  • 11.48, Аноним (-), 10:25, 02/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    >grsec + chroot

    Только для домашнего использования.

     
     
  • 12.51, Аноним (-), 10:44, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    >>grsec + chroot
    > Только для домашнего использования.

    https://www.opennet.ru/openforum/vsluhforumID3/100446.html#50

     
     
  • 13.54, Аноним (-), 10:56, 02/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Правильно настроеный chroot гарантирует безопасную изоляцию процессов!!! -Аноним
    Chroot was never supposed to be used as a security mechanism - Alan Cox
    Для меня Алан более авторитетен.

     
     
  • 14.57, Аноним (-), 11:29, 02/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    Но он же... три восклицательных знака ...
     
  • 11.76, Xaionaro (ok), 10:40, 03/12/2014 [^] [ответить]     [к модератору]  
  • +/
    IMHO, очень странная у вас выборка, если в ней большинство использует grsec ... весь текст скрыт [показать]
     
  • 9.45, Аноним (-), 10:06, 02/12/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Где Я вижу только Что полная чушь Почему vs Why not both не вижу ничего что... весь текст скрыт [показать]
     
     
  • 10.53, Аноним (-), 10:54, 02/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    man limits conf man ulimit grsec Dec 2 10 00 03 xxxxx kernel grsec deni... весь текст скрыт [показать]
     
     
  • 11.55, Аноним (-), 11:05, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    >grsec/selinux/tomoyo/apparmor

    Ты видишь тут ulimit? Нет? А он есть.

    >limits.conf

    Why not cgroups ... LXC ... docker?
    cgroups - значительно более гибкие.

     
  • 6.27, Xaionaro (ok), 08:00, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    Это средство для смены корневой директории не безвозвратно IIRC, изначально с... весь текст скрыт [показать]
     
  • 6.49, Аноним (-), 10:31, 02/12/2014 [^] [ответить]    [к модератору]  
  • +2 +/
    chroot это средство безопасности. В той же мере как носок средство контрацепции.
     
  • 5.66, vitalif (ok), 15:40, 02/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    > Как минимум в openvz это сильно не так.

    Вот именно - в OpenVZ-то это не так, а в LXC именно так.

     
  • 3.18, th3m3 (ok), 03:15, 02/12/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    Да, в 2014 году прочитал Подумал, мало ли, может я чего-то упускаю Что-то модн... весь текст скрыт [показать]
     
     
  • 4.32, Xaionaro (ok), 08:17, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    А что вы используете для изоляции окружений Гипервизорные виртуальные системы ... весь текст скрыт [показать]
     
  • 4.33, Аноним (-), 08:19, 02/12/2014 [^] [ответить]     [к модератору]  
  • +2 +/
    Замените 2014 на 1914 и вы получите типичные рассуждения интеллигенции начала ве... весь текст скрыт [показать]
     
     
  • 5.69, cmp (ok), 16:22, 02/12/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    А замените 2014 на 2004, контейнеры на ява, и смысл сохранится, или если хотите ... весь текст скрыт [показать]
     
  • 3.22, Аноним (-), 06:39, 02/12/2014 [^] [ответить]    [к модератору]  
  • –3 +/
    > Так сказать, после первой успешной SQL инъекции атакующий может читать, а иногда и писать по всей фс включая .ssh/authorized_keys.
    > SQL-инъекция
    > читать/писать ФС

    ЩИТО?

     
     
  • 4.28, Аноним (-), 08:07, 02/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    MySQL SQL Injection Cheat Sheet
    ...UNION ALL SELECT LOAD_FILE(‘/etc/passwd’)
    SELECT * FROM mytable INTO dumpfile ‘/.../file’;
    Не?
     
  • 3.72, Typhoon (ok), 22:34, 02/12/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    > после первой успешной SQL инъекции атакующий может читать, а иногда и писать по всей фс включая .ssh/authorized_keys.

    бред

     
     ....нить скрыта, показать (45)

  • 1.4, Bizdelnick (?), 22:43, 01/12/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Этого следовало ожидать. Docker прибит гвоздями к их инфраструктуре, а это не может всех устраивать. Есть, правда, опасения, что и с этим Rocket будет то же самое, только с привязкой к другому вендору, но рано или поздно кто-нибудь положит этому конец. Так что конкуренция здесь - однозначно позитивное явление.
     
  • 1.8, Аноним (-), 23:22, 01/12/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Переносимость и завязанность на systemd как-то противоречат друг лругу.
     
     
  • 2.40, Аноним (-), 09:47, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    Переносимость и завязанность на linux как-то противоречат друг другу
     
     
  • 3.67, Аноним (-), 16:03, 02/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Совершенно никак. Ни капельки.
     
  • 1.20, Бутират (?), 05:50, 02/12/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    Что за идиотская традиция писать системные утилиты на Go
     
     
  • 2.31, Xaionaro (ok), 08:15, 02/12/2014 [^] [ответить]     [к модератору]  
  • +1 +/
    А вы пробовали этот go 1, 2 IMHO, он намного лучше подходит для системных зад... весь текст скрыт [показать]
     
     
  • 3.59, anonymous (??), 12:33, 02/12/2014 [^] [ответить]     [к модератору]  
  • –1 +/
    1 perl появился для автоматизации обработки текста позволяет легко прочитать фа... весь текст скрыт [показать]
     
     
  • 4.61, csdoc (ok), 13:11, 02/12/2014 [^] [ответить]     [к модератору]  
  • +/
    при желании - можно писать скрипты на Go https wiki ubuntu com gorun ... весь текст скрыт [показать]
     
     
  • 5.63, anonymous (??), 15:32, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    неужели так все просто
    в С/С++ уже целую пачку систем сборок понаписывали (autotools, cmake, scons, ..), чтобы компилять на различных платформах/дистрибутивах
     
     
  • 6.84, prostoqw (?), 09:48, 08/05/2016 [^] [ответить]     [к модератору]  
  • +/
    Да, просто Именно для этого Go и проектировался Чтобы все было просто - крайне... весь текст скрыт [показать]
     
  • 4.68, vitalif (ok), 16:12, 02/12/2014 [^] [ответить]    [к модератору]  
  • +2 +/
    1) perl код очень слабо читаем

    МИФ. Читаемость вода - вопрос криворукости, а не перла. Хотя говнокода на перле понаписано прилично, конечно. Но будем честны, не на нём одном.

    2) python приятный синтаксис

    ога, только всем кто на C писал противопоказан, потому что от форматирования блоков отступами вместо { } блевать будут

    и типизация странная - недодинамическая, например строка+число не конкатенируется

    и всяких стандартно-полезных для веба фич из коробки (как в php) нет

     
     
  • 5.70, anonymous (??), 17:17, 02/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    >Читаемость кода - вопрос криворукости

    во многом это так
    проблема в том, что в перле присутсвуют экстравагантные возможности, с которыми естественно перебирают

    >ога, только всем кто на C писал противопоказан, потому что от форматирования блоков отступами вместо { } блевать будут

    после джавы в качестве разнообразия мне наоборот только понравилось, а ещё больше понравилось, что кода в 2 раза меньше становится

    >и типизация странная - недодинамическая, например строка+число не конкатенируется

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

    >и всяких стандартно-полезных для веба фич из коробки (как в php) нет

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


     
  • 5.71, Ordu (ok), 19:40, 02/12/2014 [^] [ответить]    [к модератору]  
  • +/
    > и типизация странная - недодинамическая, например строка+число не конкатенируется

    Не путайте приведение типов и динамичность типизации. Динамическая типизация тоже может быть строгой. Построже чем в C, который числовые типы приводит один к другому даже не считая это заслуживающим упоминания, а если попросить по хорошему, то и int к void* и обратно приведёт неявно. Правда тут, надо отметить, он всё же варнинг кинет.

    Да, я не спорю, тут много путаницы -- статическая/динамическая типизация, неявное приведение типов, перегрузка функций/операторов (built-in или на стороне юзера, как в C++) -- всё это сбивает с толку. Но вы как-нибудь на досуге сядьте и подумайте такую мысль: статическая типизация -- это когда типизированы идентификаторы (переменные, имена функций...), динамическая типизация -- это когда типизированы значения (то есть когда заглянув в рандомное место памяти, вы можете отличить значение типа int от значения типа unsigned int, не глядя в код, работающий с этими значениями). 10 минут переваривания этой мысли в голове будет достаточно, для окончательного и бесповоротного избавления от бардака в голове на эту тему.

     
     
  • 6.73, vitalif (ok), 01:01, 03/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Да слышал я это, понты это гнилые, про "строгую" динамическую типизацию. Она строгая только в таких вот маразмах со строками. С объектами например всё точно то же что в других скриптовых языках. Нет проверок типов параметров функций. Какая тут нафиг строгая типизация может быть? Маркетинг только)
     
  • 6.74, vitalif (ok), 02:41, 03/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    т.е. если "строгая типизация" = "отсутствие любых неявных преобразований типов" - чего это даёт в динамическом языке, кроме неудобства - непонятно.
     
     
  • 7.77, Ordu (ok), 18:56, 03/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    > т.е. если "строгая типизация" = "отсутствие любых неявных преобразований типов" - чего
    > это даёт в динамическом языке, кроме неудобства - непонятно.

    Ах пичаль-пичаль... Непонятно... Ознакомьтесь с каким-нибудь ЯП отличным от пэхапэ/пайтон. Лучше, не насилуя мозги, сразу с lisp'ом. Есть шансы, что поможет. Ну а если нет, то просто признайтесь, что программирование -- это не ваша стихия и смените место работы.

     
     
  • 8.78, vitalif (ok), 22:34, 05/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Ты на личности-то на переходи. Лучше по существу скажи чо-нить.
     
     
  • 9.79, Ordu (ok), 22:54, 05/12/2014 [^] [ответить]    [к модератору]  
  • +/
    > Ты на личности-то на переходи. Лучше по существу скажи чо-нить.

    Что именно тебе сказать? Ссылку кинуть на учебник по лиспу? Гугл подойдёт, в качестве такой ссылки? Хотя, я вот тут подумал... Теоретически, быть может, подойдёт не только лисп, но любой язык с динамической типизацией, который позволяет также использовать и статическую типизацию. Сейчас, как я понимаю, таких языков наплодили довольно много, и в виде "крутых" js, которые компилируются в самый натуральный js, и просто так, тот же rust, если я правильно понимаю этим занимается. Это я к тому, что если есть отвращение к лисповскому синтаксису, то можно изучить вопросы типизации на языке с C-like синтаксисом.

     
     
  • 10.80, vitalif (ok), 23:34, 06/12/2014 [^] [ответить]    [к модератору]  
  • –1 +/
    Ты что ли серьёзно думаешь, что я на C и C++ не писал?

    По существу - это какие реально удобства даёт "отсутствие преобразования типов" в динамическом языке, при том, что о преобразованиях типов объектов там вообще речи не идёт, т.к. тебе же априори пофиг какой там у объекта тип. Раз объекты исключаются, остаются по сути строки, числа и boolean, и в чём реально удобство отсутствия автоматического приведения например числа к строке - ни фига не ясно...

     
     
  • 11.81, Ordu (ok), 00:33, 07/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    > Ты что ли серьёзно думаешь, что я на C и C++ не
    > писал?

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

    > По существу - это какие реально удобства даёт "отсутствие преобразования типов" в
    > динамическом языке, при том, что о преобразованиях типов объектов там вообще
    > речи не идёт, т.к. тебе же априори пофиг какой там у
    > объекта тип. Раз объекты исключаются, остаются по сути строки, числа и
    > boolean, и в чём реально удобство отсутствия автоматического приведения например числа
    > к строке - ни фига не ясно...

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

     
     
  • 12.82, vitalif (ok), 00:31, 08/12/2014 [^] [ответить]    [к модератору]  
  • +/
    Ага, а то, что объект любого класса можно использовать как объект любого класса, если у него всего лишь оказался метод с определённым именем - это не противоречит строгой типизации?

    А удобство при том, что те или иные фичи языков программирования только для удобства (удобства выполнения каких-то задач) и нужны...

     
     
  • 13.83, Ordu (ok), 01:15, 08/12/2014 [^] [ответить]    [к модератору]  
  • +1 +/
    > Ага, а то, что объект любого класса можно использовать как объект любого
    > класса, если у него всего лишь оказался метод с определённым именем
    > - это не противоречит строгой типизации?

    Противоречит, наверное. Я хз, но это уже нерелевантные терминологические игрища. На всякий случай, также, отмечу что существуют языки у которых имена методов не могут совпасть, поскольку хранятся в глобальном пространстве имён. В качестве примеров, можешь глянуть на ООП реализацию для C из glib, которая во все поля используется в gtk+. Ну или на lisp -- в нём правда речь не совсем о глобальном пространстве имён, а о пространстве имён пакета.

    > А удобство при том, что те или иные фичи языков программирования только
    > для удобства (удобства выполнения каких-то задач) и нужны...

    Ну это твои личные сложности, которые меня не колышут никоим образом. Если строгая типизация тебе не удобна, то не пользуйся ею. Кто б заставлял. Или ты споришь потому, что тебе нравиться думать, что ты пишешь на языке со строгой типизацией, а я, объясняя тебе что такое строгость, лишаю тебя этой иллюзии? Но иллюзии вредны. Они не должны замутнять твой взгляд на мир.

     
  • 2.36, Аноним (-), 09:29, 02/12/2014 [^] [ответить]    [к модератору]  
  • –2 +/
    > Что за идиотская традиция писать системные утилиты на Go

    Никто не хочет второго #Heartbleed

     
  • 1.38, Cotan (ok), 09:41, 02/12/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • +2 +/
    У Докера бабахнуло http://blog.docker.com/2014/12/initial-thoughts-on-the-rocket-announcement/
     
  • 1.62, Аноним (-), 13:22, 02/12/2014 [ответить] [показать ветку] [···]    [к модератору]  
  • –2 +/
    Зоопарк, когда уже порядок наведут?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor