热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用Tcl/Tk对桌面应用进行原型设计的优缺点-ProsandconsforprototypingadesktopappwithTcl/Tk

IvebegunprototypingadesktopappwithTclandintendtopresenttheideatosomeventurecapital

I've begun prototyping a desktop app with Tcl and intend to present the idea to some venture capitalists. Neither desktop apps nor Tcl are in vogue and so I want to be prepared to counter any objections to this technology. Below are the pros as I see them, am looking forward to fleshing out plenty of cons I'm sure, but hopefully some more pros as well.

我已经开始使用Tcl原型设计桌面应用程序,并打算将这个想法提交给一些风险资本家。桌面应用程序和Tcl都不流行,所以我想准备反对对这项技术的任何反对意见。以下是我看到他们的职业选手,我很期待充实利弊,但我希望有更多优点。

  1. I originally began writing some code along the same lines on a contract for hire last year, using Java, and want to use an entirely different language to differentiate my effort, for legal reasons
  2. 我最初开始在使用Java的合同上以相同的方式编写一些代码,并希望使用完全不同的语言来区分我的努力,出于法律原因

  3. Whereas the code at present runs as a command line script, it will be necessary to apply a UI, for which Tk will suffice for a prototype, and Tk is tightly integrated with Tcl.
  4. 虽然目前的代码作为命令行脚本运行,但是有必要应用一个UI,Tk就足以满足原型,而Tk与Tcl紧密集成。

  5. Since I'm staying away from Java in general, I foresee the "production", as opposed to prototype, UI being written in C++. Tcl is easily embedded into C++ apps, so the underlying TCL engine will initially be able to be embedded, before porting performance critical sections to C++
  6. 由于我总体上远离Java,我预见到“生产”,而不是原型,UI是用C ++编写的。 Tcl很容易嵌入到C ++应用程序中,因此在将性能关键部分移植到C ++之前,最初可以嵌入底层TCL引擎

I understand a potential con is "Tk UI's are ugly", however as stated above, the Tk UI will be for a prototype, and anyway, the Tk is ugly issue has been raised on SO already by yours truly: Why are Tk GUI's considered ugly?

我理解潜在的骗局是“Tk UI很丑”,但如上所述,Tk UI将用于原型,无论如何,Tk是一个丑陋的问题,已经由你真正提出过了:为什么要考虑Tk GUI丑陋?

4 个解决方案

#1


Tk has themed GUIs and has had them for quite a while now. It's quite easy to make a TK GUI look close to native. TK is also fairly easy on system resources (certainly faster and smaller than Winforms).

Tk有主题图形用户界面,现在已经有了很长一段时间了。使TK GUI看起来很接近本机很容易。 TK在系统资源上也相当容易(当然比Winforms更快更小)。

The key argument for Tcl is to use it as a scripting and extension mechanism for your application. If you write the application in C++ with a built-in Tcl interpreter and can get what you want from Tk you might well be able to write significant chunks of the application in its own scripting language. This will be quicker and easier than coding a native C++ GUI. However, Tk is not particularly feature-rich, so you want to be comfortable that you can do what you want before committing to it.

Tcl的关键参数是将其用作应用程序的脚本和扩展机制。如果您使用内置的Tcl解释器在C ++中编写应用程序并且可以从Tk获得您想要的内容,那么您可能能够用自己的脚本语言编写应用程序的重要组块。这比编写本机C ++ GUI更快更容易。但是,Tk并不是特别丰富,所以你希望自己能够在做出承诺之前做你想做的事情。

#2


Tcl/Tk excels at several things. One, it's pretty easy to develop working prototypes in very short order. Two, the Tcl community has solved the distribution problem better than just about any other language. Read up on starkits and starpacks if this is important to you. Tcl's built-in support for virtual file systems and the ability to package everything into a single executable (or separate app and platform-dependent runtime) is second to none.

Tcl / Tk擅长几件事。其一,在很短的时间内开发工作原型非常容易。第二,Tcl社区比任何其他语言更好地解决了分发问题。如果这对您很重要,请阅读starkits和starpacks。 Tcl对虚拟文件系统的内置支持以及将所有内容打包成单个可执行文件(或独立的应用程序和平台相关的运行时)的能力是首屈一指的。

Tcl also has unicode baked into the core (and has had for quite some time), unlike some scripting languages where unicode appears to be a tacked-on afterthought. That, combined with decent message catalog support makes internationalization and localization pretty easy (except for right-to-left languages).

Tcl也有unicode烘焙到核心(并且已经有相当长的一段时间了),不像一些脚本语言,其中unicode似乎是一个固定的事后想法。结合良好的消息目录支持,使国际化和本地化变得非常容易(从右到左的语言除外)。

Without more details about the exact nature of your program it's hard to say why Tcl/Tk might be the right solution for you. It's not perfect for every product but many people would be surprised at just how many things Tcl is good at.

如果没有关于程序确切性质的更多细节,很难说为什么Tcl / Tk可能是适合您的解决方案。它并不适用于所有产品,但很多人会对Tcl擅长的东西感到惊讶。

#3


The VC question I'd prepare for is:

我准备的VC问题是:

"how are you going to hire personnel for that?"

“你打算怎么雇人?”

My personal experience that the hiring situation (both quantity and quality) for a language is often more important than the language features themselves.

我个人的经验是,语言的招聘情况(数量和质量)往往比语言特征本身更重要。

Also be careful to defend your position with solutions that require even more skill, like embedding interpreters, multilingual projects, changes of runtimes etc. This because, again, skilled personnel is the bottleneck.

还要小心使用需要更多技能的解决方案来捍卫自己的位置,例如嵌入口译员,多语言项目,更改运行时等。这也是因为技术人员再次成为瓶颈。

P.s. personally I reject all non native GUIs. So I hated Java for quite some time too. But I guess that doesn't apply when used for prototyping.

附:我个人拒绝所有非本地GUI。所以我也讨厌Java很长一段时间。但我想这在用于原型设计时不适用。

#4


Don't take the "ugly" prototype con as being only 1 con. It counts as 5 or 6 cons when talking to non-programmers: read all the way through, my point is in there

不要把“丑陋”的原型骗局视为只有1骗局。在与非程序员交谈时,它会被视为5或6个缺点:一直读完,我的观点就在那里

Without knowing the nature of your program it is hard to be more specific.

如果不了解程序的性质,就很难更具体。


推荐阅读
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了如何使用iptables添加非对称的NAT规则段,以实现内网穿透和端口转发的功能。通过查阅相关文章,得出了解决方案,即当匹配的端口在映射端口的区间内时,可以成功进行端口转发。详细的操作步骤和命令示例也在文章中给出。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • Java 11相对于Java 8,OptaPlanner性能提升有多大?
    本文通过基准测试比较了Java 11和Java 8对OptaPlanner的性能提升。测试结果表明,在相同的硬件环境下,Java 11相对于Java 8在垃圾回收方面表现更好,从而提升了OptaPlanner的性能。 ... [详细]
author-avatar
此情为谁伤
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有