News:

The NeXT Computer is now 37 years old!

Main Menu

Programmatically Controlling Programs

Started by tygre, Feb 01, 2026, 10:32 PM

Previous topic - Next topic

tygre

Hi there!

I've been developing AmiModRadio for Amiga computers, to download and play music from the Internet, and I'd like to learn NeXT programming by writing a similar program for my NeXTStation :)

I'm completely new to NeXT programming and it seems that NeXTStep doesn't have something like ARexx so I wonder if there's a way to control another program programmatically? Or maybe to control the mouse to mimic a user clicking here and there?

Cheers!
Tygre
-----------------------------------------
     Scientific Progress Goes Boing!
       http://www.chingu.asia/wiki
-----------------------------------------

marvin

#1
Hi @tygre , please have a look at the freeware Journaler .app from 1994.

Attached are:
Journaler.NIHS.bs.tar.gz from next-ftp.peak.org
Journaler.NI.bs.tar.gz  from Peanuts.

From their Journaler.README  :
QuoteWhat does this program do?

This program records mouse and keystroke events that occur within any application (or applications) you want, allowing you to save these events, and play them back later, thus recreating the exact sequence of events you recorded.
Maybe you can find some inspiration from the included source code.
DON'T PANIC

tygre

-----------------------------------------
     Scientific Progress Goes Boing!
       http://www.chingu.asia/wiki
-----------------------------------------

jeffburg

Let us know if you have any success. I would like to eventually get time to make a VNC server for OpenStep and capturing replicating mouse and keyboard input is one of the critical pieces.
Grab my app, MathEdit for OpenStep - https://github.com/jeffreybergier/MathEdit
Follow me on Mastodon for Retro Mac Adventures - https://jeffburg.social/@jeff

tygre

Hi Jeffburg and Marvin!

Yes, some progress today: I downloaded and compiled Journaler successfully. Then, I duplicated it and started to work on my "NeXTModRadio" :).
(Yes, not a very original name!)

Is that okay if I follow up on my progress, and plenty more questions!, here?

My goal is to develop a program that can automatically download (Amiga) modules and play them on my NeXTStation.
I want to do that on my NeXT to learn more about it and how to use it: eat your own dog food! ;)

Actually, I already have a question: for coding, are there better editors than the standard "Edit.app"?

Cheers!
Tygre
-----------------------------------------
     Scientific Progress Goes Boing!
       http://www.chingu.asia/wiki
-----------------------------------------

jeffburg

On OpenStep, the editor built into Project Builder is pretty good. But yeah, I was surprised to learn that in NextStep, Project Builder just opens Text Edit. I have not looked for other editors.

But when I was making my OpenStep apps, I used Previous (on my M1 Mac) or VirtualBox (on my Intel Mac) and I used NFS to edit the files right in place on the host Mac. That way I could also edit and compile in normal old-fashioned Xcode.
Grab my app, MathEdit for OpenStep - https://github.com/jeffreybergier/MathEdit
Follow me on Mastodon for Retro Mac Adventures - https://jeffburg.social/@jeff

marvin

Not totally sure, but think the editors of choice were Edit.app, vi, and Emacs.
DON'T PANIC

tygre

Hi and thank you for your answers, both of you!

Do you think that it'd be possible to use the OpenStep editor on NeXTStep?

Best,
Tygre
-----------------------------------------
     Scientific Progress Goes Boing!
       http://www.chingu.asia/wiki
-----------------------------------------

Rhetorica

PB's integrated editor was indeed a novelty in 4.x. (Pro-tip: it does have syntax highlighting, called syntax "coloring"; it's just disabled by default because it was a newfangled feature for them kids at the time.)

It is most definitely not possible to run on 3.x though, because the whole thing was rewritten against the OpenStep specification. I don't think you can even run it side-by-side with 3.3 dev tools on 4.2, as it has strong opinions about how your project's header files should be organized.

