Fog Creek Software
Discussion Board




Software Naming and Pricing


Dear Forum

Joel's decision to discontinue the 'home edition' version of Citydesk has prompted some questions. These questions have been in my mind for some time, as I try to get Lingo finished ( http://www.lingolanguage.com ).

--- (1) Product Naming ---

It's usual to have 2 or 3 separate versions of shrink wrap software (economists recognize this as maximizing the area under the demand curve). What is the best terminology? eg:

Standard Pack / Professional Pack / Enterprise Pack?

Standard Edition / Professional Edition / Enterprise Edition?

Home Edition / Professional Edition / Enterprise Edition? (as in XP)?

Bronze Edition / Silver Edition / Gold Edition? (as in True Basic)?

Personal Edition / Commercial Edition ?

What I thought for Lingo was, because there is no Enterprise edition (it's a stand-alone programming package) I would have a Standard Pack for personal use, and a Professional Pack for commercial use. There would also be a Trial Pack, which is a free download. Another important criteria is I want the names to be clear to beginner developers.

--- (2) Product Pricing ---

Assume that Lingo is a developer environment, of similar usage and scope to Eiffel or VB3. The package includes a 50 page manual, CD and packaging in a DVD case, and the software includes an IDE, compiler and online help. The aim of my pricing is to maximize volume *not* revenue (I believe volume leads to revenue, but that's a separate discussion).

Should the pricing of the Standard edition be similar to (eg) XP Home edition and VB.NET standard Pack (approx £70, or US$100). Or should the price be similar to top-end games (approx £30 or US$45)? Or cheaper still? I remember Turbo Pascal v3 which was priced £49 (?) and took the market by storm. But if it's too cheap, this degrades the perceived quality and volumes fall. What is the 'too-cheap' point?

The Lingo Professional edition will include extra tools for simple databases, zipping the output files for distribution, and a few other things. VB.NET pro and the other Microsoft Professional edition software is in the £300 to £400 region (from memory). I think this is way too much. What should I aim for? 3 times the price of the Standard edition?

All ideas are welcome!

Bill Rayer
Saturday, August 30, 2003

Hi Bill,

How much interest have you had from prospective customers in the "Lingo Language" product? (Is it in the Enterprise, Consultants, Small Business or Home Users/Students?)

I don't mean to be rude, but everytime you post about it here I think to myself where is its place in the market place when there is already (Access/VB/Delphi/VFP/.Net/Java/etc). What exactly differentiates your product from the rest? Where does it fit in between (Access/VB/.Net)?

And sorry for not answering your question directly, but maybe by answering my questions on where it fits you might be able to get a better decision on the naming convention you should use?

Chris
Saturday, August 30, 2003

Hi Chris

Most interest comes from two places.

Firstly, what I would term 'computer literate non-programmers'. These are people who are skilled in their own fields but know little or nothing about programming. The idea behind Lingo is that it's a VHLL and makes it as easy as possible for them to write non-trivial code. These people are strongly deterred by the complexity of modern developer environments (VB.NET etc).

Secondly, a much smaller market consists of experienced programmers who want to understand new languages and techniques. Most programmers are too busy / uninterested or whatever to look into new languages. The best feedback I've had are from programmers who are interested in language design.

There are two important non-markets (groups which I originally thought would be markets but aren't).

The first non-market is businesses doing commercial development. These are usually constrained by existing code / technologies and anything different (regardless of how much an improvement it is) is irrelevant.

The second non-market is other programmers. They're specialists in their own areas, are not interested in language design, and focus on what they know and use daily. Most readers of JOS fall into this category.

Please note I'm not critical of this second category *at all*. All it means is that JOS would be a bad forum for marketing a new language (marketing isn't allowed here anyway). However the second category is a very useful source of critical feedback. This is why I ask questions on JOS and get useful answers!

To answer your questions:

The place in the market is the first and second groups (computer literate non-pgmrs (90%), programmers with interest in languages (10%)). Product differentiation is by ease of use and high level syntax compared to existing languages.

Bill Rayer
Saturday, August 30, 2003

You know that Macromedia's Director has a scripting language called Lingo?

myname
Saturday, August 30, 2003

Yes, he does. We've been down that path already. :)

Brad Wilson (dotnetguy.techieswithcats.com)
Saturday, August 30, 2003

And yet I never get tired of that subject.

Lingo is a trademark of Macromedia. They have consistently represented it as a trademark and they to this day state that it is a trademark.

Recently I got a cease and desist letter myself and had the opportunity to discuss the trademark issue with our IP attorney. The basic idea is that Macromedia has a "common law trademark" and it's every bit as valid as a registered trademark. It is also for the same sort of product and that is important. If I want to start "Lingo Pizza Parlor", macromedia has no claim. But Lingo language, they do have a claim.

The new Lingo will certainly be challenged and certainly lose.

Whether our stubborn friend has to pay damages will depend on whether Macromedia can show that he continued on after being notified it was Macromedia's trademark. Since these discussion forums are net available and folks from Macromedia have publically stated they are following these threads, I can safely predict the outcome as far as damages goes. It will be shown as a willful and deliberate violation and he will be held maximumly accountable.

Linguist
Saturday, August 30, 2003

Uh-oh.  Sounds like Bill needs a new product name, quick!  How about calling it:

Slang?
Jargon?
Colloquialism?

Norrick
Sunday, August 31, 2003

Lingeaux

Philo

Philo
Sunday, August 31, 2003

I am certainly interested in the design of languages for the computer literate non-programmers.

I've taken a quick glance at your web site and was struck by a few questions.  I was wondering if you could tell us a little bit about why you chose

1) to require forward declarations of functions and variables
2) to eliminate global variables
3) to implement an imperative object-oriented/procedural language
4) to emphasize pure functions

Do these features serve your target market?

I'd also be interested to hear your opinions on the relative merits of declarative vs. imperative languages for this market.

Thanks!
Eric

Eric Lippert
Sunday, August 31, 2003


"We've been down that path already. :) " - thanks mate!

myname - if you're interested see http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=58012

Cheers
Bill

Bill Rayer
Sunday, August 31, 2003


---Phileaux---

Thanks for the suggestion :)

---Linguist---

Thanks for your comments. I have held and used Lingo as a registered trademark from 1992. Macromedia has not registered Lingo as a trademark. These legal issues were discussed in depth on  http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=58012

---Eric---

Thanks for your questions.

1) Only functions exported from a module require their headers to be declared first. The headers go in the module interface and the implementations go in the private part of the module. This is to separate the interface from the implementation. Constants and types exported from a module are also forward declared in the module interface for the same reason.

In theory, clients of a module only need look at the interface to nderstand what the module does. Pre and post conditions play an important part, since they specify what the functions do and are enforced by the compiler.

2) To make programs more reliable and more easily maintained.

3) I wanted Lingo to be as accessible as possible (ie to be potentially useful to as many people as possible), I wanted VHLL features and I wanted performance similar to other compiled languages.

Imperative and procedural languages fit in well with a beginner programmer's internal model of how a program works (ie this line runs, then the next line runs, then we jump here etc). This style of language also satisfies the performance requirement. Lingo also has event driven code for handling GUI objects - again this matches the internal model. Eg you load a dialog, so the Load code runs. You click a button and the Click code runs. I think a language has to support procedural and event driven code, if it is to be easily used.

The object orientation in Lingo comes about because strictly speaking a module is an abstract data type. Modules are encapsulated (as in 1 above), pre and post conditions are the 'axioms', and Lingo supports polymorphism. I wanted the object oriented elements to work in a natural way and not be apparent to the programmer, since OOP is not a beginner's concept.

4) Again to make programs more reliable. If you have pure functions, no globals and no aliasing, functions work independently of the context in which they are called. This makes it easier to build reusable code libraries.

"I'd also be interested to hear your opinions on the relative merits of declarative vs. imperative languages for this market." ...

IMHO the combination of imperative and event driven code is much easier for an intelligent non-programmer to learn than a declarative language. This combination also gives better performance since it can be compiled to machine code. These two factors are behind the success of Basic, which is the #1 language for this market (at least, until Microsoft have obsoleted VB6).

Cheers
Bill

Bill Rayer
Sunday, August 31, 2003

Bill,

I do think that the requirement of a forward declaration is one of the languages biggest weaknesses.

I think the Java approach, of having the visibility of a method specified in the code is much better.  Automatically generated documentation like Javadoc is much more convenient than module headers.

Changing this would make Lingo feel so much more modern: more like Java and C# and less like older languages like Delphi.

I think this small change would make a big difference to Lingo's first impression.

Ged Byrne
Sunday, August 31, 2003

One of the basic requirements of running a successful business is wisdom. A wise man chooses his battles. Lingo is going to have an uphill climb - I know you know that. You have an evangelical belief in your creation that will aid you well in making that climb.

However, is it smart to start an avalanche before you start the climb?

Let's say I created an OS that was as user-friendly as Windows and as powerful and secure as Linux. Since it's the best solution for those on tight budgets, I decide to call it "Niggardly." Hey, it's a good word, and very descriptive. There's nothing objectionable about it whatsoever.

Only an idiot would pursue that course without recognizing that 90% of any product pitch would consist of my having to explain the word to the prospective buyers. I'd have to carry a dictionary around to defend myself. Should I invite that trouble from the beginning when there are so many other issues to address?

Bill, every single time you pitch the product, you're going to be in Macromedia's shadow. You're going to be competing in Google, and your first corporate investment will be a retainer to a lawyer for the day you get sued. You WILL be sued. You may or may not win, but you're going to be in court for at least three months, possibly a year or more. That's time you're not working on your baby.

BTW, there are new implications from the Federal Dilution Trademark Law where a "famous mark" can be protected from infringment in *any* market. McDonald's can now go after "McDonald's Carwash". Is MM's "Lingo" a famous mark? The term "famous" hasn't been legally defined yet, but you'll notice every time you mention it, people bring up MM, so it must have *some* noteriety.

