我的项目使用什么语言?

时间:2023-01-13 09:54:42

I'm going to advise a company on a project soon, and I'm not too sure about what programming language I should advise.

我很快就会就一个项目向一家公司提供建议,而且我不太清楚我应该建议的编程语言。

It's a fairly straightforward (desktop based) application with a central datasource on the network, for storing and editing parts that make up a machine. The machine needs to be configured in the application, and with this configuration production documents (manuals, software, bill of material) are generated. (e.g. if part A and B are added to the configured machine, then variation X on chapter 5 of the manual has to be used, if that makes sense)

它是一个相当简单(基于桌面)的应用程序,在网络上有一个*数据源,用于存储和编辑组成机器的部件。需要在应用程序中配置机器,并使用此配置生成生产文档(手册,软件,物料清单)。 (例如,如果将A部分和B部分添加到配置的机器中,则必须使用本手册第5章中的变体X,如果有意义的话)

There's a few non-standard components like a tree with radio & checkboxes, and it has to have some sort of version control in it. It needs a WYSIWYG editor to edit chapters of manuals. It doesn't necessarily have to run on platforms other than Windows because it will only be used on the company network and everybody runs windows.

有一些非标准组件,如带有收音机和复选框的树,它必须有一些版本控制。它需要一个WYSIWYG编辑器来编辑手册的章节。它不一定必须在Windows以外的平台上运行,因为它只会在公司网络上使用,并且每个人都运行Windows。

I was thinking Java because of it's huge numbers of useful libraries and free IDE's. I'm a Java programmer myself so I'm not very familiar with other programming languages. Any thoughts on what language I should use, and why? I believe there's a bit of VB/VBA and Delphi knowledge present in the company (it's not an IT company and I'm not likely to program it myself).

我在想Java,因为它有大量有用的库和免费的IDE。我自己就是Java程序员,所以我对其他编程语言并不熟悉。关于我应该使用什么语言的想法,为什么?我相信公司中存在一些VB / VBA和Delphi知识(它不是IT公司,我不太可能自己编程)。

Thanks heaps!

14 个解决方案

#1


From what your describe of your application and environment, nothing can beat Delphi!

根据您对应用程序和环境的描述,没有什么可以击败Delphi!

It's the ideal case for Delphi to shine:
- native desktop application with fastest performances and development combined.
- plethora of excellent (often free) components; you'll probably find your tree
- extremely powerful yet simple for DB applications
- very active and helpful community

这是Delphi发光的理想案例: - 具有最快性能和开发结合的原生桌面应用程序。 - 过多的优秀(通常是免费的)组件;你可能会找到你的树 - 对于数据库应用来说非常强大而且简单 - 非常活跃和有用的社区

See also why I recommended it for another SO user.

另请参阅我为其他SO用户推荐的原因。

#2


I think if you have Delphi knowledge in your company : it is a very good choice for Desktop application and as avar says : you can find a lot's of good components here Torry's Delphi Pages.

我想如果你的公司有Delphi知识:这是桌面应用程序的一个很好的选择,正如avar所说:你可以在Torry的Delphi页面找到很多好的组件。

I recommend this article

我推荐这篇文章

#3


for desktop applications ( plus with database/win32 things) i'd recommend delphi. u can find many good components availabe .

对于桌面应用程序(加上数据库/ win32的东西),我建议使用delphi。你可以找到很多好的组件。

#4


You probably want to choose the language that your team has the most experience with. I personally am into Delphi, and it sounds like this might be a good choice for what you describe. Delphi is highly suited for Desktop apps talking to a database. However if your team (those writing and maintain the app) are more experienced with Java / C# / VB then you should go with that.

您可能希望选择您的团队最有经验的语言。我亲自进入Delphi,听起来这可能是你所描述的一个很好的选择。 Delphi非常适合与数据库通信的桌面应用程序。但是,如果您的团队(编写和维护应用程序的人员)对Java / C#/ VB更有经验,那么您应该使用它。

#5


Well the scenario you describe is not very language specific, so here are a few hints:

那么你描述的场景不是特定于语言的,所以这里有一些提示:

  • generally, java is absolutely ok but:
  • 一般来说,java绝对可以,但是:

  • In a windows world, you can live easier with .net languages, because of direct access to COM/activex for combining documentation snippets in adobe or Word
  • 在Windows世界中,您可以使用.net语言更轻松地生活,因为可以直接访问COM / activex,以便在adobe或Word中组合文档片段

  • since there's some vb knowledge about in the company, maybe the task of maintaining the software becomes cheaper.
  • 由于公司有一些vb知识,维护软件的任务可能会变得更便宜。

