LINUX.ORG.RU

Вышла новая версия языка Nim 0.17.2

 , ,


3

4

7 сентября вышла новая версия языка программирования Nim 0.17.2.
Nim - это язык системного программирования, который ориентирован на производительность, мобильность и выразительность.

В этой версии был сделан упор на стабильность компилятора, и были исправлены важные баги. Следовательно, очень рекомендуется обновиться. А новой функцией в этом выпуске является поддержка файлов .nimble-link. Это было сделано для поддержки последней версии Nimble с функцией «develop».

Этот выпуск также включает в себя новую версию пакетного менеджера Nimble 0.8.8 который обновился 3 сентября. Где тоже было исправлено множество багов. Но стоит отметить что это достаточно крупное обновление с большим количеством новых функций. С которыми можно ознакомиться по ссылке
https://github.com/nim-lang/nimble/blob/master/changelog.markdown#088---03092017
Из наиболее важных это:

  • Реализована команда разработки develop
  • Реализована задача по умолчанию test для пакетов которые не определяют ее
  • Снижение потребления памяти если пакет содержит много файлов

А 6 сентября появилась новая документация к Nim на DevDocs
http://devdocs.io/nim/

>>> Version 0.17.2 released



Проверено: Shaman007 ()
Ответ на: комментарий от NextGenenration

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

anonymous ()
Ответ на: комментарий от NextGenenration

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

anonymous ()
Ответ на: комментарий от opqx

Понимаю что сюрприз, но...

В виме и gvim есть такая хрень как «расширения» (скрипты? плагины? хрен знает как правильно назвать в данном случае). Штука настолько мощная, что в самых запущеных случаях позволяет создавать что-то типа IDE. См. cream for vim, например.

Ну вот и есть такой скрипт/плагин, реализующий набор сниппетов и для С и не только. Например, набрав в vim «out» и нажав клавишу Tab я рискую получить на месте курсора что-то типа: <+ how_much +> = TEMP_FAILURE_RETRY(write(<+ where +>, <+ what +>, <+ how much +>));

Далее я жму (в своём vim) Ctrl + J и меняю <+ ... +> на что-то более адекватное решаемой задаче. Код вставляется автоматом, правда, здесь вывод сильно сокращён чисто демонстрации ради, в реале для того же сниппета out вывод несколько сложнее.

anonymous ()
Ответ на: ЛОЛШТО?!? от anonymous

Я бы Вас например, уволил к херам собачьим в течении 15 минут. Ибо Вам важнее не решение задачи в практической плоскости, а какое-то онанирование над программным кодом. На практике же либо код работает, либо нет. Всё остальное есть ложь, 3.14здёж и наглейшая провокация.

Ты бы уволил, а нормальный манагер - нет. И вот почему:

а) Во-первых, красота кода с работоспособностью не совмещается ну никак. Красивый код != Неработоспособный код;

б) Из-за таких как ты, лично ты, поц - на двухъядерных ПеКа с 4-мя гигами мозгов - тормозит браузер с тремя вкладками, в то время как эпичнейшая стратегия Dune работает без тормозов на 16 мегагерцовом процессоре (в 125 раз медленнее среднего современного) и на 72 Кб ОЗУ. Потому что такие говнокодеры как ТЫ - лепят костыли. А хуле: код echo «1»; echo «2»;echo «3»...echo «1024» на практике работает, а циклы - это же для онанистов над программным кодом;

в) Но даже на практике этот код, написанный «в практической плоскости» работает до первого обновления. Если бы ты работал в конторе, манагер которой раньше «уволил программиста красивым кодом» и дал в тебе наследство говнокод написанный таким как ты - ты бы уволился сам, или порвал все волосы на жопе.

Такие дела.

vblats ()
Последнее исправление: vblats (всего исправлений: 1)
Ответ на: комментарий от vblats

Бггг...

У меня для тебя плохие новости. По твоей же цитате:

