The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

What language to pick

I would like to write shrinkwrap consummer application. My experience majorly are from enterprise world and I like OOP. So what language should I pick?

VB is definitely out. I am familiar with Java and C#, but the size of runtime : .Net and Java VM make them unpractical for shrinkwrap consummer applications. So what is your suggestions for a platform which has OOP programming power but without pain of bundle of Virtual Machines.
Wonderer
Friday, March 31, 2006
 
 
C++.
sloop
Friday, March 31, 2006
 
 
Do we have to go through this AGAIN? This question has been answered so many times it isn't even funny.

And here is the answer: whatever you are most comfortable with.
anon
Friday, March 31, 2006
 
 
Anor, could you give links for the discussions. Thanks.
Wonderer
Friday, March 31, 2006
 
 
I find it surprising how popular Google is yet the average person never thinks of using the "search" feature on any given website they visit.
Phillip Zedalis Send private email
Friday, March 31, 2006
 
 
Whoa!?  You can search in Google!?

Sweet.
KC Send private email
Friday, March 31, 2006
 
 
Are forums simply about information aquisition, or are they sometimes about community and conversation, too?  At my house, there are some things that we don't just discuss *once*.  And sometimes people ask questions, in part, as a way to introduce themselves to a forum.  I could use Google to find the nearest resources when I move to a new neighborhood, or I could ask my neighbors as an opportunity to get to know them better.

