[HN Gopher] The 90s Developer Starter Pack
       ___________________________________________________________________
        
       The 90s Developer Starter Pack
        
       Author : ingve
       Score  : 40 points
       Date   : 2023-07-09 21:11 UTC (1 hours ago)
        
 (HTM) web link (retrocoding.net)
 (TXT) w3m dump (retrocoding.net)
        
       | RobotToaster wrote:
       | I still miss VB6 tbh.
        
         | hattmall wrote:
         | You are not alone.
        
       | zerr wrote:
       | Any experiences using Delphi for Android/iOS (and cross-platform
       | generally) development? Seems like the only cross-platform
       | solution that wraps platform WebView on each platform, has an
       | imperative GUI, RAD IDE and produces a native code.
        
       | nemo44x wrote:
       | Really nice API. Compare to Mac of that era you needed to create
       | and maintain your own event loop and have a bunch of branches for
       | when a certain thing was clicked.
       | 
       | To show a basic dialogue you had to continue to draw it over and
       | over in your loop.
       | 
       | Windows took care of devs!
        
         | duskwuff wrote:
         | > To show a basic dialogue you had to continue to draw it over
         | and over in your loop.
         | 
         | It wasn't _quite_ that bad. Basic alert dialogs were fully
         | handled by Alert(); event loops for more complex dialogs were
         | implemented by ModalDialog(). Anything non-modal could
         | certainly get hairy, though.
         | 
         | (Relevant documentation:
         | https://woofle.net/impdf/TB-06-DialogManager.pdf)
        
       | asveikau wrote:
       | I think you can skip VC++97 and develop with msys and mingw. I
       | haven't used those to target 9x in a long time, just older NT, so
       | I'm not sure how up to the task it is these days. But I think it
       | can get you more recent versions of C and C++ that route.
        
       | colordrops wrote:
       | I could hear disks spinning up just looking at that page.
        
         | brianwawok wrote:
         | 10k (I think the fast drives were 10k rpm) SCSI drives were a
         | full time hummingbird.
        
           | speed_spread wrote:
           | There were even 15k SCSI HDD. Those sounded like having an
           | idling Ferrari parked next to your ankle.
        
       | mjhagen wrote:
       | My 90s developer setup:
       | 
       | - Macintosh Performa 5200
       | 
       | - BBEdit
       | 
       | - Fetch
        
       | fuzztester wrote:
       | The 80s Developer Starter Pack:
       | 
       | BEGIN                   Use(TurboPascal);
       | Do(AllWithJustIt);
       | 
       | END
       | 
       | Why use Pascal?
       | 
       | https://news.ycombinator.com/item?id=36646890
        
         | j45 wrote:
         | Starting with Basic, Pascal really was such an accelerant to
         | learn programming before moving to c, c++, Java, .net and
         | beyond.
         | 
         | Polyglots were formed quite naturally at one time, with a focus
         | on transferable skills and knowledge.
        
           | makapuf wrote:
           | How many did basic > compiled basic > turbo pascal + asm > C
           | > C++ > perl/python > ...
        
             | indymike wrote:
             | I think almost all of us started with BASIC. Then we all
             | wanted to do more... and with more memory and do it
             | faster... so I needed a compiled language.
             | 
             | So, I learned C, then Pascal, then VisualBasic. C forever
             | corrupted me.
             | 
             | Then C++ was the future, so I learned that... and then the
             | web came... and with it came CGI scripting with Perl. I
             | really fell in love with Python, though. It was what BASIC
             | should have been, but Python was slow, so I learned Go.
             | Along the way I also learned Prolog, Lisp, Java,
             | Javascript, Rexx and a host of different OS scripting
             | languages. Now, I just look at a problem, and pick
             | something that fits. Mostly. Except when I want to learn
             | something new.
        
             | j45 wrote:
             | For real haha. I forgot to include asm and Visual Basic.
             | 
             | VB was looked down on back then but look at low/no code
             | now.
             | 
             | Perl/Python was at the start for me, scripting was a
             | parallel lane to coding.
             | 
             | Highest respect is always held for TCL.
        
       | mattl wrote:
       | This "real programmer" stuff is just gatekeeping and needs to go
       | away forever
        
         | speed_spread wrote:
         | Well, someone's hurt that their favorite IDE was derided once
         | again 28 years later... :)
         | 
         | Seriously, VB was quick and fun to code in but ultimately just
         | contained way too many crazy footguns to build large
         | maintainable apps. It's one of those things I swore never to
         | put on my CV for fear someone noticed and asked me for just one
         | "one quick fix" to their mudball.
        
       | corysama wrote:
       | I'm not a Windows programmer to a significant degree. But, I did
       | a tiny bit of digging and discovered at WinMain is just a
       | function called by main() in Win32 executables. The implicit
       | main() is pretty trivial and WinMain is largely unnecessary.
       | 
       | hInstance can be retrieved from GetModuleHandle(nullptr).
       | hPrevInstance is always NULL. lpCmdLine can be retrieved from
       | GetCommandLine(). nCmdShow can be retrieved from GetStartupInfo()
       | StartupInfo.wShowWindow.
       | 
       | And, so you can just do                   #include <Windows.h>
       | #pragma comment(lib, "user32.lib")         #pragma
       | comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
       | int main(int argc, const char *argv[]) {
       | MessageBox(NULL, "Hello, Welcome to Win32 Programming",
       | "Hello, World", MB_OK | MB_ICONINFORMATION);         }
       | 
       | and it works the same as the code in the article. Not a
       | significant difference. But, I like peeling back magic code to
       | make things just a little simpler.
       | 
       | Can someone who knows better tell me why this is a bad idea? Or,
       | is WinMain just an idea from 30 years ago that didn't actually go
       | anywhere?
        
         | andrewf wrote:
         | hPrevInstance meant something in Win16, which Win32 tried to
         | maintain source compatibility with.
         | https://devblogs.microsoft.com/oldnewthing/20040615-00/?p=38...
         | 
         | As you point out, what really matters is the entry point the
         | linker puts into the executable's header, it's all just
         | convention from there.
        
         | [deleted]
        
         | tom_ wrote:
         | WinMain and main are both called by invoke_main:
         | https://github.com/ojdkbuild/tools_toolchain_vs2017bt_1416/b...
         | 
         | (that does not look like an official repo, but it's the best I
         | could find in terms of a github link. The file pretty much
         | matches c:\Program Files (x86)\Microsoft Visual Studio\2019\Pro
         | fessional\VC\Tools\MSVC\14.29.30133\crt\src\vcruntime\exe_commo
         | n.inl on my PC.)
        
       | Tade0 wrote:
       | > A real gold mine for a person like me who lives in a developing
       | country with restricted access to old hardware.
       | 
       | Interesting, because if anything I would assume that old hardware
       | would be more accessible in developing countries - I mean, that
       | was the case 20+ years ago in my (still) developing country - I
       | got my parts from an open air bazaar, where it wasn't weird to
       | see 10yo items. Personally I was 5 years behind the state of the
       | art.
       | 
       | My oldest piece of hardware was a dot matrix printer, which I
       | used for school as recently as in 2007. IIRC the mentioned bazaar
       | was the only place where you could find a replacement ribbon for
       | it.
       | 
       | My hoarder relative still had some old crap from the 90s when I
       | was clearing out his cellar a few years ago.
        
       | pjerem wrote:
       | Ah, do you remember when this thing called Windows allowed you to
       | simply create windows with 10 lines of code ?
       | 
       | Where have we gone ?
        
         | anyfoo wrote:
         | And have a 10000 lines message processing loop? Yeah. It wasn't
         | exactly Qt.
        
         | enriquto wrote:
         | Ten lines? Why so complicated? Back in my day we did it with
         | just two lines:                   mov al, 13         int 10
         | 
         | And then you pushed your pixels to the video segment (a0000).
         | So simple and elegant...
         | 
         | But my dad still mocked me because it was too complicated! Back
         | in _his_ day, you didn 't need to bother with stupid video
         | modes, and could just POKE the pixels to your screen!
        
         | tom_ wrote:
         | Stop being so dramatic. The exact same code will still compile
         | today, and you'll get your window in 10 lines or whatever. And
         | anyway, it's not a window - it's a message box.
         | 
         | (You could probably put an honest-to-goodness window up in 10
         | lines, but you'd have to squeeze the code together a bit more
         | than most reasonable people would consider permissible, and/or
         | it'd be missing a few key aspects. But I bet 30 lines would be
         | plenty for a full-on one though, with its own custom window
         | proc that has a WM_PAINT handler that does something and a
         | WM_CREATE handler that pops a context pointer in GWLP_USERDATA
         | and a WM_DESTROY handler than frees the context. And a message
         | loop. The code today would be basically exactly the same as it
         | was in the Windows 95 days.)
        
         | maccard wrote:
         | Depending on what kind of window you want, you can still get a
         | modal in one line with the Windows SDK
         | MessageBox(NULL, "Something Went Wrong", "Error",
         | MB_ICONEXCLAMATION | MB_OK);
         | 
         | A full windows window including a message handling loop is only
         | about 50 lines of code [0]
         | 
         | [0] https://learn.microsoft.com/en-
         | us/windows/win32/learnwin32/c...
        
       | j45 wrote:
       | The best thing about this was the terror of taking apart what was
       | usually a $2-4000 home Pc and putting it together again.
       | 
       | Learning all the hardware acronyms set a foundation for software
       | development because you could debug though what the computer was
       | doing.
       | 
       | It's almost an unfair advantage these days in some cases.
        
       | jauntywundrkind wrote:
       | Don't forget a pack of extra jumpers for setting irq's with. Lol.
        
       ___________________________________________________________________
       (page generated 2023-07-09 23:00 UTC)