| Mauro 的个人资料Taming the Jungle照片日志列表 | 帮助 |
|
2月28日 PPTs for my Exceptions talk in LondonHere are the slides of my presentation on exceptions called “Exceptions: The Good, The Bad and the Ugly” that I did in London on Feb 28th:
The interview with Andes Hejlsberg is in another blog entry.
2月23日 Google desktop hackedThis document describes an attack against Google Desktop:
Interesting quote: “Enables a malicious individual to achieve not only remote, persistent access to sensitive data, but full system control as well“.
I didn’t check the paper claims, but it looks scary. I see this as a warning not only to Google users but to developers of browser plug-ins and this sort of applications. 2月22日 Open Source ideologue gives up on Red Hat LinuxEric S. Raymond, a famous Open Source ideologue and author of the famous book ”The Cathedral and the Bazar” gave up using Had Rat’s Fedora.
The striking part is that he complains about many “managerial” issues that I have been pointing in several articles in the last years.
Some of the issues pointed:
He goes on: “In retrospect, I should probably have cut my losses years ago.”
Of course he will not start using Windows or Machintosh anytime soon. His end comments were somewhat enigmatic: “The culture of the project's core group has become steadily more unhealthy, more inward-looking, more insistent on narrow "free software" ideological purity, and more disconnected from the technical and evangelical challenges that must be met to make Linux a world-changing success that liberates a majority of computer users.” Check the full comment on http://enterprise.linux.com/article.pl?sid=07/02/21/1340237. 2月20日 Interview with Anders HejlsbergThis is an exclusive interview done during the 2001 PDC in Los Angeles. Re-edited in October, 2003.
MauroYou’re officially the father of C# but it seems that your role was well beyond that on the .NET Framework. Could you comment on that? AndersSure. It’s probably not fair [to say] that I am the father of C#, it would be like I created all of it and it’s certainly not the case. I was the Chief Designer and I was the guy that decided when the group could not agree in one way or the other, but there were several people involved, there were many contributors. I have done other things on the Framework, I see my job as sort of taking a broader look at all the technologies, making sure that all of them sort of fit together at a higher level. Yes, I’ve been involved with C#, but I’ve also done some architecting on the framework. Actually right now that’s the team I’m on – officially at least – taking care of the Windows Forms and the base class library and so forth. MauroTalking about Windows Forms, it seems that Microsoft didn’t put a lot of effort on Windows Forms, I mean all of the marketing materials and the product itself does not put an emphasis on Windows Forms. Is it changing now? AndersI think it’s just sort of a function of what gets reported on the press. Web Services is a whole new way of looking at the world and therefore you know other features of the runtime tend to get underreported if you will, but that doesn’t mean that we haven’t put any emphasis on it. It has always been a design goal to have a tool for building smart clients. From day one we aim to sort of merge the experience that you have when you program in VB with the experience you get from MFC and C++. The notion of being able to do everything RAD, visual design, component composition but also the ability to use sub classing and polymorphism, that sort of Object Oriented metaphor to build your apps. Windows Forms is really sort of a marriage of those two worlds; it’s been on the drawing board from day one. MauroI spoke with Don Box from Develop Mentor and he told me that Windows Forms will be used like Macromedia Flash and just that.
[Editor’s Note: Don is now at Microsoft – One wonders if he still thinks that way. He blogs here] AndersI disagree, I mean I think it will be used like that, but it will [also] be used to build smart clients applications. That would be like saying that VB6 will be used like Macromedia Flash. No, it will be used to build a whole line of enterprise applications, no doubt about it. There are a lot of thinks that you can accomplish with the browser and there are a lot of things that you can accomplish much better with rich clients like data entry systems, etc. You know, a browser is just not good for point of sale experience. MauroMost of the examples of the MSDN site and probably all of the books don’t use Visual Studio, they use Notepad and not the code behind thing as if they were regular ASP pages. How can you reconcile this? AndersThe good news here is that you can have a choice; you don’t have to use Visual Studio. We don’t lock you in Visual Studio. I think that Visual Studio is an incredibly productive tool but as you saw in my demo during the keynote, because the system is so simple, there are a lot of things you can do without having the help of a RAD tool. Now, once your project gets larger you’re probably much better off having nice things like “Intellisense”, the class browser, statement completion to get your job done quicker.
[Editor’s Note: Free tools such as Web Matrix have closed the gap] MauroSome groups are porting it to other platforms like Corel, like Mono. How do you see this? AndersWe certainly engineered the framework to be portable to other processors and other architectures and platforms. You will see a lot of talk here at the conference on the .NET Compact Framework, which is about putting .NET on smaller devices. We also trough ECMA have standardized the Common Language Infrastructure and certainly a lot of partners in the standardization group have clearly said that they are intending to implement the Common Language Infrastructure to other platforms. MauroHow will the language evolve? There are talks about generics, but what else can you say? AndersWell, certainly Generics is something that we actually sort of committed to doing in public. We currently have a working prototype that was done by Microsoft Research implementing Generics both in the runtime and in C# language. There are a bunch of other language extensions that we are looking at. I don’t really want to speculate about them now, but we certainly have some interesting features that have been requested by costumers and so forth. Certainly C# will definitely evolve over time, no doubt about it.
[Editor’s Note: Support for “generics” and more are already announced here] MauroLet me ask you a somewhat personal question. I could not figure out the reason behind the “try/catch/finally” block, why to have try/catch and try/finally in the same block? AndersOh, why would you want a try, a catch and then a finally? Well, it’s interesting. We originally had them as different constructs and people kept asking “can we have catch and finally all in one” [laughs]. Ok, fine. I mean, I think it’s exceedingly rare that you would have both at the same [time] but it is possible, the syntax nicely allows. It actually came up several times. The first time I heard I would go “Why don’t use one or the other and it came again and again…” MauroPascal has the very interesting concept of sets. Why is there no set in the .NET Framework? AndersThe problem with it is that Pascal has the concept but most languages don’t have the concept. We would be demanding that every language that you can think of implemented on .NET has to have extensions to support sets. That would make a lot of languages implementers unhappy, like C, C++, C# that doesn’t have this construct. Now the reason that it’s not there, the reason that C sort of got away without is the ability in C to manually give values to enums, so you can use hex values that set each bit in increasing order and then OR and AND them together, then you get the notion of sets, so to speak. It’s not as type safe as sets, but it’s a cost-benefit thing. Pascal is the only language I know that actually has that concept, it would be just impossible for us to mandate the other languages go and add it. MauroThere are many characteristics in C# that are claimed to have a better performance than Java, for instance the use of structs instead of classes. Can you quantify that, how much faster it would be? AndersIt’s hard to quantify because it really all depends on the kind of application you are writing. There’s no doubt though that there’s performance benefits from having what I call “bridging the gap” between primitive types and classes, so to speak. In Java there’s really sort of a conceptually a gap there. If you want to do anything in terms of extending the types you have to write a full-blown class that has a VTable, virtual methods, blah, blah, blah; it’s heavy weight. We have structs that fit neatly in the whole and then further more we have the ability to create, because of operator overloading in C#, people can create entirely new data types, for instance for the SQL types. I feel that it’s definitely a very worthwhile feature. I am particularly happy with the marriage between the type system, the unification, the boxing and unboxing that allow you to view value types as reference types, it’s really, really useful. MauroVB.NET is very similar semantically to C#. How will Microsoft differentiate the two of them? AndersI think you have to look at what we are doing here; we’re giving people the ability to leverage their existing skills. There are a lot of people out there that have a lot of experience of programming in Visual Basic and VB.NET is a like a completely natural evolution for them. It allows them to get on the .NET platform with a minimum of fuss, with maximum leverage of their existing investment. Likewise for C++ programmers, you can stay in managed C++, you don’t have to switch. Clearly our users have voiced a need for a more productive C-like programming language and C# [is that language]. I think it’s really mostly on what people are more comfortable with. I hesitate to voice directional statements because I think language is in many ways sort of a lifestyle choice, people get very angry when it comes to their choice of language they feel empowered in that language and I think there’s no reason to [force changes]. MauroHow did you first got involved in the software business? AndersThis goes all the way back to high school. I was born and grew up in Denmark; I was in one of the first high schools there to have a computer that students could access, an HP 2100. 32 K of ferrite core memory, a 14 inch one megabyte hard drive [laughs]. It was great, I mean it was wonderful. In the beginning the teachers were teaching the students and then the students ended up teaching the teachers how that machine worked. We took it apart and it totally became my hobby. Then I was involved in starting a small retail computer store in Copenhagen and that grew into several retail stores and a software distribution company and also a royalty contract with Borland where they were selling Turbo Pascal. MauroSo you actually had a business in Denmark while Borland was selling Turbo Pascal? AndersYes, in fact our business was licensing Turbo Pascal to Borland. MauroHow did you have the idea of writing Turbo Pascal, how did that came? AndersI guess it started of writing for the Z-80 8-bit processor. I wrote a bunch of stuff on assembly language and then I wrote an assembler, then a dissasembler, and a little operating system etc etc and then I wrote some extensions to Microsoft ROM BASIC - there was a hook you could hook into and add features like auto renumbering and whatever, new statements. But then I’ve been taught ALGOL. I always had sort of a leaning to that family of languages and there was this new thing called Pascal, so the idea was born to create a small Pascal compiler. Eventually it was actually created for that Z-80 board computer and you would take out your 12-k ROM BASIC and put our ROM instead and when you booted the machine you would sit on a nice little on-screen editor where you could write your Pascal code. It was just like Turbo Pascal but it was a subset of Pascal where you could compile to memory or you could compile to cassette tape [laughs] so for large programs there was not room for the output so you had to compile to cassette tape then reload that back in. But it was fun and that basically improved into a full-blown CP/M implementation and then a 16-bit implementation and that became Turbo Pascal. MauroSo you spend a couple of years in your own company before joining Borland? How did that come? AndersWell, it quickly became evident that this Borland thing was much bigger than we ever thought it would be. It evolved in being all that I did was essentially software development and eventually it just made more sense for me to swap my share of that company and the royalty contract for shares in Borland and then join the company formally. MauroI heard Philippe Kahn saying that the first press event for Turbo Pascal was held at a McDonald’s in Las Vegas. Were you in that event? Anders[laughs] I was not. I didn’t actually meet Philippe until nine months after they started selling Turbo Pascal in US. Borland was originally founded by Danes and Phillippe didn’t enter the picture until about a year after Borland was founded when he incorporated Borland in the US. But Philippe was always good for stories [laughs]. MauroTurbo Pascal and Delphi were huge successes in Brazil. I think Turbo Pascal is still used as an entry-level language at colleges and Delphi is widely used. It’s the second most used language in Brazil, after VB. What would be your message for all those Turbo Pascal and Delphi programmers? AndersI think that’s great, I am very proud of those tools; I still think they are incredibly productive tools. I must say I think Turbo Pascal is probably a little outdated [laughs] but certainly Delphi has been amazing to see what a strong and vibrant community and how loyal they have been to that product. It never ceases to surprise me; it has certainly always been a pleasure. MauroMost of the independent software companies seem to be leaving the tool field, they are being supplanted by suppliers of platforms or leaving the field altogether like Symantec. Do you think an independent software company can live when some companies are giving away their tools?
[Editor’s Note: Rational was still independent at that time…] AndersCertainly companies like Borland are still around, when you look at all the different languages that have been implemented on the .NET Framework there’s still certainly a lot of them that seems to be doing quite well.
[Editor’s Note: Borland announced a version of Delphi for the .NET Framework] MauroMicrosoft has been pushing the C# message for a long time. Now there’s J#. Isn’t it confusing? AndersJ# is about providing our costumers of Java and JFC a migration path to the .NET Framework, which I think it’s important. I’ve been not personally involved in the development of J# MauroWas it developed in India? AndersYes, Microsoft has a R&D organization in India. MauroSome people in the C academic community don’t like the idea of operator overloading. Some people call it “synthetic poison”, not only “synthetic sugar”… AndersI don’t think there is a black and white on this. I think we did the right thing on leaving operator overloading in C#. If you take a closer look in the way we did operator overloading, it’s actually streamlined some from C++. One of the things that operator overloading in C# is further enhancing the function programming model In C++ you can use operator results to mutate the state of the object you are working on. There are funny ways of abusing the left shift and the right shift with input and output. MauroWhen you return a reference? AndersYes, then you operate on it. I think it borders on abuse. I think that the real good use for operator overloading is to use X + Y to actually returns the sum of X and Y. That’s a very meaningful operation for ints and floats and it’s equally meaningful for decimal or to TimeSpans when you add together or DateTime plus a TimeSpan. There are good uses for values and there could be abuses. MauroThere is going to be less abuse… AndersI think there’s going to be less abuse, but it’s all in the discipline, you can write good code and you can write bad code. MauroCan C# and the .NET Framework be used to write real time kind of software and games or you will have to use legacy technology like DirectX? AndersYou can use DirectX from C#. You can import the COM type library of DirectX. Over time there’s no doubt that you will see APIs on that nature become managed APIs.
[Editor’s Note: There’s now a Managed DirectX API] MauroSome people are advocating the use of pointers to have better performance instead of arrays. Is that a good use of this capability? AndersWell, it all depends. I think that if you’re in a situation when you need to interoperate with some unmanaged APIs, to do some it twiddling to some memory mapped device then pointers might be good. Otherwise I don’t think they are worth the effort. The code that you write like that you will not be able to download and execute in a browser MauroIn VB it’s very easy to call COM objects using late biding but in C# you must use reflection. Do you plan to have some capability like that in C#? AndersThat’s something we are looking at. I always had mixed feelings about late biding: no type safety, no compile time errors. The errors you would see at compile time you see at runtime and that may bee too late so I wouldn’t want to further that discipline with individuals. On the other hand I can see that there are good uses to that. MauroIt seems that you invented quite a few things like the IDE, this event mechanism, boxing. What would be the three things you cherish most? Anders[laughs] I am not sure that invented necessarily all of those things, you know, there are no new ideas just old ideas that are used in new ways. MauroYou are certainly an accomplished man and a wealthy person. What are you challenges now? AndersRaising my son. That’s a challenge because I know nothing about. About the interviewerMauro (mas_mauro@hotmail.com) has 20+ years experience on software development and 10+ years at training and consulting. He has spoken at several conferences like Borland International Conference, COMDEX, DevDays and PDC (Brazil). He writes for several sites and magazines including international MSDN sites and Visual Studio Magazine. He is also a Microsoft Regional Director , MVP and INETA Speaker.
Copyright © 2001-2003 by Mauro Sant’Anna – All rights reserved No part can be used without prior authorization
If you want to go to Las VegasMicrosoft will do two simultaneous events in Las Vegas on April/May.
One is “MIX” (http://www.visitmix.com/), April 30th – May 2nd. The first edition was last year. The idea was to attract people that don’t usually go to Microsoft shows like PDC and TechEd, especially the “Web Designer” crowd. From the feedback I got last year it seems that it worked.
The other one is the “Mobile and Embedded DevCon – MEDC (https://www.medc2007.com/public/), May 1-3. This is an “old” conference and targets of course mobile/devices.
Both are to take place at the Venetian hotel. You can attend the two for a discount and the big parties are on different days. I wish I had more time and money at hand because it looks like an interesting and fun week. I haven’t been to Las Vegas since COMDEX; now some of the old hotels (Sands, Dunes, Alladin, Landmark) were simply torn down to make way to new ones like the Venetian. 2月7日 My GrokTalk is onlineDuring TechEd 2005 I did a 10-minute presentation in Exceptions as part of a series of “Grok Talks”, sponsored by Microsoft’s Regional Director program.
After being online and off-line, it has now found two “homes”: http://www.groktalk.net/: All the Grok Talks, each one of them in a different subject http://www.youtube.com/watch?v=yvuWBpZbEU0: SolidQualityLearnin’s You Tube channel, shared by other mentors. 2月4日 Shady Ventures IISome months ago I mentioned that some companies have strange business models. By “strange” I meant “If I were doing that I would go to jail”: http://maurosjungle.spaces.live.com/blog/cns!F3CEB0849B03B6CC!134.entry.
Now I am ready to comment on a newcomer (or not, if you consider that they are part of Google now): Youtube.
This is the idea: you upload the video of your daughter’s first birthday or something else. Anybody can then watch the video and Youtube profits by pasting adds all around her birthday cake. Or my own video during PDC 2005’s Grok Talk at http://www.youtube.com/watch?v=yvuWBpZbEU0. Sounds reasonable.
As it turns out, with a few exceptions such as the famous Daniela Cicarelli’s “sex on the beach” clip, people still prefer to watch professionally produced stuff, those whiners. Take for instance the Rosie O'Donnell interview for “The View”, at http://www.youtube.com/watch?v=vzl9ubSyZ7o with more than 475000 views. So people upload copyrighted material left and right and Youtube profits by placing adds all around it. Of course, Youtube swears that this is a violation of their policy; the user is a bad user, bla, bla, bla. But since they still profit from the adds, it’s reasonable to think that they are not very diligent in removing stuff- hey, they don’t even screen the 60000 or so videos uploaded each day. Indeed, the clearly copyrighted Rosie O'Donnell interview mentioned above was uploaded on Dec 21st. On Feb 2nd the largest IT news outlet, CNET, mentioned it at http://news.com.com/Does+YouTube+have+a+control+problem/2100-1030_3-6156025.html?tag=nefd.top. As of Feb 8th it was still there, with a few tens of thousands more views generated by the very article that “denounced” it! There are “legit” models to show and watch professionally produced videos. For instance, CNN after struggling to get people to pay a subscription to watch videos, gave up and simply put them up for free with an add in the beginning. As for Youtube, I am very curious as to what is going to happen. Viacom, the big media conglomerate, doen't seem to be happy about the situation. UPDATE: Today is Feb 22nd and the video mentioned above has finally been removed.
Things don’t look terribly good for Google, read this: Old Media Getting Around Google: 2月2日 My book published by Microsoft Press USAI wrote together with other mentors at SolidQualityLearning a book on SQL Server as part of the “step-by-step” series by Microsoft Press called “SQL Server 2005: Database Essentials”. I wrote about how to call programming objects (Functions, Stored procedures, both using T-SQL and CRL).
Microsoft Press doesn’t have the policy of crediting several authors as other publishers do, so the author is “SolidQualityLearning”. But on page “xix” you can read the name of the authors. The book is listed on Amazon at http://www.amazon.com/Microsoft-SQL-Server-2005-Essentials/dp/0735622078. Beware that the “Look Inside” as of January 29th 2007 belongs to another book. |
|
|