In 2010 I started to write about the different programming languages you can use to talk to a smart card and a smart card reader.
12 years later I have 30 languages in the list.
They are, in alphabetical order:
- C for UEFI
- Common Lisp
- Free Pascal (Lazarus)
- Java using intarsys smartcard-io
- Objective-C (synchronous)
- Objective-C (using Crypto Token Kit)
- PHP (dead upstream as 11 January 2015)
- Python (using python-pcsclite)
- Smart Card Connector on Chromebook
- Swift (using Crypto Token Kit)
Top Computer Languages
Different lists exist for the top computer languages popularity. I will use the TIOBE Index for April 2022.
The "support" column indicates if the language has a smart card API
|16||Classic Visual Basic||?|
It should be easy to call the C WinSCard API from assembly language. So the answer could be "yes". I learned assembly language with a Motorola 6809 and then a Motorola 68000. I am not a fan of the Intel x86 assembly language with its very strange register names (to be backward compatible). Yes, I could also use ARM or RISC-V CPUs. I let the exercise to write an example in assembly language to the readers.
Some programming languages are not listed in the TIOBE index but do provide a PC/SC wrapper:
Some languages are specific to the Microsoft Windows system. I can't use them since I do not use Windows. They are:
- Visual Basic
- Classic Visual Basic
- Visual FoxPro.
It looks like Visual Basic is also available for GNU/Linux. But I don't want to invest time in these technologies.
Also note that all the computer languages with PC/SC support exist in a Free Software implementation. I am not sure for the Microsoft languages.
Language I would be surprised to get PC/SC support
Scratch is used for education.
Mathlab is for numeric computing.
COBOL is very old. I do not
expect any COBOL program needing access to smart cards. Same remark for
Fortran. COBOL and Fortran
are still used and it looks like it is possible to call C functions from
them. So there is hope ☺.
Languages that could have a PC/SC wrapper
What I had not yet found
This is for SQL Server, so may be limited to the Microsoft product and not the
It was a lot of fun to discover and write a sample codes for all the 30 languages.
For some (4) of the PC/SC wrappers I am the maintainer so writing a sample code was easy.
The list is not finished and may never be as new programming languages are
created from time to time. If you want me to add a new language please contact me.