А какой вообще смысл в таких скриптах? Все комментарии взаимосвязаны логически, это же живое общение людей, и сама возможность вырезать куски из такого общения бессмысленна — например, можно не понять смысла заплюсованного ответа на заминусованный коментарий, если заминусованный скрыт.
Я тоже задавался подобными вопросами… Похоже на то, что никто точно не знает что нужно и как конкретно это должно выглядеть и работать. Программ-то много — Mind maps, concept maps, аутлайнеры, PIM, но все или неудобные, или решают задачи только частично, а коммерческие нередко еще и «overdesigned» с совершенно навороченным ярким-кричащим и при это неудобным интерфейсом. А open-source наоборот убогие и чуть ли не из командной строки предлагают работать:)
Жалко… у меня она скорее всего просто не поставится ввиду небольшого количества памяти в ноутбуке. Остается только надеяться что Apple откроет исходники Swift и энтузиасты портируют на ранние версии macosx или даже на linux.
А какие системные требования для XCode 6 beta 4? У меня есть виртуалка с MacOSX Snow Leopard, для экспериментов с ObjC мне хватало, а для Swift я так понимаю уже не подойдет?
Тоже об этом подумал. Логично же переместить модуль обработки сигналов и все прочее специальное оборудование в сам сканер, который уже по USB подключать куда угодно.
Зато создаются библиотеки типа Boost в которых все фичи все равно есть, но не естественным путем, а через всевозможные метакостыли и хаки на шаблонах. В результате все начинают этим пользоваться и именно это и становится стандартом, а не естественная языковая реализация.
Что же до обратной совместимости… я вообще не вижу смысла молиться на нее как на священную корову. Если программа активно поддерживается и развивается, она все равно постоянно рефакторится и я предпочту переписать ее, если код в результате станет значительно более простым и изящным. Если не поддерживается или почти не поддерживается — значит она никому и не нужна, на крайний случай старые компиляторы никто не отменял.
Олдскул… все-таки откуда это чувство чего-то теплого, лампового? Я начинал программировать на обычных PC-шках, под DOS. С такими машинами дела не имел никогда. И все равно, когда смотришь на старую компьютерную технику, возникает какая-то ностальгия… возможно потому что раньше к IT в целом, к компьютерам и интернету были причастны не все подряд, а только «избранные», т.е. профессионалы, те кому это действительно нужно и кто в этом действительно понимает? До какого-то момента ведь так и было. Где-то до начала 2000-х. А потом пошла попса какая-то, интернет из серьезной сети превратился в пестрящую баннерами развлекалочку, смартфоны и ноутбуки есть абсолютно у всех…
Давно хочу заняться программингом под Андроид, и все никак руки не доходят. Я так и не смог определиться, есть ли у Гугла что-то типа «Android Developing Pack Ultimate Edition», чтобы в ОДНОМ оффлайновом инсталляторе было все что нужно для работы — и SDK, и NDK, и среда разработки, настроенная для Андроида, и справка, и примеры…
В который раз убеждаюсь что все гениальное просто. Что может быть проще двух длинных чисел, представляющих широту и долготу? Оказывается, короткая символьная строка в 36-ричной системе:)
Бессмысленные ограничения… Разве для какого-нибудь Андроида проблема написать софтверную реализацию шифрования? Дополнительное преимущество — можно применять именно те механизмы шифрования, которые ты хочешь и которым доверяешь, а не то что зашито производителем.
Я бы так не сказал. В D и Rust присутствуют разные не менее интересные фичи, но конкретно структурная типизация и встраивание вместо наследования, насколько я помню, только в Go.
Я имел в виду всего лишь «нескриптовое» программирование. Не знаю есть ли правильный адекватный термин. То есть все то, что обычно делают на C/С++, включая и классическое «системное» программирование, и «встраиваемое» (для микроконтроллеров, в том числе самостоятельные прошивки без ОС), и достаточно большую часть «прикладного», включая и софт с GUI, и геймдев, и серверное ПО.
Идеальный язык системного программирования пока не сделан, увы. И Go конечно даже и не претендует на это звание:) Но в Go есть некоторые идеи, которые лично мне понравились (и которые ИМХО вполне могли бы войти в «идеальный язык» в качестве фич):
1. Структурная типизация. Как дополнение к классической номинативной она была бы очень интересна.
2. Встраивание вместо наследования. Удивительно простая и очевидная вещь, которую следовало бы ввести еще в Си. Можно сказать что это более низкоуровневая реализация наследования. А возможность «встраивать» указатели вообще дает крайне интересые эффекты.
3. Ну и оператор вывода типов := сам по себе весьма милый… знаете, мелочь — а приятно, что именно так сделали. Правда недоделали до конца, и внутри выражений объявлять таким образом новые переменные нельзя.
Из того что я знаю — язык Nemerle, на rsdn.ru есть отличные статьи по этому поводу. Думаю, еще где-нибудь есть.
Хотя можно обобщить и сказать, что основная идея нормального метапрограммирования — написание «плагинов к компилятору» с использованием классической императивной (процедурной и объектно-ориентированной) парадигмы, причем неважно на том же языке что и основная программа, или на каком-то другом (возможно на упрощенном подмножестве основного языка, или на популярном скриптовом языке). Это не генерация текста программы, а именно работа с синтаксическими деревьями, поэтому компилятор должен предоставлять какое-то API для доступа к себе, а синтаксис основного языка обеспечивать прозрачное встраивание макросов и «квазицитирование» кода.
Что же до обратной совместимости… я вообще не вижу смысла молиться на нее как на священную корову. Если программа активно поддерживается и развивается, она все равно постоянно рефакторится и я предпочту переписать ее, если код в результате станет значительно более простым и изящным. Если не поддерживается или почти не поддерживается — значит она никому и не нужна, на крайний случай старые компиляторы никто не отменял.
1. Структурная типизация. Как дополнение к классической номинативной она была бы очень интересна.
2. Встраивание вместо наследования. Удивительно простая и очевидная вещь, которую следовало бы ввести еще в Си. Можно сказать что это более низкоуровневая реализация наследования. А возможность «встраивать» указатели вообще дает крайне интересые эффекты.
3. Ну и оператор вывода типов := сам по себе весьма милый… знаете, мелочь — а приятно, что именно так сделали. Правда недоделали до конца, и внутри выражений объявлять таким образом новые переменные нельзя.
Хотя можно обобщить и сказать, что основная идея нормального метапрограммирования — написание «плагинов к компилятору» с использованием классической императивной (процедурной и объектно-ориентированной) парадигмы, причем неважно на том же языке что и основная программа, или на каком-то другом (возможно на упрощенном подмножестве основного языка, или на популярном скриптовом языке). Это не генерация текста программы, а именно работа с синтаксическими деревьями, поэтому компилятор должен предоставлять какое-то API для доступа к себе, а синтаксис основного языка обеспечивать прозрачное встраивание макросов и «квазицитирование» кода.