История изменений
Исправление be_nt_all, (текущая версия) :
Тут уже был банальнейший пример - обход структуры. Язык Си не позволяет это выразить.
Вот не любитель я Си-шки, и не такой крутой профи, но «не сеют и не пашут их, они сами родятся». В lua/python/php нужное подчеркнуть, отсутствующее вписать, НЕТ обхода произвольной структуры. Там есть обход динамической хрени, которая там эмулирует структуру. И если мы к сям библиотекой такую хрень подключим, там оно будет. Lua, который свои потроха от программиста не сильно прячет, в этом плане особенно показателен.
Этот самый обход структуры можно реализовать в языках/библиотеках с поддержкой RTTI, но если вам охота тащить в ваш runtime ещё и type information, то и для С решения с интроспекцией найдутся. Да GObject, чтобы далеко не ходить (но это не единственный пример «грязного си»).
Хотим compile time? Как, говорят, есть в D и обещяют в плюсах (а где нибудь в Boost или около и сейчас наверняка)? Да пишем на коленке простенький скрипт на… да хоть на Перле и генерируем сериализаторы, если в нашем проекте вот действительно нужно сереализировать всё и вся. Ну и с макросами наверняка можно как-то извернутья. Ну и один пример готового решения тут уже приводили. Сложно? А где та куча языков где для этого есть готовые решения, пока названо полтора (и «скорость» компиляции во вполне любимых мной плюсах — сильный «аргумент» за универсальные решения, чего уж…).
Исправление be_nt_all, :
Тут уже был банальнейший пример - обход структуры. Язык Си не позволяет это выразить.
Вот не любитель я Си-шки, и не такой крутой профи, но «не сеют и не пашут их, они сами родятся». В lua/python/php нужное подчеркнуть, отсутствующее вписать, НЕТ обхода произвольной структуры. Там есть обход динамической хрени, которая там эмулирует структуру. И если мы к сям библиотекой такую хрень подключим, там оно будет. Lua, который свои потроха от программиста не сильно прячет, в этом плане особенно показателен.
Этот самый обход структуры можно реализовать в языках/библиотеках с поддержкой RTTI, но если вам охота тащить в ваш runtime ещё и type information, то и для С решения с интроспекцией найдутся. Да GObject, чтобы далеко не ходить (но это не единственный пример «грязного си»).
Хотим compile time? Как, говорят, есть в D и обещяют в плюсах (а где нибудь в Boost или около и сейчас наверняка)? Да пишем на коленке простенький скрипт на… да хоть на Перле и генерируем сериализаторы, если в нашем проекте вот действительно нужно сереализировать всё и вся. Ну и с макросами наверняка можно как-то извернутья. Ну и один пример готового решения тут уже приводили. Сложно? А где та куча языков где для этого есть готовые решения, пока названо полтора (и «скорость» компиляции во вполне любимых мной плюсах — сильный аргумент за универсальные решения, чего уж…).
Исправление be_nt_all, :
Тут уже был банальнейший пример - обход структуры. Язык Си не позволяет это выразить.
Вот не любитель я Си-шки, и не такой крутой профи, но «не сеют и не пашут их, они сами родятся». В lua/python/php нужное подчеркнуть, отсутствующее вписать, НЕТ обхода произвольной структуры. Там есть обход динамической хрени, которая там эмулирует структуру. Lua, который свои потроха от программиста не сильно прячет, в этом плане особенно показателен.
Этот самый обход структуры можно реализовать в языках/библиотеках с поддержкой RTTI, но если вам охота тащить в ваш runtime ещё и type information, то и для С решения с интроспекцией найдутся. Да GObject, чтобы далеко не ходить (но это не единственный пример «грязного си»).
Хотим compile time? Как, говорят, есть в D и обещяют в плюсах (а где нибудь в Boost или около и сейчас наверняка)? Да пишем на коленке простенький скрипт на… да хоть на Перле и генерируем сериализаторы, если в нашем проекте вот действительно нужно сереализировать всё и вся. Ну и с макросами наверняка можно как-то извернутья. Ну и один пример готового решения тут уже приводили. Сложно? А где та куча языков где для этого есть готовые решения, пока названо полтора (и «скорость» компиляции во вполне любимых мной плюсах — сильный аргумент за универсальные решения, чего уж…).
Исправление be_nt_all, :
Тут уже был банальнейший пример - обход структуры. Язык Си не позволяет это выразить.
Вот не любитель я Си-шки, и не такой крутой профи, но «не сеют и не пашут их, они сами родятся». В lua/python/php нужное подчеркнуть, отсутствующее вписать, НЕТ обхода произвольной структуры. Там есть обход динамической хрени, которая там эмулирует структуру. Lua, который свои потроха от программиста не сильно прячет, в этом плане особенно показателен.
Этот самый обход структуры можно реализовать в языках/библиотеках с поддержкой RTTI, но если вам охота тащить в ваш runtime ещё и type information, то и для С решения с интроспекцией найдутся. Да GObject, чтобы далеко не ходить (но это не единственный пример «грязного си»).
Хотим compile time? Как, говорят, есть в D и обещяют в плюсах? Да пишем на коленке простенький скрипт на… да хоть на Перле и генерируем сериализаторы, если в нашем проекте вот действительно нужно сереализировать всё и вся. Ну и с макросами наверняка можно как-то извернутья. Ну и один пример готового решения тут уже приводили. Сложно? А где та куча языков где для этого есть готовые решения, пока названо полтора.
Исходная версия be_nt_all, :
Тут уже был банальнейший пример - обход структуры. Язык Си не позволяет это выразить.
Вот не любитель я Си-шки, и не такой крутой профи, но «не сеют и не пашут их, они сами родятся». В lua/python/php нужное подчеркнуть, отсутствующее вписать, НЕТ обхода произвольной структуры. Там есть обход динамической хрени, которая там эмулирует структуру. Lua, крирпый свои потроха от программиста не сильно прячет, в этом плане особенно показателен.
Этот самый обход структуры можно реализовать в языках/библиотеках с поддержкой RTTI, но если вам охота тащить в ваш runtime ещё и type information, то и для С решения с интроспекцией найдутся. Да GObject, чтобы далеко не ходить (но это не единственный пример «грязного си»).
Хотим compile time? Как, говорят, есть в D и обещяют в плюсах? Да пишем на коленке простенький скрипт на… да хоть на Перле и генерируем сериализаторы, если в нашем проекте вот действительно нужно сереализировать всё и вся. Ну и с макросами наверняка можно как-то извернутья. Ну и один пример готового решения тут уже приводили. Сложно? А где та куча языков где для этого есть готовые решения, пока названо полтора.