Hello Paul
Is everything okay with you?
I haven't seen you on the forum for a while. :)
Hi Joerg!
Thanks for the post. Yes, everything is good with me. I retired the first of December and have been doing C++ programming almost non-stop since then. I really wanted to get a better understanding of the language and try to become somewhat proficient in it. As you can see, my FreeBasic / WinFBE work has fallen off a bit because of that.
Hope all is well with you also!
Thanks,
Paul
Hello Paul
I'm glad to hear that you are doing well!
Now that you are retired, you have plenty of time to deepen your knowledge and understanding of C++ :-)
I don't officially retire until 01.12.2026. ;D
Unfortunately, I can't say the same for myself.
God willing, I'll get well again. :)
Yes, health is everything. I've had a couple of big health scares over the past 3 years. Makes you appreciate life and those close to you.
Fingers crossed that your health improves by retirement also!
I have been programming in C++ pretty much exclusively for the past 6 months. I feel pretty good about my C++ skills at this point. I am now switching to learn Rust. I think that once I learn Rust, that I will have enough languages in my toolkit to serve me long term (although I wouldn't mind trying Go also).
Hallo Paul
Do you think that Rust, which is based on C, is easier to learn than C?
I admit that I didn't know Rust as a programming language before.
Hi Joerg,
My opinion is that you need to know a low level language like C or C++ before engaging with Rust. Rust is harder to learn than C.
Rust is a low level systems programming language and as such takes it for granted that you know things like heap and stack memory management, and pointers/references, etc. I am finding that coming from C++ to Rust is not that bad of a transition (so far) although there are a few things that are new to me like the borrow checker (by far the biggest new feature to learn) and the way that methods can be chained together all in one call (kind of like functional programming ala Haskell). C++ has started doing that kind of programming syntax as well so I need to adapt to it.
I can see why there is so much hype around Rust. The compiler basically enforces everything at compile time so you can not make memory corruption mistakes. There is no such thing as Null pointers. It seems like constructing a program takes more time, effort, and thought upfront but the payoff is a more secure and performant result.
Hopefully I will get good at Rust because I want to use it to help write cross platform applications with either Tauri or Slint.
I just noticed that Slint (slint.dev) has a C+ api so if I fail at being proficient with Rust then at least I can fallback to C++ for the Slint option. I guess I could use an older toolkit like wxWidgets or Qt but that would be a last resort.
I am not 100% sure that I will continue with my Rust journey at this time. I need a specific interface to my stock trading platform and all of the Rust implementations of it are not exactly what I need. I may just stick with C++ in order to make my project cross platform.
Hello Paul
.... that sounds like "where there's light, there's shadow".
Just as you described Rust, there is an advantage to cross-platform programming.
If you get stuck in your work, it often helps to take a break to get back on track. ;)
Quote.... that sounds like "where there's light, there's shadow".
Great quote!
I know enough of Rust and Svelte to be able to build my cross platform application using Tauri. However, I am stuck with the problem that Rust does not seem to have any extensive libraries to interface to my Interactive Brokers account. My interface is in C++ and my current application is 100% written in C++ (https://tradetracker.planetsquires.com). I guess I could try to integrate my C++ code to call Rust via the FFI layer but that is an experiment for another day and introduces yet another layer of indirection.
I am going to look at this github project (https://github.com/webview/webview) that uses C++ to interface with Webview2 on Windows and WebKit on Mac/Linux. It uses C++ and according to the github page "It supports two-way JavaScript bindings (to call JavaScript from C/C++ and to call C/C++ from JavaScript)." This could be exactly what I need and it seems somewhat similar to Tauri but uses C++ instead of Rust. I expect though that maybe there is a lot of missing "magic" that may be needed.
If that option does not work out then I think that I will simply stick with the tried and test qt framework development using C++ and qml. Although, I really wanted to build the front end of the application using web technologies this time.
If nothing else, at least I am learning a few new things and keeping my programming brain engaged ;D ;D
You are truly blessed with a sharp mind.
I have read an interview with the creator of C++ and I think I need to resolve to using an abbacus.
C++ may be powerfull, but the bit i have tried is truly unpleasant and overhelming for hobbyists and us "drag and drop" programmers making work tools.
You have my admiration for being able to jump so easily between these languages and modern high-end tools.
- ;D Peter
;D ;D ;D
Lucky for me, when it comes to programming, I have a very inquisitive mind and it gives me immense enjoyment learning new tools.
My one regret is not learning COM programming deep enough. I remember whenever Jose would talk about it and show examples that I would be simply lost and I always felt like I should have taken a deeper dive into COM. But, as you know, there are only so many hours in the day and having a full time job at the time limits the ability to give 100% focus to programming. I wish I could have direct wired my brain to Jose's and absorbed all his programming knowledge - he knows everything about everything. 8)
Hallo Paul and Petrus
QuoteBut, as you know, there are only so many hours in the day and having a full time job at the time limits the ability to give 100% focus to programming.
We can read, understand and implement many things.
But learning or studying computer science means learning the basics.
But as you said, as a "non-professional" who also has to earn money for the family etc., our time window for learning is very limited.
QuoteI wish I could have direct wired my brain to Jose's and absorbed all his programming knowledge - he knows everything about everything.
On the day when this should be possible, I would also like to have a slot, too. ;D
After (much) deliberation, I have finally settled on my cross platform tools for my project. I am going to use qt https://www.qt.io/
Specifically, QtQuick/Qml. I wrote a Qt Widgets app on Linux about 3 years ago so a lot of this should be familiar.
Also, because my project is open source, I can use the Qt open source version rather than the paid commercial product. https://www.qt.io/download-open-source
Okay, I went down another rabbit hole because I am able to use .NET with my broker's trading platform, so, I found a cross-platform solution that looks very promising and I'd just have to change my business logic from C++ to C#.
Anyway, it is worth a look for a couple of days to see if it will do the job. ;)
https://avaloniaui.net/
....now I remember why I hated .NET and C# so much. It is so convoluted. Maybe for large enterprises and teams it is a good environment but for me I just do not like it. Granted, it does seem a lot faster than the earlier versions of .NET that I experienced years ago.
On the other hand, I downloaded wxWidgets https://www.wxwidgets.org/ and installed CMake and watched one YouTube video and now I already have a sample program working on Windows and Linux. Mac is my next test. I may have to buy a Mac if I can not get it working in a virtual machine. If it works on Mac as easily as it has on Windows and Linux then I will use WxWidgets rather than Qt. The wxWidgets syntax and concepts are very similar to my Win32 api experience.
Just to wrap up this cross platform journey of mine....
I was able to install Mac OS Sonoma in a virtual machine and create and run a wxWidgets demo project.
So now I am able to create the same C++ wxWidgets based project on Windows, Linux and Mac.
Next step is to re-write my Win32API based project into wxWidgets.
Hello Paul
I can understand your frustration with .Net, c# etc.
MS is very generous when it comes to making its products available to students. To that extent, most of them learn on that basis, and because they have had no other experience, they stick with it.
Installing MacOS via a VM is a little complicated, but doable. MacOS even runs natively on my old notebook.
I now own the latest 27" iMac with an I9 10core, 128 GB RAM, 8 GB graphics card and a 1 TB SSD.
It was much easier to install my Windows 11 license under UTM on the iMac. I hardly use my other old PS anymore.
The way I see it, you're getting closer to your goals step by step.
I think you need to stay on the ball. I'm curious.
After that, you may have a little more time to devote to the open questions about WinFBE in the forums. ;D ;)
Quote from: Joerg B. on February 22, 2024, 02:53:41 PMAfter that, you may have a little more time to devote to the open questions about WinFBE in the forums. ;D ;)
LOL, yes, I'll get back to FB programming and WinFBE once I get this project finished. It is nice to learn new languages and tools across multiple operating systems because it gives me a better overall appreciation for the different technologies. This has been a nice little diversion that is helping to keep me interested and excited about programming.
Hi Paul,
I do my Cross Platform programming in Xojo nowadays.
It is the Basic way of programming.
You should take a look at it and give your comment if you wish.
I still appreciate your help in all the FireFly years.
Thanks,
Klaas Holland.
Thanks Klaas!
I have had several people mention Xojo over the years and have always heard good things about it. For my use case, I already have a working Windows program written in C++ so using wxWidgets I can re-use just about all of my existing C++ code and will only have to implement the GUI. That is a huge time saver.
I also require a non-commercial platform because my project is open source and should be available for people that can compile it using free software. It looks like Xojo is $400 with 1 year upgrades. wxWidgets is free and open source.
FireFy certainly made a difference to a lot of PowerBasic programmers. I still get emails about FireFly from people all these years later. Feels good.
Paul, Firefly was, and still is the greatest productivity tool ever created for PowerBasic.
It was a sad day when you move on to other things.
Thanks Ian, it was unfortunate that PB never produced a 64 bit version or even some general updates after Bob's passing.
FireFly had a lot of old code that needed to be re-written and with PB not showing any progress then I made the jump to FreeBasic. The old PB forums seem to only have a handful of regular posters remaining there.
I no longer have any of my programs in PowerBasic. All of the daily programs that I use are now written in either FreeBasic or C++.
Paul, I understand your need to move on from PB.
I would move to FreeBasic too if the licensing was clearer.
At least with PB, I know that what I write is mine, I can sell it, and I am not obliged to release the source code.
With FreeBasic it seems to be 'sometimes, always, perhaps, maybe, not sure'.