# What coding language/development app would be used to develop this software?

**URL:** <https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996>\
**Category:** Factual Questions\
**Created:** [March 31, 2014, 4:21pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996 "2014-03-31T16:21:35Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![Sigma](https://avatars.discourse-cdn.com/v4/letter/s/dec6dc/32.png) [@Sigma](https://boards.straightdope.com/u/Sigma)\
**Post date:** [March 31, 2014, 4:21pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/1 "2014-03-31T16:21:35Z")

</div>

I am considering developing software that is similar to what is offered on the following two websites:

[http://www.xmind.net](http://www.xmind.net)  
[http://www.thebrain.com](http://www.thebrain.com)

I have some coding experience but I will have to self teach myself on how to develop this type of software (or get help from people with more experience on certain tasks). What coding languages/development applications do you recommend I use in order to develop software similar to what is offered on these websites? Are there certain development applications that are easier than others to learn that I should consider trying out first before delving into the other ones?

---

<div class="post-metadata">

**Author:** ![friedo](https://avatars.discourse-cdn.com/v4/letter/f/8edcca/32.png) [@friedo](https://boards.straightdope.com/u/friedo)\
**Post date:** [March 31, 2014, 4:29pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/2 "2014-03-31T16:29:08Z")

</div>

It would help if you describe what your software will actually do rather than linking to a couple sites full of marketing jargon.

---

<div class="post-metadata">

**Author:** ![Sigma](https://avatars.discourse-cdn.com/v4/letter/s/dec6dc/32.png) [@Sigma](https://boards.straightdope.com/u/Sigma)\
**Post date:** [March 31, 2014, 4:33pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/3 "2014-03-31T16:33:38Z")

</div>

Friedo, actually I was trying to be careful not to explain what the software I want to develop is for exactly. However, it could safely start off with a similar structure and look of XMind’s software. What kind of language/tools were likely used to develop XMind’s software?

Sorry if I wasn’t being clear enough.

---

<div class="post-metadata">

**Author:** ![Heracles](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/heracles/32/487_2.png) [@Heracles](https://boards.straightdope.com/u/Heracles)\
**Post date:** [March 31, 2014, 4:40pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/4 "2014-03-31T16:40:26Z")

</div>

XMind and The Brain are basically mind mapping tools.

Before anyone can answer meaningfully, you need to decide what platforms you’ll be targeting:  
[ul]  
[li]Web[/li][li]Windows desktop/laptop[/li][li]Mac desktop[/li][li]Linux desktop[/li][li]iPhone / iPad[/li][li]Android phone / tablet[/li][li]Windows phone / tablet[/li][/ul]

and for the last 6, do you want your users to be able to use it without an Internet connection?

If you plan to support multiple platforms, how will information travel between the devices? The Cloud can work wonders for this but will your users have security concerns?

Is there collaboration involved (multiple users working on the same plan)? If so, how will the collaboration work?

---

<div class="post-metadata">

**Author:** ![Heracles](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/heracles/32/487_2.png) [@Heracles](https://boards.straightdope.com/u/Heracles)\
**Post date:** [March 31, 2014, 4:46pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/5 "2014-03-31T16:46:39Z")

</div>

> [@Sigma](#):
>
> What kind of language/tools were likely used to develop XMind’s software?

XMind is a Java application, using several libraries from Eclipse and a few from Apache.

---

<div class="post-metadata">

**Author:** ![Sigma](https://avatars.discourse-cdn.com/v4/letter/s/dec6dc/32.png) [@Sigma](https://boards.straightdope.com/u/Sigma)\
**Post date:** [March 31, 2014, 7:04pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/6 "2014-03-31T19:04:08Z")

</div>

> [@Heracles](#):
>
> XMind and The Brain are basically mind mapping tools.
> 
> Before anyone can answer meaningfully, you need to decide what platforms you’ll be targeting:  
> [ul]  
> [li]Web[/li][li]Windows desktop/laptop[/li][li]Mac desktop[/li][li]Linux desktop[/li][li]iPhone / iPad[/li][li]Android phone / tablet[/li][li]Windows phone / tablet[/li][/ul]
> 
> and for the last 6, do you want your users to be able to use it without an Internet connection?
> 
> If you plan to support multiple platforms, how will information travel between the devices? The Cloud can work wonders for this but will your users have security concerns?
> 
> Is there collaboration involved (multiple users working on the same plan)? If so, how will the collaboration work?

The platforms I’ll be targeting are:

[ul]  
[li]Windows desktop/laptop[/li][li]Mac desktop[/li][li]Linux desktop[/li][/ul]

---

<div class="post-metadata">

**Author:** ![friedo](https://avatars.discourse-cdn.com/v4/letter/f/8edcca/32.png) [@friedo](https://boards.straightdope.com/u/friedo)\
**Post date:** [March 31, 2014, 7:18pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/7 "2014-03-31T19:18:00Z")

</div>

Java is a good choice for cross-platform desktop development. That’s probably why XMind chose it. 🙂

---

<div class="post-metadata">

**Author:** ![TimeWinder](https://avatars.discourse-cdn.com/v4/letter/t/bcef8e/32.png) [@TimeWinder](https://boards.straightdope.com/u/TimeWinder)\
**Post date:** [March 31, 2014, 7:18pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/8 "2014-03-31T19:18:16Z")

</div>

> [@Sigma](#):
>
> The platforms I’ll be targeting are:
> 
> [ul]  
> [li]Windows desktop/laptop[/li][li]Mac desktop[/li][li]Linux desktop[/li][/ul]

Probably Java, then. It’s likely the easiest-to-learn language that will give you decent performance and yet shield you from the intricacies of the various platforms. And if it turns out that you need something more advanced, it’s a good stepping stone to several other languages.

That said, these things are pretty firmly in the “generic system programming” camp, so a lot of it will boil down to personal preference.

---

<div class="post-metadata">

**Author:** ![TimeWinder](https://avatars.discourse-cdn.com/v4/letter/t/bcef8e/32.png) [@TimeWinder](https://boards.straightdope.com/u/TimeWinder)\
**Post date:** [March 31, 2014, 7:20pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/9 "2014-03-31T19:20:34Z")

</div>

> [@Sigma](#):
>
> Friedo, actually I was trying to be careful not to explain what the software I want to develop is for exactly.

Also, don’t worry about this: the hard part of software development is the “development,” not the idea. I can pretty much guarantee nobody’s going to “steal” your idea, which has probably been thought of multiple times before, anyway. Ideas are pretty worthless in software without implementations.

---

<div class="post-metadata">

**Author:** ![Sigma](https://avatars.discourse-cdn.com/v4/letter/s/dec6dc/32.png) [@Sigma](https://boards.straightdope.com/u/Sigma)\
**Post date:** [March 31, 2014, 7:58pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/10 "2014-03-31T19:58:55Z")

</div>

Not trying to be too flattering but it’s rare I see so many smart people answer questions about so many different topics so fast like on this board.

A while ago, decided I was going to use sources such as these to learn the target programming language as soon as possible:

[http://www.courses.com](http://www.courses.com)  
[http://www.codecademy.com/](http://www.codecademy.com/)  
[http://ocw.mit.edu/index.htm](http://ocw.mit.edu/index.htm)

[http://stackoverflow.com/](http://stackoverflow.com/) and [http://stackexchange.com/](http://stackexchange.com/) also look quite substantive.

Are there other sources I should look out for to get me up to speed in the least amount of time?

---

<div class="post-metadata">

**Author:** ![friedo](https://avatars.discourse-cdn.com/v4/letter/f/8edcca/32.png) [@friedo](https://boards.straightdope.com/u/friedo)\
**Post date:** [March 31, 2014, 8:26pm UTC](https://boards.straightdope.com/t/what-coding-language-development-app-would-be-used-to-develop-this-software/684996/11 "2014-03-31T20:26:56Z")

</div>

Stack Overflow is excellent, but it’s not a tutorial site. If you ask _good_ questions (here is my very _specific_ goal, here is what I tried, but I am running into these _specific_ problems) you will get good answers. If you ask bad questions (write my code for me plz) you will just annoy people.