I would suggest c#, because via mono, you can go Linux where and if necessary.

我建议使用c#,因为通过mono,你可以在必要的地方使用Linux。

well, that's my 2 cents.

好吧,这是我的2美分。

#6


Depends. On many things. What language are you familiar with? What database do you use (MS SQL has some advantages when used with a .NET language, but can also be used with java, or ...)?

要看。在许多事情上。你熟悉哪种语言?您使用什么数据库(MS SQL与.NET语言一起使用时有一些优点,但也可以与java一起使用,或者......)?

The libraries are (at least for me) not a main decision point since there are a lot libraries for other languages too.

这些库(至少对我而言)不是主要决策点,因为其他语言也有很多库。

If you do not program yourself, ask the developer doing the job. Projects have other marks than technology such as time used and money spent. If you choose a language the developer is familiar with, it's more likely to be in time and in cost.

如果您没有自己编程,请让开发人员完成这项工作。项目有其他标记,而不是技术,如使用时间和花费。如果您选择开发人员熟悉的语言,则更有可能是及时和成本。

Your question is somehow far too open to give an exact answer. But maybe this helps you to think about it.

你的问题在某种程度上太开放了,无法给出确切的答案。但也许这有助于你思考它。

#7


You should use whichever language is:

您应该使用以下任何一种语言:

1) Most appropriate for the project

1)最适合该项目

For example: If your project requires real-time processing, use a language that is conducive to performing that task.

例如:如果您的项目需要实时处理,请使用有助于执行该任务的语言。

2) You (and your team) is most comfortable with.

2)你(和你的团队)最舒服。

You would need to discuss with your team whether any languages that you currently know between you all are appropriate (keeping point 1 in mind). If none are appropriate, which language (with point 1 in mind) will all be most comfortable with in learning, developing and supporting (maintaining) throughout the life-time of your project.

您需要与您的团队讨论您当前认识的任何语言是否合适(记住第1点)。如果没有合适的话,在项目的整个生命周期中学习,开发和支持(维护)的语言(记住第1点)都是最舒适的。

This sounds like very curt advice, but I believe it's crucially important. If your project is to succeed, you need a language that you can "live" with, and will work with you rather than against you. If you were a wood-worker, you could use a hammer to put screws into a piece of wood, but wouldn't you be much more comfortable using a screwdriver?

这听起来很简单,但我相信这一点至关重要。如果您的项目要成功,您需要一种可以“生活”的语言,并且将与您合作而不是与您合作。如果你是一名木工,你可以用锤子将螺丝放入一块木头中,但使用螺丝刀会不会更舒服?

#8


Of the tagged languages, avoid asp.net as it's a desktop application. Other than that all the other languages would do a good job. It would come down to personal preference (more importantly the personal preference of the developer).

在标记语言中,避免使用asp.net,因为它是桌面应用程序。除此之外,所有其他语言都能做得很好。这取决于个人偏好(更重要的是开发人员的个人偏好)。

#9


I'm a Java programmer myself so I'm not very familiar with other programming languages.

我自己就是Java程序员,所以我对其他编程语言并不熟悉。

If you're going to write the software you should use Java. You're already familiar with it and your familiarity can help you delight your customer.

如果你要编写软件,你应该使用Java。您已经熟悉它,您的熟悉程度可以帮助您取悦您的客户。

#10


If you aren't writing it you need to find out who is and take their experience into consideration. Having them learn a new language just because you don't know what they are familiar with is not exactly a good way to go.

如果你不写作,你需要找出谁是谁,并考虑他们的经验。让他们学习一门新语言只是因为你不知道他们熟悉什么并不是一个好方法。

Java would work, C# would work (I would personally pic C#), it really just depends on the experience you have available.

Java会起作用,C#会起作用(我个人会用C#编写),它实际上只取决于你所拥有的经验。

What is this about the "non-standard" components? If there are 3rd party controls they want to use that might dictate the language/platform to work with. There are lots of free controls and examples in Java and C# as well and extending the standard Java / .NET controls might even work better that going with the 3rd party controls.

这是什么“非标准”组件?如果有他们想要使用的第三方控件可能决定使用的语言/平台。 Java和C#中还有许多免费控件和示例,扩展标准Java / .NET控件甚至可以更好地与第三方控件一起使用。

Sounds like you need to know more about the application and some other things that are out there before you can really be advising somebody else on what to do.

听起来你需要更多地了解应用程序以及其他一些事情,然后才能真正建议其他人做什么。

