Category Archives: adobe

Miguel de Icaza on eight years of Mono, its future, and the Silverlight desktop

Mono founder Miguel de Icaza spoke at the Monospace conference – 250 enthusiasts in Austin, Texas – on the past and future of the project. I wasn’t there but enjoyed listening to the keynote as posted by Redmonk’s Michael Coté.

“Never ask for permission, ask for forgiveness – that’s how we’ve done a lot of things in the Mono world,” said de Icaza, who also remarked that in the beginning “we thought it would be a walk in the park, we thought it would up and running in 6 months.” His motivation: “We think that .net is a fantastic development platform – we were envious when Microsoft came out with it.”

Eight years on and the Mono team is now around 35 people at Novell, plus 30-70 external contributors. “We don’t dictate the direction of mono, it’s mandated by the direction of the community,” says de Icaza. He talks about MonoDevelop, the Mono IDE, which is now licensed under LGPL allowing commercial plug-ins; about MonoTouch which lets you develop for Apple’s iPhone and “will expand towards Android”; and about XNATouch, a Mono game framework for iPhone.

The task of keeping up with Microsoft – insofar as Mono succeeds – has become easier thanks to open source. “In the last couple of years Microsoft has become very open-source friendly in some areas,” says de Icaza. “For example ASP.NET MVC, we don’t have to do anything, it just runs on our ASP.NET implementation.”

Someone asked about Mono’s plans for WPF, which is becoming more important on Windows, and this led to some intriguing comments on Moonlight/Silverlight and its future. “I think Silverlight has more potential than WPF has, because it runs on the Mac, it runs on Linux, it runs on Windows, and Silverlight is easier to learn than WPF is. We like the Silverlight model but we don’t like that it is limited to a sandbox on the browser,” he said.

“Moonlight can be used in two modes. One of them is moonlight in the plug-in, like you do with Microsoft, and you can out-of-browser if you want, but you are still restricted by the sandbox. We also offer the same graphical engine that we use for Silverlight [Moonlight] but with the .NET 4.0 APIs. You have full access to .NET 4.0 with the Silverlight UI. Isn’t that awesome?”

“WPF is interesting but a lot of work, and we don’t have the bandwidth and the resources. Our best possible option is to use Silverlight with the .NET 4.0 APIs. Our wish is to bring this expanded Silverlight to Windows and Mac OS. Maybe we’ll gently push Microsoft in that direction.”

One of his team is working on “the whole desktop rendered by Silverlight.”

In general I agree that Silverlight is more significant than WPF, particularly if Microsoft keeps up its current energetic level of development. I will be surprised if we don’t hear from Microsoft about an enhanced desktop Silverlight at the forthcoming PDC and Mix conferences.

There is another side to this though: if you can do your cross-platform .NET development in Microsoft Silverlight, do you still need Mono? Particularly if official ports to Linux start appearing?

Of course there is more to Mono than Moonlight. Running ASP.NET on Linux web servers is an attractive proposition, though historically its performance and reliability hasn’t matched that of Microsoft .NET – not surprising given its relatively small resources. Eight years on, and Mono has done more than just survived, yet has not quite tipped over into a platform popular enough to attract the level of contributions it needs.

WPF not Windows Forms gets the Windows 7 love

Microsoft’s Scott Guthrie has a blog post today about what’s new in Windows Presentation Foundation 4, and one of the things he mentions is Windows 7 multitouch support – as also described in this walkthrough – and integration with the Windows 7 taskbar, jump lists, icon overlays and so on. Taskbar support is wrapped in the System.Windows.Shell namespace in PresentationFramework.dll.

This means that Microsoft is making it easy for .NET developers to support Windows 7 in WPF applications. However it is not extending the same love to developers using Windows Forms, the older GUI framework. That said, there is always the Windows API Code Pack which covers many Windows 7 features including the taskbar and jump lists, or you can do your own COM and native code interop. No doubt with a bit of effort all the features can be be integrated into a Windows Forms application.

Still, there’s no doubt that Microsoft is now steering us towards WPF rather than Windows Forms for new desktop development. About time, you may say, considering that WPF first arrived in 2006. While that’s true, there have been good reasons to be cautious about adoption. WPF apps use more resources than Windows Forms applications, require the .NET Framework 3.0 or higher, and for a long time were talked down even by Microsoft as unsuitable for line of business applications.

That tune has now changed, though when you consider the large numbers of existing Windows Forms applications, and the fact that developers contemplating radical revisions or new projects may well be looking at web or rich internet clients, WPF is still something of a hard sell.