а) Во-первых, красота кода с работоспособностью не совмещается ну никак. Красивый код != Неработоспособный код;

Во-первых, я ни где не говорил о «красивости» кода. Тебе захотелось поговорить об этом? Ну поговори.

Во-вторых, я даже не съезжал (изначально!) на «современность» кода. Я всего-навсего заметил что свою привычку кодерасить копипастой не стоит транспонировать на всех.

Так что, по данному пункту из двух утверждений оба ложны. Что доказывает то, что современный «погроммист» не в состоянии ни прочесть уже написанное, ни сделать из прочитанного выводов. Ergo, туп, глуп и бесперспективен.

б) Из-за таких как ты, лично ты, поц - на двухъядерных ПеКа с 4-мя гигами мозгов - тормозит браузер с тремя вкладками, в то время как эпичнейшая стратегия Dune работает без тормозов на 16 мегагерцовом процессоре (в 125 раз медленнее среднего современного) и на 72 Кб ОЗУ. Потому что такие говнокодеры как ТЫ - лепят костыли. А хуле: код echo «1»; echo «2»;echo «3»...echo «1024» на практике работает, а циклы - это же для онанистов над программным кодом;

Из-за таких вафлёров как ты, не знающих и не желающих знать С, браузер типа огнелиса это голимый С++, а вот на чём там Dune написана, я не в курсе. Учи матчасть. Но в курсе что idSoftware свой DOOM пилила на С и всё у них было нормально.

И опять ты за3.14здился. Делать вывод о качестве моего кода тебе не судьба. Ты его не видел, но высказываешь довольно смелые суждения. Там нет:

А хуле: код echo «1»; echo «2»;echo «3»...echo «1024» на практике работает, а циклы - это же для онанистов над программным кодом;

Следовательно, ты и тут за3.14здился.

в) Но даже на практике этот код, написанный «в практической плоскости» работает до первого обновления. Если бы ты работал в конторе, манагер которой раньше «уволил программиста красивым кодом» и дал в тебе наследство говнокод написанный таким как ты - ты бы уволился сам, или порвал все волосы на жопе.

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

В сухом остатке. Иди. Секс любишь? Дорогу знаешь? Ну так не смею задерживать.

anonymous ()
Ответ на: Бггг... от anonymous

Ого у тебя подгорело.

Из всего высера ясно только одно:

Делать вывод о качестве моего кода тебе не судьба

Потому что никакого кода не существует.

Поэтому да, вести с тобой диалог не имеет смысла, школьник.

vblats ()
Ответ на: комментарий от vblats

Бггг...

Из всего высера ясно только одно:

Да. Ты туп. Это очевидно.

Потому что никакого кода не существует.

Стесняюсь спросить... Это ты себя убеждаешь или меня? :)))

подгорело.
школьник.

По себе других не судят. Но тебе опять-таки не понять. :)))

В общем, счастливого пути. :)))

anonymous ()
Ответ на: комментарий от vblats

Из-за таких как ты, лично ты, поц - на двухъядерных ПеКа с 4-мя гигами мозгов - тормозит браузер с тремя вкладками, в то время как

Еще один даун, не понимающий, что в браузере тормозят скрипты, СКРИПТЫ, млять. Как раз написанные любителями высокоуровневой скриптопараши и красивых абстракций в десять слоев.

anonymous ()
Ответ на: ЛОЛШТО?!? от anonymous

Программирование FPGA это настолько не современное нам программирование, что Вы, любезный, себе и представить не можете.

Могу. Но под «другим» я подразумевал как раз «современное нам программирование» на других языках, а не генерацию цифровых схем, разводку плат или вышивание крестиком, поэтому твой пример с FPGA и не считается.

Простите, а кому какая разница что там говорит безграмотный говнокодер?

Тебе есть разница, раз ты отвечаешь на соответвтвующие реплики.

