On Jobs’s thoughts on Flash
Yesterday, our favourite black turtleneck-wearing guru published a short essay detailing his Thoughts on Flash, where he details why Adobe’s Flash will never by supported on his iPhones and iPads.
Recommended reading, definitively! It’s just hilarious.
I obviously have to admit that the iPhone, new Macs, etc. have sent Jobs soaring through the stratosphere. Unfortunately, I’m afraid his brain is now lacking oxygen…
Take a look at some of Jobs’s points:
- Open: he’s basically saying “Flash is proprietary, that’s baaaad; we use open standards, we’re gooood”. But can you really call a draft a standard? What good is promoting the use of open “standards” on the web, when you explicitly strip developers from their most elemental rights, i.e. the choice of their development language?
- Reliability: “We also know first hand that Flash is the number one reason Macs crash.” I don’t know whether to be annoyed by such an unlikely statement, or by the fact that it’s the OS crashing even if it’s Flash’s fault…
- Battery life: again, I’m paraphrasing, “if you use Flash, you’ll only get 5 straight hours of video”. Man, he got me there! I’ve always wanted to sit through the extended versions of the three Lord of the Rings movies on my phone!
- Touch: “Flash apps are not touch-ready because of the rollover effect.” So are plenty of plain old HTML + CSS pages that use the :hover behaviour!
- And finally, some bla, bla about using Flash as a development environment for native iPhone applications: he has got to be kidding. Not allowing the developer to chose is a good thing? So what if native applications developed with CS5 do not support everything the platform does? That my crappy decision as the developer to make, not yours!
I’m having more and more trouble reconciling my love for shiny things with rounded corners that, I admit, work wonderfully, with who I really am: a developer who additionally likes to fiddle with whatever I can get my hands on—both profiles apparently loathed by Jobs.
I guess it’s too late to hope for Apple to come out and say that their site was hacked and that the essay is not real. In the meanwhile, my moral compass keeps strangely pointing away from any Apple Store in the vicinity.
PS: Fake Steve has a nice piece on the subject, too.
Plus de C# sur l’iPhone ?
Avec la sortie hier du SDK pour l’iPhone OS 4, Apple surprend les développeurs en modifiant un paragraphe clé dans sa licence d’utilisation. Jusque là le paragraphe 3.3.1. lisait :
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Formulé de cette manière, ce paragraphe empêche simplement les développeurs d’accéder aux fonctionnalités de l’iPhone qui ne sont pas exposées par les APIs publiques, documentées et donc supportées par Apple.
Cependant, le paragraphe en question a été légèrement remanié dans la dernière version de l’accord (je me permets de surligner quelques mots clés) :
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
Il n’est plus question uniquement de fonctionnalités ici, mais carrément du choix du langage de programmation. La liste est claire : si vous souhaitez développer pour l’OS 4, vos applications devront être écrites à l’origine en C, C++, Objective-C ou JavaScript—sinon, passez par une application web (ceci n’est pas dit explicitement, mais il est donc la seule alternative restante).
Que deviendra donc MonoTouch, la solution Novell qui permet d’écrire des applications en C# pour l’iPhone ? Certes, le compilateur MonoTouch génère du code natif à la fin, mais l’application n’a pas été écrite dans l’un des langages autorisés à l’origine et on utilise un outil intermédiaire pour générer l’application. La même question se pose pour le compilateur pour iPhone qui devrait sortir avec Flash Professional CS5 puisqu’il se comporte de manière similaire.
L’arrogance de la société de Cupertino est telle qu’ils n’ont probablement rien à faire de la restriction de liberté totalement infondée pour les développeurs, mais je suis déçu quand même.
Enfin, essayons de voir les choses d’un point de vue positif : un potentiel tremplin pour le développement sur Windows Phone 7 ? ;)
Interview avec Eric Mittelette aux TechDays 09
En février, lors de Microsoft TechDays à Paris, je n’ai pas assisté à une seule conférence (ce n’est pas grave, il y a toujours les webcasts) mais j’ai quand même pu arpenter le salon pendant trois jours pour rencontrer du monde entre autres pour la WebTV de SUPINFO.
J’ai fait, avec d’autres, plein d’interviews pour aborder à peu près tous les sujets : les communications unifiées, les femmes dans l’IT, les communautés, etc. L’épisode TechDays 2009 avait été mis en ligne il y a un moment, mais ma préférée reste quand même celle que j’ai fait d’Eric Mittelette (a.k.a. ericmitt), responsable du groupe pour les les relations techniques avec les développeurs chez Microsoft France. C’est normal, puisqu’on parle développement. C’est pour ça que j’ai récupéré les rushes et je l’ai reprise en entier pour la partager ici.
Je déteste ma voix sur la vidéo, mais j’adore la discussion avec Eric, que je remercie une fois de plus pour les minutes qu’il m’a accordées, même si je sais qu’il était extrêmement occupé pendant la conférence. Je vous laisse regarder :
Enfin, si le “développement vert” ou la “Green Dev Attitude” vous intéresse, voici la conférence Développement d’applications vertes dont parle Eric.
Et comme je sais que la plupart ne voudront pas aller chercher trop loin, voici aussi l’épisode complet de la Web TV:
Azure Labs commandlets on Windows x64
I was doing the Hands on Labs from the Azure SDK the other day and one of them involves a task list that a very handy PowerShell commandlet is supposed to fill.
The problem?
Registering commandlets...
Add-PSSnapin : No Windows PowerShell Snap-ins are available for version 1.
At C:\Users\Madd0\Documents\AzureServicesKit-Feb\Labs\AdvancedSQLDataServices\Assets\SDSSetup.ps1:17 char:13
+ Add-pssnapin <<<< AzureServicesManagement
Now, why wouldn’t there be any snap-ins available for version 1? I can see the dll sitting there and I can only assume that Microsoft released code that works.
Easy!
As many other problems developers face these 32-to-64-bit-transition days, the missing snap-in just needed to be executed in a x86 environment, but I happen to work on Vista x64 (yep, a little masochistic, I know…).
The solution then is simply to open the console called Windows PowerShell (X86) and execute the SDSCreateStorage.cmd command there—don’t forget to run as Administrator.
If my kids turn out like this…
As funny and cute as this little girl talking about Visual Studio 2008 might be, I’d be really, really scared if my kids turned out like this :P (that is, assuming anyone would actually dare have kids with me in the first place).
Oh, and did she actually test the WPF designer and XAML Intellisense? All the rest, I pretty much agree, but I’m really looking forward to better WPF and XAML support in VS 2010 ;)
How do the pros write code?
Find out by taking a look at the source code of the .NET Framework that, as Scott Guthrie announced today, is now available for debugger access from within Visual Studio 2008.
For now, the libraries that are available are:
- .NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, System.Security, System.Text, System.Threading, etc).
- ASP.NET (System.Web, System.Web.Extensions)
- Windows Forms (System.Windows.Forms)
- Windows Presentation Foundation (System.Windows)
- ADO.NET and XML (System.Data and System.Xml)
They are released under a Reference License that basically lets you take a look at the code, but you cannot reuse it for your own projects. You still get access to the full source, including comments, which will hopefully give you a better understanding on how the Framework works. To learn how to configure Visual Studio to download the Framework’s source, that a look at Shawn Burke’s tutorial.
Reading other people’s code is an excellent way of becoming a better programmer, as has been discussed by people such as Scott Hanselman. Reading the .NET Framework’s code is one way to do it, but don’t forget that there’s plenty of code lying around on the Internet; some of it is even open source. Sites like Codeplex or Sourceforge are great places to start.
(Cross-post from Channel 8.)
Microsoft pardonne la mauvaise programmation
cyril nous annonce dans son blog que Microsoft vient à la rescousse des mauvais codeurs dans son dernier système d'exploitation : Windows Vista.
Ceci a l'air d'être une bonne nouvelle, mais, personnellement, je ne suis pas du tout convaincu...
Ne vous trompez pas ! Je suis 100% pour les efforts que fait Microsoft pour faciliter le travail des développeurs (avec le Framework .NET, surtout la version 2.0, par exemple). Par contre, je ne suis pas du tout d'accord avec cet effort pour rendre plus facile la vie des mauvais programmeurs, précisément à cause de tout ce qui est déjà mis en œuvre pour faciliter leur tâche : est-ce vraiment si dur d'utiliser %appsettings% (à peu près n'importe où) ou les Special Folders (en Win32 avec SHGetFolderPath ou en .NET grâce à Environment.GetFolderPath) ?
Je suppose que Microsoft a introduit cette nouvelle "fonctionnalité" (workaround ?) pour les utilisateurs, mais, personnellement, j'aurais préféré des utilisateurs mécontents qui forcent les développeurs à changer, aux mauvais développeurs qui forcent un OS à s'adapter. Parce qu'il faut admettre que celui qui n'a pas le sens commun, sans parler des notions de sécurité de base ou la connaissance de base du système d'exploitation pour lequel il code, pour éviter d'écrire dans Program Files, doit bien être capable de nombre d'autres atrocités que je n'ose même pas imaginer...
Puisque j'ai (pour une fois, et ce grâce à mes élèves) le temps d'écrire, je vous propose une analogie dans le domaine de la médecine :
Des nombreux patients sont allergiques à la pénicilline. Croyez-vous que les laboratoires pharmaceutiques vont dépenser des millions pour concevoir une sorte de pénicilline hypoallergénique parce que le personnel médical n'est pas capable de faire un test avant de faire une injection potentiellement mortelle à un patient ? NON. Les médecins et infirmiers doivent prouver leurs compétences avant d'être autorisés à jouer avec la vie de leurs patients. Peut-être qu'en programmation on devrait faire la même chose...
Compiler pour le Framework 1.1 sous Visual Studio 2005
- Copiez le fichier mis à disposition ici (ou téléchargeable ici) dans le dossier
C:\Program Files\MSBuild\. Appelez-leCrossCompile.CSharp.targets. - Ouvrez le fichier projet (
*.csproj) du projet C# que vous souhaitez compiler pour le Framework 1.1. - Cherchez la balise
Importet remplacez son attributProjectpar :Project="$(MSBuildExtensionsPath)\CrossCompile.CSharp.targets" - Chargez le projet dans Visual Studio 2005.
- Le programme vous affichera un message d'avertissement vous indiquant que le fichier de projet a été modifié. Indiquez que vous souhaitez ouvrir le projet en mode normal.
- Dans le menu déroulant qui affiche 'Any CPU' (à côté du bouton 'Start Debugging') choisissez l'option 'Configuration Manager'.
- Dans la fenêtre qui s'ouvre, sous la colonne 'Platform', choisissez '.NET 1.1' et fermez la fenêtre.
- Pour vérifier que vous compilez bien pour la version 1.1 du Framework, essayez de compiler un projet qui contient des spécificités de la version 2, par exemple:
using System.Collections.Generic, oupublic partial class...
Donec ipsum dui, pharetra viverra gravida cursus, rutrum ac lorem. Cras faucibus
lacus at dui semper mollis eu eu felis.
