1. Avez-vous utilisé FBP pour un projet réel?
Nous avons conçu et mis en œuvre un DF serveur pour notre projet d'automatisation (répartiteur, composant iterface, un tas de composants, DF langue, DF compilateur, de l'INTERFACE utilisateur). Il est écrit dans nu C++, et fonctionne sur plusieurs systèmes de type Unix (Linux x86, MIPS, avr32, etc., Mac OSX). Il lui manque plusieurs fonctions, par exemple sophistiqués de contrôle de flux, complexe thread de contrôle (il n'y qu'un pas trop avancé composant), c'est juste un prototype, même s'il fonctionne. Nous travaillons actuellement sur un serveur complet. Nous avons appris beaucoup au cours de la mise en œuvre et l'utilisation du prototype.
Aussi, nous allons faire un éditeur visuel de quelques jours.
2. Quelle est votre opinion de FBP?
2.1. Tout d'abord, la programmation par flux de données est le plaisir ultime
Quand j'ai rencontré programmation par flux de données, j'ai été sentir comme il y a 20 ans, quand j'ai rencontré la programmation de la première. Bien, DF programmation diffère de la procédure ou de la programmation orientée objet de la programmation, c'est juste un genre de programmation. Il y a beaucoup de choses à découvrir, même tellement plus simple! C'est très drôle, quand, comme un programmeur expérimenté, vous avez rencontré un DF problème, qui est très-très simple, mais il a été completelly inconnu pour vous, avant de. Donc, si vous sautez dans DF programmation, vous vous sentirez comme un débutant programmeur, qui a d'abord rencontré le "cycle" ou "condition".
2.2. Il peut être utilisé uniquement pour des architectures
C'est juste un coup de marteau, qui sont pour marteler les clous. DF n'est pas adapté pour de l'Isu, serveur web, et ainsi de suite.
2.3. Des flux de données, l'architecture est optimale pour certains problèmes
Un flux de données à un cadre peut faire de la magie des choses. Il peut paralellize procédures, qui ne sont pas à l'origine conçu pour paralellization. Les composants sont mono-thread, mais quand ils sont organisés en une DF graphique, ils sont devenus multi-thread.
Exemple: saviez-vous, que faire est un DF système? Essayez de faire -j (voir l'homme, qu'est-ce-j est utilisé pour). Si vous avez des multi-core de la machine, de compiler votre projet avec et sans -j, et de comparer les temps.
2.4. Partage Optimal du problème
Si vous écrivez un programme, vous avez souvent diviser le problème pour les petits sous-problèmes. Il y a d'habitude split points pour le bien-connu des sous-problèmes, que vous n'avez pas besoin de mettre en œuvre, il suffit d'utiliser les solutions existantes, comme SQL pour la DB, ou OpenGL pour les graphismes et l'animation, etc.
DF architecture divise votre problème d'une manière très intéressante:
- le flux de données-cadre, qui prévoit l'architecture (il suffit d'utiliser une existante),
- les composants: le programmeur crée les composants; les composants sont simples, bien séparés des unités, il est facile de faire des composants;
- la configuration: un.k.un. programmation par flux de données: le configurateur met le graphe de flux de données (programme) ensemble à l'aide de composants fournis par le programmeur.
Si votre jeu de composants est bien conçu, le configurateur peut construire un tel système, qui le programmeur n'a même jamais rêvé. Configurateur peut mettre en œuvre de nouvelles fonctionnalités sans perturber le programmeur. Les clients sont heureux, parce qu'ils ont personnalisé la solution. Fabricant du logiciel est également heureux, parce qu'il/elle n'a pas besoin de maintenir un certain nombre de client-branches spécifiques du logiciel, juste la configuration spécifique du client.
2.5. Vitesse
Si le système est construit sur des éléments natifs, le DF programme est rapide. La seule perte de temps est le message disaptching entre les composants par rapport à un simple OOP programme, il est également minime.
3. Ne FBP ont-ils un avenir?
Oui, bien sûr.
La raison principale est qu'il permet de résoudre massive de multitraitement questions sans introduire de nouvelle marque étranges architectures logicielles, bizarre langues. Programmation par flux de données est facile, et je veux dire à la fois: composant de programmation et des flux de données de configuration de bâtiment. (Même flux de données dans le cadre de l'écriture n'est pas la science de fusée.)
Aussi, il est très économique. Si vous avez un bon jeu de composants, il vous suffit de mettre l'ensemble des briques de lego. Un DF programme est facile à entretenir. Le DF config bâtiment nécessite pas de programmeur expérimenté, juste un intégrateur système.
Je serais heureux, si native des systèmes répartis, avec les portes ouvertes pour composant personnalisé de la création. Aussi, il doit être un standard DF langue, ce qui signifie qu'il peut être utilisé avec plate-forme indépendante des éditeurs visuels et plusieurs DF serveurs.