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. |
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
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
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.
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
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, 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 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.
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
"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).
"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
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 |
Powered by FogBugz