On the other hand, the improvements Guthrie describes are significant, not only for Windows 7 features, but also key areas like cached composition for graphics, which can greatly improve performance, and a new text rendering API.

It’s also worth noting that Windows Forms was never a great framework. It wraps the old Windows GUI API which makes resizable layouts and scaling for different display resolutions difficult, as well as lacking all the multimedia and effects goodness in WPF. Another factor is that WPF is designer friendly, with its own Expression Blend design tool. Windows Forms has nothing like that.

WPF has a family connection to Silverlight, which was originally called WPF Everywhere. Microsoft’s idea is that we code in WPF for the desktop, and transition to Silverlight for applications that require broad reach. So far though, mass migration to WPF has not happened, and Silverlight has an independent life as a platform for browser-hosted .NET applications that work cross-platform. Developers have many other choices for broad reach applications, including HTML and JavaScript, Java, and Adobe Flash.

Is it possible that broad adoption for Windows 7 could see renewed interest in WPF and Windows development? I think it will happen to a limited degree, but will not really disrupt the underlying trend towards web and cross-platform.

Salesforce.com partners with Adobe for Flash Builder for Force.com

Adobe and Salesforce.com have announced Flash Builder for Force.com, a special version of Flash Builder that lets you create Flex applications that interact with Force.com web services. The preview will be available for download today from developerforce.

I asked Dave Gruber from Adobe and Eric Stahl from salesforce.com what is really new here, since force.com has always exposed a SOAP web service API, and Flash Builder has the ability to import WSDL service descriptions in order to call them. In addition, a Force.com Toolkit for Adobe AIR and Flex has been available for some time.

Gruber explained that there is now a “custom interface to the Force API” that reduces the amount of code you have to write to wrap these services. In addition – and this may be more significant – some parts of LiveCycle Data Services have been integrated into the Force.com platform, including the data synchronisation piece. The illustration above shows an AIR application with a Sync tab, and this is the kind of online/offline application that should now be easier to build.

“We have a lot of customers asking us for that desktop connected, disconnected scenario. We want to give people a great set of tools for building those kind of apps,” says Stahl.

According to Gruber, Flex developers who want to take advantage of the new framework will have to purchase Flash Builder for Force.com even if they already have Adobe Flash Builder. “It’s a unique offering, this is not going to be built into the standard Flash Builder product”, he told me.

Salesforce.com has toolkits for many client platforms, but offering a custom IDE for Flex demonstrates a significant partnership. “Adobe is clearly the leader in rich internet applications, it’s a synergistic relationship,” says Stahl.

Web advertising goes outside: digital signage using force.com and Media RSS

In the last 10 years or so video advertising screens have replaced static posters in busy public places like the London Underground. This is known in the trade as digital signage or Digital Out of Home (DOOH) advertising; and I was interested to speak to a company at the recent Salesforce.com Service Cloud 2 launch which is running digital signage systems on the Salesforce force.com platform. The company is signagelive, run by http://www.remotemedia.co.uk/, and and its secret sauce is to use the internet and commodity technology to run 10,000 displays around the world cheaply and efficiently. As I understood it from my brief conversation, a force.com application provides customers with dashboard for managing their screens, usable from any web browser. Content is served to the screens over the Internet using Media RSS. This is well suited to the purpose since it is easy for customers to update, and fail-safe in that if the system fails or the connection breaks, screens just carry on displaying the last version of the feed which they retrieved. Since Media RSS is a standard, the content can also feed desktop applications; and of course it doesn’t have to be advertising though often it is.

A sinagelive display could be a low-powered network-connected device attached to a display; or a display alone with enough intelligence to retrieve a Media RSS feed and display its images; what you can do in the home with something like a estarling connected photo frame or a PhotoVu wireless digital picture frame but with bigger displays. The company is looking forward to displays which include on-chip Adobe Flash players since this will enable animation and video to be included with little extra cost. The media itself is currently stored on company servers, but is likely to move to Amazon S3 in future – which makes sense for scalability, pay as you go, and for taking advantage of Amazon’s global network, reducing latency.

If you want to see an example, apparently the London Dockland Light Railway screens are driven by signagelive; they are also in Harrods.

CEO Jason Cremlins has a blog post about the future of DOOH. My further thought is that if you had devices able to run Flash applications, you could put this together with touch screens and add interactivity to the mix.

The boundaries between internet and non-internet advertising are blurring. Ad networks such as those run by Google can be extended to networks using this kind of technology in a blink. Why shouldn’t advertisers be able to select airport lounges or underground stations alongside Adsense for websites?

