Steve Jobs Introduces WebObjects [video] (1996)
channel9.msdn.com
channel9.msdn.com
The approach: in 3-4 concluding slides, concisely reiterate key selling points, compatibility, price, and the availability timeline. I've always found this approach to be particularly effective -- I'm highly likely to unambiguously remember these most important bits given that they are presented last.
It is impressive to me since I am having hard time to let go my little hobby projects and start another one, while he is doing it on much higher level with the same passion. Respect on that.
I think Jobs' response was more about disarming the perceived courtesy. While polite to ask Jobs about what he was doing with NeXT in 1995, the highlight of his career (and general interest) would be with Apple and to a lesser degree, Pixar.
Kind of like talking to a rock legend about their latest album, when most people care about their breakout period.
He's the world's greatest used car salesman.
The one visual that sticks out to me in this video: the silhouettes of people arriving mid-speech and leaving early.
In early '96 having a RAD MVC web framework backed by an ORM was really pretty groundbreaking (even moving codebases relatively seamlessly between an OpenStep desktop app and WO was possible), though yeah, this was Jobs going after the Enterprise audience rather than consumer electronics, very different vibe.
http://www.kevra.org/TheBestOfNext/ThirdPartyProducts/ThirdP...
Found this story about the first time Steve Jobs moved from using physical slides to Concurrence running on a NeXT http://www.nextcomputers.org/NeXTfiles/Articles/NeXTWORLD/92...
Yep! https://en.wikipedia.org/wiki/Enterprise_Objects_Framework
Apparently it provided the basis for Core Data, too.
And yes it is the basis of Core Data.
Q: How can I, as a developer, get my hands on the expensive software suite?
A: Come talk to us. We can accommodate developers who are willing.
This may have been some early input for him to think about sdks and the philosophy of providing developers with tools early on.
Q: What is your view of transactions on the web?
A: We don't think it's a technology problem. It's more of a social/business problem
He was clearly wrong on this one, with the advent of cutting edge technology companies like PayPal and Stripe that followed.
Transactions on the web exist, there are improvements to the UI but it is a social problem (I am afraid of my credit card being stolen) and business problem (Don't worry, trust us we won't let anything bad happen to your credit card).
This is a guy who built three operating systems and countless revolutionary apps under his watch. Many of which given the constraints back in the day would've been incredibly complex.
By comparison web transactions IS trivial.
No, he was right. In 1996 people were just scared of using their cards online. No one big was doing it yet, consumers didn't trust anything about the end-to-end process. There are more risks now than there were then, if anything (given how many trojans and hackers there are targeting cards now), but people are used to it now.
Paypal didn't bring any particularly new technology, they just bought confidence and bigness.
Steve mentions that it took about 3 weeks with 3 programmers to build this app. The tools & technologies have evolved and today we can build this kind of thing with a tiny fraction of this effort...
To me that's the kind of thing that really matters after all: evolving technology & tools, not the "10x programmer myth", or those "how to be more productive" tutorials. The tech evolution has a much bigger impact on productivity than those individual productivity recipees.
These are traits not found in the average or even median programmer.
I also think that the 10x thing is more to do over the longer term (rather than "look at what I bashed out in 2 hours"). I probably don't code as quickly as I used to, but I am a lot more thorough, and having made plenty of crappy mistakes designing my code in the past, I am in a far better position to know what will make my code robust, and maintainable time a month or two down the line.
These profound factors keep me working everyday, although I haven't made my millions yet. There was an article about Nokia or Ericsson around early 2000, saying that people tend to overestimate the impact of technology in short term but underestimate in long run. It's the case.
The timing of this video is funny because soon after he went back to Apple to recapture the glory which is consumer electronics.
In 1996 it appeared NT was going to conquer the IT workstation desktops.
NeXT was also going multi-platform with OpenStep.
The professor had his Cube disconnected on his office, piled with other stuff. No one believed NeXT would survive.
And, surprisingly, now every Mac is, essentially, a NeXT.
s/Sadly/Gladly/
There's something gloriously simple and effective about the page-is-a-page metaphor. Solid, unambiguous URLs that do what they say on the tin. It's not the "old" way, it's the native way.How about a URL that unambiguously specifies the state of all parts of the page? Paste that in a browser and it pulls up the page with all its dynamic parts set as before.
Obviously "tiny" changes can be performed with client side code without breaking the page-is-a-page metaphor. Look at Facebook -- a good example of an extremely mature application where the page-is-a-page metaphor remains fully intact.
And of course not all websites fit the metaphor, in which case you obviously should not use it.
This has nothing to do with looking cool. Your server generated dynamic full page can look great. Didn't you see Steve Jobs's Dodge site? This has to do with user experience, in particular performance. The problem with Steve's site is that a slight change in search criteria resulted in a two second full page refresh. It made me want to shop for a Ford.
Sure their are cases where full page refresh is fine. Shopping isn't one of them. Reading a news story that spans 10 pages isn't one of them. Most of what I use the internet for isn't one of them.
And then there are web applications. Without partial page refresh these feel like shopping for a Dodge in 1996.
I use Ghostery to block a lot of tracking JS. This includes things like FB stuff. The number of sites that break because a call to "FB.init" throws an exception is astonishing.
It's ridiculous how quickly people (by which I mean developers) have forgotten the concepts of graceful degradation and progressive enhancement.
There are very few use cases where a web application simply cannot function without javascript.
Looking at options today, I feel like a kid in a candy store.
It moved from Objective-C to Java under Apple. Apple discontinued shipping it with OS X Server Snow Leopard, but the frameworks are still available/free. The community picked up where Apple left off with the open source Project WOnder.
It is a full stack development framework. Enterprise Objects Framework(EOF) is the ORM or Model layer like Cayenne or Hibernate. WebObject components are the front end View layer like you might get from Tapestry.
I have yet to find a web framework that rivals its Controller layer, DirectToWeb (D2W). D2W sits between the Model and the View. It can generate Views automatically using information from the model and with customizable direction from a rule system. It also provides controller actions with customizable callbacks.
Out of the box, WebObjects can reverse engineer your database, constructing a full model of it, and D2W can then construct a full blown Create/Read/Update/Delete interface to it with no coding required. If you don't have a database, you build a model and WebObjects can generate the SQL necessary to create the database for you as well.
It's still pretty amazing, despite being treated like an ugly step child by Apple. It still powers the billion dollar iTunes store as well AFAIK.
The developer community is small, but very active. Every year they hold a "World of Web Objects (WOWO)" conference right around WWDC in San Fran.
Project Wonder has done amazing work to bring Ajax and many other "Web 2.0" features to WO.
It does still power the iTunes store, and the Apple Store. A friend of mine that worked at our sister company landed a job with Apple working on the iTunes store, and AFAIK, he's still there doing that today.
Project Wonder was definitely at the core of iTunes Store. They had your typical monolithic web application and used most of the WebObjects technologies.
The Apple Store was different. They had dozens/hundreds of micro services which used WebObjects only in the front i.e. to handle request/response and routing. They may have even switched it out by now.
I've always wanted to work for Apple... care to share any thoughts?
And it's perfectly, utterly awful.
WO also had the added benefit of being a full-stack solution. The way the J2EE spec was built up of sub-specs really contributed to the fragmented Java framework universe. Developers then had to get used to spending think-time reasoning about the way the pieces and "tiers" fit together and less time building coherent apps.
Yes, I'm aware of that, hence stating 'There was some weird 90s conversion of abbreviations to acronyms' in the comment you're replying to.
But then I've never heard it pronounced, only ever read it. So maybe "Olay" was the normal pronunciation.
It was.
I assume you also say SQL as 'ess que ell' as opposed to 'sequel.' Probably a generational thing.
But this is because I learned SQL from reading about it, not going to conferences.
SQL: "ess kyoo el"
T-SQL: "tee-sequel"
PL/SQL: "pee el ess kyoo el"
SQLite: "sequelite"
SQL Server: "sequel server"
MySQL: "my ess kyoo el"
PostgreSQL "Postgres"http://patorjk.com/blog/2012/01/26/pronouncing-sql-s-q-l-or-...
http://support.microsoft.com/kb/257757
"We don't recommend or support it but because you want to do it anyway, here's what to consider to make it work less badly"
There were frameworks before it that offered similar functionality, but since the web was growing up only a few developers got to see them.
Somehow the OpenStep efforts got sidestep by making Oak into Java and everything else got ramped down.
I wonder how it would have been if Sun had kept with OpenStep instead.
And it is an awesome framework.
ReactJs is going the same kind of components based thing these days. Nothing so new, except for where the component is running...
As continuations are quite memory heavy, the new way allows for lighter sessions.
While I don't have personal experience, from what I've read, IE on Mac was a fair bit different from IE on Windows. IE 5 for Mac, released in 2000, used something called the Tasman engine: http://en.wikipedia.org/wiki/Tasman_%28layout_engine%29
> At the time of its release, Tasman was seen as the layout engine with the best support for web standards such as HTML and CSS.
Also from http://en.wikipedia.org/wiki/Internet_Explorer_for_Mac#Inter...:
> The Macintosh Edition introduced a new rendering engine called Tasman that was designed to be more compliant with emerging W3C standards such as HTML 4.0, CSS Level 1, DOM Level 1, and ECMAScript.
I vaguely recall reading somewhere that back while IE for Windows was giving web developers prematurely grey hair, IE for Mac was a much nicer browser and much more comfortable to support as a development target. I think it ended up getting less time/thought/effort from Microsoft eventually. Also, Safari was released in 2003 (beta in January, default browser in OS X 10.3 Panther, in October).
For a while sadly it really was the best web browser for mac.
Tangentially related: https://twitter.com/GregB/status/27244912213
"> @spolsky: Digg: 200MM page views, 500 servers. Stack Overflow: 60MM page views, 5 servers. What am I missing? << That's the PHP factor"
I learned never ever again to use interpreted languages for anything else other than shell scripting.