What was it like to be a software engineer at NeXT?
quora.com
quora.com
But what I want to talk about instead is:
> Like EOF, our database layer that still puts Ruby-on-Rails to shame.
I spent a couple years programming with EOF (the "Enteprise Object Framework", an ORM), and many more recent years programming with ActiveRecord. EOF had a few features that ActiveRecord still doesn't that I miss (like properly functioning multi-table inheritance; and lazy "eager loading" triggered on first access for all associations; Rails 6.1 has a welcome feature to RAISE on n+1 behavior, but why not just lazily trigger the efficient load instead, which is probably no harder to implement? Maybe nobody thought of it, having not used EOF?).
But I wouldn't actually say it still puts ActiveRecord "to shame". ActiveRecord is very similar to EOF in design, by 2020 nearly as mature, with 80-90% of the features.
Yeah, it's striking that ~20 years later we can say AR is mostly as good as EOF haha (and doesn't have anything of note that EOF didn't already have, it hasnt' superceded it in any ways). It's internal architecture isn't quite as elegant. But it really is nearly as good as EOF, it's deficiencies compared to EOF aren't large enough to be particularly shameful, in my experience/opinion, it's in the ballpark!
AR is so similar to EOF that I have always wondered if some of it's designers had experience with EOF.
The technology really was great. Their understanding of object orientation was superior. The developer tools were wonderful. The user experience was generally a delight. We could develop custom software in a fraction of the time of people using the tools of the day. NeXT had a true vision of the future.
However, what they didn't have was much understanding of economics. The only reason that NeXT wasn't a complete commercial failure was that Apple's board wanted Steve Jobs back. If not, Apple might instead have bought out Be. And if Apple had succeeded in developing their own next-gen OS, both NeXT and Be might be minor footnotes these days. Even prior to the deus ex machina buyout, NeXT was on a slow and steady path to failure. They'd gone from an integrated hardware vendor to an OS-on-other-hardware vendor to a dev-tools-on-other-OSes vendor, and it's not clear that would have worked either. Once the acquisition was announced, they promised to take care of the people who had stuck with them and then did jack.
I took a few lessons away from my time with NeXT. 1) Just because I thought something was technically superior didn't mean it was commercially viable. 2) Being too far ahead of the market is worse than being behind it. 3) Never trust a "visionary leader" to look out for you, no matter what he says. He's in it for himself and the vision; the little people are expendable.
But you're definitely right that it made using other stuff painful. I stopped doing GUI development altogether rather than shift to Windows, which was incomparably awful by comparison.
Thanks for sharing though!
I suppose it may be that technical excellence has never been economically viable, and NeXT survived as long as it did only by fluke.
I suppose it may be that technical excellence
has never been economically viable
Probably more like:1. It's generally orthogonal to economic viability
2. ...unless you have such a lack of technical excellence that it actively sinks the company because you can't execute at all
I think Google search would like to have a word with you.
You can have the best product on the market and fail, and you can have a terrible one, yet succeed. Google has as much business acumen as they do technical chops, and that's why they are such a success. Same with MS and Apple.
Edit: I guess if we want to limit it to cool technologies that are directly monetizable, the ford motor company of the early 20th century (or maybe Tesla) is a better example? It's just as silly a statement either way.
There is a ton of shit software out there that makes buckets of money, and lots of well designed, well executed products never make it off the ground. So you can't just focus on good engineering and expect clients to line up out there door.
All the vision and all the software quality in the world won't make you competitive in the 90s UNIX workstation market if your machines are underpowered, and we were used to garbage software anyway. Chasing the "personal workstation"/PC market also would never work. DOS/Windows was far too strong and the Macintosh deep in a niche. It's very unfortunate.
I looked very seriously at Unix machines around the time NeXT came out, having been converted to that religion in college. NeXT started at around US$6500, and that was with the optical disk only. The equivalent-ish Sun box (Sun 3/80) started at around US$15k with disk as I recall and went up in price really fast if you wanted more memory/disk/etc. About the cost of a new Honda Accord at the time. And the Sparcstations were out at much higher performance (and price...I seem to recall around US$22k for a usable config).
On the other hand, you could get a nicely decked out 386/33 for maybe half the cost of the NeXT, or a 486 for a grand or so more. And it ran tons of software, even if it was garbage. Even Unix.
1st NeXT Computer 1988: Motorola 68030/25Mhz w/68882 FPU, 64MB RAM max. MIPS: 4
Sun Workstation 1988 Sun-4 line: Spac @ 16-33Mhz, 32-768MB RAM MIPS: 7-114
Now having used both, the desktop and usability on the NeXT was so much better.
You could buy a NeXTstation for $4995 on the open market, and considerably less with an educational discount.
You could buy a Sun Sparcstation 1, which was released a bit earlier and ran a RISC 20 MHz processor but it was $9,000.
If I recall correctly, SGI workstations like the SGI Indigo at the time started at somewhere around $7500 and depending on configuration could be nearly $40k. The SGI Indy, which was the low end SGI machine, was faster and priced at an identical $4995 - but it wasn’t released until mid 1993.
The first Macs to use the 68040 weren’t released until mid 1992. And they also cost $7,000+.
I am unaware of a machine that was available in 1990 for under $5,000 that had more horsepower. If you can point me to one I’ll gladly concede. But at the time I was actually a NeXT campus consultant, which meant I was selling them and knew the specs of both the NeXT products and the major competitors, and I’m not aware of one. Certainly by 1992 the Mac and high end PCs were catching up, albeit both with vastly inferior operating systems.
That was a long time ago and I could well be wrong. But if so I want to see evidence.
I'm pretty sure Sun offered huge academic discounts. I never saw NeXT at any of the local universities... It was mostly Sun and DEC.
But the comparable machines of the time like the Mac IIfx or the Sun boxes of the time had similar or higher prices.
The NeXT hardware was never really competitive in either market except certain niches. E.g., all our clients were in financial trading, because they were willing to pay a huge premium for rapid app development for financial traders.
What NeXT brought was a GUI editor that allowed you to drag a button from a palette and onto a window (or view). You could then change the text on the button by double clicking on it and renaming the default text. You also got to determine where and how large the button was in relation to the rest of the window.
Most GUI builders could do this, so what was special about Interface Builder?
Two things stood out. First, you could specify how the button reacted to window resizing. There was a “springs and struts” layout mechanism that allowed you to say which parts were fixed offsets and which were variable. You could also say if the button would resize, and if so, in the X or Y or both directions.
The second thing was the ability to connect the button to an action. By Ctrl clicking and dragging, you could wire up the default action to a “selector” — in effect, a virtual method call, on the owner of the button. This owner would be populated at startup, typically the application (controller). So you could have your code with the responder and another team build the UI, and they would join together at runtime.
You could also use properties generated by code as well - you could connect the button’s field to an object’s property (aka an outlet) so that changing the code changed the UI.
The fact that you could drag and drop connections from UI to code, and from code to UI, as well as building a responsive UI, was really what stood out.
This still lives on in Xcode today; IB and PB begat Xcode and IB which begat Xcode. The “nib” format - Next Interface Builder - was a binary format file containing the descriptive state of the Ui and the wiring requirements, which was renamed “xib” when XML became all the rage is the same thing. The fact that IB has been subsumed into Xcode still hides the fact that is what’s happening under the covers.
I think it’s important to realise that this was in an age when Windows 3.1 was all the rage, and we had only just got out of 256 colour VGA while Next station had 16 million.
Nowadays with everyone doing MVC programming with the web, it doesn’t seem so important. But then there was a time when no one wrote unit tests because it was seen as pointless; but it is from these seeds that ideas become mainstream.
[1] https://paulhammant.com/2013/03/28/interface-builders-altern...
I can't remember where I read this, but the basic notion was that the Mac was easy to use but hard to program, limiting its adoption. Jobs learned a lesson in that he wanted his NeXT machine to be easy to use and easy to program.
As you say, it might all seem a bit tatty now. The web has raised the game of interface creation quite a bit. But this was in the late 1980s, where a lot of what they did was revolutionary.
Unfortunately I can’t go back and edit the original post to fix. Thanks for correcting me!
https://en.wikipedia.org/wiki/History_of_Delphi_(software)
Visual Basic came out in 1991, by which time Nextstep was already at version 2.1
So yes, these things existed, but after Next had demonstrated them.
And having dealt with GUI builders with special formats and coding implication related to objects sending special events, I'd much rather just write plain code in one language in a text editor than wrestle with a limited WYSIWYG tool.
Mithril's brilliance is assuming the UI is dirty if you have touched it in some way (mouse click, keystroke, etc.) and always rerendering after the event is handled (except if you want to optimize that). That leads to UI code which is much easier to reason about than arbitrary networks of dependencies like older UI toolkits emphasized. That style of UI development feels a lot more like, say, programming a continually-rerendering video game in for OpenGL than programming a dependency-based UI for VisualWorks/NeXTSTEP/Delphi/VB/etc..
More on all that by me: https://github.com/pdfernhout/choose-mithril "tl;dr: Choose Mithril whenever you can for JavaScript UI development because Mithril is overall easier to use, understand, debug, refactor, and maintain than most other JavaScript-based UI systems. That ease of use is due to Mithril's design emphasis on appropriate simplicity – including by leveraging the power of JavaScript to define UIs instead of using an adhoc templating system. Mithril helps you focus on the essential complexity of UI development instead of making you struggle with the accidental complexity introduced by problematically-designed tools. Many popular tools emphasize ease-of-use through looking familiar in a few narrow situations instead of emphasizing overall end-to-end simplicity which -- after a short learning curve for Mithril -- leads to greater overall ease-of-use in most situations."
And I say that even having been an official NeXTSTEP developer once upon a time -- after I gave Steve Jobs my business card when I met him after he gave a talk at Princeton and he got me into the developer program (after my paperwork to join that developer program had previously apparently been ignored with its aspiration to build a system where any piece of data could be linked to any other piece of data). Even reading through all the glorious NeXT developer info, I never felt I could afford the NeXT hardware though as much as I wanted it (the short warranty gave me pause too) -- so my career as an independent software developer went in different directions. After reading the article and comments here, I can wish I had just thought to go work for NeXT instead of wanting to be a customer...
After watching DHH's video and reading the Rails book, it reminded me so much of my previous experience with NeXT technology that I had no other choice but to go with Rails.
The dynamism of Ruby had a lot in common with ObjC's runtime. And reading about ActiveRecord at that time I also had the feeling that its authors had worked with EOF before.
All in all, NeXT built great stuff. I still own a NeXTstation Color that I got in 1992 (one of these days I should try to turn it on again). And it's a testament to the quality of that software that some pieces that I'm still running today, like Apple Mail, trace back almost directly to tools I started using back then (NeXTMail).
I think it's because both of them were so influenced by smalltalk, more than ObjC influencing ruby necessarily. But not sure.
But I'm still very curious if AR's creators knew EOF, yeah. I haven't found DHH mentioning it; not sure if there might be forgotten other person/people central to original AR architecture.
WebObjects itself was nice in many many ways (I think it's encapsulation of form handling is far better than anything anyone's managed in Rails)... but made a fundamental mistake in trying to keep a fundamentally stateful architecture and apply it to the web by putting what was effectively an opaque state ID in every single URL. This was a basically bad design for the web (although also provided for forementioned good encapsulation of form handling. :) ).
But yeah, the sense I get in my career is that we spend a lot of time trying to reinvent something that already existed, and getting close to being as good as it... then collectively moving on to the next language/platform and doing it again. With not a lot of progress. Up to and through the 90s, it seemed like there was actual progress in software design and architecture at the high-level, the level of affordances for developers to efficiently create reliable maintainable software, but it seems to me have stalled -- perhaps in favor of huge advances in more low-level stuff, better/different languages/language paradigms, etc.
The closest I got to experience inner workings of NeXT software is observing the boot log of Mac OS (which you can see if you boot it with Qemu/Clover). I haven't seen so many triple exclamation marks in a while. That somehow didn't leave the impression of carefully and intentionally designed software.
In any event, the boot log is not something I had occasion to pay attention to in NeXTStep, I couldn't speak to it.
During my Software Engineering degree I learned the difference between a Library and a Framework, but it wasn't until actually using the WebObjects Framework that the light bulb went off in my head. It was a pleasure to work with, and clearly very, VERY well thought out.
EOF was great, and every time I made a new NSArray() it brought a smile to my face.
> Since the transition of WebObjects to Java in 2000, the functionality of many of Apple's Java Foundation classes is replicated in Sun's own JDK. However, they persist largely for reasons of backwards-compatibility and developers are free to use whichever frameworks they prefer.
Doesn't stop tons of people from hating it :)
If it is Entity Framework Core, then what swayed you about it over other ORM's you experienced?
It took years of experience that you could only gain through hands-on work, to know how to debug hardware that's why gray-beards are so valued in hardware vs in software where people talk of ageism.
When your hardware/low level software doesn't perform as expected you can't google/stack overflow yourself out of the problem, you need to grab the datasheets, the schematics, an oscilloscope, a soldering iron, hunch over patiently and devise a way to debug the issue out as no one else can help you.
Hardware engineering is now just as challenging as it was back then but due to the commodization of hardware along with the rise of China and the downfall of high-tech giants like IBM, Philips, Siemens, Motorola, Nokia, Blackberry, Nortel, Ericsson, etc most hardware jobs disappeared or moved overseas and pay went significantly downhill compared to software engineering(at least in Europe).
It gives you a great knowledge and appreciate of what goes on beneath the covers. It was a grueling, but satisfying class.
Majority of software engineering courses doesn’t really teach you how to be an engineer. It’s much closer to trade school than proper engineering.
It's a mixture of science and engineering, leaning towards the science. Far far away from a trade school which would teach you practical skills (java, git, web development) and try to get you into the labor force ASAP
https://engineering.csuohio.edu/eecs/master-science-software... https://mse.isri.cmu.edu/
You'll find Software Engineering degree programs are often connected to schools of EE, CS, or more generic Engineering if you dig into this more. And of course things sometimes work in a different way - I think maybe MIT folds EE, CS and SE all together into the same department, possibly even the same degree.
I believe ABET recently deprecated their accreditation of undergraduate programs, and I don't have any idea what the implications of that are for SE licensure, but there's a possibly out-of-date list of ABET-accredited SE undergrad programs here:
https://www.softwareengineerinsider.com/abet/abet-software-e...
Not the question asked, but the quality of the answer is about what I expected (based on what I suspected). Glad not to have made an upfront overinvestment taking the discussion too seriously.
https://www.nspe.org/resources/pe-magazine/may-2018/ncees-en...
My current role title is Software Engineer, but I don’t go by it outside work very often because Engineer means something outside the technobubble. I have a friend with two degrees in aeronautical engineering, and he clenches every time he hears someone refer to me as an engineer. I agree with him too, but earning that title should be about more than a degree, engineers in industry almost always have to work under a supervising engineer for a significant period of time before acceding to the title themselves.
If you were being taught software engineering as an engineering discipline, these should be absolute bread and butter core components of the course.
If you want computing theory without programming, you do a math degree with specialization in computing theory.
Plenty of other countries follow similar practices.
I'm increasingly convinced that the apprenticeship program approach would yield far better, deeper results than how we're going about recruiting these days, but most business leadership is fiscally addicted to short-term hire-fire cycles instead of looking for ways to exert more control over their destinies. I suspect that recruiting model is an ingredient to systematized innovation (the "deeper" part I mentioned, which I use to denote internalized concepts, procedures, mental models, etc. necessary to fluent application and craft that I believe are absolute table stakes in innovation).
[1] https://www.glassdoor.com/Interview/mechanical-engineer-inte...
Early on our subjects had a lot of overlap - Java Programming 1, Database 1, Networking basics (TCP), etc. etc. I also had a healthy dose of Eng. Maths, and electrical eng. theory.
As the years rolled on I had subjects like Eng Ehtics, real time programming, software maintenance project, OS design, large scale system design, and I took a digital electronics minor (could have chosen game programming or OS design). Towards the end I did a final year engineering project which was a full year project with 16 team members, working for a real client, building a massive piece of software from start to finish.
So my degree was a whole lot of Eng. stuff wrapped around CS. When finished my friends could sling code and make software. I could do that, but I could also design a bunch of stuff, and had a lot more theory to back everything up.
At a very high level, I'd say Computer Science is more about "just do the work" like a welder on a bridge or a mechanic on an F1 race team. Where-as Software Engineering is people who designed/tested/validated the bridge, or the engineers who actually designed the F1 engine/chassis/aerodynamics.
I see the difference play out in the workplace all the time when CS grads (or people with no tertiary education in Software) want to get right into slinging code, and they get totally lost building so many trees until the forest is really thick. Software Engineering folks step back and actually design the forest before they build trees. This also plays out when trying to fix stuff, or even root cause analysis. Doers want to get on with doing (welding, changing spark plugs) while Engineers want to get on with understanding what needs to be done, then figuring out how best to do it.
b) Algos is only a small part of it. It is not just individual bits of code, but the whole system you're designing, all the moving pieces, how they connect together, network effects, etc.
Disclaimer: I am not a graduate of either or those UVic programs or a CS program, and I am not an engineer (I graduated from a mechanical engineering technology program), so my comments should definitely be taken with a bunch of salt.
I would say there are three main differences: Engineering specific: 1. All engineering programs share a common engineering core. Physics, chemistry, material science, math (usually these cover the material from an engineering perspective and are different than courses in the faculty of science), drafting/engineering graphics, engineering economics, and possibly some other courses. 2. An emphasis on professional responsibility and ethics. For example, what happens if a civil engineer certifies a bridge and it later falls over (there is a course where you learn this!)? What happens if a developer builds a website that leaks customer credit cards information (I genuinely don’t know)? Software specific: 3. A greater emphasis on systems and systems design, testing, projects, and few electives leading to a standardized curriculum providing a more consistent knowledge base across graduates.
Comments on engineering in Canada: Graduates of the BSEng program can become registered as a Professional Engineer (PENG) in Canada. To call yourself an engineer in Canada requires that you are licensed (PENG) or in the process of gaining your license (engineer in training / EIT). In Canada, to be “educated as an engineer” would, to a first approximation, require someone have a BEng, BSEng, or BASc degree from an accredited engineering program[3]. I am sure there other accredited engineering degrees that I am not familiar with. Only having a BSEng means you are a graduate of an accredited software engineering program in Canada, you aren’t an engineer yet.
Professional Engineering registration requires a 4 year accredited engineering degree, 4 or 5 years of work experience. Some of the work experience must be supervised by PENGs. You must pass professional exams and keep up with professional development. Additional details can be found at [4].
[1]https://www.uvic.ca/engineering/computerscience/undergraduat...
[2]https://www.uvic.ca/engineering/software/future-students/pro...
[3]https://engineerscanada.ca/accreditation/accredited-programs...
[4]https://www.egbc.ca/Registration/Individual-Registrants/How-...
He had a default message in the NeXT mail client back in the early '90's. I for some reason felt it was a good idea to send him an email and enable 'return receipt'. He replied, fuming at the violation of his privacy and never answered my question.
Edit: The internet never forgets, the default email in question - https://www.youtube.com/watch?v=lCPlGgA6tE4
I think far too few of us are given avenues to see our own competence & capabilities. Consumerism & the media & school each dilutes the genuine locus of control that lies within. Fear of losing shelter & health care & food drives our ability to exercise our "man, the tool maker" spirit, our willingness to venture forward.
Praising the wolves who don't seem to care, as somehow the rightful tenders of the herd, is not how I see things.
“My exciting insight came in 2001 when I read Bernard Lietaer’s book, The Future of Money. It helped me see the ways our monetary system has shaped our culture and even our sense of humanity. That’s when I realized the things we had invented (in my company) were in fact new kinds of currencies, and that currencies are the main tools we use to shape patterns in community and culture. They are the DNA of our social organisms.”
- Arthur Brock [1]
[1] https://www.artbrock.com/2014/11/21/designing-social-flows-c...
Why do ‘most of us’ want this?
Personally I find that Steve at NeXT is far more relatable than post iPhone Steve.
I've kind of always wanted one of them, but I've also kind of wondered if I'd be disappointed by it, if I got one. After all, it only ran at 25mhz.
What I'd really like to do is get an empty case and put a modern PC inside it. That would be awesome. You'd probably have to gut the case and put in new mounting hardware, but a mini-ATX or micro-ATX board would definitely fit in there. There should be room for drive rails and a PSU, but I wonder if ventilation would be a problem.
Perhaps the most fitting thing to stuff in there would be a Mac, or, maybe, a Hackintosh.
---
[0]: https://artsandculture.google.com/asset/original-next-comput...
Found out that another colleague had a few of them in a storage closet, and had aspirations of cobbling them together to make a working one. I gave him the machines.
He went on vacation, someone cleared out the closet, and fucking recycled them all. When he came back he was livid. I still feel the loss.
cube: 305 mm x 305 mm x 315 mm
https://collection.sciencemuseumgroup.org.uk/objects/co82323...
Now, I am definitely not accusing him of sexual harassment. But hand-in-hand with that, the culture seems to have shifted towards pressuring bosses of public companies and organizations to be less abusive in a range of domains. Would his behavior as been as tolerated or celebrated if he was still around today?
(Assuming he didn’t mellow or adapt with age.)
The difference is that top engineers have more options these days. They can choose to move into a high paying job at Google or Facebook where they don't have to deal with abusive relationships with the CEO.
Instead, companies with abusive CEOs attract people with high ambitions who don't yet have the skills and resume to walk into an easier, high-paying job. The CEO (ab)uses the ambitious, early-career people to extract as much work as possible before they burn out. The employees use the grind to level up their skills and resume to pivot into a better job later.
I worked for one such company early in my career. Turnover was high. It was basically a pipeline that either led to burnout or a cushy, high-paying job elsewhere if you could survive the abuse long enough to get an impressive resume out of it.
The catch is that none of us wanted to talk about how terrible the working environment was, because it would only devalue those lines on our resume. So instead we kept quiet and let everyone assume the famous tech company and CEO we worked for were actually amazing places to work. Anything else would be self-sabotage. It's a strange cycle.
I have a good friend who worked there during the 90s and wrote a shitload of the backend ordering system. She went on to work at Google as Director of Site Reliability Engineering.
She has since moved on from that.
I think Jobs would be thought of exactly the same if he were around and in his prime today: a very controversial figure who produces amazing work but has his fair share of detractors for a number of reasons. Remember, Steve's behavior was barely tolerated by a large number of people. He was hated by many, loved by many, merely tolerated by most.
The linked post by Blaine Garst is _glowing_ proudly of having worked with Steve Jobs and the all star team he assembled. Quote: "great minds collaborating and challenging each other to succeed. With the best CEO on the planet." The "challenging each other" maybe the important point. If you are a normal dude it is easy being intimidated by a big ego. But if you are an A-player you can hold your ground?
Maybe it was even the case that engineers, who are focused on objective technical details/goals and having a thick skin, dealt best with Jobs?
He did mellow with age, though. The Steve Jobs biography actually latched onto this as a key narrative element—a way to construct Jobs's personal arch—and I do believe it's genuine based on everything else I've read about the guy.
And it's notable that Jobs only really reached his zenith in these later years. The original Macintosh had a splashy launch, but sales began dwindling pretty quickly[1], and NeXT never had much commercial success before Apple bought them. My admiration of Jobs is really for the person he was in his last decade. He was a visionary long before that, of course, but ideas are relatively cheap, and Jobs couldn't execute.
Jobs was, to be sure, certainly still a demanding figure at the end of his life (and I would not have wanted to work for him), but I think Elon Musk and Jeff Bezos have him beat.
1: https://www.folklore.org/StoryView.py?project=Macintosh&stor...
I could never work for Steve Jobs because I wouldn’t have put up with his ridiculous behavior and would have walked.
Part of the situation that lead to the MeToo movement was power, and Steve Jobs had a lot of power over people who worked for him.
This was something I knew since starting my career, and worked for the last ten years to make sure no one (other than governments) has so much power over me that I have to listen to them.
Was there abusive stuff going on there? Absolutely! And there's almost certainly some overlap here with other cases (actress submits to famous film executive because it's part of his "creative process"), but I don't know if the current/recent reckoning would do much to prevent a small, dedicated technical team from overworking themselves and tolerating abusive management practices in service of a new charismatic, visionary leader like Jobs apparently was.
I personally am tired of working at a firm where everyone has a voice that they’re always using.
I’m a manager, I treat my employees with respect, and no one has ever complained about me abusing them. I’d like to know how “small” these claims are getting.
Someone was making copies at the copy machine. Another person made a joke comment about him running off copies of his resume. A harmless remark that's been made millions of times in thousands of offices for as long as copy machines have existed.
The next day the commenter got hauled into HR for "harassment."
At my last in-office role, I had employees (direct reports) give me similar comments if I happened to come into the office dressed particularly nicely. Certainly didn't feel like harassment!
That’s why HR is important - they need to determine if the complaint or history of complaints is a real issue or trivial.
Asking an employee to suddenly work all weekend when they don’t have the expectation and potentially aren’t in a situation to say no would certainly be considered an abuse of power (what if they miss their kid’s birthday).
I coach all of my employees that they own their time. I can’t ask them to work late or work more days, because I don’t own them.
It is my job as a leader to ensure that their time is protected, and I’ve pushed back on management multiple times when last minute changes were requested and my team would need to work more to fill that request. I put myself in the line of fire and say that I don’t have the capacity in my team to fulfill that without cutting work.
I ask my team to tell me if I ever overstep and they feel uncomfortable saying no when they really want to.
I also encourage all of my employees to interview outside the team/company so they know their worth and understand that they have the ability to leave if they ever feel our power dynamic is being abused and I don’t do anything to fix it.
Leaders can effectively manage teams and deliver on vision without abusing the employer-employee power dynamic. It makes leadership more difficult since you have less flexibility in the capacity of your team (capped at 40 hrs/week and can’t suddenly expand to 80 hrs/week), but it makes for better teams and happier people.
Not sure I've seen many (any?) instances of his abusive behavior being celebrated in my 30 years of following him. Certainly some awe over how scary he was.
I've often thought it amazing that he was as successful as he was despite his terrible behavior.
However, I think it depends a lot on where in his career arc this transition happened. If he had been caught out early on, it could well have kept him from rising. Imagine the Twitter furor if a rising exec got caught cheating his business partner, for example. [1] Of course, it could have gone the other way; his conscious manipulation of his image [2] could have led him to be less abusive, or at least better at concealing it.
But if it came later, once he was head of Apple, I doubt it would have mattered much. He was already notoriously an asshole. [3] People will accept a lot as long as the money keeps rolling in and the asshole seems irreplaceable.
[1] https://www.ibtimes.co.uk/steve-wozniak-cried-jobs-kept-atar...
[2] https://www.cnbc.com/2020/02/06/steve-wozniak-on-steve-jobs-...
[3] E.g., this from 2011. https://www.businessinsider.com/steve-jobs-jerk-2011-10
I think the parent is using #MeToo as a catch-all for intolerance of any alleged abuse of power and cancel culture in general. And as others have mentioned Jeff Bezos and Elon Musk are doing fine, so no Steve Jobs would have probably been fine in the current time.
This is post-hoc revisionist history by people with political motivations.
He was a small fry Dem donor compared to the real money. No idea at all where "feminist" comes from, seems to have no basis in reality.
Maybe you could explain a little more here? I don't think anyone had thought Weinstein was a feminist icon as far as I can tell.
https://www.theguardian.com/film/2019/dec/16/harvey-weinstei...
To be fair, Jobs also didn't have a Twitter account. I don't know why, but that seems to do weird things to people.
There's always someone next in line.
Loved to work with him while he was sane.
I still respect him though.
This is in stark contrast to most of today's companies, where you have front-end engineers who don't know anything about the backend they are interacting with, backend engineers who don't care about the frontend they are serving data to, database engineers who care about neither, etc.
And that's just software. The hardware might as well be a black box for the vast majority of software engineers working at your average software company today.
Where did we go so wrong?
Do you think that engineers designing the plumbing system of the F1 rocket engine knew pretty much anything about "compiler design" or "motherboard design"?
What you are in fact observing is a human system's tendency to adapt to growing complexity. Human systems adapt to growing complexity by specializing it's members to particular skills (see https://en.wikipedia.org/wiki/Cognitive_specialization).
It's just a fact that way back then in the NeXT days, the computer was not as complex, the understanding of which was just about achievable by 1 human. Eventually, that metric exceeds 1.
For the case of the first apple computer, it was ~1 (Wozniak), in the case of Apollo, it was >100.
Cognitive Specialization is an aspect of all living things, but is very apparent in the Human species. Computers got more complex in just the same fashion as how farming went from a farmer, a bull, and a blacksmith, to gigantic conglomerates to make the fertilizer, tractors, watering system, etc., that comprise of >10,000 humans.
The real change was the change in the culture of computer use from original creation to consumption and distribution of certain limited kinds of creation - which are mostly imitative, nostalgic, and either backwards- or (at best) sideways-looking rather than genuinely original.
Real invention is now actively disfavoured. Google did a fair amount in the 00s but has slowly abandoned most of it, Amazon does a bit of blue sky but is mostly focussed on consumerism, Musk's idea of blue sky is straight out of a 1950s Tom Swift novel, and Facebook and Twitter are both hopeless. Netflix is cable TV done right - finally. But it's still cable TV.
There are some exceptions at Apple, which still has a kind of legacy tradition of doing cool new stuff (see also, M1) but even that is a mix of invention for the sake of it and strategic lock-in as a goal.
The result is a landscape full of development geared to comfortable suburban consumerism and associated corporate bureaucracy. There's very little interest in game changing technical development for the sake of it - which was more or less what NeXT was about. And there's even less interest in computing as subversion and empowerment, which was - believe it or not - a big interest in the 70s.
FOSS doesn't change this. (It likes to believe it does, but practically it really doesn't.)
Quantum computing and AI may be on the cusp - but even if they do something interesting they're going to be coopted by ad tech as soon as the paint dries.
So it's not about technical scope so much as imagination failure. The real loss is the loss of imagination - something that tech and media have both done a lot of damage to over the last couple of decades.
If you work at a hardware company, even in a role that's very far from hardware, you become aware of this stuff because it effects you. Even if you don't understand ASIC at all, you still know about, oh, such and such process node has this issue, because it impacted our schedule and somebody told me about it at a lunch table. And you may not even know how to solder, but you can say, oh this needs rework, 0 ohm resistor at point such and such to make the display work, because you need to know it to go to the lab and have the work done.
Really the thing I understood the least working at a company like that was actual productization. You hear about something you worked on a year and a half ago being a tablet, or an embedded device, and you'd be like, oh, that old thing is just being released now? And it's in that form factor? huh.
By getting it right, which saw an explosion in the market, leaving us in a position now where there is more work to be done than the people who understand systems from top to bottom can handle alone. If those pioneering efforts had failed, the tech industry would now be insignificant and those superstars would be struggling to find work, never mind those who have a lesser understanding/care.
This line really interests me. As someone graduating pretty soon - are there tech companies out there that that still have this culture? Everything seems marketing / product focused today. Besides going to graduate school, does anyone here feel like they are at a company like this?
I suppose Bell Labs might feel the same. I have a prof who goes to work there on summers occasionally taking a couple undergrads with him. He is one of the best teachers.
I still have a lot of NeXT swag that was eventually given away and have a color turbo slab gathering dust.
This is true but not entirely.
I have recently for no productive reason become interested in computers built by different nations early in in the computer revolutions.
There was so much competition, so many ideas, so many opperunties.
Anyways I live in Norway now and Norway had a company called Norsk Data that I had never heard of until about a year ago.
They designed their own hardware, and operating system. For a while they made a "super computer"
Some highlights: The NORD-5, the world's first 32-bit minicomputer - beating the VAX, often claimed to be first - by 6 years
ND-570/CX, was at the time it was released 32-bit supermini ads i 1983, 7.1 Whetstone MIPS
Their greatest claim to fame aside from what listed above but closely related, they delivered the computers for the CERN colder back when that was starting up.
They also delivered computers to help create F16 flight simulators.
For a short period of time Norway had best in class computers. I had no idea.
To the relevant part, sorry about the long wait
Norsk Data claims: " The World Wide Web originated when Tim Berners-Lee wrote the ENQUIRE program in Pascal on a Norsk Data NORD-10 running under SINTRAN III at CERN.[4] They also used ND-NOTIS, that was based on SGML, and emailed with NOTIS-MAIL, using tcp/ip, coded in HTML. "
It is partially backed up by https://www.w3.org/People/Raggett/book4/ch02.html#:~:text=19....
I have only seen ND machines in the museum and on the web. I wasn't around at the time so its based on Norwegian documents for the most part.
I do know that there were Nord server used in the Norwegian military up until at least 1995. The ginormous task of creating the replacement system took a very very long time
The very early origins of Norsk Data was at FFI, a defence research agency. (Kinda like (D)Arpa)
Together with Bull, Wang, Datasaab, NCR, and a few more they pretty much defined minicomputers. They dominated the computing space for about a decade. Then they were undercut from the UNIX companies. Which in turn were undercut about a decade later by microcomputers, PC hardware and things like Linux took over.
In their short run, minicomputers were commercially successful and quickly became entrenched and neither their business models nor their expensive hardware could compete with the later generations of computers. All of the above companies went into bankruptcy or were bought out and stripped during the early 90s.
Computing hardware generations seem to get a longer lifespan though as we are still stuck with PC-style hardware. It has managed to evolve as stay relevant, probably in large because of Intel.
>"We lost our custom hardware. The any workstation you want sprints (solaris, hp, alpha) didn’t pan out. The Microsoft tax (later judged monopolistic, too late, as Ray Noorda of Novell confessed to me as had happened to him) killed our PC business. We ditched the OS and ran on Windows. We sold our source code to Sun to make a multiplatform OpenStep. No cigars. (They made Java out of it using many of our/my ideas)
This is interesting. This is the first I've heard about a link between NeXT and Java. Does anyone have any further information about this? I thought James Gosling developed Java from a language called Oak. That's the earliest origin story I've heard until I read this post.
Both have obvious extensive Smalltalk influence.
I feel more now than ever that an Open Source OpenStep (OSOS?) could have been an epically productive relationship for the Mac and Linux communities.
The person behind it seems to still be plugging away. I’d love to see some real inertia behind this kind of effort.
Discovered that Apache Tapestry, which I used a decade ago, was inspired by WebObjects. It was a very interesting fairly seamless backend centric web development experience, worked quite well, & I say this as someone who loves JS, thick client architectures, client side architecture. I didn't see a ton of objects seeming like generic web objects like ideas though. In WebObjects it seems primarily like there were objects, then different bindings to re-expose and/or convey updates between the object & the various front ends it might show up on. I'm probably over glamorizing how shared, how web, objects in WebObjects really were.
I have sought it again a few times but couldn’t find it anymore. Anybody here still remembers?
Man, HN's ability to stay on topic has drastically improved!
Do as I say, not as I do.
Apple is every bit as monopolistic as old Microsoft. They need to be forced to open iOS. They sell generic computers you can't run freely, and they're screwing over small businesses that just want to write and sell software.
Prior to iOS, you distributed your program. Now you go through the gatekeeper, follow mundane rules, and pay absurd tax.
Apple only forces their software on hardware they manufacture themselves. If you want other software, just buy hardware made by a different company. There are still many of them.
So go buy a generic computer that hasn't had Apple's fingers on it. Contrast that to the 90s, when finding a computer without Windows and IE on it was much more difficult. And if you did find one, you'd still pay for a Windows license because that's the kind of deals Microsoft bludgeoned OEMs with.
Prior to iOS, you distributed your program.
And now Apple doesn't allow one to write Android programs? I missed that one.
Your comparison is poor. Starting with the fact that a minority of devices run Apple operating systems.
Apple taught people that apps should only cost $1 and have free updates for life, meanwhile they reaped profits off developers. That isn't healthy, but Apple doesn't care.
I get that you like your Apple device, but this company is destroying our freedoms, making it harder to run a profitable business, and taking advantage of their market position and customer base.
There isn't a lot of room for competition to grow. Their draconian behavior is staunchly anti-ownership. They have a ball and chain around our ankle.
If iPhone had 5-15% market share, you might have a point. But it doesn't. We're running out of freedoms and breathing room. The giants are taking everything away.
Stop worshiping a dumbass phone and the company "protecting you" by taking away everyone's freedoms. It's a stupid little computer - worth far less than our liberty to write code, distribute it, and reuse/upgrade the things we own as we see fit.
Apple has the advantage in that their particular computer is wildly popular and widely used. All it takes is for the DOJ to come and tell them to lighten up - and that's exactly what we need.
[1] https://www.statista.com/statistics/236550/percentage-of-us-...
A big ol' [citation needed] on that one, because from where I stand The Market(tm) taught people that.
Stop worshiping a dumbass phone
You would do well to watch your tone. I'm merely pointing out that the Microsoft of the 90s, who is a convicted monopolist, is nothing like the Apple of 2020 that you're complaining about. Your follow-up doesn't seem to support your point, but rather just further complains about Apple.
Taking a quick glance at my iPad’s Home Screen, I see PCalc, Omnifocus, IA Writer, Overcast, Drafts, Carrot Weather, Soulver, and some more. A mixture of subscription and non-subscription apps. All very high quality and all of which I pay considerably more than one dollar for.
This is not true of Apple, one can build a business and completely ignore them. Google on the other hand, good luck with that.
These days, there is a very, very large class of "potential businesses" that are only realistically realizable as smartphone apps. In my country, iPhones that can only run Apple-approved apps account for over half of the installed base for smartphones, as far as I know.
Making and selling a better smart phone is not as simple as making a better hammer, and there was never such a thing as a hammer that would only work with nails approved by the manufacturer of the hammer you had. This is really a new situation with no pre-tech analogies. We cannot rely on pre-tech laws to cover it. And it's clear that consumers and small businesses are not being protected very well, if at all, from Apple. I should not be forced to be spied on by Apple or Google to park my car, but this is the situation we are in, since there aren't meters in all places in my city, only an app. A lot of supermarkets are developing their own apps for scan + pay, how long before I can pick between Apple and Google when I want to get food? There are more scenarios like this by the day, and in my mind there is no question we will need regulation to address it.
That doesn't really follow. You've gone from "you can't sell software/hardware without Windows compatibility" to "in the Apple half of the mobile market, you can only do native apps with Apple's blessing". Apple, even in the phone space, does not have anything like the utter market dominance that Microsoft had; Android is in fact a real option. Likewise, although it is more limited, you can in fact do webapps even on an iPhone without Apple's approval.