How to help businesses see that a new technology may help solve problems for them


2

In my town there appears to be no business using a technology called functional programming. Microsoft is including a new language for this in their next version of Visual Studio.

I am thinking about doing a demo where developers can write applications to try to crash my server using a new FP framework, and also an IIS webserver, so they can see that the IIS one will crash much sooner than the FP one.

My thought is that the developers will then mention to their bosses about this, and if they can hold off on buying new hardware to scale their webservers by just moving to a new framework, it may be justifiable.

My hope is to not convert these websites but to start training developers in this new way of programming.

Does my plan sound like a good approach, to show companies that this new technology may be beneficial?

Update: I was trying not to get into the details too much as I thought that may be beyond the scope of this site, but the framework is: http://liftweb.net/

Technology

asked Oct 24 '09 at 06:45
Blank
James Black
2,642 points
  • I don't understand your contrast between FP and IIS. Seems like you're comparing apples to oranges. A website built with F# will still be an ASP.NET site running on IIS. Do you have links to this FP framework you mention? – Coder Dennis 14 years ago
  • There is a framework called Lift, which is written in Scala (a FP language). A website built with F# is still running on IIS, so how scalable it is will be based on how scalable IIS is, ultimately. Lift, due to being written in Scala seems to be more scalable, so a website could get by with fewer server, serving the same number of pages. – James Black 14 years ago

4 Answers


2

You idea is quite interesting -- sort of "Show don't tell!" --, but I'd say it won't work. I'm sorry.Hardware is cheap, today. Custom software is not!

Nobody's going to rewrite existing software to save a few thousand dollars on hardware. Thus, the only potential clients are those who start a new project. Unfortunately, they are also unlikely to be interested. This is due to the special economics of software, in general: The switching costs are high and there are large network effects. The same basically applies to frameworks, too.

Someone considering a new language/framework for a new web site wants answers for some very basic questions:

  • Is there sufficient demand for the language/framework? This is because a language/framework used by many others is less likely to vanish into obscurity.
  • Is there sufficient supply of programmers fluent in the language/framework? Without experienced programmers, the existing ones are a scarce resource (and thus expensive). One would need to train others in the language/framework or may be required to rewrite from scratch, someday.
  • Is there sufficient supply of Add-Ons under an appropriate Open Source license (BSD, MIT, Apache)? Without such add-ons (Forum, Wiki, Issue Tracker, eCommerce, Blogs, etc.), everything needs to be written from scratch.

To sell a language/framework, in general, you have to prove that these problems are already solved. On top of that, you have to show that is also provides additional benefits -- higher productivity, for example, or less maintenance. Typically, one does so by providing references to case studies, testimonials, words-of-mouth, a large ecosystem, etc.

So, to answer your headline question : To show businesses that a new technology helps them solve problems, you point to other businesses who already solved their problems with the new technology.

How do you find the first one?

Simply, in theory: You'd need to establish a beachhead by writing a killer application. Then, you may be able to sell training or support on top.

Hope that helps.

answered Oct 24 '09 at 18:31
Blank
Claus Schwarm
1,599 points
  • +1 - Thank you, esp for the 3 points. I am trying to solve the lack of developers, but there has to be a reason for the developers to learn the language and framework. With VS2010 including F# FP is becoming more mainstream, so this may be an opportunity to teach others. I am working on a couple of applications that use it but it will be sometime next year when I am ready to start beta testing them. – James Black 14 years ago
  • +1 on the challenges and on the solution of showing successes. I noticed a lack of "success stories" on your project website too. – Jason 14 years ago
  • @James, I'm glad if I could help. Concerning developers: It's not that hard to get them interested, many are curious by nature. Several pieces seem to be there, already; it's just not executed well. Getting them to use a language, however, needs huge efforts and is nearly impossible to do for a single person (or a small team). @Jason: Thanks for the kind comment. :-) – Claus Schwarm 14 years ago

1

What is your goal? Do you want to simply spread the word or do you stand to profit from it somehow?

