Ramin Honary on Nostr: C++ is everywhere, that makes ECL very valuable. The software industry, especially in ...
C++ is everywhere, that makes ECL very valuable.
The software industry, especially in the realm of free software, has mostly settled on a pattern of using C++ for creating performance critical libraries, and creating Python binding to the C++ libraries for scripting. I was hoping Rust might come along and change all this, but it will take decades.
In the mean time, if you want to use C++ but not actually write C++, you can make use of the ECL Common Lisp compiler, which can compile Lisp to C++ code. This gives you all the best features of Common Lisp for programming with the universe of C++ code libraries available to you. You can use a C++ library and still have Common Lisp macros, garbage collection, high-level scripting, S-expressions as serialization, domain specific languages, a proper meta-object protocol that wraps C++ classes nicely, and wealth of choices for functional programming systems from the untyped lambda calculus all the way up the lambda cube to System-F and the Calculus of Constructs. This not only makes ECL a viable alternative to Python for scripting and app development, but objectively better than Python since you can actually turn your Common Lisp scripts into code that gets compiled into a larger C++ application.
With ECL I would have all sorts of C++ libraries available to me:
game engines like Unreal and Godot
3D modeling: FreeCAD, OpenSCAD, Blender
Machine learning, big data, and HPC with PyTorch, TensorFlow, OpenCV, OpenCL
I will continue to contribute to the Scheme and Haskell communities as much as I can. I will continue to pursue my dream of an Xfce-like desktop environment written in Scheme. But no matter how I look at it, I am going to more productive in the long run using ECL and C++.
I was hoping that the software industry would gradually shift over to better, more functional languages like Rust and Haskell. And I would love it if Scheme languages could ever begin to seriously replace Python as a scripting language. But realistically, I think I am going to change tack and meet the industry half way. I think I should probably start using ECL as my language of choice, as much as I would prefer Scheme or an ML-family language like Haskell.
#Cpp #CommonLisp #ECL #cplusplus #python
Published at
2023-09-22 06:50:16Event JSON
{
"id": "10edf7f77a5378f0ebdb2a32cf6c8d3f254eebc917a85ae57bb62505dfb1dc85",
"pubkey": "4ae97b2084e2b2c3bc17385ca42179c75c9177c2fef6f0b99c65fa177ff4d1fa",
"created_at": 1695358216,
"kind": 1,
"tags": [
[
"t",
"cpp"
],
[
"t",
"commonlisp"
],
[
"t",
"ecl"
],
[
"t",
"cplusplus"
],
[
"t",
"python"
],
[
"proxy",
"https://emacs.ch/users/ramin_hal9001/statuses/111106996069927016",
"activitypub"
]
],
"content": "C++ is everywhere, that makes ECL very valuable.\nThe software industry, especially in the realm of free software, has mostly settled on a pattern of using C++ for creating performance critical libraries, and creating Python binding to the C++ libraries for scripting. I was hoping Rust might come along and change all this, but it will take decades.\nIn the mean time, if you want to use C++ but not actually write C++, you can make use of the ECL Common Lisp compiler, which can compile Lisp to C++ code. This gives you all the best features of Common Lisp for programming with the universe of C++ code libraries available to you. You can use a C++ library and still have Common Lisp macros, garbage collection, high-level scripting, S-expressions as serialization, domain specific languages, a proper meta-object protocol that wraps C++ classes nicely, and wealth of choices for functional programming systems from the untyped lambda calculus all the way up the lambda cube to System-F and the Calculus of Constructs. This not only makes ECL a viable alternative to Python for scripting and app development, but objectively better than Python since you can actually turn your Common Lisp scripts into code that gets compiled into a larger C++ application.\nWith ECL I would have all sorts of C++ libraries available to me:\n\ngame engines like Unreal and Godot\n3D modeling: FreeCAD, OpenSCAD, Blender\nMachine learning, big data, and HPC with PyTorch, TensorFlow, OpenCV, OpenCL\nI will continue to contribute to the Scheme and Haskell communities as much as I can. I will continue to pursue my dream of an Xfce-like desktop environment written in Scheme. But no matter how I look at it, I am going to more productive in the long run using ECL and C++.\nI was hoping that the software industry would gradually shift over to better, more functional languages like Rust and Haskell. And I would love it if Scheme languages could ever begin to seriously replace Python as a scripting language. But realistically, I think I am going to change tack and meet the industry half way. I think I should probably start using ECL as my language of choice, as much as I would prefer Scheme or an ML-family language like Haskell.\n#Cpp #CommonLisp #ECL #cplusplus #python",
"sig": "26fafd0f8e89d8587b1ca767a57635641a7ab4083e672956c10ea241c8982f70a0377ac423d4b54a020b5430885a33ff045b2f75e9ad289a2bb4e4d626da7078"
}