I am familiar with a number of development platforms, but expert of none I want to concentrate on one or two, so that I can develop some expertise, but I am having a hard time deciding which ones would be more worthwhile for me. I've asked some colleagues, but there doesn't seem to be a consensus there, either. Some suggest I should just concentrate in Java, while others insist that C++ is where it's at, and some tell me that there is no such thing as the "best" platforms.

Visitors here seem to have some good experience and expertise and I hope I can get some helpful suggestions.

I don't think you'll find a generic answer tho that question. First because most modern platforms are pretty powerful and you can do most things you need with most of them and second because when it really depends on what the job at hand it. Rule of thumb is, pick the platform you are most knowledgeable and comfortable with.

Yeah, I can see how a general answer may not be appropriate. So, I can try and narrow it down. I am trying to find out what platform would you recommend if my goal is to primarily develop web applications. Does that make more sense?

Forgive me if this is an ignorant post, but the web is full of terms being thrown around by people that may not really know what they mean and it confuses the he*k out of me (who REALLY doesn't know what they really mean)

I see terms like IDE, Programming language, Development environment, Platform, Framework, Foundation, etc. many times being used to refer to the SAME thing! Can someone please tell me what the differences really are?

Chris, when you ask what platform to use, do you mean which programming language? What OS? What development environment? Something else?

CindyLak, I am definitely not an expert, but have looked at answering this question in the past. Here is what I have been able to find out from public sources. I am sure some will disagree with these rough definitions, but if they do, they can post *their* definition. I'd certainly like that! I also see that I may have not used the correct term when I asked which platform to use. Which goes to show that indeed these terms may be used very loosely

IDE: An integrated development environment (IDE) or interactive development environment is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. Most modern IDEs offer Intelligent code completion features.

Programming language: A programming language is a formal constructed language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs to control the behavior of a machine or to express algorithms.

Development environment: In general, same as the IDE above. In hosted software (e.g., web site/application, database not shrinkwrap software) development, a development environment refers to a server tier designated to a specific stage in a release process.

Platform (Computing platform): A computing platform is, in the most general sense, whatever pre-existing environment a piece of software is designed to run within, obeying its constraints, and making use of its facilities. Typical platforms include a hardware architecture, an operating system (OS) and runtime libraries.

Framework: (Many different type)
- Architecture framework
- Software framework, a reusable set of libraries or classes for a software system (or subsystem)
- CSS frameworks
- Ajax framework
- List of rich Internet application frameworks
- Application framework, used to implement the standard structure of an application for a specific operating system
- Content management framework, reusable components of a content management system used to manage web content
- Web application framework, for development of dynamic websites, web applications, and web services
- Multimedia framework, handles media on a computer and through a network
- Framework-oriented design, a programming paradigm that uses existing frameworks as the basis for application design
- Framework (office suite), a DOS office application suite launched in 1984 to run on the original IBM PC

As an example, Architecture framework: "An architecture framework establishes a common practice for creating, interpreting, analyzing and using architecture descriptions within a particular domain of application or stakeholder community. Examples of Architecture Frameworks: MODAF, TOGAF, Kruchten's 4+1 View Model, RM-ODP."

Foundation: A collection of tools, libraries, etc. that software development is based on (like the foundation of a house).

Even according to the definitions *you* posted, what you asked seems inconsistent! You are asking what software platform is recommended, but your definition says that the platform is a lot more than just software!

Not sure where the other Chris got his definitions, but it's not this black and white. For example, if you take a look here, http://dictionary.reference.com/browse/ ... e+platform you'll see that "software platform, noun, a major piece of software, as an operating system, an operating environment, or a database, under which various smaller application programs can be designed to run."

Also, in wikipedia, you can see that, "Java (software platform) - Java is a set of several computer software products and specifications from Oracle Corporation that provides a system for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones on the low end, to enterprise servers and supercomputers on the high end. While less common, Java applets are sometimes used to provide improved and secure functions while browsing the World Wide Web on desktop computers."

So, you can see why he was asking about Java and "other" software platforms.

Chris, putting aside the terminology, at this point, I think the additional information you provided helps, although you may need to fine tune your goals a bit more, before you find the right solution. Developing web apps itself can have a slightly different meaning for people. For example, to some, developing an on-line store with Drupal may be developing a web app, while to the purists, this may be just developing a web site, not a web app. If you truly are looking for recommendations regarding a web app, and you are a Microsoft users, then I think you can't go wrong by using ASP.Net with C#.

If you are not looking to develop a web app, but are mainly interested in creating a web store, or something, then the recommended solution would be different.