5 ms·
Intrigued, I did some googling and found this God-forgotten FTP :) ftp://ftp.chatnfiles.com/Simtel-CDroms/Simtel-for-Ms-Dos-march-97-2-of-2/disc2/misclang/00_i
by V-2 11y ago
Intrigued, I did some googling and found this God-forgotten FTP :)
ftp://ftp.chatnfiles.com/Simtel-CDroms/Simtel-for-Ms-Dos-march-97-2-of-2/disc2/misclang/00_index.htm - jorf21_3.zip contains a manual :)
Some interesting constructs / keywords, eg.
For (Col = 0 thru 4) | Display B Music 5 times
And some insights:
The Windows culture is the culture of the WinProc; programs
dominated by massive unstructured switch statements that handle
esoteric message flags. As different products convert to Windows,
they unquestioningly adopt the WinProc culture. BASIC, the
language for the beginner, becomes Visual Basic, a language for
precious few. C programs become full of global values.
MS-Windows is so complicated that not even full time programmers
can learn every command and every subsystem. This leaves no time
for Windows programmers to learn about their customers. They are
doomed to write programs that cannot meet the particular needs of
these customer. The legacy of Windows threatens to be like the
legacy of UNIX; expensive techies, weak programs.
And design approaches:
Memory Management
Why is it my fault when my computer runs out of memory? It is
not my memory, why is it my fault? Why do I have to "Open" a
file just to read data from it? What exactly is "Opening"? Why
can't I have two records available at the same time?
The JORF language handles its own memory, and your reward is
freedom to allocate large structures, arrays and text. The JORF
memory can flush variables, methods, windows, internal values,
and even the program stack to disk whenever memory gets scarce.
Data is read from file when you reference it, so there is no need
to "Read" it, and no difference between a "memory variable" and a
field in a record.
- brusch64 11y agoRegarding the "Windows culture": WinProc programming was indeed pretty horrible. Didn't really program a lot in WinProc - but I've cut my teeth with MFC which was supposed to make it better. They broke down the big switch in the program and created classes (the c in MFC) and macros. The VCL of Borland was more abstracted, but we've used MFC. I am pretty happy that I don't have to do this any more. When I started with C# and Windows Forms it seemed like a revelation for me.
- pjmlp 11y agoComing from a Borland background, MFC was pretty bad when compared with any of its frameworks. However in MFC's defense I think one can blame it on Microsoft's study group. I read somewhere that the Afx prefix came from their original design. A framework close in spirit to OWL, but their study group deemed it to high level. So they made it a thin wrapper over Win16 instead. On my case, the few cases I was forced outside OWL and MFC into pure C land, I use a set of macros from the Windows SDK. They weren't properly documented, but with the Windows 3.1 SDK Microsoft created a kind of "type safe" handles and message dispatch macros, which relieved the WndProc pain. Nevertheless, Xlib was even worse.
- brusch64 11y agoI've heard the same thing about the Afx macros and the plan for another more ambitious framework. In my opinion the biggest obstacles for MFC were: * a pretty bad C++ compiler (the first good MS C++ compiler was the one with Visual Studio 2003 as much as i remember) * that the core group were "old school" C guys that either couldn't design a better object oriented system or thought that it would be to hard for the "normal" developers
- pjmlp 11y agoJust decided to do a bit of archaeology. The macros in the Windows 3.1 SDK were the strict header mode and message crackers. https://support.microsoft.com/en-us/kb/83456 https://support.microsoft.com/en-us/kb/83456 It made my life sane every time I had to use C instead of C++, and yet very few people knew about them. Petzold never mentioned them in his books, I discovered them by chance in another book. Nice to know that the Afx story might have not been a rumour, since other people heard the same. My first Visual C++ was v5.0, by then it was already clear that Borland was on they way out as first choice. Sadly.
- gecko 11y agoYou know what's ridiculous? I totally agree that WndProc was horrible. But the web community is now reinventing it so directly that all I can do is bang my head repeatedly on my desk. Have you seen Facebook's Flux/Dispatcher framework, for example? The Dispatcher is usually a massive switch statement that takes a single argument, which will be a record field that corresponds with the event type. It's exactly like switching on uMsg and then casting lParam to the relevant struct. And this is considered one of the absolute best web frameworks available right now. On the bright side, I suppose we can look forward to equivalents of message crackers, OWL, and MFC for React soon enough.