Вы не в состоянии написать свои библиотеки для своей предметной области?

В состоянии. Но процесс написания, как и процесс использования написанного - попаболь.

У Вас проблемы с С-кодом? У Вас проблемы с безопасностью С-кода?

Дело не в проблемах, а в усилиях на их минимизацию.

Что значит «современно» или «не современно»?

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

Я бы Вас например, уволил к херам собачьим в течении 15 минут.

Ушел плакать.

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

Никакого сферического решения задачи в вакууме нет и не будет. После любого решения задачи надо лезть в код, и его должно быть легко читать, модифицировать и заниматься над ним всяким другим онанизмом.

Esper ()
Ответ на: комментарий от Esper

Не. Не так.

Что не так? Да всё не так. Вот в чём вся проблема-то...

Могу. Но под «другим» я подразумевал как раз «современное нам программирование» на других языках, а не генерацию цифровых схем, разводку плат или вышивание крестиком, поэтому твой пример с FPGA и не считается.

Нет. Не можете. Ибо что VHDL, что верилог это, сюрприз, но «языки программирования». Со своими синтаксисом и семантикой. И «программирование FPGA» это всё-таки, именно «программирование», а не генерация цифровых схем и не вышивание крестиком с разводкой плат. Ненужно пороть хуйню.

Таким образом, Ваше изначальное утверждение о том, что:

Неущербен он только для:
людей, не знающих ничего другого;

Из www.linux.org.ru/news/development/13667809/page1#comment-13670739 это есть наглый 3.14здёж. Хотя бы потому, что Вы путаете программирование FPGA и разводку плат/генерацию схем. Ergo, представление о том, о чём Вы столь бойко 3.14здите, Вы имеете самое отдалённое, но это не мешает Вам 3.14здить.

Кстати, сишника или ассемблерщика проще за FPGA посадить чем питонщика/рубиста/... Ибо мыслят они иными категориями. Но тут... не всем дано, как говорится. Кто-то и улицы должен мести и на пыхе кодерасить.

Но процесс написания, как и процесс использования написанного - попаболь.

Странно. Никогда не замечал попаболи при работе на С. Вот, внезапно, такой крайне выразительный язык как питон гласит https://docs.python.org/3.6/extending/extending.html что дескать выразительность выразительностью, но если вам внезапно понадобилась скорость или новые типы данных/объекты, то используйте С или С++. Может, Вам действительно надо сменить язык программирования (или пол или ориентацию)? Вы... подумайте над этой идеей, а то уж больно мазохизмом от Ваших слов веет. Вы страдаете от использования С. Не надо этих подвигов, я Вас умоляю! Найдутся люди, которые и за Вас и без Вас умудрятся сделать что и как нужно. А уж потом Вы, на каком-нибудь выразительном языке, не? В конце-концов, кто-то на том же пистоне со scapy умеет, а кто-то и на C с libnet аналогичные задачи решает. Результат один и тот же, но если на питоне какая-то затычка получается, то на С вполне себе быстрый код.

Дело не в проблемах, а в усилиях на их минимизацию.

И

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

Две цитаты из серии «а мужики-то не знают». Мужики и не знают что модули ядра им неудобно писать, не выразительно получается. Мужики не в курсе что они пишут хреновые, невыразительные и неудобные сервера... О, ужас! Куда катится этот мир!!!11адын-адын.

Не, опять всё не так. Кому надо писать, тот пишет. Ну а кому писать не надо, делать больше в общем, и нехер, тот сидит-скулит.

Никакого сферического решения задачи в вакууме нет и не будет. После любого решения задачи надо лезть в код, и его должно быть легко читать, модифицировать и заниматься над ним всяким другим онанизмом.

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

В одно не влезло.

anonymous ()
Ответ на: комментарий от Esper

Продолжение последовало.

Тебе есть разница, раз ты отвечаешь на соответвтвующие реплики.

