ATTENTION: You are viewing a page formatted for mobile devices; to view the full web page, click HERE.

Other Software > Developer's Corner

How to choose programming language?

<< < (6/8) > >>

Armando:
Someones going to like you... His jaw is... made of metal?

jdmarch:
2armando: (metal jaw)... HUH?

2ketracel: After an investigation similar to yours, I also chose python. Too early to give a verdict, but so far I'm happy with the decision. It's readable, writable, logical, powerful, extensible, pretty good supply of tools, good community. If you need heavy numeric array processing, numpy seems outstanding. What graphics package(s) are you thinking of using? I'm inclining toward wxpython and chaco.

Armando:
[off-topic]clue : [/off-topic]

Ehtyar:
LOL
I'm also pleased, it is a good decision, and python + wx should serve you well.

Ehtyar.

CWuestefeld:
I read through this thread once last night, and bit my tongue, saying I'll look at it fresh in the morning. I'm back, and I'm sorry to say that I'm still infuriated.

Why in the world would someone other than the developer want to choose the language that an application is developed in? You admit yourself that you're not the expert. But even I, an expert proficient in more languages (and language families, for that matter) than I can even count anymore, wouldn't make this decision at the beginning of the project.

Do you buy software based on the language that it was coded in? I know that there are some open-source zealots who do this, but they're insane. The fact is, an application does its job or it doesn't. That's what you make the buying decision based on.

Let the developers do the analysis and high-level design first, and then let them make the decision. I'm certain that on any modern hardware, any reasonable choice of programming language will provide a responsive user interface -- assuming that the developers are competent on the platform; understand well both the language chosen and the problem they're trying to help the user solve; and sufficient resources (time, tools) to complete the project.

I understand that you're looking to sponsor a project, and want to ensure that it's successful, but this is not the way to do it. You may actually be undermining its success.

It's true that some languages are better at some things than others, but there are many more factors than that oversimplification -- and they're generally more important.

It's an oversimplification because modern compilers and JITters (e.g., the .Net CLI and Java) are very smart. It's common now for high-level languages to demonstrate higher performance than hand-coded assembler or C.

But also, allowing developers to use higher-level abstractions frees them to address the overall architecture more fully. Even if you could code something in C++ that would be 5x faster, if there were an alternative approach that only needs to execute 10% as often, that alternative would be better. This isn't so hypothetical. Every time you find yourself frustrated with an application, it's because the developers failed in building an application that anticipated your needs. If you force developers into the wrong tool, you're diverting resources away from preventing these problems, and into the minutiae of coding.

And you've got to consider the skills of the individual developers. The failure of the Chandler project has been discussed here recently. Many observers believe that part of its problems were that an executive decision had been made to use the Python language. But most of the developers didn't have the experience to "think" in Python, and instead wrote Java code in Python (if you can see what I mean). This means that the project got the worst of both worlds: they weren't able to leverage Python's strengths, but they retained all of the limitations of the Java platform.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version