The current IDE renaissance started several years later—first Java and Linux needed an IDE on par with Visual Studio, and then competitors like JetBrains emerged out of discontent with NetBeans and Eclipse. Notepad++ (and successors—SubEthaEdit and Sublime Text) arrived around the same period as a band-aid for dealing with second-class languages that were highly popular in the late 2000s, most notably PHP.

There are third-party development tools for NeXTSTEP, like Joy and ActiveDeveloper, but most (if not all) of them were designed around finding a niche, like rapid/realtime testing, and the most of the useful ones came with a hefty price tag. Realistically, the hackers of the day swore by Emacs, as the vi of the day was considerably less capable than modern vim.
WARNING: preposterous time in Real Time Clock -- CHECK AND RESET THE DATE!

ZombiePhysicist

I'm so old school I preferred having my window hell in TextEdit when I was doing my work. The integration and demotion of interface builder felt like it lost something. I liked that back in the day you didnt "need" project builder to get an app going.

tygre

Hi all!

Thanks for your replies. I found ClassEditor, it's really for documenting, but it shows public methods nicely. I'll explore more the different archives...

BTW, how do you share files with other computers? I could make Rumba work with the Samba server of my RPI, but not with my NAS. I'm currently using yftp, maybe there's better or a better way?

I also committed the very first version, which is really Journaler under a different name  :)

Cheers!
Tygre
-----------------------------------------
     Scientific Progress Goes Boing!
       http://www.chingu.asia/wiki
-----------------------------------------

jeffburg

NFS is the way to go. Any Mac or Linux computer can be an NFS server and NextStep can mount the NFS share. @Rhetorica probably knows exactly where a guide is.
Grab my app, MathEdit for OpenStep - https://github.com/jeffreybergier/MathEdit
Follow me on Mastodon for Retro Mac Adventures - https://jeffburg.social/@jeff

Rhetorica

#12
Quote from: jeffburg on Feb 11, 2026, 02:42 AM
NFS is the way to go. Any Mac or Linux computer can be an NFS server and NextStep can mount the NFS share. @Rhetorica probably knows exactly where a guide is.

Where a guide is? To be honest I stumbled through it like a real programmer, squinting in confusion at NeXTanswers articles all the while. :'( Alas, that thread is gone. Here are some steps that should work:

1. Make sure your NFS server has every possible legacy connection option enabled. We need NFSv2, and possibly even NFSv1. Modern NFS servers will offer NFSv4 by default, and even systems from the late 90s will serve up the limit-removing NFSv3.

2. Open up NFSManager.app. Here's my configuration for sharing one directory from haneWIN's Windows NFS server:

uBJO17a.png

3. At this point you ask, "what the hell did you put in the server name field, I thought this was a Windows machine?!" — and the answer is that I faked an entry in HostManager.app:

HCK090T.png

MyxtVbf.png

(Just don't try to browse it by clicking the name in the "Domain:" browser control, or HostManager will freeze.)

This should be adequate to get the share working without any trouble, though I found that my configuration (haneWIN nfsd + VirtualBox) can be extremely slow for accessing directory listings. I'm still not 100% certain these Expert Options settings for the mount are correct (or sane):

M8GTFSt.png

...but feel free to experiment if you have a surplus afternoon.

Here is NeXT's official documentation for all this: http://index.nextcommunity.net/docs/ns33admin/04_nfs/index.html — but I don't recommend relying on it too much unless you have NetInfo running on your NFS server also.
WARNING: preposterous time in Real Time Clock -- CHECK AND RESET THE DATE!

jeffburg

Grab my app, MathEdit for OpenStep - https://github.com/jeffreybergier/MathEdit
Follow me on Mastodon for Retro Mac Adventures - https://jeffburg.social/@jeff

jeffburg

Also, thank goodness that @andreas_g and Previous do this all automatically for you via NETINFO if you are emulating.
Grab my app, MathEdit for OpenStep - https://github.com/jeffreybergier/MathEdit
Follow me on Mastodon for Retro Mac Adventures - https://jeffburg.social/@jeff