Честно? Опять не та причина. Причина в том, что заебли уже скулящие пионэры-юннаты, чесслово. Каждую неделю вопли «вперёёёд! даёёёшь! больше развития! больше объёма! больше блеска!». А воз и ныне там. Тут про vala уже напомнили, только не сказали что ряд разрабов GNOME уже относят данный язык к уже мёртвым. https://www.phoronix.com/scan.php?page=news_item&px=GNOME-Vala-Bassi Но как всё бравурно начиналось... Бодренько так... На простой вопрос типа «ну и на хер вы тратили ресурсы, то же электричество на разработку этого говноподелия» ответа не было, нет и не будет. Но понтов в начале была куча, мир перевернуть обещали. Ага. Вот только как писал я на С с GTK+ интерфейс для своих поделий, так и пишу. А вала вон, уже и родиться и вырасти и даже загнуться успел...

Так же не могу не напомнить про то, что СРР изначально тоже был надстройкой над С (CFront, ЕМНИП). И Objective-C тоже. Только objc как-то всё больше SWIFT заменяют (считай, похоронили), а СРР стал... Ну, в общем, я долго ржал, когда вкурил что в новый стандарт вкрячили примерно 2/3 буста. Жирноват стал ваш этот СРР, «богат возможностями». С же, при всех новшествах и нововведениях, как был лёгким и нежирным, так и остаётся. Умудряется вот как-то.

Ушел плакать.

Всё правильно сделал. Тебе пора. Поверь на слово.

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

anonymous ()

новую версию пакетного менеджера Nimble 0.8.8

Закапывайте. Достали уже продукты велосипедопакетно ориентированной разработки. Нормально в систему не поставить. Вон у redmine требование ruby выше 1.9. А хрен поставишь на 2.0. В какой-то момент по зависимостям стал вытаскиваться модуль требующий ruby 2.0.

anonymous ()
Ответ на: комментарий от cvv

в Vala нет AST-макросов с term rewriting, GC не отстреливаемый, синтаксис Vala/Genie — тоже питон (его, ЕМНИП, выпилили), врапперы генерируются через gir, а в Nim руками или h2nim надо писать.

anonymous ()
Ответ на: комментарий от cvv

ещё в Vala полязыка не работает для объектов, не наследуемых от GObject.

а в Nim — ничо так, ибо оно написано на себе самом. сравни с dmd -betterC (не использовать зависимости от Druntime)/библиотека tanya, например (не использовать gc, явное nogc) в D .

anonymous ()
Ответ на: комментарий от anonymous

А хрен поставишь на 2.0

Даже в олдстейбле дебиана уже 2.1. Ты там на чем некромантишь? Хотя проблема с этой скриптотой имеется. Когда уже они начешут себе все места и стабилизируют свои поделия. А то в дебе уже 4(!) версии луа, например.

bread ()
Ответ на: Re: Продолжение последовало. от anonymous

Re: Продолжение последовало.

На, поржи. http://www.open-std.org/jtc1/sc22/wg14/ и http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf

Чёт эти идиоты колупаются ещё в этом С... Про gcc extensions я и напоминать боюсь. https://gcc.gnu.org/onlinedocs/gcc/C-Extensions.html Тоже, видать, чувакам делать нехер.

anonymous ()
Ответ на: комментарий от gns

Он же кросс-компилятор в С, оно такое надо?

С++ когда-то в реинкарнации CFRONT тоже был кросс-компилятором.

и да, С++ — не нужен. нужно что-то типа Modula-3, или Oberon-2.

но у них не такие уж зрелые оптимизаторы. HLA похож на Oberon-2 и одновременно на ассемблер, но все оптимизации там нужно наворачивать вручную CTFE функциями.

ВНЕЗАПНО, вот если бы взять и реализовать Oberon-2 компилятор как DSL на нормальном языке — например, на D (PEG-парсер, extented pascal ), или на Nim паскалеподобном (например, это допилить до паскалевской грамматики).

