At this point, there is still a lot of development happening in "native" languages. Additionally, there are projects in motion to turn bytecode from environments like Java and Python into native code.
One of the reasons a lot of people are seeing this seemingly massive movement is because of the technologies these "non-native" solutions leverage. Take both Java and.Net - the support libraries are huge and designed to (more or less) work together.
All of that said, I'm a bit sick of either having to put up with the limitations of some of the languages that end up as native code or distributing some runtime environment with my app that immediately gives my users an impression of my product. For that reason, I've started to use D - http://blogs.itoperations.com.au/chris/software/la nguages/language-choice-is-a-compromise/. If you can't be bothered reading my convoluted blog (there's more coming on the subject, along with a project release in coming weeks), go on over to the language's home - http://www.digitialmars.com/d/index.html. It has the vast majority of C++'s features (and more), Java/C#-style syntax and ease whilst compiling to native code.
As I've already posted (http://blogs.itoperations.com.au/chris/general/mi crosofts-fueling-of-the-fud/), this is only part of a bigger issue. Microsoft have a history of trying out new technologies designed to restrict end users' activities. The XBox, Office's activation requirements and so on.
We've already had a number of clients who all paid for Windows XP Pro licences coming to us to fix WGA's insistance that their copy isn't genuine. This is another part of the problem - some of our clients don't see why they should pay us to fix the problem, whilst others don't see the implications this sort of "update" has for their privacy.
Although it probably amazes most people to know this, our good friends at Google actively use VRML. Thanks to Microsoft's lack of support for transparent PNG rendering in IE 6 (and Google obviously needing to support it), Google leverages IE's VRML support to get the job done.
With the level of 3D experience users have come to expect with modern applications and hardware, it's a big ask for anyone to create a 3D environment of a comparable standard using VRML.
I had a think about this earlier in the day, and realised that the privacy concerns are possibly quite secondary to what the WGA tool's behaviour could lead to. Effectively, this could become a test case for more invasive measures from our friends at Microsoft in the name of revenue protection and customer service.
It further highlights the fact that EULAs are rarely read by most people, and even less frequently understood. Effectively, I sum up my thoughts here: http://blogs.itoperations.com.au/chris/general/mic rosofts-fueling-of-the-fud/
Internally, Exchange 2003 is known as "Exchange 11".
Also, look at the progression of Windows releases:
Windows 3.1
Windows 95
Windows 2000
Windows XP
They thought that 11 (and a whole bunch of other numbers) weren't worth bothering with!
It's been known for a very long time that context-free grammars simply lack the power to correctly model natural language.
That said, the vast majority of computational linguists use context-free grammars in their work. To get even fairly close to human-like performance, questions about tagging, word-sense disambiguation and state come in to play.
Seriously though, why not simply learn to use a language properly before you publish anything? English isn't really that bad - it lacks the extremely deep nesting of clauses that is often present in other languages.
The marketting material and packaging for WordPerfect formerly made a good case for this - they featured an image of a hand holding an expensive pen, writing the old-fashioned way.
If this study is anything to go by, it looks like spam authors everywhere have not only continued to ignore RFCs, but they're also relying on Word to check their gumpf for coherrency.
Why do all scanner programs look like they've been written by some 4 year old from Taiwan? All of them - Lexmark, Epson, Canon - they all use stupid bitmap buttons and non-standard widgets (like Adobe).
I've seen a lot of software along those lines that looks like stuff authored for Windows 3.1. There are a lot of really bad hardware vendor apps out there!
I use GAIM under Windows - the difference between the way it draws widgets and the way XP does it natively is easily visible. Additionally, the rate it refreshes at after becoming partially visible due to moving another window gives it away.
wxWidgets is limited in a lot of ways. With an API as clunky as theirs is (speaking solely about the C++ binding), I'm surprised people use it (speaking solely about C++ apps). Macros and manual numbering of widgets isn't present in most modern GUI toolkits for a reason - it's terrible for productivity!
I also am fed up with the spacer/sizer methods in wxWidgets, the way Qt does it seems so much better (but aren't they the same?!)
I remember something called a 'Matrix Sizer' being mentioned with regard to wxWidgets. It fixed a lot of problems that the normal sizers experienced (like widgets getting stupidly big if placed in the same column of a much larger widget when they should clearly stay the same size).
On Windows XP and better, the wimp theme engine for GTK will draw using the native theme painting system.
Really? Got a link? The performance of GTK on Windows is visibly slow though. The fact that it works on Windows is excellent, but a lot of users I know can pick out GTK-based apps as taking longer to redraw.
Funny you should mention that "cheap ass" Adobe program - it's built with Qt!
Skinnable widgets is one thing - but drawing them yourself when the OS can do it for you doesn't seem to fit as well as it could with an application being 'native'. Qt apps on Windows look like Windows apps, so the time has obviously been spent on figuring out how to draw widgets in the same way XP does, and I shudder to think how long that took!
Unfortunately, Qt still has one shortcoming - it draws it's widgets itself on Windows (as does GTK+, BTW).
The only multi-platform toolkit that doesn't do this is wxWidgets. That said, wxWidgets has a horrible API, with macros everywhere and the need to use #ifdefs for many platform differences (ugh...)
At this point, there is still a lot of development happening in "native" languages. Additionally, there are projects in motion to turn bytecode from environments like Java and Python into native code. One of the reasons a lot of people are seeing this seemingly massive movement is because of the technologies these "non-native" solutions leverage. Take both Java and .Net - the support libraries are huge and designed to (more or less) work together.
All of that said, I'm a bit sick of either having to put up with the limitations of some of the languages that end up as native code or distributing some runtime environment with my app that immediately gives my users an impression of my product. For that reason, I've started to use D - http://blogs.itoperations.com.au/chris/software/la nguages/language-choice-is-a-compromise/. If you can't be bothered reading my convoluted blog (there's more coming on the subject, along with a project release in coming weeks), go on over to the language's home - http://www.digitialmars.com/d/index.html. It has the vast majority of C++'s features (and more), Java/C#-style syntax and ease whilst compiling to native code.
As I've already posted (http://blogs.itoperations.com.au/chris/general/mi crosofts-fueling-of-the-fud/), this is only part of a bigger issue. Microsoft have a history of trying out new technologies designed to restrict end users' activities. The XBox, Office's activation requirements and so on.
We've already had a number of clients who all paid for Windows XP Pro licences coming to us to fix WGA's insistance that their copy isn't genuine. This is another part of the problem - some of our clients don't see why they should pay us to fix the problem, whilst others don't see the implications this sort of "update" has for their privacy.
Although it probably amazes most people to know this, our good friends at Google actively use VRML. Thanks to Microsoft's lack of support for transparent PNG rendering in IE 6 (and Google obviously needing to support it), Google leverages IE's VRML support to get the job done. With the level of 3D experience users have come to expect with modern applications and hardware, it's a big ask for anyone to create a 3D environment of a comparable standard using VRML.
I had a think about this earlier in the day, and realised that the privacy concerns are possibly quite secondary to what the WGA tool's behaviour could lead to. Effectively, this could become a test case for more invasive measures from our friends at Microsoft in the name of revenue protection and customer service. It further highlights the fact that EULAs are rarely read by most people, and even less frequently understood. Effectively, I sum up my thoughts here: http://blogs.itoperations.com.au/chris/general/mic rosofts-fueling-of-the-fud/
Internally, Exchange 2003 is known as "Exchange 11". Also, look at the progression of Windows releases: Windows 3.1 Windows 95 Windows 2000 Windows XP They thought that 11 (and a whole bunch of other numbers) weren't worth bothering with!
Errr...Windows XP ships with IE6. Which idiot specified that you need IE5 or higher?
It's been known for a very long time that context-free grammars simply lack the power to correctly model natural language. That said, the vast majority of computational linguists use context-free grammars in their work. To get even fairly close to human-like performance, questions about tagging, word-sense disambiguation and state come in to play. Seriously though, why not simply learn to use a language properly before you publish anything? English isn't really that bad - it lacks the extremely deep nesting of clauses that is often present in other languages. The marketting material and packaging for WordPerfect formerly made a good case for this - they featured an image of a hand holding an expensive pen, writing the old-fashioned way. If this study is anything to go by, it looks like spam authors everywhere have not only continued to ignore RFCs, but they're also relying on Word to check their gumpf for coherrency.
I've seen a lot of software along those lines that looks like stuff authored for Windows 3.1. There are a lot of really bad hardware vendor apps out there!
I use GAIM under Windows - the difference between the way it draws widgets and the way XP does it natively is easily visible. Additionally, the rate it refreshes at after becoming partially visible due to moving another window gives it away.
wxWidgets is limited in a lot of ways. With an API as clunky as theirs is (speaking solely about the C++ binding), I'm surprised people use it (speaking solely about C++ apps). Macros and manual numbering of widgets isn't present in most modern GUI toolkits for a reason - it's terrible for productivity!
I also am fed up with the spacer/sizer methods in wxWidgets, the way Qt does it seems so much better (but aren't they the same?!)
I remember something called a 'Matrix Sizer' being mentioned with regard to wxWidgets. It fixed a lot of problems that the normal sizers experienced (like widgets getting stupidly big if placed in the same column of a much larger widget when they should clearly stay the same size).
Really? Got a link? The performance of GTK on Windows is visibly slow though. The fact that it works on Windows is excellent, but a lot of users I know can pick out GTK-based apps as taking longer to redraw.
Funny you should mention that "cheap ass" Adobe program - it's built with Qt! Skinnable widgets is one thing - but drawing them yourself when the OS can do it for you doesn't seem to fit as well as it could with an application being 'native'. Qt apps on Windows look like Windows apps, so the time has obviously been spent on figuring out how to draw widgets in the same way XP does, and I shudder to think how long that took!
Unfortunately, Qt still has one shortcoming - it draws it's widgets itself on Windows (as does GTK+, BTW). The only multi-platform toolkit that doesn't do this is wxWidgets. That said, wxWidgets has a horrible API, with macros everywhere and the need to use #ifdefs for many platform differences (ugh...)