Fog Creek Software
Discussion Board




Which programming language fits this criteria?

Hi,

Here's your chance to propogate your favorite language.

I'm reviewing programming languages before writing our next series of programs.  I've asked this question before, but now that I've mulled it over, I have clearer criteria.


Please answer this question objectively. I'm not looking to start religous debate. No tool is perfect for every situation. I'm just looking for the right tool for MY situation.




CRITERIA

1.  Very easy-to-use IDE/ Development environment.

Features required include:  intellisense, auto-completion, etc.  (E.g., Delphi, VB 6, .net all meet this criteria. Not sure if most generic Java implementations would).

2. INSTALLS EASILY on Windows 95 thru XP.

I.e., having to install the Java runtime engine or .net and Internet Explorer 6.0 do not qualify as EASY.  Install needs to happen without asking the customer more than 2 easy yes/no questions.
It's not a problem to install dependency files (.dlls, etc.) as long as that's painless. We currently use VB 3 and a bit of VB 6. No problem on those installs.

  (Currently we just ask "you want the EASY install or the HARD install". Experts pick the HARD. Grandma picks the EASY. Our typical customer is an 80 year old great grandmother. 

3.  Fairly easy and productive language.

Easy & productive for trivial tasks (read a file, display a picture, play a sound, record some sound, etc.).

We don't need to make our own controls or do anything terribly fancy. WE don't want to confuse our scare grandma.


SO FAR, I'M CONSIDERING (in this order)

1. VB 6  -excellent IDE, fairly good install.

2. Delphi 7  - very easy install (static linked .exe ide is pretty good.  More future-proof than vb 6

3. Flash or Director  - can create standalone exe to run locally

The real Entrepreneur
Tuesday, January 13, 2004

I would say stick to VB.  It's what the original code is written in and you may be able to upgrade it to the object oriented features of VB 6.  The installation shouldn't vary that much between VB3 and VB6.  Then again I've never used VB3.


Tuesday, January 13, 2004

You could try VisualWorks Smalltalk (http://www.cincom.com/smalltalk)

Giovanni Corriga
Tuesday, January 13, 2004

Does it need to have the "standard" Windows look & feel?

Scot Doyle
Tuesday, January 13, 2004

At the risk of starting a language war...how about Forth...the most under appreciated language and the only one where one can regularly write code which is faster than assembly language :-)

http://win32forth.sourceforge.net/

Code Monkey
Tuesday, January 13, 2004

Since you don't specify the application genre or whether its supposed to be on multiple platforms, though I guess not, its more than hard to suggest anything except:

What do you already know?

How is what you know now broken?

What perceived benefit are you looking for?

Simon Lucy
Tuesday, January 13, 2004

Get the language that you are most comfortable coding in; as you say all IDEs have their faults, so if I would choose I would go with the language I knew best.

Patrik
Tuesday, January 13, 2004

You might also consider VBScript and/or JScript with a third-party editor.  PrimalScript is a pretty decent editor with some intellisense support, etc.

Eric Lippert
Tuesday, January 13, 2004

Order of preference for your situation:

1) Delphi 7
2) Visual Basic .Net
3) Java 1.4

Li-fan Chen
Tuesday, January 13, 2004

We still don't know why you need to change from VB3.

Frankly, in your position I'd consider doing nothing for a couple of years or more. The reason is that you would have to install the CLR if you go for VB.Net, and that might be a problem, so wait until most machines have it pre-installed

Stephen Jones
Tuesday, January 13, 2004

Perl, C or bash would be the best languages and I'd use emacs for my ide.

/.
Tuesday, January 13, 2004

The only language that meets your criteria is Delphi. VB(any) still leaves you vulnerable to DLL hell.

Personally I despise all the bondage and discipline languages (Pascal, Delphi, etc) and would choose VC++. But then I'm a masochist.

Anonymous Coward
Tuesday, January 13, 2004

I'd suggest C/C++ as well, but if you're not comfortable with those languages, stop reading now.  They're nice for giving you control over the linkages, and getting a good basic widget set is easy.  I'm not sure how easy it is with Visual C++, but with wxWindows I was able to get a picture on the screen very quickly.  I did all of my wxWindows work using Visual C++.

Clay Dowling
Tuesday, January 13, 2004

I would stick with VB. If it ain't broke, don't fix it.

If you insist on a new language, I would HIGHLY recommend Python. It is cross-platform, includes native GUI widgets (wxPython), and can create a statically-linked no-install EXE file.

runtime
Tuesday, January 13, 2004

ditto with the dont change :)


if you feel you must Ill push my new favorite, REALbasic.

Its a compiled language, has very good autocompletion etc, compiles x-plat to windows, mac (and from the next release Linux), and uses all native widgets for everything.

its also easily extensible via plugins if you specifically need new functionality.
seriously, after VB its like a breath of fresh air...its language is still in the _designed_ phase, not the _evolved strangely_ phase like VB.

http://www.realbasic.com

FullNameRequired
Tuesday, January 13, 2004

Someone wrote: "What do you already know?

How is what you know now broken?

What perceived benefit are you looking for? "

1. Already know VB 3 and VB 6.