Life isn't just about cataloging information, and I've always had the impression that this forum is a little bit more than that, as well.
Aaron_
Friday, March 31, 2006
 
 
This is such a popular, multi-faceted and never-ending question, someone should start a web site or Wiki or something that tries to compare the major languages in a relatively unbiased (yes I know that's impossible...) way.
NetFreak Send private email
Friday, March 31, 2006
 
 
Installing the .NET runtime as part of your application's installation is easy. The size of the runtime is probably not an issue, unless most of your potential sales will be from users downloading the software over slow dialup services.  That being said,  only you can really answer your initial question.  Things to consider while making your decision are:

- How long will it take me to become productive with language X (C++, Delphi, etc)?
- Who is my target market?
- How long to do I have to get the product to market?
- What are the minimum hardware requirements for the app?
- What operating systems will I support (Windows 95, XP, OSX, etc)?
- How long would it take to develop in language X as opposed to language Y? You won't be able to answer this unless you known both languages well.
...

Good luck.
cipher
Friday, March 31, 2006
 
 
Wonderer:

Sounds like you want a high-performance OOP language that allows fast development and does not require a huge runtime that the user must install.

There is only one choice that meets those requirements: Delphi.

 http://www.borland/com/delphi

It is in transition right now, but it's a hugely popular development platform the world over.
Karl Perry Send private email
Friday, March 31, 2006
 
 
Karl, you give me the exact answer I want, thanks. I also think C++ might also be one choice, but the pointer thing always scares me away.
Wonderer
Friday, March 31, 2006
 
 
I second taking a look at Delphi.  It's the one that I use, for exactly the reasons mentioned.  I use Delphi 7, and from what I hear, you should avoid 2005.  2006 is supposed to be quite good.  Like already mentioned though, Borland is in a transition stage, which may or may not be a big deal in the long run for Delphi.
Aaron_
Friday, March 31, 2006
 
 
Just to stir things up a bit, why are we still using computer languages at all? I got my B.S. in Computer Science in 1984, and frankly I am amazed at how little things have changed in the past 22 years.

I believe that there will come a time in the not-too-distant future when computer languages and operating systems will be obsolete. What's holding back innovation? Probably the size of the installed base.

Frankly I am very disappointed that Microsoft's latest offering, C#, is not more object-oriented. Sure, you can build object-oriented software using C#. But as a developer, you are sitting there looking at a big text file. That's what I was doing in 1984.

Why are complex forms so difficult to create and maintain? Largely because they are based on a "push" model where each control is responsible for updating the state of all the other controls. For example, when someone checks a certain box, that control's event handler is responsible for enabling or disabling any other controls that are affected. Why can't I just enter a Boolean expression into the Visible and Enabled properties of a control, and have the system automatically evaluate the expression at runtime? Example:

  IsPregnantCheckBox.Enabled = "GenderCombo.Value = cGenderFemale"

If any control is not being shown or enabled at the right times, we have only to look at the Boolean expressions in that control's property sheet. Controls don't just sit there. They sense their surroundings and modify themselves accordingly. All of the logic governing the control's behavior is encapsulated within the control's definition.

Avalon/WPF/XAML will be a step in this direction, but from what I've seen it doesn't go very far. We will still be writing a lot of code that assigns properties to controls at runtime. And that is a big productivity killer for all but the simplest of form designs.

Someday were going to look back and say "Remember when every computer had an operating system and we used text-based languages to create software.". I have no doubt that we will find better ways to do things. But I'm not confident that anybody is really working on the problem at the moment.
Smoothie
Friday, March 31, 2006
 
 
With respect to Smoothie's comment...

I've only seen one proposed paradigm that was universally understood (as opposed to accepted) and that was to build software the same way you built furniture and cars, except within virtual reality. To be more precise, you figuratively could drag and drop entire objects at every level of scale imaginable, and machine the interfaces and casings to make everything fit together.

There have been other proposals, but so far, the only place I encounter them is in academical circles and as exericises in developing non-boolean logic systems. For example, how would you program a quantum computer?  Hint: the most credible approach I've heard is through a quasi-telepathic/observation technique.

I think the technology to enable alternative means of computing (beyond text based programs and operating systems) is just too far off. True artificial intelligence and quantum computing are seen as more immediate goals.
TheDavid
Friday, March 31, 2006
 
 
"Someday were going to look back and say "Remember when every computer had an operating system and we used text-based languages to create software.". I have no doubt that we will find better ways to do things. But I'm not confident that anybody is really working on the problem at the moment."

I think we need to first fix the current file text situation, to then evolve to something better. The file text situation still has some advantages, and by knowing what they are maybe we can take a solid next step. The problem is that many programming languages fall short of empowering the files, which should be more meaningful than a simple repository of code. Now imagine that such meaningful files suddenly can become objects? I am going in that direction.
Lostacular
Friday, March 31, 2006
 
 
"Why use languages at all?" -- the mind boggles.  Why use a typewriter/keyboard?  Why not just draw free-hand?
AllanL5
Friday, March 31, 2006
 
 
"Why use languages at all?"

Isn't that the promise of UML?

However, all those black boxes have to be built from something.  And what they are built from has to be built from something.  And so on and so on all the way down to the gate arrays.
Karl Perry Send private email
Friday, March 31, 2006
 
 
"Why can't I just enter a Boolean expression into the Visible and Enabled properties of a control, and have the system automatically evaluate the expression at runtime? Example:

  IsPregnantCheckBox.Enabled = "GenderCombo.Value = cGenderFemale"

"

Not exactly, but Delphi's TActionList is way of getting behavior pretty close to what you want.  It greatly simplifies enabling/disabling logic with events filled with code like yours that get polled automatically.  As far as I can tell, though, a lot of Delphi programmers are unaware of TActionlist or for some reason don't use it.  I'm pretty sure .NET has a counterpart for TActionList that does much the same.  Not sure about other environments.
Herbert Sitz Send private email
Friday, March 31, 2006
 
 
YOU SHOULD PICK GWBASIC.
John
Friday, March 31, 2006
 
 
That should read:

10 'PRINT YOU SHOULD PICK GWBASIC'
20 GOTO 10
ping?
Saturday, April 01, 2006
 
 
Clearly the language you need is ruby.

1. You can easily compile ruby programs in tight executables without any run-time dependencies.
2. You can use visual studio to design the Ruby forms, so you don't have to put the GUI layer in your code.
3. Ruby has execelent compile-type type checking.
4. Ruby has good threading support, which is essential for a responsive client-side application.
5. All major windows applications are written in ruby, including Visual Studio, Office, Photoshop and Firefox. If it's good enough for those applications it's definitely good enough for you.

Good luck.
Jeb
Saturday, April 01, 2006
 
 
ping, you got the single quote in the wrong place. That's the problem with having to _type_ those complicated languages!
(and i just noticed my nicname is a rude word)
i use 1000111011011100 to program
Saturday, April 01, 2006
 
 
Jeb, are you serious that those applications are written in Ruby, I think you are just kidding.

Saturday, April 01, 2006
 
 
It is april fool , fool.
April
Saturday, April 01, 2006
 
 
"You can search in Google!? Sweet."

This is awesome. I was just using it to find out whose birthday it was. So what is the rectange used for?
Benny Hill
Saturday, April 01, 2006
 
 
There is only one acceptable, reasonable choice for your requirements: Delphi 7 (later versions are plagued with very serious problems so buy an old copy, used).
Frank de Groot Send private email
Sunday, April 02, 2006
 
 
"I believe that there will come a time in the not-too-distant future when computer languages and operating systems will be obsolete. What's holding back innovation? Probably the size of the installed base."


If the installed base is growing, and the installed base is what holds us back, why do you beleive change is coming in the not-too-distant future?
MJ
Sunday, April 02, 2006
 
 
+Delphi.

The newest Borland IDE (Borland Developer Studio 2006) supports Delphi, C++, C#, and Delphi for .NET. The new IDE is  pretty impressive, too.

Ken
Ken
Monday, April 03, 2006
 
 
inc(Delphi);

just make sure you don't buy D8 or 2005!

(I'm still on D6, but 2006 seems to be pretty good).
Fritz Huber Send private email
Monday, April 03, 2006
 
 
What's wrong with VB? Joel Spolsky's CityDesk was written in VB6 and C++ and it's a pretty nice application.
Wayne B Send private email
Thursday, April 06, 2006
 
 
"What's wrong with VB?"

Because he doesn't want the runtime issues.  He said that in his original post.

He also wants OOP, which VB isn't.
Karl Perry Send private email
Friday, April 07, 2006
 
 
He's also scared by pointers, to which I'd add the suggestion that he tries to think of VERY VERY SIMPLE software to write and sell, because software passes "pointers" a long, long, long time before it actually gets complex.
Katie Lucas
Friday, April 07, 2006
 
 
use smalltalk. its very nice OO language w/o having any problems of modern programming languages.

Saturday, April 08, 2006
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz