Fun fact ... "VisualAge for Java was implemented in Smalltalk and the Team facility used ENVY/Developer under the hood" [1]. Of course eventually that product and team morphed into Eclipse.
I was lucky enough to play as small part as a college-age intern working at an Object Technology International [2] Lab in Sydney.
I soaked in the pair programming, watching the screen flash by. I read every book they gave me (e.g. The Toyota Way, this was before XP / Agile books existed). I was amazed they actually paid me to work on these problems. I was so proud to make contributions and still remember fondly the hand-drawn diagram of the architecture passed down like a relic through the team. I am still inspired by their passion and commitment to delivery.
I definitely would not be the person I am today without the career defining experience working for Adrian Cho [3] and Dave Thomas [4] during that time. Periods like that are rare in a career - grab them if you can!
Erich Gamma worked for Object Technology when VisualAge was being developed so using XP/Agile before the XP book does not surprise me.
I worked with Erich before Visual Age when he developed the Presentation Framework. He came up with a process identical to XP. When XP came out I realized that Erich and Kent Beck were friends.
Erich is so prolific that he doesn't remember everything he invented. He is also generous.
Envy (Smaltalk versioning system for objects) cost an arm and a leg, I was fortunate enough to have a license - it was a fantastic system and the missing key bit to use Smalltalk for serious applications in larger teams and not just for prototyping. Key reasons why Smalltalk lost so quickly:
IBM buying and redirecting OTI to Java yielding eventually Eclipse at the same time boosted Java and pulled the rug from under Smalltalk.
IBM starting to hire Smalltalk programmers from universities and redirecting them to Java.
IBM providing networking stack parts to Java to interoperate in the banking industry.
It all happened over a relatively short period of time. Java was not just cheaper but thanks to IBM the tooling and networking - still way behind the combo of Smalltalk/Envy - was starting to be good enough.
I interned at an IBM satellite, whenever I mentioned smalltalk the old guys started to frown mumbling '#doesNotUnderstand... #doesNotUnderstand and #doesNotUnderstand'
Apparently something was wrong between ST usage at IBM and devs there.
An aside to this specific product, but unfortunately IMHO we have gone backwards in terms of being able to visually layout GUIs (at least in the mainstream).
Regardless of the other merits of modern ecosystems, in terms of purely visual layout of GUIs (WYSIWYG with drag & drop mouse interface IOW) I think:
I think the demise of WYSIWYG GUI builders was partly just it "going out of fashion", but also partly because of rising requirements for dynamic GUIs, meaning actually changing the layout programatically, but also things like arbitrary resizing and dynamically switching based on device type ("responsive" design).
All of the popular 90s RAD design tools dealt with resizing as an afterthought, which made them obsolete in many cases and probably contributed negatively to the reputation of the whole class of software. Today's WYSISYG tools (I'd say as early as mid 2000s or even before) have certainly rectified these early mistakes, but I guess fashion moved on by then.
Motif, Windows Forms, WPF, Swing all support responsive design via layout managers, and the tools do support them.
And there are such tools for Web development as well, however they are oriented for the target market that actually pays for such kind of tooling, for example https://www.outsystems.com/
Windows Forms may have supported it, but no one seemed to use it. You still to this day see dialog boxes in Windows with microscopic text areas in windows that cannot be resized. This is an artefact of the GUI builders used where the developer just "drew" the UI components with fixed positioning.
As for Motif, there were third-party GUI builders, but Motif itself did not have one as standard that I know of (I developed on Motif on Solaris when working for Sun). The layout model for Motif is so easy that you don't need a GUI builder anyway. I've used may UI frameworks since then, and Motif is still the easiest one to use in my opinion.
Sun was never good at desktop software anyway, killed NeWS, Swing while powerful requires graphics programming knowledge to make cool UIs and then there was F3 (JavaFX 1.0), and the Java Desktop Framework Integration project went nowhere.
Windows Forms seems a bit lacking here, though. As far as I could tell in my attempts, the tab control doesn't support auto-sizing itself to its contents.
"Thus, Java has the potential, at least, to break the hold that the hardware and operating system monoliths have on the computer world, and could make hardware and software tycoons like Steve Jobs and Bill Gates as obsolete in the 21st century as railway barons have become in the 20th."
The author had an idea that while we laugh today, had a glimmer of truth - it was open source, and not Java itself, that ensured that "tycoons" didn't a have a stranglehold on the industry.
I suppose it depends on how you view “stranglehold”.
They certainly are listening to their customers who prefer “open” in some contexts. So in some ways they’re better behaved. And most excitement and activity in server side ecosystems tends to be open source.
But in terms of economic might, ie. revenue and equity, open source has been a weapon wielded by the tycoons to add to their might.
Linux is successful but the dominant vendor is owned by IBM. Canonical some day may also get scooped up.
Intel is finally feeling the pressure of custom chips and portable languages (it’s market cap is down to $230b), but Microsoft is nearing 2 trillion in market cap, Apple is 2.3 trillion, and Google/Amazon aren’t far behind either.
The result is that we arguably have more open and higher quality infrastructure than ever before. But the ultimate tycoons remain the same - with Google + Amazon being the new entrants.
VA for Java would have survived much longer had it not make a
fundamental mistake. The complete project data, UI, configuration, classes, files, etc.,) was stored in a single file. That file appeared more like a database file. That helped it show errors in realtime, keep the project always accurate, and screen transitions slick. It was difficult for multiple developers to work in a single project. It was around the same time source control systems were becoming workplace tools and the concept of multiple developers working on a single file. In those days, it was not still possible for multiple developers (Visual SourceSafe) to work on a single file at a time
True. It was an incredibly powerful model, but developers like files they can see.
I mentioned in my earlier comment a "hand-drawn diagram of the architecture" - it was in fact a picture of the exact layout of this database including all the pointer blocks etc between the classes, methods, versions, etc.
One project I did was to convert that file format & pointer model to support larger database sizes of 16GB (IIRC). Fun exploring and updating that code. For testing I built a massive fake DB with random classes, methods, etc. The crazy thing was when that fake repo zipped down to almost nothing because it had so much repetition in the names!
Definitely. I used it at my job and the registry (as it was called) was saved on a Windows network drive. As you can imagine, sometimes the network was not so reliable and the registry became corrupted. We had to copy the one of another developer and lost all our work in the process. Fun times!
IBM Smalltalk was perfectly usable for multiple developers. Didn't VA Java just use the ENVY version control from the underlying Smalltalk system? I'm sure they could have.
I very much enjoyed VA for Java. We were using Smalltalk with Gemstone for a number of years, but the internet and Java killed the Smalltalk industry, so we migrated everything to Java using VA for Java and early Websphere.
VA for Java hid the idea of source files and gave a good illusion of a dynamic and “live” Smalltalk-like environment. Later moving to eclipse was the end of that illusion and any Smalltalk feel.
Added: we also had no problem with version control in Smalltalk or Java, both tool sets provided great team tools
I was lucky to see and work with this IDE in a real project, long after it stopped "existing". The company had code written using Visual Age, and it needed to be ported out of it. Wasn't too bad, considering how old it was.
Now I look at VS Code (Disclaimer: I haven't looked at the source code of Electron), and there doesn't seem to be much innovation visually. Most IDEs seem to follow the layout of websites - a left sidebar, a main section, and an optional right sidebar, with a footer.
Note: If someone here builds a different UI for IDEs, I will be an enthusiastic beta tester.
Behind the user interfaces, a lot of things have changed for the better. Integration with other tools in the DevOps pipeline, ability to test quickly, autocomplete tools that understand frameworks, technologies and even contexts - all that has happened behind the scenes.
> If someone here builds a different UI for IDEs, I will be an enthusiastic beta tester.
The interface you're seeing is still alive and well in most Smalltalk environments. If you're on Windows, try Dolphin Smalltalk, which is now available for free.
I particularly liked their handling of Java Beans. It not only created the stub code, but even after one filled in the blanks, the IDE could continue to modify the code using the GUI (e.g. connect different beans). Other IDEs at that time allowed you to only create the stub code and once you manually modified it, they were unable to assist you further.
Seems others didn't quite appreciate this "visual programming" as much and the idea died out.
I still have the original VisualAge for Java installation CD. Came from Smalltalk and wanted to have a similar IDE for Java. After initial releases IBM didn't make any new version for a long time... they built the Eclipse in "stealth mode" and released it as open-source... and made VisualAge for Java obsolete...
"First, you'll have to consider the prerequisites, which are pretty significant, particularly for RAM. You'll need Windows 95 or Windows NT 4.0 or OS/2 Warp V4, an SVGA display, and, IBM says, 32MB of RAM (with 48MB recommended), at least 45MB of free disk space for the software (with an additional 30MB free disk space for swapping), and lastly, an unzip program"
I think 32MB would have been about what a typical desktop would have come with in 1997, so yeah, it was a hog. I remember my manager buying extra memory for us and having us install it ourselves because he didn't want to wait for IT.
God we used it with the IBM San Francisco framework, which was trying to model every business interaction in the world. Too say it was abstract would be an understatement. Because it was so generic it didn't just have an amount attached to an transaction, instead it modeled a Money object that had a currency object. I'm sure it was well done to some degree, but loading that framework into Visual Age absolutely killed the poor 2000 era machine.
I was lucky enough to play as small part as a college-age intern working at an Object Technology International [2] Lab in Sydney.
I soaked in the pair programming, watching the screen flash by. I read every book they gave me (e.g. The Toyota Way, this was before XP / Agile books existed). I was amazed they actually paid me to work on these problems. I was so proud to make contributions and still remember fondly the hand-drawn diagram of the architecture passed down like a relic through the team. I am still inspired by their passion and commitment to delivery.
I definitely would not be the person I am today without the career defining experience working for Adrian Cho [3] and Dave Thomas [4] during that time. Periods like that are rare in a career - grab them if you can!
1 - https://paulhammant.com/2017/09/01/smalltalk-envy/ 2 - https://en.wikipedia.org/wiki/Object_Technology_Internationa... 3 - https://www.adriancho.com/ 4 - https://www.davethomas.net/