2. VB 3 will likely break under the next version of Windows. And, our architecture is very very old (7 years). It's been stretched from 2 initial programs to 20. I'm creating new programs and at the same time I can include the capabilities of the old programs.

3. NEW FEATURES I'll get:
1. RTF/HTML  display of messages to user.  I know this seems trivial, but the ability to BOLD something on the scren helps enormously when trying to communicate somthing to the user.

2.  Easier expandability and reuse.

As we add even MORE programs, I'd like to reuse as much code as possible in a more organized fashion. Did this already in VB 3, but it wasn't PLANNED that way. (Hey, I didn't think we'd be this prolific or successful).

The real Entrepreneur
Tuesday, January 13, 2004

If you make a suggestion please include the best editor /IDE/Development enviroment.

ALL IDE'S ARE NOT CREATED EQUAL
Somone above said "they all have problems".  No, there are some REALLY easy to use IDEs and really HARD to use ones.

For example, I tried the Sharp Developer environment. It's free. And you get what you pay for.  Enormous learning curve. No autocompletion (as of 5 months ago).

I know, experienced coders say "I can write that in notepad". Yeah, well I can't. At least not if I'm writing 4 programs a year, which I did for the first 4 years or so. I enjoy the feeling of productivity from a good IDE. And of course, more programs means more money. Always a good thing.


RealBASIC sounds very intersting. Wish they had a limited version (perhaps creates exe's with a "demo only" splash screen). ONLy has like a 14 day trial. They must be kidding. Not enough time to trial a word processer, much less a development environment. 

BUT... it's getting good reviews from folks on JoS... WE'll see.

The real Entrepreneur
Tuesday, January 13, 2004

"RealBASIC sounds very intersting. Wish they had a limited version (perhaps creates exe's with a "demo only" splash screen). ONLy has like a 14 day trial. They must be kidding."


wow, they used to have a 30 day trial...Im not sure when they changed that (I agree it seems a little silly)

If you constact their sales department and have a chat I suspect you will be able to work somethign out, they have been _very_ helpful to me at times.
mailto: sales@realbasic.com

it is an interesting program...IIRC they have a converter app that does at least some of the grunt work in moving VB code into an RB project....Ive not used it myself though so I cant really say how good it is.

One _really_ nice feature they have put in place recently is remote debugging from one computer to another 9even across different platforms :), that has worked brilliantly for me and has made life considerably easier.

FullNameRequired
Tuesday, January 13, 2004

I *love* developing in java, and i'm one of its biggest advocates here on the forum, but.... it most definatly does NOT meet your criteria.  I think java is great for server side development...but it is not easy.  Out of our 6 or 7 development team, we've all had the most random weird things happen when installing java. Such and such needs a new version of libC, some other conflicts with older versions, etc.  Now, we figured all the problems out fairly quick, but if this was an end user....or a newbie programmer, I can imagine their frustration. 

vince
Tuesday, January 13, 2004

Eclipse is a free IDE for Java and you get far more than you have payed for, believe me.

Eclipse is the best IDE I've ever worked with.

Ged Byrne
Tuesday, January 13, 2004

Ged,

What other IDEs have you worked with (that Eclipse is superior to) ?

The real Entrepreneur
Wednesday, January 14, 2004

BTW, one of our competitors has a product in Java.

Last I heard it was very difficult to install. And it was developed by Unisys. You'd think they could get it right.

A customer asked, after trying the competitor's software: "will we have to change our screen resolution, lik with XYZ ?"

WHAT??? You're going to ask grandma to change her screen resolution size ???!!!

Again, perhaps Java CAN be easier to install, but I've never seen it happen. 

The real Entrepreneur
Wednesday, January 14, 2004

When it came to standalone GUI applications, Java had a number of really big teething problems. The language was primarily focused on applets and command line/server based code, so the GUI code performed badly and looked like crap. Since version 1.3 it is much better. GUI applications built for 1.4 look similar to the native platform and perform quite nicely.

Coming from a VB perspective, something you might miss in the current crop of IDE's for Java is a decent GUI builder. Most people prefer to hand code, which isn't hard, but sucks for productivity if you are focused more on the GUI than the logic. This would be the deciding factor.

