Обновить
59

Пользователь

22
Подписчики
Отправить сообщение
В 40 не верю. Одна свёртка + соответстующие типы уже 30; да и я за краткостью не гнался.
Насчёт замыканий, это да, на RSDN была тема про то, как такое решение на OCaml обогнало решение на Си в лоб. Интересно было бы сравнить OCaml и Nemerle, так как их решения в данном случае совпадают.
Кстати, на Nemerle же потенциально возможно грузить файл в compile-time и макросами генерировать код выполнения на самом же Nemerle, а не писать VM. Так не пробовали? По крайней мере такое предлагали для ЛИСПа, но на Nemerle тоже реально. Получается та же кодогенерация, но не в текст, а более прямым методом.
Когда я прочёл спеку VM, сразу решил писать на C++, о чём в последствии ни разу не пожалел.
Кода получилось меньше, чем на Nemerle, кстати:
orbit.hpp + orbit.cpp
А дальше этой VM можно воспользоваться из чего угодно.
Я бы с удовольствием почитал про их макросы и отличия от Nemerle.
А можно ли, например, сделать так:
public CPPData someCSharpFunction(string filename)
{
  CPPLoaderClass c(filename);
  c.load();
  c.doSomeOtherWork();
  CPPData d = c.result();
  d += "here is html code";
  return d;
}

Ну или что-то подобное. Т.е. использовать объекты Си++ в шарповом коде и наоборот?
В идеале нужен язык, в котором можно было бы пользоваться всеми наработками. Одну компоненту взять из Java, другую из C#, и чтобы всё прозрачно работало вместе, но мне это кажется утопией. Во что соберётся Java + C + Ruby, например.
Вставить, например, значок суммы, в язык мы не можем

Если речь о юникоде, то вроде как можно, но думаю, что тут подразумевается что пошире. Однако это ведь вопрос представлений. Например, в хаскеле очень многое (в том числе автоматом) поддерживает класс Show и может быть выведено строкой. Формально, можно завести класс Edit, специальная реализация которой будет в вашем редакторе матрицу отображать матрицей и позволять её именно так редактировать. Однако это займет много времени, а толку мало.
Если я правильно понимаю, недостаток, например, compile-time преобразования строки (например, в TH или Nemerle) (а уж там можно назадавать любой синтаксис) в том, что это не будет поддерживается IDE?
Ну, я понимаю, зачем нужны DSL, я не понимаю, как MPS радикально упрощает их создание. Их вон что на лиспе, что на немерле, что на хаскеле клепают (и даже на C++), и текстовое представление вроде не было самой большой проблемой.

Попробую посмотреть презентацию.
Я, видимо, так и не смогу понять всей идеи до конца, без конкретного примера. Уж сколько читаю, много слов о том, как может быть улучшена разработка, чем лучше редактировать AST, но примера, наглядно показывающего, как можно получить результат с куда меньшими затратами, чем от обычного ЯПа, не видел.
Замените это на функторы и всё станет ясно.
Вы сохранили ссылку на переменную, которой после выхода из функции нет. Что в таком случае положено? Не важно, лямбда там или нет, обращение по этой ссылке — undefined behaviour.
В общем случае заинлайнить container.end() невозможно, так что надо на практических примерах смотреть или писать, как упомянули выше.
Про второй не уверен, будет оно или нет.
std::tr1::function
std::tr1::reference_closure // ?
T // template <class T>
http://www.research.att.com/~bs/bs_faq.html#IEEE

Did you really give an interview to IEEE?
in which you confessed that C++ was deliberately created as an awful language for writing unmaintainable code to increase programmers' salaries?

Of course not. Read the real IEEE interview.
Именно, бо́льшие программы на PureBasic оторвутся в бо́льшую сторону значительно, а если GUI-библиотек нет и приходится события обрабатывать самому, то этот отрыв будет ещё и нелинейным.
Поэтому и был недоумённый (исходный) вопрос про простоту того же самого на Python. Хочется услышать от вас, есть всё-таки аналогичный мощный и простой способ писать так на PureBasic?
MS Office тем не менее продаётся хорошо, и создавался профессионалами, что наводит на мысли.
Говорить о 5-мегабайтности Hello World'а не имеет смысла, потому что их никто не пишет, а программа не станет в 10 раз больше, потому что в этих 5 мегабайтах и заключён весь GUI, ваш код на размер уже так влиять не будет.

Разумеется, если Вы именно Hello World и пишете, то можно взять Си без рантайма и на одном АПИ наваять, будет минимальная программа, но смысл? Не стоит затрат.

Вообще, придирка к вашему коду должна была заключаться не в том, что «на Python проще», а в том, что у вас
Event = WaitWindowEvent
что очень низкоуровнево, писать так большие программы не получится.
Возможно, GUI-библиотеки там тоже есть, но вы язык и его библиотеки практически не описали.
Вы ведь не думаете, что если программа увеличится с 5 до 100 строк, то она станет весить не 10 мегов, а 200?
Так что про «Hello World»'ность программы — какой-то странный аргумент.
Конечно, это проще ручного цикла обработки. Там ещё и layout'ы есть удобные, так что не требуется задавать размеры, а с фиксированными размерами будет напряг при изменении размеров окна.
А по-вашему 2 строки на описание окна это сложно? Если да, то чем это сложнее?
exe-шник не замерял, какой-то странный вопрос с учётом нынешних скоростей и ёмкостей. Уж явно не больше 10 мегов будет (при независимом exe, включающем всё, разумеется).
Это и есть окно с сообщениями.

Какая разница, компилируемый или нет, когда тут GUI сравнивается? Вот пример на компилируемом:

module Main where
import Graphics.UI.WX
main = start $ do
    f <- frame [text := "Hello, Habr!"]
    textEntry f [text := "Hello, Habr!"]
Я вообще-то и не прощался.
Я хотел уйти до тех пор, пока не уберут это нововведение (менять пароль раз в несколько месяцев), а сейчас оказывается, что этого и так не будет.
Только те, кто угнал, вряд ли будут заходить под всеми аккаунтами и менять.
Ан нет, всё поменялось.
Я кстати попробовал, почему-то не получилось, надо ещё попозже.

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность