Programming languages and GUI toolkits which work together.

I did some extensive testing.
Following programming languages and GUI toolkits work together. All other fail.
C & Raylib
C++ & Raylib
Crystal & Gtk4
Dlang & Raylib
C & Libui-ng
Ruby & Gtk3
Ruby & Fox_toolkit
Python & Gtk
Python & Fltk
Python & Libui
Sbcl & Tk
Sbcl & Gtk
 
Objective-C is no longer popular on Linux & Freebsd.
Sbcl & Gtk is buggy.
Sbcl & ltk is broken.
Sbcl & clim-lisp , broken on my PC.
Fltk does not build on freebsd, depends on evdev-proto which contains linuxsism
 
Drawbacks of Objective-C

  • Age and Outdated Features: Developed in the 1980s, Objective-C is an old language that lacks many features expected in modern programming languages, such as robust generics, nil safety, and type inference.
  • Safety Concerns: Objective-C inherits memory management pitfalls from C (even with the introduction of Automatic Reference Counting or ARC) and allows for direct, unsafe memory manipulation through pointers. This leads to more bugs and security vulnerabilities.
  • Complex and Verbose Syntax: The language's syntax, which uses square brackets for method calls and requires separate interface/implementation files, is considered idiosyncratic and difficult to learn for developers coming from other languages like C++, Java, or Python.
  • Limited Ecosystem & Community: Outside of the Apple ecosystem, Objective-C was never widely popular, and its active developer community is shrinking as most new libraries and learning resources are Swift-firs
 
Objective-C and NeXTStep.
Yep and a relative GnuStep.

As for Objective-C vs Java/Python: I will take the syntax. Yes, just like every other language "you" have to learn it, but once done, it becomes trivial.
separate interface/implementation files, is considered idiosyncratic and difficult to learn for developers coming from other languages like C++, Java, or Python.
Separate interface/implementation files is not unique to Obj-C. Heck even Ada does this. In fact I'd argue it's a good thing. You develop a library that does something. Do you want to publish the "how it does things" (implementation) or publish "how to use it" (interface)?
Every language (except maybe C) has gone through a "never widely popular" phase.
Developed in the 1980s, Objective-C is an old language that lacks many features expected in modern programming languages, such as robust generics, nil safety, and type inference.
So C was developed when? How many features expected in modern programming languages are lacking? How long before C++ got those things?
Languages like Rust/Go build upon lessons learned from C/C++/Obj-C.

So my opinion:
Learning Objective-C from a C/C++ base is really not a big deal. Just readjust your mind on "what" characters mean.
Java:
I come from a C/C++/Assembly background. Java pees me off.
 
Some fairly obnoxious rebuttals ;)

  • Age and Outdated Features: Developed in the 1980s, Objective-C is an old language that lacks many features expected in modern programming languages, such as robust generics, nil safety, and type inference.
"Age" doesn't stop C and C++ dominating. Plus 1980s is a spring chicken compared to the age of computers themselves.

  • Safety Concerns: Objective-C inherits memory management pitfalls from C (even with the introduction of Automatic Reference Counting or ARC) and allows for direct, unsafe memory manipulation through pointers. This leads to more bugs and security vulnerabilities.
Sometimes software just needs to work rather than being verified memory safe (aka Doesn't stop C and C++ dominating)

  • Complex and Verbose Syntax: The language's syntax, which uses square brackets for method calls and requires separate interface/implementation files, is considered idiosyncratic and difficult to learn for developers coming from other languages like C++, Java, or Python.
It will never be more difficult than C++ and "full template codebases". No-one cares about developers coming from Python or Java.

  • Limited Ecosystem & Community: Outside of the Apple ecosystem, Objective-C was never widely popular, and its active developer community is shrinking as most new libraries and learning resources are Swift-firs
It has direct interop with C. Which means it will always have a much larger ecosystem compared to almost any non-C language.
 
Some of the newer C++ constructs:
Make it easier to write code because you can auto ignore types (but if it's a loop construct you need to know type) but some of us actually care about debugging/root causing the code in the future. Not always me but someone else needing to debug. "Alex, I'll take clearly written/commented code for $500 please" every day of the week and 3 times on Sunday.
 
Rust is often perceived as complicated primarily because
it forces developers to explicitly handle complex software engineering problems, such as memory management and concurrency, at compile time. Unlike many other languages that hide these issues until runtime, Rust surfaces them immediately through its strict rules, creating a steep initial learning curve.
 
Rust is often perceived as complicated primarily because
it forces developers to explicitly handle complex software engineering problems, such as memory management and concurrency, at compile time. Unlike many other languages that hide these issues until runtime, Rust surfaces them immediately through its strict rules, creating a steep initial learning curve.
So it's better to have a steep learning curve because a new language does stuff vs an old language that forces you to think about doing stuff ahead of the compiler?

I think you are trying to have your cake and eat it too.
 
For linux : swift-cross-ui lacks many basic widgets.
For freebsd : imgui , libui are very poorly documented , compared to,
 
The only GUI framework I use is Qt and I develop both C++ and python apps using is. I do NOT mess with their QML stuff, and I fear that their corporate direction is leading them down the road toward developer alienation, much like WindRiver did with ridiculous commercial licensing terms.
 
Me to, i don't like qml neither do i like coding an android app.

Youtube resource,
View: https://www.youtube.com/watch?v=nscgFv4l53w&list=PLUbFnGajtZlXbrbdlraCe3LMC_YH5abao&index=1


I found a few books on programming qt5/qt6
No idea if they are good / worth their price.
qt5:
qt6:
 
Back
Top