Hacker News new | past | comments | ask | show | jobs | submit login

Which would have had been a tradeoff too. More time to market, fewer people on each project, slowed down by cross platform code.



At the time, Lotus was a good company in great shape. The management could have hired people to get stuff done. In hindsight, sure, we can be judgmental, but it is still a failure in my view.

For a company selling licenses for installations, wouldn't having support for all available and upcoming platforms a good thing? Especially when the distribution costs are essentially 0?


Lotus was a rich company, and could have easily funded 3 full strength independent dev teams. It would not have slowed anything down.


They would have just forked the code and maybe merged some changes back and forth, no real need for cross-platform code.


This was pre-1983. Forking wasn't a thing at the time. Any kind of code management was cutting edge, and cross-platform shared code wasn't even dreamed of yet.


Forking and merging is a social phenomenom. Sure git makes it easier, but nothing stopping anyone from just copying and pasting as appropriate. Not to mention diff(1) was invented in 1974, and diff3(1) in 1979, so there were already tools to help with this, even if not as well developed as modern tools.

I'm also pretty sure cross-platform code was a thing in 1983. Maybe not to the same extent and ease as now, but still a thing.


Successful 8086 projects were usually written in assembler - no way to get the speed and size down otherwise. I'm pretty sure Lotus 123 was all in assembler.


I'm not an assembly programmer and not very familiar with how that world works, but even then, if the two OSs were for the same architecture (x86), couldn't you still have a cross OS main part and then specific parts that deal with operating system things? I normally think of compiled languages like c being an abstraction over cpu architecture, not operating system api.


Yes, you can have common assembler code among platforms, provided they use the same CPU.

From what I've seen of code developed in the 80s, however, asm code was not written to be divided into general and os specific parts. Writing cross-platform code is a skill that gets learned over time, usually the hard way.


Fork just means two groups start with the same code and work independently.

It was a thing.


You make a copy of the files and work on them and that is a fork.


How do you merge changes between the source trees?

Keep in mind this predates basically ANY kind of source control. It would have been nearly 3x the work.


> Keep in mind this predates basically ANY kind of source control.

It might be before they were ported to DOS or OS/2, but it definitely wasn't before source control existed (SCCS and RCS were both definitely earlier.)


OK: Keep in mind this predates basically ANY kind of source control in common usage in software engineering.


3x the work may still fall under reasonable cost.

If architectured properly (big if) you can split up the project appropriately so there is a common core and individual parts for specific OS.

Is it extra effort? Sure. Impossible? Definitely not.


I've also successfully converted some rather large x86 assembler programs into C, so they could be ported to other platforms. It's quite doable by one person.

(Nobody else wanted the job, but I thought it was fun.)


Uh? Quite wrong.

SCCS was created in 1973. We're talking about over a decade later.

Also primitive forking, diffing and merging could be (painfully) done even with crude tools, which did exist.


These were not in common usage in the software industry.


Should’ve just made it an Electron app


You'd need a Beowulf Cluster of Apple //e's to run an Electron app in 1983!


They could have charged a subscription for their cloud based offering then


Been a long time since I heard "Beowulf Cluster"!


Had to log in just to upvote this comment, brought back nostalgia from the Slashdot days of yore.


Eh, C of this era, you're definitely talking some sort of #ifdef PLATFORM solution.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: