Deth's Journal
"There Is Nothing To Understand."
(Author's Note: forgive any spelling errors; i'm on my Linux box which lacks spell checking).
Erlang, or Utility-computing vs. Appliance-computing
To Quote:
I think that erlang - and it's brethern in functional programming - do have a place in the future of programming, business, and computing. I think that distributed computing platforms (like Amazon's and Google's offerings) do have a place, as well.
However, i think saying that this is the end of The World As We Know it is at best naieve and at worst misguided. There's a few factors that *will* play a very large role in the developing situation, and those factors are essentially immutable. Let's talk about some of them.
Firstly, there's a lead time with programming knowledge. You can't suddenly go from working your entire life with C++, or PHP, or what have you, to something as exotic as Erlang. There's also the education problem: how easy is it for a college to find someone who's a professor-level instructor of something like Erlang? There are thousands - no, tens of thousands - of very good C++ programmers who are able to be teachers; but not so for other, less popular languages.
There's also the small matter of inertia: real, big companies that hire lots of programmers tend towards having serious inertia towards certain technhologies or ways of doing things. Even *if* functional programming was a thousand percent(!) better in every metric then normal programming, companies would still use what they have code bases in, what their managers understand, and what their programmers can work best in. The hit - in terms of development time and cost - of changing a project's language halfway through would be devestating to many companies.
As well, this entire thing smacks of the thin client debacle of several years ago.
The basic gist - for those who (Thankfully) missed it, was this: we were told that one day, we would all have no real computers in our homes. You'd never install a program, you'd never worry about drivers or anything - your computer would be an appliance (sound familiar?) that connected to the internet and thence to some system that served up all your applications, all your files, etc.
It of course never took off. People didn't like the total lack of control, the reliance on outside forces, or the inherent problems of running something that was thousands of miles away when something went bad. Trusting some huge company to handle your delicate software was something many individuals - let alone companies - simply refused to sign onto. As well, there were serious disadvantages in terms of things like program updates, dependencies on specific versions, etc.
This is the same idea, with the context moved from the desktop to the corporate infastructure. Some questions that i think are germaine, here:
1. How will the economics of this actually work out? Let's say that 80% of in-house infastructure is now farmed out to these "utility" services. Who will be making the servers? Who will be serving as a training area for new IT specialists in managing the servers? Simple economics says the price of servers will go up since only 3 or 4 companies will be needing them in any quantity.
2. How will the cost of this work out, on the scale of a small, medium, or large company? At what point is it no longer economical?
3. How secure will all this be? How will HIPPA feel about it? How will trade organizations? What about military contractors?
4. How easy will it be for someone to shut you down? Take the case of a website where someone gets a DMCA notice to the provider - how hard would it be for someone to get a given site completely taken down based on something like that?
All told, while the allure of the thin client (in it's many guises) is intense, the practical aspects are simply not there for alot of companies. I can't see many people switching their entire operation over to something like this - mostly startups or companies ran by a very few people who provide a service like craigslist or such.
Erlang, or Utility-computing vs. Appliance-computing
To Quote:
"I’ve taken up an interest in Erlang again lately, mostly because I’m building bigger distributed software than I used to. One has to evolve. If you watch closely, the frontrunners in the computing industry are thinking the same thing. People, companies — anything — that doesn’t evolve and doesn’t select the technology that is best suited to survive while evolving will dissapear from mainstream sooner or later. Life is evolution. You grow or you die. Either you remain delusional or you deal with it."
I think that erlang - and it's brethern in functional programming - do have a place in the future of programming, business, and computing. I think that distributed computing platforms (like Amazon's and Google's offerings) do have a place, as well.
However, i think saying that this is the end of The World As We Know it is at best naieve and at worst misguided. There's a few factors that *will* play a very large role in the developing situation, and those factors are essentially immutable. Let's talk about some of them.
Firstly, there's a lead time with programming knowledge. You can't suddenly go from working your entire life with C++, or PHP, or what have you, to something as exotic as Erlang. There's also the education problem: how easy is it for a college to find someone who's a professor-level instructor of something like Erlang? There are thousands - no, tens of thousands - of very good C++ programmers who are able to be teachers; but not so for other, less popular languages.
There's also the small matter of inertia: real, big companies that hire lots of programmers tend towards having serious inertia towards certain technhologies or ways of doing things. Even *if* functional programming was a thousand percent(!) better in every metric then normal programming, companies would still use what they have code bases in, what their managers understand, and what their programmers can work best in. The hit - in terms of development time and cost - of changing a project's language halfway through would be devestating to many companies.
As well, this entire thing smacks of the thin client debacle of several years ago.
The basic gist - for those who (Thankfully) missed it, was this: we were told that one day, we would all have no real computers in our homes. You'd never install a program, you'd never worry about drivers or anything - your computer would be an appliance (sound familiar?) that connected to the internet and thence to some system that served up all your applications, all your files, etc.
It of course never took off. People didn't like the total lack of control, the reliance on outside forces, or the inherent problems of running something that was thousands of miles away when something went bad. Trusting some huge company to handle your delicate software was something many individuals - let alone companies - simply refused to sign onto. As well, there were serious disadvantages in terms of things like program updates, dependencies on specific versions, etc.
This is the same idea, with the context moved from the desktop to the corporate infastructure. Some questions that i think are germaine, here:
1. How will the economics of this actually work out? Let's say that 80% of in-house infastructure is now farmed out to these "utility" services. Who will be making the servers? Who will be serving as a training area for new IT specialists in managing the servers? Simple economics says the price of servers will go up since only 3 or 4 companies will be needing them in any quantity.
2. How will the cost of this work out, on the scale of a small, medium, or large company? At what point is it no longer economical?
3. How secure will all this be? How will HIPPA feel about it? How will trade organizations? What about military contractors?
4. How easy will it be for someone to shut you down? Take the case of a website where someone gets a DMCA notice to the provider - how hard would it be for someone to get a given site completely taken down based on something like that?
All told, while the allure of the thin client (in it's many guises) is intense, the practical aspects are simply not there for alot of companies. I can't see many people switching their entire operation over to something like this - mostly startups or companies ran by a very few people who provide a service like craigslist or such.