при этом тут уже есть: c2nim, pas2nim, h2nim и батарейки, интеграция с с++ (см. примеры про irrilicht в дистрибутиве, например)

ещё есть кросскомпиляция

в этом смысле такой вот паскаль/оберон/питон , кросскомпируемый через Си , с AST макросами для переписывания и нормальным CTFE — не умрёт никогда.

anonymous ()
Ответ на: Re: Продолжение последовало. от anonymous

Re: Продолжение последовало.

На, поржи.

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

Про gcc extensions я и напоминать боюсь.

А вот это используется, но GNU C это скорее отдельный язык.

anonymous ()
Ответ на: Не. Не так. от anonymous

Ибо что VHDL, что верилог это, сюрприз, но «языки программирования». Со своими синтаксисом и семантикой.

Лол, наличие синтаксиса и семантики ты приводишь, как необходимый и достаточный признак ЯП? Ну, в русском тоже есть синтаксис и семантика. И в HTML. И в ini.

И «программирование FPGA» это всё-таки, именно «программирование», а не генерация цифровых схем

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

и не вышивание крестиком с разводкой плат.

Спасибо, кэп.

Кстати, сишника или ассемблерщика проще за FPGA посадить чем питонщика/рубиста/...

А цифрового схемотехника - ещё проще. При условии, что у него есть интуитивное понимание формальных языков.

выразительность выразительностью, но если вам внезапно понадобилась скорость или новые типы данных/объекты, то используйте С или С++

Опять ты на скорость исполнения съезжаешь. То, что народ вложил кучу усилий на ваяние хороших оптимизирующих компиляторов для C, ничего не говорит о годности самого языка. Конечно, там ещё играет роль достаточно удачный tradeoff в плане UB, но на UB я не наезжал.

Да ещё и C++ приплёл в спор про C. Если чо, C++ - на порядок более вменяемый и современный язык, чем C.

Две цитаты из серии «а мужики-то не знают».

Многие знают, но молчат. Многие знают и не молчат, но йуные сишные пуристы их сходу записывают в php-говнокодеры.

Не, опять всё не так. Кому надо писать, тот пишет. Ну а кому писать не надо, делать больше в общем, и нехер, тот сидит-скулит.

Если судить по объёмам скулежа, ты - самый большой нехерделать в треде. Даже в один пост уже укладываешься.

Чем нормальный, грамотный проггер на С вполне и обходится.

Я где-то говорил, что нельзя обойтись? Обойтись можно и ассемблером.

Ну, в общем, я долго ржал, когда вкурил что в новый стандарт вкрячили примерно 2/3 буста.

Это заговор php-говнокодеров, инфа 100%.

Жирноват стал ваш этот СРР, «богат возможностями».

Не могу не процитировать тебя же: «Простите, а кому какая разница что там говорит безграмотный говнокодер?» Кресты - один из самых популярных языков в широком круге задач, и если он вытесняется, то Жабкой и Сидиезом, а никак не сишечкой.

У C++ ровно одна большая проблема - это вкорячивание в язык и std фич, завязанных на рантайм без возможности легко отделить их от остального языка, из-за чего он не слишком применим там, куда запихивать рантайм не комильфо. Пример более удачного решения в этом плане - Rust, но там ещё не понятно, что в целом из него получится.

Я же из спора позволяю себе выйти откланявшись. Мне пора код идти писать.

А чо не пионэров увольнять?

Esper ()
Последнее исправление: Esper (всего исправлений: 1)
Ответ на: комментарий от NextGenenration

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

есть пять примеров.

1. смотри слайды про метапрограммирование в Nim на основе AST макросов и переписывании термов  — макросы с гигиеной и квазицитированием. см. форум

пример применения: printf-подобная строчка для форматирования AST макросами с переписыванием и оптимизацией, CTFE (во время компиляции)

для всяческих DSL c оптимизацией.

