About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Home » Learning Curve » Developers Workshop

Visually, in 2019

A matter of taste?

Get It

Try It

TRIESTE (Rixstep) — Someone once said in a podcast that he sometimes wished he'd been born in Britain so he could be a snob about his accent instead. He also revealed that his choice of computing platforms (Apple) was solely 'a matter of taste' - somewhat alarming, considering Apple's 'PC vs Mac' advert campaign.

Of course HD Moore showed him up in the notorious Ellch/Maynor scandal.

And a Drexel degree that leads to a single script that's abandoned is hardly something for a CV.

All true. But there's something to be said for 'taste'.

Visual Studio 2019

Microsoft are poised to unleash their Visual Studio 2019 IDE on the world, Ars Technica reported. There was a time when Microsoft had nothing of the sort. Back when Windows 3.1, the rush job to overtake the market after the unexpected success of Windows 3.0, sold out in a day at Tandy shops across the US, back when Susan Kare, of the original Macintosh team, was making tiny icons for Bill Gates, after finishing her assignment in Redwood City, Microsoft didn't even have a functional compiler.

True, they sold some monstrosity still the same. A massive package that stood three feet tall, weighed 40 kilograms (lots and lots of nice books) but with a compiler that, always run at the command line, would often - but not always - do nothing at all.

It wasn't integrated with Windows. You had to exit Windows to run it. The instruction manual specifically stated:

'When you have compiled and linked your Windows application, relaunch Windows to test it.'

But the compiler and linker almost never worked.

The first two pages right inside the cover of the monthly Microsoft Systems Journal were regularly taken by Borland, who were advertising their own IDE, which was authentically integrated with Windows. They regularly included testimonies from Microsoft users who complained about the Microsoft tools simply not working. At all.

What was later learned, of course, was that Microsoft hadn't used their own compiler and linker to build Windows 3.1, but had purchased a licence from Zortech. (That their own product didn't work didn't stop them from marketing and selling it. Heck no.)

When Microsoft finally found time to work on their own compiler - after purchasing components from Canada, amongst other places - they came out with their first 'Visual' product. Whilst Borland had been offering free workshops (and free raffles) every Friday morning in their modest offices north of Stockholm, Microsoft moved into the huge auditorium in Elektrum in Stockholm's own 'Silicon Valley' (Kista) and cooly sold tickets to a sales event - an all-day event, brunch and lunch included, with an extended sales pitch for ODBC. (Boiled fish with a white sauce was on the menu that day.)

Not many people in the packed auditorium could understand the ODBC dude, who spoke in a thick Indian accent, but he was certainly a jolly chap, and very excited about the product.

Scott Randell otherwise emceed the proceedings. Scott managed the so-called 'Afx' team at Microsoft. They were slowly but surely catching up to Borland, who had surged ahead in a number of fields. Scott's 'Visual Studio' was brand new, and scratchy, but Scott convinced everyone it was 'best of breed'. 'It uses a sane subset of C++', he said, over and over again.

'And it makes for extremely compact code.'

To prove this, Scott showed everyone how many free apps were included, with source, and how few lines of code they took. Someone from our group did a bit of quick multiplication and division, and arrived at a figure of something in excess of one KLOC per application. Scott was trying to impress everyone with how much free code they'd get, but at the same time was trying to blow them over with how compact the code would be. The poor guy stood there, unable to come up with an explanation.

For the afternoon coffee break, we sidled up to Scott, who stood alone on stage like a John Wayne, surveying his kingdom as 600 Swedes filed out for a fralle and coffee. We moved in next to him and watched too.

'Hey Scott. How ya doin.'
'Oh hey guys. How's it goin.'
'Yeah thanks, fine. A question?'
'Yeah fire away.'

Scott never took his eyes off his loyal subjects walking up the ramp to the coffee table right outside.

'Yeah it's this 'Afx' we keep seeing everywhere. What's it stand for?'
'Yeah Afx. What's it stand for?'
'Application. Frameworks. X.'

He said 'X' like 'KSSSS'.

'OK thanks.'

A few moments of silence. (Timing is everything.) No one moves. Scott's still got his eyes on his public. Then:

'Hey Scott.'
'Yeah guys.'
'What's the 'X' stand for?'
'Anything you want, guys. Anything you want.'

Scott and the other Microsofties snuck out between segments to use their AT&T cards in an Elektrum phonebox, to ring home to Bill's people in the 'Mother Ship'. They were expected to report on how things were going, minute for minute.

The new Microsoft compiler actually worked! But it was boring as hell to use. It was actually command-line-based, and where Borland would whirl statistics past you as it built your app (the 'user in control' principle) Microsoft only had a blinking cursor in a terminal window at the bottom of its window. So you weren't about to use Microsoft to develop your apps - only to make the final build. Because their builds were more compact by an order of magnitude.

Compiling... _

Things gradually got a bit better, then worse again, as Microsoft kept trying to compensate for their shitty C++ code, introducing bizarre OTT optimisation schemes. A simple app weighing in at 5 KB cost ten times that much when built as C++.

Microsoft were of course trying to sell their Microsoft Foundation Classes (MFC) which were a simple wrapper around legacy low-level Windows code written in C. Thereof the moniker 'sane subset'. The engineers at Borland went out of their way to not criticise Microsoft too harshly. 'It's quite nice, actually, this one-on-one wrapper idea.'

(Microsoft almost never used the MFC internally, save for one or two demo apps. The sorry thing leaked like a sieve, just like their sockets code.)

Borland also came out with a hysterical 'white paper' that tried to demonstrate that somehow their binaries weren't actually bigger than Microsoft's, even though everyone could see they were. Strange times.

