Le principe même de planter au runtime est totalement inacceptable. Au mieux, il log un truc, mais ne plante pas ! Même facebook avec hh, log les erreurs pour éviter justement de planter leur code. On ne rajoute pas de moyen de planter dans un logiciel qui ne doit pas s’arrêter.
Mais là, le langage n'a rien à voir puisque ça a planté car le code n'était pas, volontairement, protégé. En clair, les bornes des variables n'étaient pas vérifiés suite à l'introduction dans le code d'une levée des vérifications.
L'erreur est humaine et n'est pas à imputer au langage.
Si j'allais te parler des "case" ouvert qui n'ont pas tous les variants de définit, je pense que je t'aurais perdu en route. C'est quand même un cas très particuliers, que l'on peut éviter.
Effectivement, comme en plus en Ada, le case doit voir toutes les possibilités couvertes, j'aurais rien compris.
non, il suffit d'un intégrateur. Une mémoire dans une boucle. Voir une mémoire inclus dans un calcul fait à chaque pas de temps.
Un langage sans "type somme" ou ayant encore la référence "null" en 2015, c'est un peu dure.
Comme tu dis, c'est dure. Pour la référence null, je vois pas où est le problème, surtout quand on parlait de faire de la programmation système.
En plus, c'est pas C/C++, les pointeurs, on n'est pas obligés de s'en servir donc le null, c'est pareil, on s'en sert pas des masses.
Ensuite, le "type somme", je veux que tu m'expliques ce que c'est, ça me permettra de mettre à jour ma définition informatique de type.
Pour la création de type, c'est réellement utilisable ? j'avais vu que l'on pouvait définir des ranges mais un code en réel avec des ranges mais pas de précision ne sert pas à grand chose.
Ouais, t'as raison, c'est d'ailleurs pour ça qu'on peut écrire ça en Ada:
typeCoefficientisdigits10range-1.0..1.0;
D'ailleurs, en point fixe aussi
typeVoltisdelta0.125range0.0..255.0;
Les assert() et autre post/pre condition, c'est aussi joli que les tests unitaires. Mais quand un débordement d'entier char, te lance une exception, qui démarre un autotest dans la central inertiel de ta fusée, tu les haies tes "machins" runtime.
Oh, putain !! Un bug sur de la reprise de code n'ont couvert par une vérification fait exploser UNE fusée et le langage est à jeter !! En quoi était codé Mars Climate Orbiter ?
Le seul truc avec Mars Climate Orbiter, c'est que ce n'était pas filmé donc l'impact sur la mémoire collective est nul.
D'autre part, tu reliras bien le rapport. Il n'y avait pas d'autotest du tout.
C'est le fait que cette centrale inertielle, liée si ma mémoire est bonne à l'axe de la fusée au décollage, soit encore en route après 30 secondes de vol qui était problématique vu qu'elle ne pouvait traiter que des accélérations dignes d'Ariane 4 donc beaucoup moins fortes qu'Ariane 5 (mais valable dans les premières secondes de vol).
Le bout de code n'étant pas protégé, il a renvoyé une valeur incohérente que le central n'a pu gérer. La centrale redondante ayant fait pareil, il était plus sûr, après avoir tenté de rattraper la soi-disant mauvaise trajectoire, de procéder à l'autodestruction.
En gros, si tout ses types complexe que permet de définir Ada ne fonctionne qu'au runtime, ils ne servent à rien ou presque. Ocaml a un typage complexe, et tout ou presque est vérifié à la compilation.
Ou presque… On est bien d'accord et tu montres clairement que tu ne sais pas de quoi tu parles.
Alors effectivement, si tu castes dans tous les sens, le compilateur va avoir du mal à te dire si tu déborderas ou pas.
Mais en même temps, si tu le fais, c'est justement pour dire au compilateur que tu sais ce que tu fais et qu'il ne verifiera que les nouvelles conditions.
Par contre, en conditions normales, il n'y a guère que les entrées externes au programme qui peuvent générer des valeurs hors plages et ça, généralement, on traite les exceptions. Alors, sauf si Ocaml a des pouvoirs de divination, je ne vois pas comment tu peux assurer que l'utilisateur ne rentrera pas n'importe quoi.
Et comme on parle de langages sécurisés, la possibilité depuis la version 2012 de placer des aspects pour définir des contrats qui peuvent lever des erreurs à l'exécution ou à la compilation.
Bon, je vais pas répéter tout ce que j'ai déjà dit :)
et compter le temps passé à faire un make qui va bien (vu que tu dois relancer la compil' souvent) + positionner les ; au bon endroit
Alors avec Gnat, pas besoin de make sauf si tu as besoin de compiler du C.
Si tu veux vraiment faire un beau truc, tu peux utiliser un fichier de projet Gprbuild mais il n'y a rien d'obligatoire.
trouver les use utiles pour afficher un truc à l'écran
Pas plus dur que de trouver le bon include
positionner les ; au bon endroit
Tu parles justement du C et il se trouve qu'il y en a encore plus en C… Ne serait-ce que dans un for.
Quand on est codeur C, le problème du point-virgule en Ada commence à s'apparenter à de la mauvaise foi.
Surtout que si tu oublies un point-virgule en C, certes, il va jusqu'au bout mais tu sais pas trop ce qu'il compile au final.
s'il faut s'appliquer des conventions pour éviter le cas classique du case par exemple
Justement en Ada, il n'y a pas à s'appliquer des conventions pour ce genre de choses. Typiquement, un casedoit couvrir tous les cas.
Pour moi un programmeur qui est satisfait que cela fonctionne mais a une tétra-chiée de warning n'a pas d'ego, voire n'est pas un programmeur ;-) (surtout s'il ne sait pas expliquer pourquoi il a gardé ces warnings même après livraison, cela ne donne pas trop confiance à celui qui va devoir reprendre le code et le maintenir ensuite…).
Tu dois pas souvent compiler un noyau Linux alors parce que sinon tu verrais que c'est pas plein de non programmeurs :D
Y'avait quel compilateur Ada accessible librement quand OpenBSD a démarré ?
GNAT est sorti officiellement en 95 pratiquement en même temps qu'OpenBSD.
Le seul truc, c'est qu'OpenBSD est un fork de NetBSD qui lui-même est un fork de 386BSD.
Inutile de dire qu'à l'époque, du code C, il y en avait déjà plein.
Ça ferait quelle quantité de code de reprendre tout ce qu'ils ont besoin en Ada ?
Si tu vas au bout de la démarche, il faut tout reprendre pour minimiser l'emploi du C. Au final, il ne doit te rester qu'un peu d'assembleur pour bootstrapper le tout :)
En clair, c'est lourd mais loin d'être irréalisable.
la commande pour générer un binaire à partir d'un source, et que je me fasse les classiques programmes de début de langage: hello world, deviner un nombre, …
En effet, il est tout de même très frustrant de passer 1/2 journée à écrire son 1erHello World lorsqu'on découvre le langage.
T'exagères pas un peu là ? Si c'est pas le cas, c'est grave.
Mais avouons que, contrairement à un langage de script, c'est vrai c'est plus dur, faut lire un minimum de doc.
tu peux l'appliquer après que ton programme fonctionne et compile déjà, cela devient un jeu de retirer jusqu'au dernier warning et ça sert pour la suite.
Pour moi, c'est tout l'opposé. Je préfère largement un truc qui ne compile pas et qui m'oblige à réfléchir mon code pour passer la compilation qu'un code qui compile avec une tétra-chiée de warning que personne ne voudra corriger.
D'ailleurs, quand on compile le GCC, faut pas avoir peur parce que des warning, il y en a un bon paquet :)
Sinon, j'aime bien ta définition des vrais langages :D
Mention spéciale pour Java qui permet l'écriture très simple d'un Hello World, surtout pour celui qui ne sait pas ce qu'est une classe…
J'avoue être tout de même surpris qu'OpenBSD qui est supposé mettre l'accent coté sécurité ait fait le même choix (utiliser un langage privilégiant la performance à la sécurité par défaut).
Parce que la base de code C était déjà là dans les BSD et qu'ils n'ont par forcément tout ré-écrit from scratch.
Et puis, coder un OS, c'est long alors certains doivent se dire que ce serait encore plus long en Ada :)
Pour finir, il y a aussi le problème du runtime Ada qu'il faut porter pour pouvoir bénéficier de tous les avantages du langage.
c'est sur les paquets propriétaire , par exemple Papper Flash n'est pas disponible tout comme google chrome ( donc obligé d'utiliser flash 11
Vrai pour Flash mais pour Chrome, y a au moins Chromium
FFmpeg ainsi que tout les codecs…etc
Hein ? T'es sûr ? Enfin, sur FreeBSD, je suis pas aussi sûr que toi (cf. ça)
De plus ils n'ont pas beaucoup de technologies vraiment BSD , la grande majorité sont des projets linux qui ont été repris
Au hasard, bhyve, les jails, Packet Filter et IPFW, CARP, HAST, GEOM, Dtrace (mais ça, ça vient de Solaris à l'origine), l'inclusion de ZFS dans le système de base… T'as raison, que du Linux :)
Ils sont aussi à la ramasse avec l'utilisation de vieille versions de X.org
Ben oui, y a des gens qui s'amusent à faire du Linux specific donc c'est pas forcément facile à suivre
Enfin bref peux etre que j'essaierais un jour mais ça sera pour un tres court moment avant de formater , trop de choses qui manquent pour garder un systeme BSD pendent longtemps
Tout dépend de ce que tu veux faire mais oui, si tu cherches un Linux, passes ton chemin.
# Pour rire
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche Et si JavaScript allait droit dans le mur ?. Évalué à 7.
Bon, je l'avoue, je n'aime pas le Javascript mais, là, c'est juste pour vous faire partager une petite vidéo très amusante :)
[^] # Re: vers une explication du choix de son éditeur préféré ?
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Giulia Anders : "Le charme discret de l'intestin" . Évalué à 10.
J'ai toujours dit que c'était des guéguerres de merde !
Bon, je… -> []
[^] # Re: Pale, hélice, rotor, toussa
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Y a des stages plus sympas que d'autres !. Évalué à 2.
Effectivement, le Caracal, lui, a cinq pales

Alors que chez le même constructeur, le Tigre, 4 pales

Mystère !!
# Oubli de lien
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Y a des stages plus sympas que d'autres !. Évalué à 2.
Je me suis rendu compte que cela manquait de lien sur Spark. Voici donc deux petits liens supplémentaires :
- Un tutoriel chez Adacore
- Le site dédié à la promotion de Spark
[^] # Re: Pale, hélice, rotor, toussa
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Y a des stages plus sympas que d'autres !. Évalué à 1. Dernière modification le 31 mai 2015 à 21:10.
Exact ! Abus de langage :)
D'ailleurs, on peut aussi très bien avec seize pales.
Si un modo veut bien rectifier en changeant pales par rotors, merci d'avance :)
[^] # Re: Et le code ?
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Predeez vous permet de prouver au monde que vous avez toujours raison. Évalué à 10.
Je prédis que ça va pas tarder à venir :D
[^] # Re: Drôle de phrase
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal "Gummiboot UEFI Boot Loader" sera ajouté à Systemd. Évalué à -1.
C'était pas plutôt Saint-Simon qui a dit ça ?
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 2.
La page que tu as donnée ?
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 1.
Mais là, le langage n'a rien à voir puisque ça a planté car le code n'était pas, volontairement, protégé. En clair, les bornes des variables n'étaient pas vérifiés suite à l'introduction dans le code d'une levée des vérifications.
L'erreur est humaine et n'est pas à imputer au langage.
Effectivement, comme en plus en Ada, le case doit voir toutes les possibilités couvertes, j'aurais rien compris.
C'est quoi une mémoire dans une boucle ?
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 3.
Comme tu dis, c'est dure. Pour la référence null, je vois pas où est le problème, surtout quand on parlait de faire de la programmation système.
En plus, c'est pas C/C++, les pointeurs, on n'est pas obligés de s'en servir donc le null, c'est pareil, on s'en sert pas des masses.
Ensuite, le "type somme", je veux que tu m'expliques ce que c'est, ça me permettra de mettre à jour ma définition informatique de type.
Ouais, t'as raison, c'est d'ailleurs pour ça qu'on peut écrire ça en Ada:
D'ailleurs, en point fixe aussi
Oh, putain !! Un bug sur de la reprise de code n'ont couvert par une vérification fait exploser UNE fusée et le langage est à jeter !! En quoi était codé Mars Climate Orbiter ?
Le seul truc avec Mars Climate Orbiter, c'est que ce n'était pas filmé donc l'impact sur la mémoire collective est nul.
D'autre part, tu reliras bien le rapport. Il n'y avait pas d'autotest du tout.
C'est le fait que cette centrale inertielle, liée si ma mémoire est bonne à l'axe de la fusée au décollage, soit encore en route après 30 secondes de vol qui était problématique vu qu'elle ne pouvait traiter que des accélérations dignes d'Ariane 4 donc beaucoup moins fortes qu'Ariane 5 (mais valable dans les premières secondes de vol).
Le bout de code n'étant pas protégé, il a renvoyé une valeur incohérente que le central n'a pu gérer. La centrale redondante ayant fait pareil, il était plus sûr, après avoir tenté de rattraper la soi-disant mauvaise trajectoire, de procéder à l'autodestruction.
Ou presque… On est bien d'accord et tu montres clairement que tu ne sais pas de quoi tu parles.
Alors effectivement, si tu castes dans tous les sens, le compilateur va avoir du mal à te dire si tu déborderas ou pas.
Mais en même temps, si tu le fais, c'est justement pour dire au compilateur que tu sais ce que tu fais et qu'il ne verifiera que les nouvelles conditions.
Par contre, en conditions normales, il n'y a guère que les entrées externes au programme qui peuvent générer des valeurs hors plages et ça, généralement, on traite les exceptions. Alors, sauf si Ocaml a des pouvoirs de divination, je ne vois pas comment tu peux assurer que l'utilisateur ne rentrera pas n'importe quoi.
Bref, merci
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 3.
Ben, moi, si j'avais vraiment besoin de sécuriser, je ferai du Spark :)
Comme quoi, les goûts et les couleurs…
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 3.
Et comme on parle de langages sécurisés, la possibilité depuis la version 2012 de placer des aspects pour définir des contrats qui peuvent lever des erreurs à l'exécution ou à la compilation.
Bon, je vais pas répéter tout ce que j'ai déjà dit :)
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 1.
Alors avec Gnat, pas besoin de make sauf si tu as besoin de compiler du C.
Si tu veux vraiment faire un beau truc, tu peux utiliser un fichier de projet Gprbuild mais il n'y a rien d'obligatoire.
Pas plus dur que de trouver le bon include
Tu parles justement du C et il se trouve qu'il y en a encore plus en C… Ne serait-ce que dans un for.
Quand on est codeur C, le problème du point-virgule en Ada commence à s'apparenter à de la mauvaise foi.
Surtout que si tu oublies un point-virgule en C, certes, il va jusqu'au bout mais tu sais pas trop ce qu'il compile au final.
Justement en Ada, il n'y a pas à s'appliquer des conventions pour ce genre de choses. Typiquement, un case doit couvrir tous les cas.
Tu dois pas souvent compiler un noyau Linux alors parce que sinon tu verrais que c'est pas plein de non programmeurs :D
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 1.
On va remédier à ça :D
Voilà un projet d'OS en Ada… Parmi d'autres
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 0.
Exact ! D'ailleurs voilà une page sur Osdev qui montre comment on fait
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 3.
GNAT est sorti officiellement en 95 pratiquement en même temps qu'OpenBSD.
Le seul truc, c'est qu'OpenBSD est un fork de NetBSD qui lui-même est un fork de 386BSD.
Inutile de dire qu'à l'époque, du code C, il y en avait déjà plein.
Si tu vas au bout de la démarche, il faut tout reprendre pour minimiser l'emploi du C. Au final, il ne doit te rester qu'un peu d'assembleur pour bootstrapper le tout :)
En clair, c'est lourd mais loin d'être irréalisable.
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 2.
Suivi d'un petit
gnatmake hello.adb
… Voilà, c'est parti, tu peux passer au deuxième chapitre :D[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 5.
T'exagères pas un peu là ? Si c'est pas le cas, c'est grave.
Mais avouons que, contrairement à un langage de script, c'est vrai c'est plus dur, faut lire un minimum de doc.
Pour moi, c'est tout l'opposé. Je préfère largement un truc qui ne compile pas et qui m'oblige à réfléchir mon code pour passer la compilation qu'un code qui compile avec une tétra-chiée de warning que personne ne voudra corriger.
D'ailleurs, quand on compile le GCC, faut pas avoir peur parce que des warning, il y en a un bon paquet :)
Sinon, j'aime bien ta définition des vrais langages :D
Mention spéciale pour Java qui permet l'écriture très simple d'un Hello World, surtout pour celui qui ne sait pas ce qu'est une classe…
[^] # Re: Pas sûr que trouver des erreurs/la fiabilité soit si important pour la communauté libre..
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche [code] Trouver les erreurs. Évalué à 7.
Parce que la base de code C était déjà là dans les BSD et qu'ils n'ont par forcément tout ré-écrit from scratch.
Et puis, coder un OS, c'est long alors certains doivent se dire que ce serait encore plus long en Ada :)
Pour finir, il y a aussi le problème du runtime Ada qu'il faut porter pour pouvoir bénéficier de tous les avantages du langage.
[^] # Re: l'envie de tester mais....
Posté par Blackknight (site web personnel, Mastodon) . En réponse à la dépêche Sortie de FreeBSD 10.1. Évalué à 9.
Vrai pour Flash mais pour Chrome, y a au moins Chromium
Hein ? T'es sûr ? Enfin, sur FreeBSD, je suis pas aussi sûr que toi (cf. ça)
Au hasard, bhyve, les jails, Packet Filter et IPFW, CARP, HAST, GEOM, Dtrace (mais ça, ça vient de Solaris à l'origine), l'inclusion de ZFS dans le système de base… T'as raison, que du Linux :)
Ben oui, y a des gens qui s'amusent à faire du Linux specific donc c'est pas forcément facile à suivre
Tout dépend de ce que tu veux faire mais oui, si tu cherches un Linux, passes ton chemin.
[^] # Re: C'est cool mais…
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal Présentation du projet SNACK. Évalué à 7.
Ouais, faut avoir très fin :D
[^] # Re: Tarifs
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal L'AFNOR a besoin de vous. Évalué à 1.
Idéalement, il faudrait aussi motiver un de vos gros clients Ada, si tu vois de qui je veux parler ;)
[^] # Re: Tarifs
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal L'AFNOR a besoin de vous. Évalué à 2.
Certes mais t'es le seul à avoir fait un "coming-out" Ada :D
[^] # Re: Tarifs
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal L'AFNOR a besoin de vous. Évalué à 2. Dernière modification le 14 novembre 2014 à 10:59.
Ça tombe bien, c'est à toi que je pensais pour une adhésion :)
Vu la taille de la liste et les noms, je crois que je sais où tu bosses maintenant :D
Bon, en même temps, c'est aussi sur ton CV :)
[^] # Re: But de l'exploration spatiale
Posté par Blackknight (site web personnel, Mastodon) . En réponse au journal L'astronomie à la portée de tous : Philae. Évalué à 4.
Et quand est-ce qu'elle part sur Tchouri ? :D