Philo

Philo
Sunday, August 31, 2003

Ged:

With the forward headers, do you prefer this:

  Lingo 1 module IHaveNoInterface

  public function main()
  code
    call Msgbox ("Hello world")
  end function

  end module

instead of:

  Lingo 1 module IHaveAnInterface

  function main()

  contents

  function main()
  code
    call Msgbox ("Hello world")
  end function

  end module

I must admit (1) looks clearer. However functions would require a modifier to say whether they were exported or not (like static in C).

Phileaux:

"would pursue that course without recognizing that 90% of any product pitch would consist of my having to explain the word to the prospective buyers"

That sums up the issue very well. The thing that bothers me most about the Lingo issue is *not* whether I could be sued. It's the interminable discussions *about* whether or not I could be sued.

I'm half-seriously considering an extra installation question: "What do you want to call this product?" Then the name is embedded in the source, compiler, help etc.

Bill Rayer
Monday, September 01, 2003

PS:

Philo I was aware of the concept of a famous or well-known mark, but I thought it had to be very widely known outside the area of scope of the mark. Eg "coca-cola" or "Ford" would be bad names for computer languages (or car-washes).

As an aside, I think this is the reason Microsoft will prevail over "Lindows" in the Lindows / Windows dispute. Windows would probably be classed as a famous mark.

Bill Rayer
Monday, September 01, 2003

Bill,

I think Cola would be a great name for a language.  Implies a light language with caffine/java overtones.  Also, the whole 'Cola' is not a trade mark battle was payed for long ago by Pepsi. 

Regarding the examples, IHaveNoInterface is much better.

Sure, you have to add access modifiers, but Its in the same place as the rest of the function.

Long term, there is nothing worse than having to change something in two places.  Surely the DRY principle applies here?

Short term its really off putting to the newcomer.  I remember my first experience with Delphi when I tried to modify some of the generated code.  I took me days to figure out what was going on.

Ged Byrne
Monday, September 01, 2003

Bill - the problem is that there isn't a lot of case law on the "famous mark" issue, so it'll take time to know what's what, but until the groundwork is laid, it behooves the small businessperson to sidestep the issue completely.

I like "Cola" too - and talk about a positive association for coders... :-)

Philo

Philo
Monday, September 01, 2003

Cola would be a great name.  You could even call the limited version "Diet Cola" and put it in a white box <GRIN>

Ben Combee
Monday, September 01, 2003

I'd like to comment on the original question - how to set the pricing and packaging. As far as I know, there isn't any science to it. When we set a price, the product manager sets a price based on other products that we sell, percieved value for our customers, etc. There is usually a discussion with some of the sales guys who can think past next week's quota, the product managers and the director of the division. The director makes the finial decision, but it's pretty much set by the product manager.

Details of the packaging and naming is done simliarly. I suppose we could spend a ton of money doing focus groups and market research, but it's expensive.

--back to your argument of the language and if Macromedia is going to sue...

pdq
Tuesday, September 02, 2003

Yeah right - for a moment we were in danger of being on topic there :)

PS: Cola is an interesting name. I can't believe it's not trademarked though? Also I googled and found this http://www.tepidcola.com/ (it's for the Mac). I might check whois and see if any colas are available.

Bill Rayer
Tuesday, September 02, 2003

Coder Cola?

Ged Byrne
Tuesday, September 02, 2003

Lingua Cola

Philo

Philo
Tuesday, September 02, 2003

Still unsure...

About 10 years ago when I was choosing a name I used to ask everyone I met for good names. This went on for quite a few months - for some unaccountable reason my social circle dwindled. When someone finally mentioned Lingo I instantly thought 'yep, that's it'.

What about Ubercode? That's the only other name I've found so far that inspires me.

Bill Rayer
Wednesday, September 03, 2003

PS:

One other thing I decided, *anything* relating to names,  web addresses, descriptions etc goes in a "product.h" file which is included everywhere possible.

In theory I just edit this and rebuild to change the name to anything. But it doesn't work for the documentation and images :(

Bill Rayer
Wednesday, September 03, 2003

Ubercode will get you developers, but you won't make any headway in the corporate arena.

I'll admit that Lingo is a great name for a coding language - it's short, easy to remember, expressive, and sounds both fun and professional.

Unfortunately it's obvious that Macromedia thought the same thing ten years ago... :/

Just get a dictionary and start flipping pages.

Philo

Philo
Wednesday, September 03, 2003

You're spot-on about the word "Lingo".

I think (at least for v1 of Lingo) the corporate market is not viable anyway. They were one of my non-markets which I listed at the top of this thread. They have clearly-defined tasks using specified tools, and I think they would not buy Lingo, almost regardless of what it cost or could do.

Bill Rayer
Thursday, September 04, 2003

*  Recent Topics

*  Fog Creek Home