Здравствуйте.
Я говорил о Bitcoin на IRC канале развития прошлой ночью. Я спрашивал о различных вещах, касающихся создания клиент Bitcoin для мобильных устройств. Люди на канале, казалось, поддерживают мои мысли о том, что источник Bitcoin код должен быть гораздо лучше.
Мне нравится Bitcoin, и я хотел бы, чтобы распространяться. Для того, чтобы распространяться, он должен быть легко доступен для программистов использовать и применять его к различным устройствам. У меня есть предложение для нового способа организации программного обеспечения Bitcoin с помощью библиотеки C.
Источник тока Bitcoin код содержит код для всего клиента Bitcoin. Фоновым должна быть полностью отделена от пользовательского интерфейса и платформы конкретных деталей. Используя библиотеку, которую программисты могут включать в свои проекты и легко прикрепить их код пользовательского интерфейса, имеет гораздо больше смысла.
Bitcoin требует от платформы код. Я не в полной мере осознает, что он требует точно. Очевидно, что необходим доступ к Интернету через IRC сокетов.
Я полагаю, библиотека не реализует специфичные для конкретной платформы код и вместо этого требует от пользователя для выполнения функций. Пользователь может отправить указатели на функции в Bitcoin, которые делают некоторые платформы конкретной работы. Например, Bitcoin может понадобиться отправить сообщение, хотя сокет IRC. Программист может реализовать функцию, которая принимает идентификатор аргумент и аргумент данных и посылает его через гнездо (определяемое идентификатор, позволяющий несколько объектов сокетов, если это необходимо) с использованием платформы конкретного API. Таким образом, Bitcoin является максимально переносимым без тех, кто нуждается, чтобы изменить библиотеку, только понять, как использовать его. Указатели на функции являются разумным способом сделать это. Указатели на функции также могут быть использованы для обработки событий (события для приема битовых монет и т.д.).
Bitcoin в настоящее время написаны на C ++. Я думаю, что это плохой выбор. C является более популярным, чем C ++ по данным опросов (http://langpop.com/) И, как правило, более переносимым. C ++ программисты могут легко использовать его и программист с использованием других языков, основанного C, как Objective-C и C # можно также интегрировать C. C могут быть легко доступно на других языках на многих платформах. В то время как C ++ также широко портативны, C является лучшей альтернативой, предлагая максимальную мобильность. C широко используется на многих процессорных архитектурах. Если Bitcoin был когда-либо сделать это путь в различных устройств и продуктов, C является лучшим способом пойти.
A ++ обертка C было бы прекрасно, но основная библиотека должна быть в C. Библиотека должна осуществляться в стандарте С-конечно, только с использованием библиотек, которые являются портативные со стандартным с.
В заключение мое предложение, чтобы отделить серверную код Bitcoin в библиотеку C, которые могут быть использованы программистами легко создавать Bitcoin приложения, удаляя все UI и платформы конкретного кода из основной библиотеки.
Что люди думают об этом?