The less compelling aspect of the technology is that as the costs of running these advertising networks come down, the likelihood of intrusive advertising screens invading every possible public space increases.

I also found this interesting as an innovative use of the Salesforce platform. As I recall, it hooks into other force.com applications to handle billing, customer record management and so on, and shows the potential for Salesforce to move beyond CRM. With the Adobe Flash aspect as well this example brings together a number of themes that I’ve been mulling over and I enjoyed hearing about it.

Blast from the past: how Adobe praised XAML at PDC 2003

I’ve been trawling back through material from Microsoft’s Professional Developer’s Conference in 2003 for a piece that will be posted shortly. I believe that the vision that was presented at PDC 2003, and how it fell apart, sheds a lot of light on why Windows is as it is today.

In doing so I came across this snippet about Adobe’s participation in the PDC keynote. It’s still online in Microsoft’s PDC press release:

Adobe Systems, a leading developer of software for consumers, creative professionals and enterprises, demonstrated the possibilities for ISVs created by integrating the new "Avalon" presentation technology and declarative programming techniques for Windows. Using these technologies, a prototype version of Adobe After Effects showed how developers could unify documents, cutting-edge graphics and media. For example, developers would now be able to build animated charts and graphs that are linked to back-end data sources to produce a smart solution that displays stock prices, sales and other information within a high-end professionally designed format.

"Many developers have not taken the visual design of their applications seriously enough, with the most innovative work restricted to creative professional software and games," said Greg Gilley, vice president of Graphics Applications Development at Adobe. "Longhorns new Avalon technology brings the designer and developer closer, so they can truly collaborate on creating software applications that are as beautiful as they are functional."

The odd thing is, this quote could come from the Adobe MAX 2009 conference from which I have just returned. “Animated charts and graphs … linked to back-end data sources” is what we saw in applications build with Mosaic, Adobe’s new framework for LiveCycle ES2 clients.

The difference: Adobe is doing all this with Flex and MXML, not XAML, and the client platform is the Flash runtime, not Avalon running on Windows.

Gilley of course was speaking before Adobe’s acquisition of Macromedia (and Flash and MXML) in 2005. Furthermore, nobody at PDC in 2003 could have guessed how long it would take Microsoft to deliver XAML.

Technorati Tags: ,,

IntelliJ IDEA goes free and open source

Yesterday JetBrains announced that its core product, the IDEA IDE for Java, is becoming open source under the Apache 2.0 license. There will be a free Community Edition and a commercial edition with more features. This list of additional features not in the free edition is rather extensive, including UML class diagrams, code coverage, Android support, JSP debugging, JavaScript debugging, support for other languages such as Ruby, SQL, HTML, JavaScript, ActionScript, PHP, support for additional version control systems including Team Foundation Server, ClearCase and Perforce, and above all specific support for frameworks and technologies including Rails, Spring, EJB, Tomcat, JBoss and WebSphere, and even Adobe AIR.

In other words, the free part is the core IDE plus a few features; the commercial edition adds a lot of value for most users.

CEO Sergey Dimitriev remarks:

Open source has become the mainstream, and we continue to embrace it as an exciting challenge. In brief, we’re not changing direction — we’re moving forward.

IDEA is an excellent and popular IDE and last time I looked I found it more productive and enjoyable to use than its obvious alternative, Eclipse. I imagine that IntelliJ is hoping to strengthen the community and availability of add-ons for IDEA, as well as attracting new users.

Although this is welcome news – and I’d encourage any Java developer to try the product – it would be interesting to know more about why JebBrains is taking this step. Borland’s JBuilder was once highly successful, until the free Eclipse offering eroded its market share. Seeing how important the add-on community was in Eclipse, Borland belatedly issued a free JBuilder and sought to make it an alternative IDE platform for third parties, but by then it was too late. JBuilder was discontinued and a new product of the same name appeared in its place, built on Eclipse; it is still available but is now a niche product. I’ve not got any up-to-date figures but I’d expect JBuilder’s market share to be tiny now.

Unlike JBuilder, IDEA has remained popular despite Eclipse. Comments on stackoverflow, for example, show how well liked it is:

Eclipse was the first IDE to move me off of XEmacs. However, when my employer offered to buy me a Intellij IDEA license if I wanted one it only took 3 days with an evaluation copy to convince me to go for it.

It seems like so many small things are just nicer.

The problem is that the free Eclipse, or free NetBeans, or free Oracle JDeveloper, are good enough to get your work done, making it hard to compete; and I am not sure whether the addition of free IntelliJ IDEA to the list is a sign of strength or weakness.