2. пример кроссплатформенного приложения

3. пример привязок к С++, к Objective-C

4. c2nim, pas2nim, h2nim для переноса легаси, биндингов и батареек.

5. написан на себе самом, то есть минималистичное ядро.

например, в Go goroutines и интерфейсы — часть рантайма. в Rust — корутины как библиотека, и трейты вносят меньше накладных расходов в рантайм.

GC написан на Nim, то есть отстреливаемый. «не платите за то, что не используете» — макросами во время компиляции, с переписыванием AST термов и оптимизацией.

anonymous ()
Ответ на: Re: Продолжение последовало. от anonymous

Re: Продолжение последовало.

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

Боюсь что несколько не так. С, будучи «портируемым ассемблером» и не нуждается в каких-то охреневающих инновациях. Существующая работа идёт в рамках плавного совершенствования. Например, охрененная вещь типа _Generic:

#define cbrt(x) _Generic((x), long double: cbrtl, \
                              default: cbrt, \
                              float: cbrtf)(x)
Т.е., в зависимости от типа x мы имеем одно, другое или третье. Дожили и доросли.

Поддержка _Atomic (<stdatomic.h>), _Thread_local (<threads.h>), https://www.securecoding.cert.org/confluence/display/c/API02-C. Functions tha...

И т.д. и т.п. Т.е., на мой взгляд, идёт планомерная работа по совершенствованию и улучшению. Без воплей про революцию и ненужного нерва.

Новшества есть. И прежде всего, они есть для тех, кому они действительно нужны.

А вот это используется, но GNU C это скорее отдельный язык.

Дык! Большая часть нововведений в стандарт уже была создана в пределах того или иного диалекта С. И, скорее всего, в пределах gcc, потому как по большей части он и остался. В проприетарщине (виндах и макоси) уже нет, в *BSD... Либо шланг, либо кто-то вообще этим пользуется?

Так что, именно gcc, скорее всего занимает лидирующую роль по дополнению в стандарт. Сперва в gcc, потом в стандарте.

anonymous ()
Ответ на: комментарий от bread

Даже в олдстейбле дебиана уже 2.1. Ты там на чем некромантишь?

CentOS 7.

Хотя проблема с этой скриптотой имеется. Когда уже они начешут себе все места и стабилизируют свои поделия. А то в дебе уже 4(!) версии луа, например.

Это не проблема, хоть 3 десятка.

Проблема в том, что меняются пакеты в этих велосипедопакетных репозитариях независимо ни от чего.

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

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

anonymous ()
Ответ на: комментарий от Xroft

А причем тут Python и язык программирование?) У Python такие архитектурные проблемы что Go кажется просто вершинной эволюции. Начиная от «псевдо ОО подхода» где нужно передавать «self» методам объекта и вызывать объект через гребанные "()", это называется ООП ? чушь, объект должен вызывать по сообщению без () и др фигни, плюс ко всему еще один помидор в отсутствии Инкапсуляции и Полиморфизма который реализован частично(не возможно изменить типы данных глобально, а не через такое убожество как __str__ внутри конкретного класса), print не является объектом тем самым смысл его существования в ОО мире не понятно.. Так что не оскорбляйте ЯП если ваш ЯП тот еще кусок фикалий ;)

HasKup9012 ()
Ответ на: комментарий от gns

Непонятно, зачем нужен еще один язык с такой же исполняющей системой.

как это «такой же»? не такой. вот Rust, например — там модель памяти другая: семантика владения/одалживания + let it fail в смысле panic/defer как в Go, а не исключения на каждый чих, при этом fail отдельной корутины, а в запущенных случаях всего.

рантаймы разные, минималистичности разные, фичи такого минималистичного ядра языка — разное.

например, в Си и С++ из-за исключений — подсистемы разные. простой cout << «hello world» влечёт за собой: исключения, конструкторы/деструкторы, по цепочке: для всей иерархии объектов с корня (которого в С++ нет) до cout.

