1. 占用资源的任务,尤其那些影响速度的工作
比如排序,哈希,递归等等。
2. 大量使用数学运算
尤其是浮点运算,比如任意精度的计算或者复数计算等等,这类使用C++会好很多。
3. 跨平台的(适用于C或者Java)
4. 复杂的程序,比如需要对象编程,类型检测等
5. 关键应用(一旦出错不会危及公司业务的)
6. 需要安全性的任务
7. 由若干互相依赖的子模块组成的项目
8. 需要复杂文件操作的任务
因为bash只能对序列化的文件做处理,而且它的处理方式还不是很有效:基本都是一行一行处理
9. 需要多维数组native支持的
10. 需要复杂数据结构支持的
比如linked list 或者 tree
11. 需要GUI的
12. 需要直接获取硬件资源的操作
13. 需要获取port或者socket IO资源的操作
14. 需要调用libraries 或者 legacy code 借口的操作
15. 闭源应用项目
因为 Shell Script 会把该闭源应用的源代码暴露给外界。