My guess is that serious users will still want the commercial edition with its many additional features, so this may not be as radical a step as it first appears.

From Flash to Qt: different tech, same themes

I’m at the Qt Developer Days in Munich, hearing the latest from Nokia on its cross-platform GUI framework. Qt was originally developed by Trolltech, a company acquired by Nokia, and the Qt folk here still call themselves trolls.

So what are the trolls up to? Coming straight from the Adobe MAX conference last week, I’ve been interested to find that many of the themes are the same: mobile, hybrid web/local applications, and even designer/developer workflow.

The obvious difference is that Qt is a C++ framework and most of the developers I’ve spoken to here use Linux and C++, both rare skills at an Adobe event. Still, it seems that may be changing. “Wouldn’t be good if designers and developers could work on the same project?” said Matthias Ettrich,as he introduced QML, a declarative UI language for Qt. Now where have I heard that before?

An interesting feature of QML is that it supports Javascript as well as layout and state definition; in fact, QML definitions are really Javascript expressions. This means you can program entire applications in QML, though you can also use it purely to define the visual part, and code the rest of your application in C++. A QML layout looks like any other Qt widget to your C++ code.

But let’s get back to the idea of coding purely in Javascript. Ettrich explained how this would enable designers to add logic and state management to applications, without needing C++ skills. QML projects live in Qt Creator, the same IDE commonly used for C++ Qt applications. This echoes how Adobe presents Flash Catalyst, the new “interaction designer” for the Flash platform. Another parallel is that we saw at MAX how Catalyst can be used to create entire applications, provided that they are simple in nature.

It strikes me that QML has the potential to open up Qt to a much wider developer audience, one that never wants to touch C++. It is also amenable to visual design tools, and for those C++ developers who are not 100% averse to such things it is likely to prove popular.

The Sneak Peeks at Adobe MAX 09

I was looking for a list of the Sneak Peeks shown at last week’s Adobe MAX conference in Los Angeles. I couldn’t find one quickly, so here is mine. Note that these are billed as experimental features that may never ship.

Thin client gaming: this is a kind of application virtualisation. We saw a 3D game that was rendered on the server, and streamed as video to a variety of clients. The clients send keystrokes back to the server enabling the users to control the game. Processing graphics on the server could enable effects that would otherwise require a more powerful graphics processor than would typically be available on a small device, as well as reducing the local install footprint to near zero.

Physics engine in Flash: Very interesting demo showing how you might apply physics effects to objects in the Flash designer. Instead of tracing an animation path, you set parameters that say in effect “behave as if dropped” or “behave as if thrown”. Great for games; if you wanted to code a pinball machine (as shown in the demo), for example, this would save a lot of mathematics.

Smart Paste: a cool demo showing how you might be able to paste content from vector graphics designers (like Adobe Illustrator) into an HTML web page, using the HTML 5 Canvas element and preserving scalability. The intermediate format is FXG, an XML format for Flash Platform graphics interchange. We were shown how the vector graphics could be bound to data from Excel to create a chart. The best bit was when we saw a Flash animation exported to JavaScript and HTML using this technique. Flash export to HTML from Adobe?

Flex mobile framework: Ely Greenfield showed a demo of Slider, a version of the Flex SDK optimised for mobile devices. Despite this being a Sneak Peek, there’s little doubt that this will ship.

Project ROME: an AIR application (20,000 lines of code) for graphic design, with a context-sensitive designer, text flow between containers, the ability to import Photoshop art, video embedding, and output including SWF, PDF, JPG, SVG. ROME also runs in the browser as a web application. This is interesting if you envisage a time when applications now part of Creative Suite could be implemented as web apps. See this on YouTube.

Developer cloud: Develop client and server parts of an application in an integrated manner and with the same programming language, with smooth debugging between the two. Demo of server-side ActionScript. Microsoft platform developers already enjoy something like this with C# or VB.NET in combined Silverlight and ASP.NET projects in Visual Studio 2008.

Fireworks hierarchical undo: This demo didn’t actually work, but it is a great idea. The problem with Undo is that it is linear. Therefore, if you do some bad work, and then some good work, you have to undo the good to undo the bad (if you see what I mean). This feature would let you undo selectively instead.

Pause and resume development: Also known as Edit and Continue, this lets you make changes to Flex code while paused during a debug session. Another one Microsoft developers already enjoy.

Photoshop intelligent hole-filling: this one got loud whoops of applause. The idea is that you take an image which includes an unwanted object – like a pretty view spoilt by an electricity pylon – select the object and ask for it to disappear, intelligently replaced by parts of the rest of the image. The demo worked fairly well; the image below shows how a group of water buffalo were disappeared from a photo. Now you will trust digital images even less.

