Bienvenue sur PEBKAC.fr, le site qui recense les anecdotes où l’on se moque des utilisateurs ne maîtrisant pas l’outil informatique. PEBKAC est un acronyme signifiant « Problem Exists Between Keyboard And Chair ».
Le problème se situe entre la chaise et le clavier : soumettez vos histoires, donnez votre avis ! Ce site n'est pas le site original pebkac.fr. Je publie ici la liste des PEBKAC que j'ai pu sauvegarder avant que le site original ne soit mis hors ligne.
Toujours en cours de COO, j'ai eu la surprise d'entendre de la part du professeur : « Le logiciel, vous lui donnez votre diagramme, et il va vous sortir du code en C, et en Java ».
Dans le fond l'objet en C est faisable, mais au vu de ce qu'il a déjà dit… PEBKAC.
Dans le précédent PEBKAC, il propose de faire les diagrammes sous power point pour les inclure dans leur présentation, pas dans leur logiciel d'analyse.
Il propose "pour les créer". Perso, quand je me tape un diagramme de classes, je le fait UNE fois, et de là je le met là où il va bien. Car si t'a 3 classes, avec 2 attributs et 3 méthodes, ça passe, quand t'a un truc volumineux, ça passe pas, mais alors pas du tout !
Commentaire #143106 écrit par Loy le 18/07/2014 à 13h10 | 👍🏽👎🏽
@ygnobl : en fait j'ai mis "c'est faisable" pour éviter que quelqu'un se ramène pour dire "blabla tu peux faire ça avec des structures blabla".
@Youplà : je ne sais/pense pas, c'était un de ces moments où tu cherches des exemples pour illustrer ton propos (et dans son cas tu dit tout et n'importe quoi).
(sinon il y a un "et" en trop à la fin de la citation)
Si les profs sont comme les miens, ils mélangent effectivement C et C++. (mon prof qui m'avait sorti "et on fera du C objet" ... qui s'est avéré être du C++ basique et mal foutu (j'ai des Pebkacs le concernant qui devraient un jour arriver, t'en fais pas). Mais les deux malwares que j'ai cités sont bien en C objet
Commentaire #143110 écrit par Loy le 18/07/2014 à 13h14 | 👍🏽👎🏽
A priori, rien n'empêche d'implémenter un diagramme de classes dans un langage non objet. Simplement le résultat ne sera pas un code objet, mais après tout peu importe si le résultat est généré automatiquement...
L'objet n'est qu'une manière de développer destinée à simplifier la vie du dev. Arrêtez-moi si je me trompe, mais tout ce qui est faisable en objet est faisable sans utiliser ces structures...
Oui, bien sûr. Ou même directement en hexa, pourquoi s'embêter avec des langages intermédiaires...
M'enfin bon, ce que je voulais dire, sans rentrer dans ces considération extrêmes, c'est que la représentation d'un modèle ne présage pas de son implémentation. Et même s'il est (extrêmement) maladroit de parler du C en cours de POO, les propos du prof ne sont pas fondamentalement faux.
Oh, mes connaissances en C sont alors encore plus rouillées que je ne le croyais. Je ne pensais pas qu'on puisse faire du "C objet". Du C avec des structures et tout un pataquès pour que ça ressemble à de l'objet, oui, mais de la vraie prog objet, je n'savais pas.
Rhô les lourds, moi je préfère de loin faire des portes logiques avec des transistors et mesurer mes niveaux de tension en 0V et -5V. C'est tellement plus simple pour retranscrire un diagramme de classe.
Ben je l'ai appris en suivant succinctement les avancées sur la décompilation de DuQu :) Sinon je sais pas faire, loin de là !
Commentaire #143145 écrit par Loy le 18/07/2014 à 14h55 | 👍🏽👎🏽
c'est quoi que t'a pas compris ?? (:p)
Commentaire #143146 écrit par Loy le 18/07/2014 à 14h56 | 👍🏽👎🏽
@Youplà : Je n'aurai qu'un mot à dire : HLS.
On n'est certes pas sur les niveaux de tension, mais oui, on génère des circuits de portes logiques à partir d'une description en langage "logiciel"...
Après, t'appliques une petite équation de Schrodinger, et tu sort un modèle mathématique de ton circuit. Simple comme bonjour. Ou pas.
Je ne sais pas ce que veut dire "HLS" Enfin, si, ça veut dire "Handi Laser Services", "Habitat et Lien Social", "Handball Loisir Semine", "Hue, Lightness, Saturation", "Huntingdon Life Sciences" ou encore "HTTP Live Streaming". Et sans doute bien d'autres. Mais là, dans le contexte, je n'ai pas saisi à quoi HLS faisait référence.
" Dans un billet de blog, le chercheur en sécurité de Kaspersky, Igor Soumenkov, lève le voile et explique « avec un degré élevé de certitude que Duqu Framework se compose de code source en langage C, compilé avec Microsoft Visual Studio 2008 et des options spéciales pour optimiser la taille du code et son expansion en ligne. Le code a été également écrit avec une extension personnalisée permettant de combiner la programmation orientée objet avec le langage C (une combinaison généralement connue sous l'appellation « oo C »). » "
Ah, ok. Si j'ai compris ce que j'ai lu en diagonale sur wikipedia, le HLS est le travail effectué par la machine pour transformer les instructions haut niveau en écriture ou lecture de bits sur les adresses de ses composants, non ?
Non, pas tout à fait. Le code HDL décrit un composant (donc hard), au lieu de décrire l'utilisation d'un composant (par exemple un processeur) comme fait le soft. Tu peux par exemple décrire un processeur en langage HDL. Ou un bus. Ou tout autre circuit logique.
Pour simplifier (beaucoup) l'image, le HLS consiste à créer le processeur, les bus et autres périphériques exactement nécessaires à la réalisation d'un algo spécifique (algo donné par le code tapé). Circuit qui, par la suite, pourra être implémenté sur FPGA, ou bien utilisé pour créer des masques et tout le barda nécessaire à la fabrication d'une puce.
Ok ! "Non, pas tout à fait", c'était un peu un euphémisme.^^
Merci, je n'ai pas perdu cette journée vu que j'y ai appris un truc (et qu'en plus ça m'a donné envie d'aller y voir de plus près sur le sujet quand je serai rentré chez moi) :)
Dand l'absolu c'est possible oui, regardez l'ignoble langage utilisé par iOS (celui d'apple)... Si je me souviens bien c'est du C avec deux ou trois frameworks greffés autour. (pour moi c'est ultra moche, et pas du tout agréable à utiliser x) )
Objection, j'ai assisté à deux conférences, un sur objective C et une sur le sdk Android. Et le sdk ios est clair et compréhensible, alors que le machin Android, c'est du java à la mord moi l'noeud :)
Ce que je disais, c'est que pour faire vraiment de l'objet en C, le mieux, c'est de récupérer le code source en C d'un compilateur C++, de le compiler, et d'utiliser ce compilateur C++ pour compiler du code C++.
Suffit de prendre un petit Simulink (ouais, je suis comme ça, un petit logiciel obscure que personne n'utilise) pour faire de la programmation à partir de blocs qu'on relie entre eux, aka diagramme, et ensuite en tirer un code en C. Par exemple, le régulateur du moteur Renault F1 est programmé comme ça. CTLP
Comme dit plus haut, désolé, j'ai perdu mes balises, du coup sur mes posts vous n'avez pas de repères... <HUMOUR><BLINK>Tiens, je les ai retrouvées, ça devrais mieux passer maintenant</BLINK></HUMOUR>
Pour répondre à ton objection : Non, objective C n'est pas du C.
<J_ai_retrouvé_mes_balises_mais_je_sais_plus_laquelle_il_faut> De même Javascript n'est pas du Java, et l'assembleur 68k ne permet pas de développer pour ms_dos (Y a pas eu de portage, dites ?) </J_ai_retrouvé_mes_balises_mais_je_sais_plus_laquelle_il_faut>
Un objet c'est défini par ses propriétés (les variables), son état (représenté par leurs valeurs) et ses méthodes (les instructions qui modifieront l'état de ton objet). Deux objets de la même instance partageront donc leurs propriétés et leurs méthodes qui seront identiques (en mettant l'héritage de côté parce qu'après c'est le bronx) la seule différence viendra de leur état. Lorsque l'on manipule un objet, on n'utilise que des méthodes définies par cet objet (get, set, toString, platypus).
Une structure peut avoir des propriétés et un état (youpi). Par contre aucune des instructions permettant de modifier l'état de la structure n'est connue de celle-ci. Au final on peut changer la valeur des variables d'une structure un peu comme on veut. Et quel que soit la fonction qui utilisera cet structure, elle pourra y mettre ce qu'elle veut.
Au final, la grosse différence entre la programmation objet et la programmation impérative, c'est que dans un cas, c'est l'objet qui définit ce que l'on peut faire avec (changer le nom, afficher l'age...) dans le cas de l'impérative, c'est la fonction qui définit ce que l'on peut peut faire avec les valeurs d'une structure.
Sinon, y'a aussi la programmation fonctionnelle et moi je trouve ça carrément fendard (oui, fendard vous avez bien lu!).
Commentaire #143646 écrit par Hum. le 04/08/2014 à 05h41 | 👍🏽👎🏽
Salut,
Bon franchement, comme disait plus haut. On peut faire de la COO en C il n'y a aucun problème à ça. C'est juste que tu n'as pas écouté le reste du cours!!
En fait tu confonds langage de prog et concept (je rappel que le COO signifie Conception Orientée Objets) et non pas Programmation dans un langage Objet. Je vous rappel que votre source qu'il soit en C ou C++ ou autre (natif) sera au final convertit dans un langage très bas niveau ...
Après toutes les personnes disant "Ouais, il s'est gourré avec le C++, c'est nul" PAS DU TOUT!! J'ai envie de vous répondre. Eh bien essayé de compiler du java avec un compilateur natif C++ et vous aurez aussi des surprises. Cependant avec un compilateur adapté on peut tout à fait générer à partir du java du code C++ (chercher sur google et vous verrez...), j'imagine que certains prof tordu ont du demandé ce genre de chose en cours de Compilation il faut juste chercher.
Donc Messieurs, faite un effort et mettez des "C'est toi le PEBKAC" pour un n-ième étudiant n'ayant pas écouté en cours... :p (bon d'accord on a été nombreux dans son cas...)