In terms of issues others have bought up - from a coding perspective, I would rank Eclipse and IntelliJ IDEA over VS.NET 2003 (although people are working on fixing that http://martinfowler.com/bliki/IntelliCsharp.html).

A one step installation procedure is also possible in Java - there are many strategies, for example Yahoo bundles the virtual machine with the product: http://webhosting.yahoo.com/ps/sb/. There is no installation necessary (java runs standalone); installation is a matter of copying/unzipping a directory.

One other thing, if you build it correctly, you can also do cross platform development. Our application runs great on OS X and Windows. The only flaw is the differences in naming conventions (Windows generally uses OK and Cancel, whereas OS X is more verbose, such as Save and Don't Save).

Hope that clears a few things up :)

Rhys Keepence
Wednesday, January 14, 2004

java 1.4 + Eclipse is great combination!

IJ
Wednesday, January 14, 2004

C# - VS.NET is a great productivity environment. I guess VB.NET will be about the same.
Do you really need Windows 95 compatibility? Why support platforms that are themselves no longer supported?
If you consider the installation of the .NET runtime problematic (it is really simple through windowsupdate, and there are bootstrapping installers as well), I believe there is a utility that lets you statically link in the framework, so you do not need a prior install, but I have never used it and don't know how decent it is.
Making the apps self updating simplifies lifetime support for your user base.

Just me (Sir to you)
Wednesday, January 14, 2004

Just Sir wrote:
"Do you really need Windows 95 compatibility? Why support platforms that are themselves no longer supported?"

Well, lets say 10% of our customers have Win 95. We'd be giving up 10% of our revenues.  So, Win 95 is a nice to have.

Another even more important issue is simplicity: most people dont' even know IF they have Windows, much less the VERSION.

I know this seems trivial, but a key selling point of our software is EASE OF USE.

Also, .net requires IE 6.0. Again, you can have them install it and most people have it. BUT, another 10% of people probably won't have IE 6 and will get frustrated installing it.

So, now we're down by 20% of revenue before even starting the program.


Bottom line: we work very very hard to make easy to use software. If the LANGUAGE environment is difficult to install, then we've lost that competitive advantage which we've worked so ard to achieve.

The real Entrepreneur
Wednesday, January 14, 2004

http://www.remotesoft.com/linker/ at least claims to take a .NET program, link everything  into a miniruntime and allow you to deploy to machines (that have no framework installed) with a simple filecopy or unzip (no framwork install needed, no registry entries, nothing).
I have never tried this and don't know if it is true, but they seem genuine.
No Windows 95 support though.

Just me (Sir to you)
Wednesday, January 14, 2004

Remote Linker looks very very interesting. there are also some other promising technologies for this sort of thing: ThinInstall is one of them.

Here's the issue though:  You think DLL HELL is bad, just try depending on something like RemoteLinker, who's inner workings are beyond (my) comprehension.


Maybe I'm paranoid, but depending on something like Remote Linker for a commercial shrinkwrap app seems iffy.

But, I have heard fairly good things about ThinInstall.

The real Entrepreneur
Wednesday, January 14, 2004

If you don't need cross-platform compatibilty, and don't write device drivers, you won't find a more productive tool than Delphi or VB. I don't understand why people bother with eg. C++ or Java to write regular Windows applications.

You can always move on to VB.Net in a couple of years, once the .Net framework is more widely available on customer's hosts.

FredF
Monday, January 19, 2004

Real,

Have you taken a look at Eiffel[1]

It seems to satisfy your criteria.

The latest version is able to target not only Windows and Linux, but also .Net and Java.

I've been playing with it myself, to complement my reading of OOSC2, and I'm finding it less than intuitive.  I think its the loop syntax that is really throwing me.


[1] http://www.Eiffel.com

Ged Byrne
Monday, January 19, 2004

The real Entrepreneur,
I am following your thread with great interest -- we are in a similar situation. See:
http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&ixPost=88639&ixReplies=18

We are still with VB6 but in next few months we MIGHT start adding some functionality (via DLLs) to our application using Delphi.

Reading your post -- I would say it is between VB6 and Delphi7. I've been playing with Delphi for the last month or so and really like what it can do.  A 30d evaluation can be downloaded from Borland.com

I think Delphi is a better choice than VB for high volume consumer applications  (your application?)

Let me put it this way :-  I am still thinking of switching from VB6 to Delphi. Have you ever heard of anyone switching (or thinking of switching) from Delphi to VB6 ...?

Liam
Monday, January 19, 2004

One of my previous employers used delphi 5 (I believe, they're using 7 now).  Installing the applications was trivial,  one .EXE, copy to here.  Done.  However,  Database connectivity was a total pain in the ass.  So if you're doing DB stuff with delphi, beware.  The BDE would leak memory and randomly frag itself requiring reinstallation.

However,  the GUIs looked lovely and the installation was a breeze.  The IDE is fairly productive, feels like VS.NET without the quirks, though still nothing like Eclipse.

Michael Koziarski
Monday, January 19, 2004

Have worked with extesively with VB,C++,C# and Delphi.4 to 7.  C# is elegant and the .NET class library is wonderful but it isn't good for that "one .exe that runs on anything" feeling. 

I think Delphi is a fantastic environment and language that can also be ported to Linux using Kylix.  It takes real talent :) to write unreadable code in Delphi.  Delphi grows with you as you grow as well. There's also a huge support base of free components (with source code) for everything imaginable.  Using the BDE can be a pain but there are many wonderful alternatives.  I never use the BDE but choose to use the built in ADO components (couldn't be simpler) and/or a thirdparty tool called DBISAM whose engine compiles into my EXE's.  Painless.  Give it a week and you won't ever go back to VB guaranteed.  Get's the job done for me every time without the bull shit.  Stable an powerful.

I know it sounds like an advertisement but Microsoft didn't steal the cheif architect of Delphi (Anders Heljsberg) away from Borland to design C# for them without good reason.

Jink Welby
Thursday, February 19, 2004

*  Recent Topics

*  Fog Creek Home