Microsoft finally put the stranglehold on Phillipe Kahn. Borland merged with WordPerfect, another Microsoft victim, then they both disappeared into a number of companies that weren't heard of much after that. 'Pair of Ducks' (Paradox) was gone, Access arrived, and so forth. And Visual Studio kept coming back.

Dave Cutler's presence was felt in the VS camp. Suddenly Microsoft understood that the most compact code was also the fastest (a sort of Al Aho rule) and the binaries got tighter and tighter. Learning where Dave put the real entry points made things tighter still.

Now, so many years on, Microsoft have Visual Studio 2019 ready to climb onto the ramp. Here it is in all its glory.

Of course tastes may vary (smaken som baken, as they say) but that screenshot is butt-ugly. For so many reasons.

√ It's difficult to remember that it was Susan Kare who led Microsoft into the world of icons. She worked under even more constrained limitations on the Macintosh. Here she originally had a palette of 14 colours to play with. But even so. What looked pretty good in the early 1990s is not going to look good thirty years later. And yet there they are, with graphics from the 1990s.

√ Putting shortcuts on the top-level menu items is just so dumb and ugly. Yes it's cool that the top level can be activated by the keyboard, but still and all - it's dumb and ugly.

√ The pane on the left is called 'Solution Explorer'? This is a kindergarten tool?

√ The icons for document types are... Not to forget when Microsoft by default hid ALL file extensions, so project listings would show myriad files with the same name, and the only way to distinguish them - to know which one to click on - was by guessing the meaning of a 16x16 icon. Feeling the agony of course delegates stuck in such an environment, programmers who don't know better to turn extensions ON, who instead struggle and waste precious time and cerebral activity fumbling around the VS GUI...

√ Is that still the Marlett font in the upper right hand corner? For Windows 95, to speed non-client rendering up, Microsoft opted for a font to draw their window-control images for minimise, maximise, close. A font. Sure looks the same today.

√ And what's down the right edge? What is it? The mind boggles.

The goal of any IDE - for those who use them - is to make work easier. It's hard to see how Visual Studio makes anything easier. Save for the befuddled neophyte who doesn't understand anything anyway. Then it's cool - like the debugger!

We'd always start our classes by explaining the benefits and shortcomings of the environment the students were about to use. Teacher and class have to be on the same page, and there has to be 100% honesty and 100% trust. You can't do that with Visual Studio of today.

There's just too much going on. And that's not going to help the user - it's only going to distract, slow things down. It's been said that Cocoa development can be up to five times faster than development on other platforms. This can be part of the reason.

And oh - are we showing invisible white space characters on the right? Why?

And what's with the header area on the right pane? Is that another 'tab' area? Why have filenames there if they're already listed in the source tree on the left? (Who designed this?)

There's even more junk at the bottom. And the crowning achievement has to be in the far left at the bottom, where it says:


Perhaps most cringeworthy of all is the menu attached to what should be only a document window. The waste in computer resources and user inefficiency is incalculable.

Yet, strangely enough, one could in fact deal with this environment. But it'd be a pain in the gut, and one would revert to the command line whenever possible.

A Matter of Taste?

The effect of that Visual Studio screenshot was that we fired up Apple's Xcode 10 and created a new 'dummy' project as a means of comparison. Here it is.

This is a project we called 'Visual Studio 2019'. The pane in the middle is open to the project's 'storyboard'. Five project files are already in place: AppDelegate.h, AppDelegate.m. ViewController.h, ViewController.m, and main.m. main.m usually just provides the code that hooks into the framework initialisation.

What's immediately apparent from the above screenshot is that things are clean and tidy. There's no confusing overabundance of user interface gadgets. It's easy to get around in there.

Xcode is admittedly a monster today, a far cry from the NeXT Project Builder of old. And Xcode went through any number of revisions that were not all that great. But this is what Xcode is like today. And what a difference.

The code parser is nigh-on brilliant. Just open any of your source files, wait a moment, and watch the comments creep in from the right. Xcode can tell you when method calls contain possibly incompatible parameters, can effectively parse your code before you compile it. Visual Studio may have such a feature today, and that'd be good. Xcode has the feature, and it's a sine qua non.

It's necessary, for any accomplished craftsman, to first clear the workspace before beginning. Chefs call it mise en place. You need an orderly environment. The quality of your work is affected.

You may not like every aspect of Xcode, or you may love it, but, in the worst of all possible cases, be thankful: just look again at the competition.

Or perhaps it's only a matter of taste?

See Also
Ars: Visual Studio 2019

About Rixstep

Stockholm/London-based Rixstep are a constellation of programmers and support staff from Radsoft Laboratories who tired of Windows vulnerabilities, Linux driver issues, and cursing x86 hardware all day long. Rixstep have many years of experience behind their efforts, with teaching and consulting credentials from the likes of British Aerospace, General Electric, Lockheed Martin, Lloyds TSB, SAAB Defence Systems, British Broadcasting Corporation, Barclays Bank, IBM, Microsoft, and Sony/Ericsson.

Rixstep and Radsoft products are or have been in use by Sweden's Royal Mail, Sony/Ericsson, the US Department of Defense, the offices of the US Supreme Court, the Government of Western Australia, the German Federal Police, Verizon Wireless, Los Alamos National Laboratory, Microsoft Corporation, the New York Times, Apple Inc, Oxford University, and hundreds of research institutes around the globe. See here.

All Content and Software Copyright © Rixstep. All Rights Reserved.

John Cattelin
Media Contact
ACP/Xfile licences
About | ACP | Buy | Industry Watch | Learning Curve | News | Products | Search | Substack
Copyright © Rixstep. All rights reserved.