In order to give you advice, I need to know what your goals are...

answered Oct 24 '09 at 07:24
Blank
Ron Ga
2,181 points
  • My goal was in the second to last paragraph, to develop an interest so I could be training developers in Scala and the LIFT framework, and perhaps get some work in helping larger companies to transition, eventually. But, if there isn't enough developers it will be hard to get people willing to move. – James Black 14 years ago
  • I see two options for you: You can either teach developers as you mentioned, or you can pitch your development skills to the customers directly/ by outsourcing your capabilities. It is hard to say if either will work out, since it depends on the adoption of this new technology. If you can be at the forefront of this technology, and people adopt it, you stand to do very well. You need MIT to adopt it, which will mean that withing a couple of years it will be taught around the world. If you could get facebook to switch, you would also do very well, but that is difficult to do. Good luck – Ron Ga 14 years ago
  • My dream is to get Scripps Networks (who does FoodTV, HGTV and some other channels) to look at switching, which is why I am starting with trying to get the developers excited. – James Black 14 years ago

0

It sounds like you are just trying to have an excuse to use functional programming. There is no reason for businesses to move to an IMPLEMENTATION of an implementation language just because it is the hot new thing.

Be careful of silver bullets and snake oil. Your business targets will be skeptical - and you should be too. If you start jumping up and down, touting the latest programming fad pretty soon you will be labeled as a kook or a functional programming zealot. What you really want to be is someone who solves problems. Learn new things, sure, but don't get caught up in, or, worse yet, promote the hype of things that have little, if any end-user value or meaning.

answered Nov 3 '09 at 06:25
Blank
Tim J
8,346 points
  • Functional programming offers advantages, due to the fact that we compiler writers can't adequately take advantage of multicores, so to scale well FP becomes a better option. If you can change your framework to be able to have your webserver handle 3x the requests under the old one, would that be worth it? (The 3x is just an example number, it will depend heavily on what your web application does). – James Black 14 years ago
  • You make the same argument that C programmers made when OOP came onto the scene, btw. And OOP really hasn't solved the problems it promised, as I have to do too much original programming to write my apps. I should be able to just start gluing components together, but after over 20 years that is still largely a pipe-dream for developers. – James Black 14 years ago
  • Functional programming is hardly new. I was doing it with Scheme in 1989 in college... I don't buy the argument that you can't scale with multiple cores - where did you get that nonsense from? I'm not arguing against FP - but you are trying to sell a TECHNOLOGY to end users who don't give a crap about technology - they just want to have a solution. You are suggesting a HUGE reinvestment of time and resources and you can't even point to ONE successful project of your own. You lack credibility. I am not trying to be a jerk - I am trying to help you see it from the other point of view. – Tim J 14 years ago

0

Functional programming just isn't used because it is hard to write big applications with it when you're working in teams. Object oriented programming solves this problem a lot better.

There's a particular reason why it's not commonly used. You should use the right tools for the right job, and functional programming is not part of that in my opinion.

answered Nov 3 '09 at 06:38
Blank
Chaoz
31 points
  • It is not commonly used because until recently it has mainly been in academia, with some use in industry, such as in the financial world. But, with F# now being part of VS2010 it will be used more frequently, and now that you can use the JVM to also us FP applications. – James Black 14 years ago
  • Well yes, it might be included, but I do not believe there is a real future for functional programming. There might be a company here and there using it; but I doubt that widespread use of functional languages will ever be the case. – Chaoz 14 years ago
  • It is included, MS has put too much into not including it. I expect it will take a while to get more widespread use mainly because there are not too many FP programmers compared to OOP, but since Scala and F# can work in both worlds it will make it easier. It is easier to write large applications in teams with FP, as each part is a standalone, all the function knows is what is passed in, there id generally no global variables, and the global variables tend not to be mutable. – James Black 14 years ago

Your Answer

  • Bold
  • Italic
  • • Bullets
  • 1. Numbers
  • Quote
Not the answer you're looking for? Ask your own question or browse other questions in these topics:

Technology