#11


Well, there is a lot of wisdom with using what you know (Java).

嗯,使用你所知道的(Java)有很多智慧。

However, just to counter the "because of it's huge numbers of useful libraries and free IDE's" - .NET also has a huge library base, and free IDEs (including the Express editions of Visual Studio). For .NET, C# would be a "closer" language to Java than VB.

然而,仅仅为了对抗“因为它有大量有用的库和免费的IDE” - .NET还拥有庞大的库库和免费的IDE(包括Visual Studio的Express版本)。对于.NET,C#将是比Java更“接近”Java的语言。

I reckon you'll end up with Java, though (through familiarity - not always a bad thing).

我认为你最终会得到Java(通过熟悉 - 并不总是坏事)。

#12


When we build client side systems we use .Net (C# usually). We do Java on the back end, but it sounds like you may not have a traditional back end. For all the libraries and frameworks that are available for Java the vast majority of high quality UI components are in the .Net space these days.

当我们构建客户端系统时,我们使用.Net(通常是C#)。我们在后端做Java,但听起来你可能没有传统的后端。对于可用于Java的所有库和框架,绝大多数高质量UI组件目前都在.Net领域。

#13


When you are managing the development and someone else is doing the implementation and maintenance then I'd suggest to negotiate the programming language with them.

当您管理开发并且其他人正在执行和维护时,我建议与他们协商编程语言。

When you have to do the maintenance then focus on languages that you know.

当您必须进行维护时,请关注您所知道的语言。

If you do all/most of the work, just use what language you are familiar with, when you don't have enough time to learn a new language on the way. Especially if the application is important and needs to be pretty bug free. (although there is never a "last bug" as we all know) ;-)

如果您完成所有/大部分工作,只需使用您熟悉的语言,当您没有足够的时间学习新语言时。特别是如果应用程序很重要并且需要非常无bug。 (虽然我们都知道从来没有“最后的错误”);-)

The amount of 3rd party libraries is not a good criterion because this doesn't reflect their quality (maybe most stuff is crap) and many libraries means also a big chance to select the wrong one.

第三方库的数量不是一个好的标准,因为这并不反映它们的质量(也许大多数东西都是垃圾),许多库也意味着选择错误的库很大。

Don't forget to check if the chosen language is capable of doing the job. (Speed, platform constraints, memory footprint, ...)

不要忘记检查所选语言是否能够胜任。 (速度,平台限制,内存占用,...)

#14


I think it doesn't really matter that much in which programming language and environment you program, as long as you get to know it thoroughly. C++, Java and C# all have good libraries and all have their strengths and weaknesses. The important thing is that you know the peculiarities of the language, the development environment, the debugger, a good profiler, the standard libraries, the best third party libraries, etc... Moreover, after a while you can reuse your own code as well. For example, you mention an advanced tree widget. In our company, we have our own tree (in C++) which we can finetune as we like.

我认为只要你彻底了解它,编程语言和编程环境并不重要。 C ++,Java和C#都有很好的库,都有自己的优点和缺点。重要的是你知道语言的特性,开发环境,调试器,优秀的分析器,标准库,最好的第三方库等等。而且,过了一段时间,你可以重用自己的代码作为好。例如,您提到了一个高级树窗口小部件。在我们公司,我们有自己的树(用C ++),我们可以根据需要进行微调。

#1


From what your describe of your application and environment, nothing can beat Delphi!

根据您对应用程序和环境的描述,没有什么可以击败Delphi!

It's the ideal case for Delphi to shine:
- native desktop application with fastest performances and development combined.
- plethora of excellent (often free) components; you'll probably find your tree
- extremely powerful yet simple for DB applications
- very active and helpful community

这是Delphi发光的理想案例: - 具有最快性能和开发结合的原生桌面应用程序。 - 过多的优秀(通常是免费的)组件;你可能会找到你的树 - 对于数据库应用来说非常强大而且简单 - 非常活跃和有用的社区

See also why I recommended it for another SO user.

另请参阅我为其他SO用户推荐的原因。

#2


I think if you have Delphi knowledge in your company : it is a very good choice for Desktop application and as avar says : you can find a lot's of good components here Torry's Delphi Pages.

我想如果你的公司有Delphi知识:这是桌面应用程序的一个很好的选择,正如avar所说:你可以在Torry的Delphi页面找到很多好的组件。

I recommend this article

我推荐这篇文章

#3


for desktop applications ( plus with database/win32 things) i'd recommend delphi. u can find many good components availabe .

对于桌面应用程序(加上数据库/ win32的东西),我建议使用delphi。你可以找到很多好的组件。

#4


You probably want to choose the language that your team has the most experience with. I personally am into Delphi, and it sounds like this might be a good choice for what you describe. Delphi is highly suited for Desktop apps talking to a database. However if your team (those writing and maintain the app) are more experienced with Java / C# / VB then you should go with that.

您可能希望选择您的团队最有经验的语言。我亲自进入Delphi,听起来这可能是你所描述的一个很好的选择。 Delphi非常适合与数据库通信的桌面应用程序。但是,如果您的团队(编写和维护应用程序的人员)对Java / C#/ VB更有经验,那么您应该使用它。

#5


Well the scenario you describe is not very language specific, so here are a few hints:

那么你描述的场景不是特定于语言的,所以这里有一些提示:

  • generally, java is absolutely ok but:
  • 一般来说,java绝对可以,但是:

  • In a windows world, you can live easier with .net languages, because of direct access to COM/activex for combining documentation snippets in adobe or Word
  • 在Windows世界中,您可以使用.net语言更轻松地生活,因为可以直接访问COM / activex,以便在adobe或Word中组合文档片段

  • since there's some vb knowledge about in the company, maybe the task of maintaining the software becomes cheaper.
  • 由于公司有一些vb知识,维护软件的任务可能会变得更便宜。

I would suggest c#, because via mono, you can go Linux where and if necessary.

我建议使用c#,因为通过mono,你可以在必要的地方使用Linux。

well, that's my 2 cents.

好吧,这是我的2美分。

#6


Depends. On many things. What language are you familiar with? What database do you use (MS SQL has some advantages when used with a .NET language, but can also be used with java, or ...)?

要看。在许多事情上。你熟悉哪种语言?您使用什么数据库(MS SQL与.NET语言一起使用时有一些优点,但也可以与java一起使用,或者......)?

The libraries are (at least for me) not a main decision point since there are a lot libraries for other languages too.

这些库(至少对我而言)不是主要决策点,因为其他语言也有很多库。

If you do not program yourself, ask the developer doing the job. Projects have other marks than technology such as time used and money spent. If you choose a language the developer is familiar with, it's more likely to be in time and in cost.

如果您没有自己编程,请让开发人员完成这项工作。项目有其他标记,而不是技术,如使用时间和花费。如果您选择开发人员熟悉的语言,则更有可能是及时和成本。

Your question is somehow far too open to give an exact answer. But maybe this helps you to think about it.

你的问题在某种程度上太开放了,无法给出确切的答案。但也许这有助于你思考它。

#7


You should use whichever language is:

您应该使用以下任何一种语言:

1) Most appropriate for the project

1)最适合该项目

For example: If your project requires real-time processing, use a language that is conducive to performing that task.

例如:如果您的项目需要实时处理,请使用有助于执行该任务的语言。

2) You (and your team) is most comfortable with.

2)你(和你的团队)最舒服。

You would need to discuss with your team whether any languages that you currently know between you all are appropriate (keeping point 1 in mind). If none are appropriate, which language (with point 1 in mind) will all be most comfortable with in learning, developing and supporting (maintaining) throughout the life-time of your project.

您需要与您的团队讨论您当前认识的任何语言是否合适(记住第1点)。如果没有合适的话,在项目的整个生命周期中学习,开发和支持(维护)的语言(记住第1点)都是最舒适的。

This sounds like very curt advice, but I believe it's crucially important. If your project is to succeed, you need a language that you can "live" with, and will work with you rather than against you. If you were a wood-worker, you could use a hammer to put screws into a piece of wood, but wouldn't you be much more comfortable using a screwdriver?

这听起来很简单,但我相信这一点至关重要。如果您的项目要成功,您需要一种可以“生活”的语言,并且将与您合作而不是与您合作。如果你是一名木工,你可以用锤子将螺丝放入一块木头中,但使用螺丝刀会不会更舒服?

#8


Of the tagged languages, avoid asp.net as it's a desktop application. Other than that all the other languages would do a good job. It would come down to personal preference (more importantly the personal preference of the developer).

在标记语言中,避免使用asp.net,因为它是桌面应用程序。除此之外,所有其他语言都能做得很好。这取决于个人偏好(更重要的是开发人员的个人偏好)。

#9


I'm a Java programmer myself so I'm not very familiar with other programming languages.

我自己就是Java程序员,所以我对其他编程语言并不熟悉。

If you're going to write the software you should use Java. You're already familiar with it and your familiarity can help you delight your customer.

如果你要编写软件,你应该使用Java。您已经熟悉它,您的熟悉程度可以帮助您取悦您的客户。

#10


If you aren't writing it you need to find out who is and take their experience into consideration. Having them learn a new language just because you don't know what they are familiar with is not exactly a good way to go.

如果你不写作,你需要找出谁是谁,并考虑他们的经验。让他们学习一门新语言只是因为你不知道他们熟悉什么并不是一个好方法。

Java would work, C# would work (I would personally pic C#), it really just depends on the experience you have available.

Java会起作用,C#会起作用(我个人会用C#编写),它实际上只取决于你所拥有的经验。

What is this about the "non-standard" components? If there are 3rd party controls they want to use that might dictate the language/platform to work with. There are lots of free controls and examples in Java and C# as well and extending the standard Java / .NET controls might even work better that going with the 3rd party controls.

这是什么“非标准”组件?如果有他们想要使用的第三方控件可能决定使用的语言/平台。 Java和C#中还有许多免费控件和示例,扩展标准Java / .NET控件甚至可以更好地与第三方控件一起使用。

Sounds like you need to know more about the application and some other things that are out there before you can really be advising somebody else on what to do.

听起来你需要更多地了解应用程序以及其他一些事情,然后才能真正建议其他人做什么。

#11


Well, there is a lot of wisdom with using what you know (Java).

嗯,使用你所知道的(Java)有很多智慧。

However, just to counter the "because of it's huge numbers of useful libraries and free IDE's" - .NET also has a huge library base, and free IDEs (including the Express editions of Visual Studio). For .NET, C# would be a "closer" language to Java than VB.

然而,仅仅为了对抗“因为它有大量有用的库和免费的IDE” - .NET还拥有庞大的库库和免费的IDE(包括Visual Studio的Express版本)。对于.NET,C#将是比Java更“接近”Java的语言。

I reckon you'll end up with Java, though (through familiarity - not always a bad thing).

我认为你最终会得到Java(通过熟悉 - 并不总是坏事)。

#12


When we build client side systems we use .Net (C# usually). We do Java on the back end, but it sounds like you may not have a traditional back end. For all the libraries and frameworks that are available for Java the vast majority of high quality UI components are in the .Net space these days.

当我们构建客户端系统时,我们使用.Net(通常是C#)。我们在后端做Java,但听起来你可能没有传统的后端。对于可用于Java的所有库和框架,绝大多数高质量UI组件目前都在.Net领域。

#13


When you are managing the development and someone else is doing the implementation and maintenance then I'd suggest to negotiate the programming language with them.

当您管理开发并且其他人正在执行和维护时,我建议与他们协商编程语言。

When you have to do the maintenance then focus on languages that you know.

当您必须进行维护时,请关注您所知道的语言。

If you do all/most of the work, just use what language you are familiar with, when you don't have enough time to learn a new language on the way. Especially if the application is important and needs to be pretty bug free. (although there is never a "last bug" as we all know) ;-)

如果您完成所有/大部分工作,只需使用您熟悉的语言,当您没有足够的时间学习新语言时。特别是如果应用程序很重要并且需要非常无bug。 (虽然我们都知道从来没有“最后的错误”);-)

The amount of 3rd party libraries is not a good criterion because this doesn't reflect their quality (maybe most stuff is crap) and many libraries means also a big chance to select the wrong one.

第三方库的数量不是一个好的标准,因为这并不反映它们的质量(也许大多数东西都是垃圾),许多库也意味着选择错误的库很大。

Don't forget to check if the chosen language is capable of doing the job. (Speed, platform constraints, memory footprint, ...)

不要忘记检查所选语言是否能够胜任。 (速度,平台限制,内存占用,...)

#14


I think it doesn't really matter that much in which programming language and environment you program, as long as you get to know it thoroughly. C++, Java and C# all have good libraries and all have their strengths and weaknesses. The important thing is that you know the peculiarities of the language, the development environment, the debugger, a good profiler, the standard libraries, the best third party libraries, etc... Moreover, after a while you can reuse your own code as well. For example, you mention an advanced tree widget. In our company, we have our own tree (in C++) which we can finetune as we like.

我认为只要你彻底了解它,编程语言和编程环境并不重要。 C ++,Java和C#都有很好的库,都有自己的优点和缺点。重要的是你知道语言的特性,开发环境,调试器,优秀的分析器,标准库,最好的第三方库等等。而且,过了一段时间,你可以重用自己的代码作为好。例如,您提到了一个高级树窗口小部件。在我们公司,我们有自己的树(用C ++),我们可以根据需要进行微调。