I'll accept that. I grew up programming in Pascal and BASIC, turned to C/C++ and loved it through college and my first 8 years of my software development career, dabbled in Java for a year - and then found PHP. For the last 5 years I have been programming in the language of my choice - PHP - and loving it. It's quick, it's easy, it's powerful. I find it just as easy to write a web server (Yes you can write a web server in PHP - the networking and forking functions are great - I've even successfully written apps that use COM to manipulate Excel) as it is to write a web app.
Maybe my past experience allows me to write structured code without having the language force me to write structured code. Maybe my ideas of OO is backwards - I look at data as "black data" and functions "just handle it" rather than forcing the programmer to know what the data is in a strictly typed language (C++/Java).
If you *want* to handle memory allocation - yeah - C/C++ is for you. But when you do that you're solving programming problems. You're not solving the customers problems. When you're a software developer you should be developing solutions for your customers - not solutions for the language you're developing in.
Are there issues with PHP? Of course. Is it THE language to use? Only if you know it and it fits the problem you're trying to solve.
The between the lines story here is that this is Ballmer's baby. With Gates taking a lessor role, this is Ballmer's first OS release that was developed fully under his direction as CEO. This IS about Gates stepping down, and it IS about Vista.
It personifies everything that he is: Big, loud, full of baggage, and out of control.
Look. I love OpenSource. And OO is a fair substitute. But come - on - MS Office is the standard that everyone is trying to **match** much less **beat**. Sure - you LaTeX guru's love your power... But for the rest of us mortals who a fast-action GUI MS-Office is the only choice - if you're fortunate enough to work in a place that provides it, or you've got the funds to purchase it. (** Hint- watch for student and developer editions for significant cost savings **)
On the flip side - my household will not be purchasing another copy of Office anytime soon. If cost is part of the equation, then OO is the only choice for a fully integrated office suite.
If your monitor is old, or your contrast is low, the light pink disappears. while the "Sponsored link" does appear, it's not clear if it's specific to the top three searches are the just the first one.
Google used to only have the adds in the right hand gutter. That was long before they went public and their corporate philosophy was "Do No Evil".
Everything on the Google search results is done with purpose - including choosing the lightest color they can get away with and being as sneaky without being flat out misleading. If you give it any thought - no of course it's not misleading. But if you are performing any one of the multi-hundred-million searches that Google serves up a day, chances are that you are not giving it much thought.
Google knows that you'll click before you think.
Now, is this "illegal"? Well that's for the courts to decide. When you become the defacto utility (yes that's right - they are a quasi utility) the general public relies on at large, you have the (mis)fortune of playing be different rules. You have tremendous power - but you must use your power wisely. We in the United States - which Google is based in and there-fore must follow the rules - have opted to limit monopolistic powers. When a company has 80% of the market they are a monopoly.
That's because Red Voters don't know what they're voting for. They hear the word "democrat" and they instantly shutout everything that follows and replace it with whatever Rush Limbaugh is spouting that day.
It's always seemed ironic to me that the poorest voters in the nation support the party that favors the wealthiest.
Individual freedoms? Most red-necker don't want government telling them what to do... Yet when they hear "democrat" they think "limited gun access". For some reason this outweighs every-other freedom and personal rights to privacy that the "Red Party" is eager to trounce over.
A virus that searches your memory/drive for other viruses/spam/spyware, kills and removes them if any are found, replicates, then cleans up after itself....
There are many ways to multithread - multitask - parallel process - and distributed process.
Most of them require some heavy lifting and systems programming knowledge. Almost all require at the very least understanding of the processes involved in "fork"ing.
However lately I've been doing some multithreading through - of all languages - PHP. There are two keys to understanding when to do this. First is recognizing what can be processed in parallel. The second is to understand how to wait and regroup for processes once processing needs to be linear again.
Web development is inherently multi/distributed processing. Many developers do it without even thinking about it. For instance if you create a page with frames, you are aggregating content from multiple processes and possibly from multiple servers. The regrouping of the data is all handled by the browser. This is very simplistic because usually there is no further processing done once all *threads* are complete.
Taking this a step further you can design a system that touches multiple scripts at the server level (rather than brower/client) without waiting for them to complete. In PHP you can simply do a: fclose(fopen("http:/server/script.php", "r")); This touches script.php and does not wait for data to come back - data is stored by script.php in a common area(filesystem or database for instance.)
In script.php you simply call: ignore_user_abort(TRUE); This tells the script to continue running even if the connection has been broken.
If you want to start up 10 parallel threads you would simply do this: $count=10; while ($count--) fclose(fopen("http:/server/script.php", "r"));
This works great for processing queues (email retrieval/sending for instance) and data that is loosely coupled. The key is to be able to identify what can be processed in parallel. After that you can just let the webserver and OS take care of forking and system level stuff.
I think this is really a syntax versus semantics argument. Many great developers have degrees in English, philosophy, and linguistics. Look at all the Perl developers.
Some people (me) prefer rigid syntax and "functional" languages which tend to be more mathematically based. Others prefer syntax that is more loosey-goosey where symbols change meaning depending on where and how they are used (more natural language based).
Which do you prefer?
if (this == that)
for (c = 101; c = 200; c++) print that;
or
if (this eq that)
for (101.. 200) { print; }
I prefer the first one even if it means more syntax. It's much easier for *me* to debug. But others will find the second option more "natural".
For starters humans are larger than most other primates and our fossil record shows a progression in height.
Aside from that, evolution makes no prediction about size. Evolution is not (does not have to be) linear. What is predictable, is that if size matters (either smaller or larger) a population will tend to the beneficial size over time.
What I find interesting is that this methodology has really driven pattern and character recognition. To the point that humans find it difficult to decipher almost as much as the 'bots do.
I think rather than words, start issuing picto-graphs "circle, square, rectangle, triangle..." and then once those can be figured out by bots up the anti "dog, cow, mountain, house....". These will eventually be able to be read by bots as well. Then start using photos.
Image recognition has been a slowly developing field. What better way to kick-start it than to make it a challenge to thousands of script-kiddies?
I've been a developer for about 12 years. I've never felt less market impact from Microsoft as I do now. Sure, MS has billions of cold-hard-cash in the bank - but their influence, love them or hate them, is not what it used to be. For instance - have you upgraded to Vista yet? Any plans to do so? Me either.
I recently purchased two system from Dell - a laptop and a workstation. Both had Google Desktop pre-installed and operational. I just find the whole thing ironic....
Since cable is based on community shared access, why not turn this around and have communities start building wireless/mesh networks with a [single big pipe/multiple small pipe/multi-vendor] connection? Net access can be loaned or purchased with donations/ significantly reduced rates.
Low infrastructure/maintenance/overhead costs will allow a community net to easily compete. Even if the the local ISP fights back with reduced fees or opens up their access, it's still a win!
Just guessing here, but it's possible that TW doesn't want to put themselves on the hook for the higher bandwidth. Cable speed is dependent on the number of users in the neighborhood. Early adopters get to see the bandwidth in all its glory until everyone on the block is downloading DVDs.
For the several years that I was a Defense Contractor (mid 90's), our shop and the NOCs that we supported were almost 100% Sun Solaris. We did not support the Navy (that I know of) but we did support the Air Force and a few Spook clients.
Later (late 90's) I worked for a company that specializes in Air Traffic Control Systems. Development environment was Linux and production environment was AIX.
Government agencies have accepted *nix flavors for a long time. "Never going to happen" is an incredibly strong term, and the fact that you've already got Linux boxes poking their head in leads me to believe that "Never say Never" is an appropriate response.
I've been a developer for about 12 years and I my personal opinion is that Web apps are great because of several things:
You have built in concurrency - your display page can gather data from multiple servers plus the client computer "simultaneously". The data can be computed in parallel - and there is no need to manage threads.
You have a built in object model. You can go to great lengths to get around it, or you can use it to your advantage.
You have the perfect platform for true separation of data/display/business rules
Ease of development: Rapid prototyping/Repaid distribution (no need to install application specific software for updates)
I love it. I find PHP to suite my C/C++ tastes while overcoming my disdain for compiler/environment configuration hassles. I use to hate scripting languages, but I have truly found PHP to be powerful (enough) and easy to develop in. I spend significantly more time programming the solution than having to program around the language.
Most definitely is cross platform. You write for an interpreter, not for a machine. It does not matter if the interpreter is on a Windows box, Macintosh, being displayed to a VT-102 Terminal, Xwindows Display System, Linux box, XBox, SGI box, SunOS, etc, etc, etc
Beta is by design. It does several things for them: * No expectation of service (I'm sorry you can't retrieve your data - we told you it was beta) * Continual improvement (It's never in maintenance mode - it's in constant feature-creep mode) * No official release means that it can be taken down quietly if the beta isn't well received.
Do a search on "software", remove the barely visible light-pink background from the first two results and there is virtually no difference between them and those on the actual "search results". The ads on the right are pretty obvious. The top two are much less so. Given that most people spend split seconds determining if a result is what they are looking for or not - the pink is easy to miss - especially for those less savvy - or those who have the contrast on their monitor set low.
And for what it's worth I currently work for a PPC optimization marketing firm.
While I agree with your position, and that of Google's right to refuse advertising dollars, there is one little sticky point:
Googles intermingle top placement ads with the top search results. While they are subtly different, top placement ads often times look like search results.
But on the flip side. Who says Google must index the entire Internet? Who says they must display search results? Who says they can't filter? Sure Google is the de-facto search engine, but it's not a public utility.
MS-Windows XP (home or Pro - SP2 only?) MS-Windows Server (2001 or 2003) MS-Vista (Release or Beta) (remember NT, 98, 96 are all unsupported and will never be patched)
Compared to which version of OS-X?
Compared to which version of RedHat?
Point is that XP is about to be superseeded by Vista. XP is at the end of its lifecycle - compared to OS-X (Tiger) which is a more recent. Software that is nearer the end of it's lifecycle should be more mature and have a need for fewer patches.
The user needs the Apollo runtime to run the apps, just as a Flash player is needed to run Flash animations I'm not sure the difference between needing a VM and a "hosted app". From the user perspective you need to download and install a "player" of some sort - a browser happens to give you default UI, but otherwise it's still just a "player".
Personally I think the key to a successful development environment is the simplicity in setting it up. HTML/JavaScript all you need is a browser and text editor. As soon as you start talking about "multiple compilers" and making sure you JAR_PATH is set correctly (see orginating the article) I've lost interest.
I'd rather spend the time to setup Apache/PHP. If only someone had written a browser that didn't need a server for dynamic content: Oh wait.... I did that already: (http://www.chronofish.com/FishBowl/) I guess I was ahead of my time....
-CF
Maybe I'm just lazy,
I'll accept that. I grew up programming in Pascal and BASIC, turned to C/C++ and loved it through college and my first 8 years of my software development career, dabbled in Java for a year - and then found PHP. For the last 5 years I have been programming in the language of my choice - PHP - and loving it. It's quick, it's easy, it's powerful. I find it just as easy to write a web server (Yes you can write a web server in PHP - the networking and forking functions are great - I've even successfully written apps that use COM to manipulate Excel) as it is to write a web app.
Maybe my past experience allows me to write structured code without having the language force me to write structured code. Maybe my ideas of OO is backwards - I look at data as "black data" and functions "just handle it" rather than forcing the programmer to know what the data is in a strictly typed language (C++/Java).
If you *want* to handle memory allocation - yeah - C/C++ is for you. But when you do that you're solving programming problems. You're not solving the customers problems. When you're a software developer you should be developing solutions for your customers - not solutions for the language you're developing in.
Are there issues with PHP? Of course. Is it THE language to use? Only if you know it and it fits the problem you're trying to solve.
-CF
The between the lines story here is that this is Ballmer's baby. With Gates taking a lessor role, this is Ballmer's first OS release that was developed fully under his direction as CEO. This IS about Gates stepping down, and it IS about Vista.
It personifies everything that he is: Big, loud, full of baggage, and out of control.
-CF
Look. I love OpenSource. And OO is a fair substitute. But come - on - MS Office is the standard that everyone is trying to **match** much less **beat**. Sure - you LaTeX guru's love your power... But for the rest of us mortals who a fast-action GUI MS-Office is the only choice - if you're fortunate enough to work in a place that provides it, or you've got the funds to purchase it. (** Hint- watch for student and developer editions for significant cost savings **)
On the flip side - my household will not be purchasing another copy of Office anytime soon. If cost is part of the equation, then OO is the only choice for a fully integrated office suite.
-CF
http://www.google.com/search?sourceid=mozclient&ie=utf-8&oe=utf-8&q=software+development
If your monitor is old, or your contrast is low, the light pink disappears. while the "Sponsored link" does appear, it's not clear if it's specific to the top three searches are the just the first one.
Google used to only have the adds in the right hand gutter. That was long before they went public and their corporate philosophy was "Do No Evil".
Everything on the Google search results is done with purpose - including choosing the lightest color they can get away with and being as sneaky without being flat out misleading. If you give it any thought - no of course it's not misleading. But if you are performing any one of the multi-hundred-million searches that Google serves up a day, chances are that you are not giving it much thought.
Google knows that you'll click before you think.
Now, is this "illegal"? Well that's for the courts to decide. When you become the defacto utility (yes that's right - they are a quasi utility) the general public relies on at large, you have the (mis)fortune of playing be different rules. You have tremendous power - but you must use your power wisely. We in the United States - which Google is based in and there-fore must follow the rules - have opted to limit monopolistic powers. When a company has 80% of the market they are a monopoly.
-CF
That's because Red Voters don't know what they're voting for. They hear the word "democrat" and they instantly shutout everything that follows and replace it with whatever Rush Limbaugh is spouting that day.
It's always seemed ironic to me that the poorest voters in the nation support the party that favors the wealthiest.
Individual freedoms? Most red-necker don't want government telling them what to do... Yet when they hear "democrat" they think "limited gun access". For some reason this outweighs every-other freedom and personal rights to privacy that the "Red Party" is eager to trounce over.
-CF
Do you believe that genetic change can happen in a population over time?
-CF
Could you imagine an anti-virus virus?
A virus that searches your memory/drive for other viruses/spam/spyware, kills and removes them if any are found, replicates, then cleans up after itself....
-CF
"...his experiment might show that a change made in one beam shows up in the other beam before he actually makes the change...."
What happens when he notices the change, before he makes the change, and changes his mind and doesn't make the change?
-CF
There are many ways to multithread - multitask - parallel process - and distributed process.
Most of them require some heavy lifting and systems programming knowledge. Almost all require at the very least understanding of the processes involved in "fork"ing.
However lately I've been doing some multithreading through - of all languages - PHP. There are two keys to understanding when to do this. First is recognizing what can be processed in parallel. The second is to understand how to wait and regroup for processes once processing needs to be linear again.
Web development is inherently multi/distributed processing. Many developers do it without even thinking about it. For instance if you create a page with frames, you are aggregating content from multiple processes and possibly from multiple servers. The regrouping of the data is all handled by the browser. This is very simplistic because usually there is no further processing done once all *threads* are complete.
Taking this a step further you can design a system that touches multiple scripts at the server level (rather than brower/client) without waiting for them to complete. In PHP you can simply do a:
fclose(fopen("http:/server/script.php", "r"));
This touches script.php and does not wait for data to come back - data is stored by script.php in a common area(filesystem or database for instance.)
In script.php you simply call:
ignore_user_abort(TRUE);
This tells the script to continue running even if the connection has been broken.
If you want to start up 10 parallel threads you would simply do this:
$count=10;
while ($count--) fclose(fopen("http:/server/script.php", "r"));
This works great for processing queues (email retrieval/sending for instance) and data that is loosely coupled. The key is to be able to identify what can be processed in parallel. After that you can just let the webserver and OS take care of forking and system level stuff.
-CF
looks like the less-than sign got lost -
for (c = 101; c <= 200; c++)
I think this is really a syntax versus semantics argument. Many great developers have degrees in English, philosophy, and linguistics. Look at all the Perl developers.
.. 200) { print; }
Some people (me) prefer rigid syntax and "functional" languages which tend to be more mathematically based. Others prefer syntax that is more loosey-goosey where symbols change meaning depending on where and how they are used (more natural language based).
Which do you prefer?
if (this == that)
for (c = 101; c = 200; c++) print that;
or
if (this eq that)
for (101
I prefer the first one even if it means more syntax. It's much easier for *me* to debug. But others will find the second option more "natural".
-CF
You rationalize like a creationist.
For starters humans are larger than most other primates and our fossil record shows a progression in height.
Aside from that, evolution makes no prediction about size. Evolution is not (does not have to be) linear. What is predictable, is that if size matters (either smaller or larger) a population will tend to the beneficial size over time.
-CF
Companies will only ever look out for #1 - and #1 is the company.
Whether it be "Do No Evil" Google, "Squash 'Em" Microsoft, or who-ever. No company can be trusted to look out for "you".
So stop being surprised when a company sells someone out. And be presently surprised when they don't.
-CF
What I find interesting is that this methodology has really driven pattern and character recognition. To the point that humans find it difficult to decipher almost as much as the 'bots do.
I think rather than words, start issuing picto-graphs "circle, square, rectangle, triangle..." and then once those can be figured out by bots up the anti "dog, cow, mountain, house....". These will eventually be able to be read by bots as well. Then start using photos.
Image recognition has been a slowly developing field. What better way to kick-start it than to make it a challenge to thousands of script-kiddies?
-CF
I've been a developer for about 12 years. I've never felt less market impact from Microsoft as I do now. Sure, MS has billions of cold-hard-cash in the bank - but their influence, love them or hate them, is not what it used to be. For instance - have you upgraded to Vista yet? Any plans to do so? Me either.
-CF
I recently purchased two system from Dell - a laptop and a workstation. Both had Google Desktop pre-installed and operational. I just find the whole thing ironic....
-CF
Since cable is based on community shared access, why not turn this around and have communities start building wireless/mesh networks with a [single big pipe/multiple small pipe/multi-vendor] connection? Net access can be loaned or purchased with donations/ significantly reduced rates.
Low infrastructure/maintenance/overhead costs will allow a community net to easily compete. Even if the the local ISP fights back with reduced fees or opens up their access, it's still a win!
-CF
Just guessing here, but it's possible that TW doesn't want to put themselves on the hook for the higher bandwidth. Cable speed is dependent on the number of users in the neighborhood. Early adopters get to see the bandwidth in all its glory until everyone on the block is downloading DVDs.
-CF
For the several years that I was a Defense Contractor (mid 90's), our shop and the NOCs that we supported were almost 100% Sun Solaris. We did not support the Navy (that I know of) but we did support the Air Force and a few Spook clients.
Later (late 90's) I worked for a company that specializes in Air Traffic Control Systems. Development environment was Linux and production environment was AIX.
Government agencies have accepted *nix flavors for a long time. "Never going to happen" is an incredibly strong term, and the fact that you've already got Linux boxes poking their head in leads me to believe that "Never say Never" is an appropriate response.
-CF
I've been a developer for about 12 years and I my personal opinion is that Web apps are great because of several things:
You have built in concurrency - your display page can gather data from multiple servers plus the client computer "simultaneously". The data can be computed in parallel - and there is no need to manage threads.
You have a built in object model. You can go to great lengths to get around it, or you can use it to your advantage.
You have the perfect platform for true separation of data/display/business rules
Ease of development: Rapid prototyping/Repaid distribution (no need to install application specific software for updates)
I love it. I find PHP to suite my C/C++ tastes while overcoming my disdain for compiler/environment configuration hassles. I use to hate scripting languages, but I have truly found PHP to be powerful (enough) and easy to develop in. I spend significantly more time programming the solution than having to program around the language.
Most definitely is cross platform. You write for an interpreter, not for a machine. It does not matter if the interpreter is on a Windows box, Macintosh, being displayed to a VT-102 Terminal, Xwindows Display System, Linux box, XBox, SGI box, SunOS, etc, etc, etc
-CF
No they can't/won't
Beta is by design. It does several things for them:
* No expectation of service (I'm sorry you can't retrieve your data - we told you it was beta)
* Continual improvement (It's never in maintenance mode - it's in constant feature-creep mode)
* No official release means that it can be taken down quietly if the beta isn't well received.
-CF
Do a search on "software", remove the barely visible light-pink background from the first two results and there is virtually no difference between them and those on the actual "search results". The ads on the right are pretty obvious. The top two are much less so. Given that most people spend split seconds determining if a result is what they are looking for or not - the pink is easy to miss - especially for those less savvy - or those who have the contrast on their monitor set low.
And for what it's worth I currently work for a PPC optimization marketing firm.
-CF
While I agree with your position, and that of Google's right to refuse advertising dollars, there is one little sticky point:
Googles intermingle top placement ads with the top search results. While they are subtly different, top placement ads often times look like search results.
But on the flip side. Who says Google must index the entire Internet? Who says they must display search results? Who says they can't filter? Sure Google is the de-facto search engine, but it's not a public utility.
-CF
MS-Windows XP (home or Pro - SP2 only?)
MS-Windows Server (2001 or 2003)
MS-Vista (Release or Beta)
(remember NT, 98, 96 are all unsupported and will never be patched)
Compared to which version of OS-X?
Compared to which version of RedHat?
Point is that XP is about to be superseeded by Vista. XP is at the end of its lifecycle - compared to OS-X (Tiger) which is a more recent. Software that is nearer the end of it's lifecycle should be more mature and have a need for fewer patches.
-CF