I wonder if I can justify a shiny new graphics card under the guise of "research"
Data parallelism for big numerical problems is kind of obvious. I think the next challenge is bringing parallelism to regular business apps. For example, if I have a list of business objects and want to validate them all, or maybe check for changes against a web service, doing a simple "foreach" loop is dumb when I have 2 or more CPUs. Maybe one day we will languages and compilers smart enough to just express "validate all these objects" and have it work out the most efficient way to do it...
Even if the SDK has no source it's managed code, so you can get Reflector in there and have a snoop around
Defered evalution is definately a very interesting subject. The work being done with LINQ is along the same lines. The compiler generates an expression tree that can then be passed around as data and transformed before evaluation.
I wonder if its possible to take expression trees generated by LINQ and transform them into parallelisable computations. I suppose it really comes down to "map" and "reduce" functions in the end. Whilst you are kind of limited to pure arithmetic operations in the GPU, the future of multi-cores certainly could widen the scope.
Of course, I can't talk about abstract syntax trees without once again mentioning syntactic macros It would be interesting to look at using syntactic macros to perform staged computation. I'm sure some of the parallelising of operations can be decided at compile time. That could make for even more performance increases since you can take some weight off the JIT compiler.
Anyway... Awesome work and great video Charles.
BTW: Charles, you need to get a secondary job at MSR being "social glue"! We need to get all these academics down to the bar to mix their ideas.
I dislike weak typing, at least in the form that VB gives us. There are languages that allow types to change at runtime (adding methods, etc) but I never really found the need for that feature. For me type inference is the big winner. Both VB and C# are getting this in next version. It means much simpler code to read and write, whilst still having the safety of the compiler.
I always thought it strange to discard years of advanced compiler and type systems design!
I hope the next version of VB does have the "Dynamic Interface" feature. It provides the best way to program against weakly typed objects. It lets the all your code be strongly typed to the interface, however at runtime you can attempt to cast any object type you want to it. I believe the runtime will then check the validity of the object upfront - so you get fail fast, rather than fail half way through some nasty computation due to mis-spelling a function!
Great video! Erik, you are a legend!
I would love to see Microsoft get more behind some of the .NET languages developed outside of Redmond. Languages like Boo and Nemerle have great features like type inference, duck typing, first class functions, syntactic macros and much more.
The only thing holding these languages back is the lack of tool support i.e. Visual Studio.
Whilst some of the advanced features may be beyond VB Mort's, they allow those in the know to be very productive. The result is better code developed, which in turn can be consumed by the business-level developers.
I personally see Nemerle as a potential successor to C#. It can look and feel just like C#, but allows so much more expressiveness if you want it.
Do all the nice operator overloads still exist in the CCR?
Whilst having a library that is consistent with the BCL is very important, the operator overloads really let you concentrate on only your code. Reducing code noise is an important goal IMHO. Since C# has no syntactic macro capabilities, operator overloads are the only way to abstract away the boiler plate code. (Being a purely additive feature means no has to use them if they like typing lots.)
If I get time I will look at making some syntactic macros for Boo or Nemerle, to make coding against the CCR look awesome
Also, make the CCR available as a separate download - this will certainly increase uptake by the community. (Dare I say make the project shared-source? Seeing the code would hopefully make it easier for people to write their own extensions.)
Keep up the great work!
Kam Vedbrat - How are user expectations changing now that computers are being used longer every day?Jun 06, 2004 at 6:45AMAuto-hide defeats the whole idea of an area where important stuff is always visible.
Kam Vedbrat - How are user expectations changing now that computers are being used longer every day?Jun 05, 2004 at 11:44AM<twoCents>
The whole sidebar idea really is a bit old. Surely anyone can make a right-docked app bar using the SHAppBarMessage() api call?
I really hope MS have something revolutionary up their sleeve in the shell department. One thing I would find useful would be the ability to have different switchable mini-shells that can be customised to the various project I'm working on. So then on each project desktop, I could have all the documents, tasks, common apps, etc related to that project.