4 ms·
I think that the earliest methods of programming windowed computers were just way over the heads of mere mortals, including myself. For those of us where were c
by analog31 1y ago
I think that the earliest methods of programming windowed computers were just way over the heads of mere mortals, including myself. For those of us where were comfortable with earlier computers, GUI required simultaneously grasping OOP, a mountain of opaque documentation, and a complex IDE and build process. All at once.
No surprise that the first GUI programs I wrote were in LabVIEW and Hypercard, followed soon thereafter by VB.
While I'm not a commercial developer, I still avoid any "stack" where the tutorial for "Hello World" doesn't fit comfortably in one page.
- 01HNNWZ0MV43FF 1y agoGUIs are still harder than they need to be. Async patterns that don't compose, operating systems where CLI and GUI programs are separate concepts entirely, massively complex GPU-based stacks needed to fill 800 MP/s... I no longer blame people for punting to Electron. As bad as HTML is, it's still only 100 MB to save yourself from the worst parts of GUIs.
- int_19h 1y agoOn Windows, GUIs are still as easy as they were in VB6 days if you pick the right tools. It only becomes a headache if you need cross-platform support. Although even there options like Avalonia are far superior to Electron.
- anthk 1y agoLazarus it's cross platform; it might even run under Windows XP and 2000, if not NT too...
- lproven 1y agoI think I saw, mentioned in the system requirements, "Windows 2000 or above" or something like that. I do wonder how cross-platform your code will be, though. I suppose it depends on whether it talks to Win32, or Gtk2, or Qt4, or Qt 5, or Qt 6... etc. I wonder if FPC+Lazarus could be wired up to Tk so that there was a portable, cross-platform toolkit as well...?
- int_19h 1y agoFPC/Lazarus motto is "write once, compile anywhere", so the idea is that you rebuild as needed for different platforms. It could certainly be wired up to Tk, but what does Tk offer that Qt already doesn't when it comes to a portable cross-platform toolkit?
- lproven 1y ago> but what does Tk offer that Qt already doesn't Small (relatively tiny) code size and simplicity. Very slow release cycle and long lifetimes. Qt moves pretty quick and this causes problems for downstream projects. E.g. KDE had to keep Qt 5 alive for _years_ until KDE 6 was ready. Rochus Keller has a version of Qt 5 as well. Trinity is still maintaining Qt 3. Extremely wide cross-platform support, e.g. on the BSDs and some other niche OSes. I think there's even a Haiku version.
- anthk 1y agoTCL/Tk works under XP under the IronTCL release. With modern TLS and all (use http://legacyupdate.net http://legacyupdate.net for newer certs).
- int_19h 1y agoEarliest practical GUIs were (Smalltalk aside) generally not OOP but rather procedural - an explicit message dispatch loop, message handlers that were basically huge switch statements etc. Here's the listing for a basic Win32 app (Win16 looked very similar): https://learn.microsoft.com/en-us/windows/win32/learnwin32/your-first-windows-program https://learn.microsoft.com/en-us/windows/win32/learnwin32/y... And here's Xlib: https://github.com/smysloff/xlib-examples/blob/master/src/event_handling.c https://github.com/smysloff/xlib-examples/blob/master/src/ev... OOP was bolted on later to make this all more manageable. Indeed, VB itself, which is object-oriented (even if it lacks some common features such as inheritance) is a prime example of that.
- analog31 1y agoIt's interesting that VB5 and 6 were what I call "object based." You could use pre-defined objects, but didn't have to create them yourself. In fact you needed some special "edition" to create objects, which I never did. But was a great way to ease a beginner into OOP -- by using them before creating them. Now of course I'm not a beginner -- that can only happen once. And maybe it has gotten easier to learn. I remember the series in Byte Magazine about OOP, and it was just utterly baffling, but now I can't imagine why it seemed hard. Meanwhile, I stepped off the software development bus, and so I don't care as much about "finished" software. Building crude GUI's in Tkinter is satisfactory for my needs these days.
- int_19h 1y agoIt sounds like you're describing VB4 and below. In VB5+, the underlying object model was COM, and you absolutely could define and instantiate classes. Many built-in types for common operations also had to be instantiated - e.g. Collection, or anything to do with database access.
- pjmlp 1y agoWindows message dispatches are pretty much OOP, it follows the Smalltalk underlying idea of methods are sending messages. Anyone that was written Windows custom controls knows how it goes, it isn't much different from OOP in C.