Node.cobol / Node.fortran : ex�cuter du code COBOL et Fortran dans Node.js
et inversement gr�ce � ces biblioth�ques
Node.cobol et Node-cobol sont des ponts entre Node.js et COBOL qui vous permettent d'ex�cuter du code Node.js depuis du code COBOL et inversement.
Le concept semble plut�t �trange. Surtout si, comme moi, vous pensez que le COBOL n'est plus trop utilis� et est appel� � dispara�tre, remplac� par des langages bien plus r�cents. Eh bien, selon les recherches d'autres personnes, il s'av�re que le langage est encore fortement pr�sent. Apr�s une soixantaine d'ann�es d'existence, ce langage multiplateforme (et m�me orient� objet en cours de route) est utilis� principalement dans des applications h�rit�es m�me si personne ne s'en soucie vraiment.
Et donc ? Ionică Bizău explique que son but �tait de lier ce vieux langage (sans �tre p�joratif) avec une technologie plus r�cente : Node.js, qu'il connaissait d�j�. Il a d'ailleurs fait �a � pour le fun �.
Toutefois, vous avez maintenant la possibilit� de rendre disponible votre application COBOL directement sur le Web (un Web service, par exemple). Sympa ! � l'inverse, vous pouvez ex�cuter un serveur Web � partir de code COBOL. On pourrait se demander si ce n'est pas plus s�r d'utiliser le COBOL ainsi au lieu de le migrer, avec tout ce que �a implique.
En pratique, les ponts utilisent le compilateur GnuCOBOL qui doit donc �tre install�. Voici les exemples donn�s par l'auteur. C'est d'abord le fait d'ex�cuter du COBOL dans du JavaScript :
Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 // Dependencies var Cobol = require("cobol"); // Execute some COBOL snippets Cobol(function () { /* IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. DATA DIVISION. PROCEDURE DIVISION. PROGRAM-BEGIN. DISPLAY "Hello world". PROGRAM-DONE. STOP RUN. */ }, function (err, data) { console.log(err || data); }); // => "Hello World"
Et ensuite, le fait d'utiliser du JavaScript dans du COBOL :
Code cobol : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 * Compile this file together with the node.cobol modules: * $ cobc -x example/main.cbl lib/node-exec-* * Then execute the binary file: * $ ./main IDENTIFICATION DIVISION. PROGRAM-ID. MAIN. DATA DIVISION. WORKING-STORAGE SECTION. 01 NODEJS-CODE PIC X(100) value "console.log('Hello World!')". PROCEDURE DIVISION. * Execute a short Node.js snippet CALL 'EXEC_NODEJS' USING NODEJS-CODE DISPLAY "Starting an HTTP server on port 8000". * Convert an image into ASCII/ANSI art CALL 'EXEC_NODEJS_FILE' USING "example/grace-hopper.js" DISPLAY "Starting an HTTP server on port 8000". * Starting an HTTP server in Node.js CALL 'EXEC_NODEJS_FILE' USING "example/server.js". STOP RUN.
Les pages de Node.cobol et Node-cobol sur GitHub.
Super.
- Oui, mais, le titre, l�, il parle de Fortran. C'est quoi le rapport ?
Fort de son succ�s totalement inattendu, et de son amusement totalement personnel, Ionică Bizău a r�it�r� l'exp�rience avec le Fortran. � peu de choses pr�s, vous remplacez tous les termes COBOL par Fortran dans ce qui pr�c�de et vous obtenez les ponts Node.fortran et Node-fortran.
Le premier vous permet d'ex�cuter du code Node.js depuis le code Fortran :
Code fortran : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 program nodejs_module_example use nodejs implicit none ! Let's execute a Node.js file call runNodejsPath("example/index.js", .false.); ! => "Hello from a Node.js file." print *, "An HTTP server is going to be started on port 9000." ! And now let's execute some Node.js code right here call runNodejs("const http = require('http');& &http.createServer((req, res) => {& & res.end('Hello World from a Node.js server started& & from Fortran!')& &}).listen(9000);", .true.); end program nodejs_module_example
Le second vous permet d'ex�cuter du code Fortran depuis le code Node.js :
Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12 const fotran = require("fortran"); // Let's run some Fortran stuff fotran(` program hello print *, "Hello World!" end program hello `, (err, data) => { console.log(err || data); // => Hello World });
Et voil�, le tour est jou� !
Les pages de Node.fortran et Node-fortran sur GitHub.
Et vous ?
Programmez-vous encore en COBOL ou en Fortran ?
Que pensez-vous de l'int�gration des anciens langages avec les nouveaux ?
Retrouver les cours et tutoriels pour apprendre Node.js.
Partager