Brad Cox, l’inventeur du langage Objective-C, est mort

Nicolas Furno |

Brad Cox est mort en début d’année à l’âge de 77 ans. Ce nom ne vous dit peut-être rien, mais vous aurez peut-être entendu parler de l’invention qui l’a rendu célèbre : Objective-C, le langage de développement d’Apple. Même s’il a désormais un successeur avec Swift, Objective-C reste massivement utilisé par Apple et tous les développeurs d’apps pour macOS et iOS, une quarantaine d’années après sa création.

Brad Cox lors d’une interview en 2016 pour le Computer History Musem (capture d’écran vidéo).

Contrairement à ce que l’on pourrait imaginer, Brad Cox n’était pas un employé d’Apple et Objective-C n’est pas né à Cupertino. Le langage a vu le jour au début des années 1980, avec l’idée de s’inspirer de Smalltalk sur une base de C, le langage de développement phare à l’époque. Smalltalk est l’une des inventions de Xerox PARC, le fameux centre de recherche qui a imaginé tant de nouveautés, dont l’interface graphique qui a inspiré le premier Macintosh. Ce langage de développement objet a servi de base à de multiples langages modernes, de Java à Python, en passant par PHP et Ruby.

Objective-C a repris ses concepts et les a appliqués sur une base de C, utilisé par ITT Corporation qui employait Brad Cox à l’époque. Par la suite, il a fondé une entreprise nommée Stepstone avec Tom Love et ils utilisaient Objective-C également pour coder des apps pour leurs clients, parmi lesquels NeXT qui l’a utilisé pour coder NeXTSTEP sorti à la fin des années 1980. En avril 1995, plus de dix ans après les débuts du langage, NeXT décide d'acheter la marque déposée et les droits sur le langage de développement. Quand Apple achète NeXT l’année suivante, Objective-C devient par la même occasion le langage de développement de prédilection de macOS et des apps codées pour macOS.

Quelques lignes d’Objective-C dans Xcode.

Brad J. Cox n’a pas été embauché par Apple suite à cette acquisition, son entreprise Stepstone a continué d’offrir des services liés à Objective-C jusqu’à sa disparition au début des années 2000. Pour en savoir plus sur son parcours et sa carrière, vous pouvez lire la nécrologie publiée lors de son enterrement et regarder l’entretien de deux heures et demi accordé au Computer History Musem

avatar DahuLArthropode | 

(Pb1)

avatar DahuLArthropode | 

Pb 2

avatar DahuLArthropode | 

@YetOneOtherGit

La succès du C++ devait aussi beaucoup à sa compatibilité avec le C « pur ». Certains devaient penser que s’ils compilaient leur code C avec un compilateur C++, il devenait orienté objet!
Quand j’ai donné des cours de C++, c’était une liste de pièges à éviter. C’était la pire usine à fuites mémoire que je connaisse. Objective C, que je n’ai jamais touché, me semblait beaucoup plus propre.
Mon langage préféré, c’était Eiffel. Aucun succès, hélas.

avatar YetOneOtherGit | 

@DahuLArthropode

"Mon langage préféré, c’était Eiffel. Aucun succès, hélas."

Directement non, mais c’est de ces langages qui ont eu beaucoup d’influence sans pour autant connaître le succès conséquent(Et ils sont nombreux de Simula à Smalltalk en passant par Algol)

Bertrand Meyer a eu un impact profond sur le génie logiciel, la programmation par contrats a influencé bien des langages et bien des approches de développement.

avatar YetOneOtherGit | 

@DahuLArthropode

"La succès du C++ devait aussi beaucoup à sa compatibilité avec le C « pur ». "

Les raison du succès de C++ sont nombreuses :
- La force symbolique d’une naissance dans le giron des Bell Labs et de la proximité avec Ritchie.
- Les qualité de pédagogue et d’évangélistes de Stroustrup.
- Le fait de ne pas être le fruit d’un projet entrepreneurial
- Une vision initiale plus proche d’un C avec des extensions objets
- La volonté relativement rapide de normaliser le langage
- La disponibilités relativement rapides d’outils et de librairies
...