That’s it; if I’ve missed something, let me know!

Adobe’s chameleon Flash shows its enterprise colours

Duane Nickull is Senior Technical Evangelist at Adobe and co-author of Web 2.0 Architectures which I reviewed recently. He is also Duane Chaos of grunge band 22nd Century and entertained us at the Adobe MAX party last night in Los Angeles.

Duane Chaos at Adobe MAX bash in LA

It’s appropriate that he works for Adobe, whose Flash runtime has parallel chameleon characteristics. Most of the time it is delivering annoying ads, games or silly videos; but it also turns up as a flexible cross-platform client runtime for Enterprise applications.

We saw this demonstrated yesterday in an excellent session on scaling Flex for a large trading application, given by the developers of Morgan Stanley’s Matrix application about which I have written before. This session was far more informative than the earlier online briefing, and a fascinating case study in how to create Enterprise-grade software.

Matrix was built by a team of around 30 Flex developers, over a period of between 18 months and two years. It uses a REST-based service layer which talks to a variety of Java and .NET back-end servers – we didn’t hear much about these – and delivering XML to the Flex client. The team did not use the Flash-optimised AMF protocol because the app uses Lightstreamer which did not support it at the time, though we were told that AMF would be advantageous and may be used in future. LiveCycle Data Services were ruled out because of lack of support for edge server deployment; again, this has apparently been fixed in the latest LiveCycle so migrating in that direction is possible.

Matrix uses the Cairngorm 3 architecture, which specifies best-practice design patterns for Flex, implemented using the Parsley Application Framework. The application is modular, and we heard a lot about how rigorous module encapsulation makes a large application like this – 600,000 lines of Flex code – manageable, reliable, flexible and testable. One module cannot access the implementation details of another, and a message bus handles communication.

I was also impressed by the attention given to performance. Another advantage of using modules is that they are loaded on demand, reducing the load time and memory footprint. Each module is profiled separately. The team also found that a big factor in Flex performance is efficiency in managing redraw regions – apparently Flash can easily be sloppy about this and redraw regions that have not actually changed. The team patched the UIMovieClip component to overcome problems in this area.

A model-view-controller architecture is used for the user interface, and this enables better testability. The team uses continuous integration to maintain quality.

According to the session presenters, the result is an application that has the high performance required of a financial trading application, and can run for extended periods without issues.

Although I had the impression that developing Matrix has been bleeding edge at times, with the team using beta software to get access to new features, there was also evidence that Adobe was responding to issues and using this as an opportunity to improve its platform.

This makes a great case study for those sceptical about whether the Flash runtime is really capable of powering Enterprise clients, or for any Flex developer.

Adobe hoping to marginalise Flash-free iPhone

We got a few more clues about Adobe’s iPhone problem at a press conference today with Chief Technology Officer Kevin Lynch. There is no doubt about the importance Adobe attaches to the device. “Flash needs to get there in order to stay relevant on the web”, says Lynch, though there was some ambiguity about whether he meant the iPhone specifically, or the mobile web in general.

Yesterday’s announcement of Applications for iPhone, a feature of the forthcoming Creative Suite 5, solves a problem for developers wanting to port Flash applications to iPhone apps for Apple’s App Store, but does nothing for Flash content in web pages. Here’s the page you get if you follow a “Get Flash” link using an iPhone:

Note Adobe’s slightly more aggressive wording in the latest version of this page: “Until Apple eliminates these restrictions, Adobe cannot provide Flash Player for the iPhone.”

So what if Apple continues to refuse Flash – something which some users would actually welcome? Lynch made reference to the number of hot new Smartphones now appearing, including Palm Pre, Android phones, Windows Mobile 6.5 phones, and Nokia’s latest devices. He then referenced the early history of the PC, when Apple was first to market with a mouse-driven GUI but lost out to Windows in the mass market, and suggested that history might repeat itself, as these new devices incorporate many of the features for which the iPhone is popular.

The implication is that if Apple continues to be Flash-free it might lose market share to others; and that this might happen anyway thanks to the iPhone’s premium price and closed platform.

This may be wishful thinking. Closed or not, Apple has built up impressive third-party support for the iPhone and it will be hard to tempt existing users away.

Still, in the absence of any other possible strategy, it’s a reasonable one to try. We will not know the impact of having the full Flash player on Smartphones for a while yet, but if it successful, more of Apple’s customers will ask for Flash to be supported.

Technorati Tags: ,,,