Le langage de mes cauchemars | |
coccinelle | 26-Feb-2013/15:19:33+1:00 |
Histoire de détendre un peu (et de se défouler aussi), ce serait quoi les caractéristiques du langage qui vous ferait le plus cauchemarder ? | |
shadwolf | 26-Feb-2013/19:48:26+1:00 |
java/C-sharp, asm. Les deux extremes me font cauchemarder intensément. bizarement appeller une librairie en ASM x86 ca se fait comme ca: .386 .model small,c .stack 100h .data msg db "Hello World!",0 .code includelib MSVCRT extrn printf:near extrn exit:near public main main proc push offset msg call printf push 0 call exit main endp end main on dirait presque du rebol... mais en encore plus ennuyeux. sachant que l interface pour les dll de rebol est deja ennuyeuse au possible. Quand a java ... class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. } } qui est le mec qui a eu l idee de public static void main? et en C sharp c est pas mieux ... public class Hello1 { public static void Main() { System.Console.WriteLine("Hello, World!"); } } java ou C-Sharp c est des lignes de code super longue pour y faire presque rien. en rebol je rappel que tu fais ca : print "Hello, World!" | |
shadwolf | 26-Feb-2013/19:54:10+1:00 |
evidement la facon normale en ASM x86 de faire un hello world c est plus dans ce genre:section .data ; section for initialized data str: db 'Hello world!', 0Ah ; message string with new-line char at the end (10 decimal) str_len: equ $ - str ; calcs length of string (bytes) by subtracting this' address ($ symbol) ; from the str's start address section .text ; this is the code section global _start ; _start is the entry point and needs global scope to be 'seen' by the ; linker - equivalent to main() in C/C++ _start: ; procedure start mov eax, 4 ; specify the sys_write function code (from OS vector table) mov ebx, 1 ; specify file descriptor stdout -in linux, everything's treated as a file, ; even hardware devices mov ecx, str ; move start _address_ of string message to ecx register mov edx, str_len ; move length of message (in bytes) int 80h ; tell kernel to perform the system call we just set up - ; in linux services are requested through the kernel mov eax, 1 ; specify sys_exit function code (from OS vector table) mov ebx, 0 ; specify return code for OS (0 = everything's fine) int 80h ; tell kernel to perform system call ce qui me gave en asm c est qu il est difficile a premiere vue de rapidement suivre le chemin des données. | |
shadwolf | 26-Feb-2013/19:56:31+1:00 |
j aime pas avoir a balancer des chiffres dans des registres du cpu pour lui dire quoi faire. genre move eax, 4 mov ebx, 1 | |
shadwolf | 26-Feb-2013/19:58:43+1:00 |
revenons sur public static void main... des livres entiers ont ete consacrer sur le sujet et tente d expliquer le bien fonder de ce choix... hum bref... | |
coccinelle | 27-Feb-2013/17:31:35+1:00 |
L'assembleur peut-être sympa mais pas pour un usage intensif, ça c'est sûr. Pareil par exemple pour le RPG, ça pouvait être amusant mais pas pour la destination qu'il avait. ADA m'avait bien fait de misères tout comme Pascal, Java et le C. Je n'ai pratiquement pas fait de C++, heureusement pour moi. Ce qui me gave pour reprendre ton expression, c'est les langages uniquement compilés, c'est tellement plus productif un langage qui puisse être interprété au moins dans la phase de développement. L'interprétation associée à un outil de test unitaire, c'est bigrement efficace. Ce que je hais aussi, c'est les parenthèses, les virgules, les points-virgules et les accolades. Un truc qui me plairait bien pour le jeu de l'esprit, c'est un langage sans fonction ni boucle et encore moins d'objet tout en permettant d'organiser son code clairement. Avec les années, je pense vraiment que les fonctions avec le passage de paramètres, c'est une hérésie. | |
shadwolf | 1-Mar-2013/14:13:51+1:00 |
pour le langage sans fonctiono je vois pas comment c est faisable... meme asm ou basic utilisent des commandes qui s apparente a des fonctions. Les parathese c est ennuyeux certes mais quand tu leur ajoute des &, des *, des virgules, des ;, des cast de types a tout bout de champs ton code devient rapidement super hezotérique. Tester le code a la volée pendant qu on l ecrit c est que du bonheure. C est pour ca que la majorité des langages employer de nos jours sont des langages de scripts. Une petite note les Guru de la communauté ruby on rail se font copieusement flamme leur tronche car ils abusent du "vas demander a google". Rappellons que google n'a pas de filtre et que tu pourrais faire des copier coller de codes malicieux sans le savoir c est pour ca que tu as besoin du filtre de personnes capables et devouées qui t aideront a comprendre le code plutot que betement le copier coller. Toute ressemblance avec une communauté d un autre langage commencant par un R serait evidement fortuite! | |
coccinelle | 4-Mar-2013/14:09:41+1:00 |
Quand je pense "sans fonction", je pense sans avoir la possibilité de créer des fonctions avec paramètres pour organiser son code. | |
PierreCh | 14-Mar-2013/9:35:56+1:00 |
Le langage de mes cauchemars verrait sa syntaxe changer incessamment. Il m'obligerait à systématiquement reprendre mes programmes, au fur et à mesure de ses versions. Ou -pire encore!- il le ferait pour moi sans me le dire. Il n'évoluerait pas de manière homogène sur toutes les plate-formes. Ah tiens, aussi: le langage de mes cauchemars n'aurait pas toutes les fonctionnalités de sa version n-1 opérationnelles dans sa version courante. Hm. Toute ressemblance serait pure coïncidence... Encore un détail cauchemardesque: le langage de mes cauchemars serait, bien sûr, privatif, de sorte que même si je le pouvais et si j'en avais le temps, je ne pourrais rien lui changer. Il sauverait ses sources en binaire imbi!table. Bon, fini de rire. Au boulot. | |
coccinelle | 14-Mar-2013/17:34:29+1:00 |
J'adore ton cauchemar Pierre, en allant encore plus loin, on peut imaginer un langage dont la syntaxe et les fonctionnalités changent aléatoirement, ça serait terrible !!! | |
Login required to Post. |