Sans le concours de circonstances qui en fît au final le langage standard de la renaissance d’Apple Objective-C aurait été un des très nombreux langage à ne connaître au mieux qu’un succès d’estime.

avatar Aurélien-A | 

[[ObjC creator] release];

avatar BeePotato | 

@ Aurélien-A : 😄

avatar bubu16 | 

Objectivement C ballot 😅
Mais REP à lui 👍

avatar BeePotato | 

@ Nicolas Furno :
Il y a une erreur dans ce passage :
« Ce n’est qu’en avril 1995, plus de dix ans après les débuts du langage, que NeXT décide de l’utiliser en achetant la marque déposée et les droits. »

NeXT a commencé très tôt à utiliser Objective-C pour NeXTStep.
Ce n’est certes qu’en 1995 qu’elle a acheté à Stepstone l’intégralité des droits sur ce langage, mais elle en a auparavant acheté une licence dès 1988, pour en faire le langage de développement d’applications de NeXTStep.
On peut en voir une illustration en jetant un coup d’œil au code source de l’application WorldWideWeb de Berners-Lee, écrite en Objective-C.

L’adoption d’Objective-C par NeXT a d’ailleurs entraîné d’importantes modification du langage, notamment l’ajout des protocoles et des catégories, qui ont permis à AppKit de devenir ce framework tellement plus plaisant à utiliser que tous ses concurrents.

avatar occam | 

@BeePotato

"NeXT a commencé très tôt à utiliser Objective-C pour NeXTStep."

Exact. Et dans ce contexte, il faut rappeler le rôle essentiel (« pivotal », comme on dit en anglais) joué par le 3e larron, Steve Narroff, qui a servi de lien entre Stepstone et NeXT, et qui a aplani pas mal d’aspérités, techniques comme idéologiques.
Y compris, dans le registre diplomatique, à l’égard de Richard Stallman et du GCC.

Un très bref récit, co-écrit par Steve Naroff et Brad Cox lui-même, datant d’à peine quelques mois :

https://dl.acm.org/doi/10.1145/3386332

avatar YetOneOtherGit | 

@occam

🙏 Merci pour ce papier de l’ACM que je ne connaissais pas

avatar Nicolas Furno | 

@BeePotato

Ah bien vu, j’avais du mal à comprendre la chronologie aussi. Je vais corriger.

avatar BeePotato | 

@ Nicolas Furno : « Je vais corriger. »

Hélas, je crois que la correction a introduit une autre petite erreur : « parmi lesquels NeXT qui l’a utilisé pour coder NeXTSTEP sorti à la fin des années 1990. »
Il s’agit plutôt de la fin des années 1980. ;-)

avatar Nicolas Furno | 

@BeePotato

Grumbl. Je vais re-corriger alors. 😬

avatar YetOneOtherGit | 

Un petit conseil de lecture pour ceux qui s’intéressent à ces sujets :

Masterminds of Programming: Conversations with the Creators of Major Programming Languages, chez O'Reilly

https://www.oreilly.com/library/view/masterminds-of-programming/9780596801670/

De très interessantes ITW de :

Adin D. Falkoff: APL
Thomas E. Kurtz: BASIC
Charles H. Moore: FORTH
Robin Milner: ML
Donald D. Chamberlin: SQL
Alfred Aho, Peter Weinberger, and Brian Kernighan: AWK
Charles Geschke and John Warnock: PostScript
Bjarne Stroustrup: C++
Bertrand Meyer: Eiffel
Brad Cox and Tom Love: Objective-C
Larry Wall: Perl
Simon Peyton Jones, Paul Hudak, Philip Wadler, and John Hughes: Haskell
Guido van Rossum: Python
Luiz Henrique de Figueiredo and Roberto Ierusalimschy: Lua
James Gosling: Java
Grady Booch, Ivar Jacobson, and James Rumbaugh: UML
Anders Hejlsberg: Delphi inventor and lead developer of C#

Pages

CONNEXION UTILISATEUR