так что «исполняющая система», рантайм — разная.

если рантайм написан не на самом языке (например, как было в D до переписывания его с С на D, или в Go на Си реализация интерфейсов и горутин) — могут быть такие неявные зависимости типа объекты (в рантайме, а не CTFE) тянут за собой Object, vtable, механизмы реализации полиморфизма и наследования.

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

anonymous ()
Ответ на: комментарий от anonymous

причём вот он, поциентишка: «писать простыню из echo(„123“);, echo(„4565“); echo (9845.8234); echo („blablabla“); — неэффективно же ! 1111»

поэтому он напишет ` printf(«%i %i %d %s»,123,4565, 9845.8234,«blablabla»); ` — и получит медленный код, с неявным интерпретатором.

занавес!

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

anonymous ()
Ответ на: Не. Не так. от anonymous

Re: Не. Не так.

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

в чём проблема, если «нормальный, грамотный кодер» будет не делать закат солнца руками, палками и верёвками — а использует некоторый макропроцессор времени компиляции? потом посмотрит на тот код, сгенерированный макропроцессором — убедится, что осебятины, вносимой «очередной надстройкой» минимум — и пополнит свою коллекцию инструментов ещё одним.

не во всех случаях надо обходиться палками и верёвками, имхо.

anonymous ()
Ответ на: комментарий от anonymous

Проблема в том, что меняются пакеты в этих велосипедопакетных репозитариях независимо ни от чего.

Может ты просто не умеешь ими пользоваться? Осиль уже bundler, раз с рубями связался. Там можно собрать компот из каких угодно версий.

bread ()
Ответ на: комментарий от flyshoot

Лол, в чем тогда отличие от баша? Он также успешно выполняет задачу вывода «hello world», если это всё что вам нужно. И нет нужды в ещё одном языке.

Думаю у них разные цели, вот их основное отличие.

opqx ()
Ответ на: Re: Не. Не так. от anonymous

Re: Не. Не так.

А и так париться не нужно. Если мне надо привести сырцы к единому виду/стилю, то indent мне в помощь. Если надо проверить на косяки, то splint/coverity мне в помощь. Ну или valgrind.

Более того! Если уж cdecl я не слышал чтобы пользовались, для перевода стандартного английского в С, или cppdecl, для перевода стандартного английского в СРР, то... какой смысл в ещё одних промежуточных преобразованиях между мной и С? Если вполне стандартный английский не зашёл, то давайте ещё добавим ещё один уровень в виде ещё одного языка.

Ну и http://dia2code.sourceforge.net/ как-то тоже не особо пользуются, хотя уж чего проще-то, из UML прямо сразу код получать. Ручками только всё равно придётся подтёсывать, но уж код-то сгенерит на славу и прямо по диаграмме.

Здесь с nim как раз и предлагается ещё один уровень распорок и подпорок. Который, кстати, уже не взлетел один раз. См. выше, я там краткую историю vala излагал. Зачем ещё одна сущность не понятно.

Хотя, в принципе... Да похрен как-то. Я вполне могу её не использовать.

anonymous ()
Ответ на: комментарий от bread

Может ты просто не умеешь ими пользоваться? Осиль уже bundler, раз с рубями связался. Там можно собрать компот из каких угодно версий.

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

Это проблема всех велосипедопакетников.

anonymous ()
Ответ на: комментарий от Esper

Да хрен с ним, забей.

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

А чо не пионэров увольнять?

А то, что ты и такие как ты на меня не работают. Входной фильтр при трудоустройстве срабатывает. А то больно много колготы. Прими на работу идиота, намайся с ним от души, потом увольняй... Легче сразу не принимать на работу дебилов. Поверь на слово, хотя возможно тебе и не понять. :)))

Ну, в общем, удачи тебе. Она, кстати, тебе и понадобится. ;)

anonymous ()